Questão de Engenharia de Software — DevOps, IaC, Integração Contínua e Entrega Contínua — INSTITUTO AOCP 2024
Engenharia de Software›DevOps, IaC, Integração Contínua e Entrega Contínua
Código
qa631575
Banca
INSTITUTO AOCP
Órgão
DPE MS
Ano
2024
Cargo
Ana Def ( )
Juliano é analista de Desenvolvimento de Sistemas e, utilizando-se de conceitos e ferramentas do DevOps, está implementando um processo no qual o gerenciamento e o provisionamento de recursos de infraestrutura serão realizados por meio de arquivos de configuração e scripts em vez de acesso direto a máquinas físicas. Esse processo é denominado
AInfraestrutura como Código.
BEntrega Contínua.
CMonitoramento e Controle de Logs.
DMonitoramento de Aplicação.
EIntegração Contínua.
Revelar gabarito e comentário▾
GabaritoA — Infraestrutura como Código.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Infraestrutura como Código (IaC) no contexto DevOps
Gabarito: letra A. O processo descrito — gerenciar e provisionar recursos de infraestrutura por meio de arquivos de configuração e scripts, em vez de acesso direto a máquinas físicas — é exatamente a definição de Infraestrutura como Código (IaC), prática central do DevOps que trata a infraestrutura como software, permitindo versionamento, automação e reprodutibilidade.
A Infraestrutura como Código (IaC) é uma prática do DevOps que consiste em gerenciar e provisionar a infraestrutura de TI (servidores, redes, bancos de dados, etc.) por meio de código — arquivos de configuração legíveis por máquina — em vez de configuração manual ou acesso direto a hardware físico. O nome já entrega a essência: a infraestrutura passa a ser tratada como código-fonte, com todos os benefícios que isso traz: controle de versão (Git, por exemplo), revisão de mudanças, automação, reprodutibilidade (o mesmo código gera o mesmo ambiente) e escalabilidade.
A definição clássica, amplamente cobrada em concursos, é: "IaC é o processo de gerenciamento e provisionamento de data centers de computador, por meio de arquivos de definição legíveis por máquina, ao invés de configuração de hardware físico ou ferramentas de configuração interativas." Essa é a essência do que o enunciado descreve: Juliano usa arquivos de configuração e scripts para provisionar recursos, sem acesso direto às máquinas físicas.
A IaC se divide em duas abordagens principais:
Imperativa: define como configurar a infraestrutura, com uma sequência de comandos (ex.: scripts em Bash, AWS CLI). O operador diz o passo a passo.
Declarativa: define o que se deseja como estado final, e a ferramenta se encarrega de alcançá-lo (ex.: Terraform, Ansible). O operador declara o resultado desejado.
Ferramentas populares de IaC incluem Terraform, Ansible, AWS CloudFormation, Puppet e Chef. Todas seguem o princípio de tratar a infraestrutura como código versionável e automatizável.
A pegadinha desta questão está em confundir IaC com outras práticas do DevOps, como Integração Contínua (CI) e Entrega Contínua (CD). Enquanto a IaC foca no provisionamento e gerenciamento da infraestrutura, a CI foca em integrar código frequentemente e a CD foca em manter o software pronto para produção. O enunciado é claro ao falar de "gerenciamento e provisionamento de recursos de infraestrutura" — isso é IaC, não CI/CD.
Guarde a fronteira: IaC = infraestrutura como código; CI = integração de código; CD = entrega contínua. É exatamente nessa distinção que as alternativas se dividem.
Infraestrutura como Código (IaC)
1Definição
Provisionar recursos via arquivos de configuração
Sem acesso direto a máquinas físicas
2Abordagens
Imperativa (como)
Sequência de comandos
Ex.: scripts Bash, AWS CLI
Declarativa (o que)
Estado final desejado
Ex.: Terraform, Ansible
3Benefícios
Versionamento
Automação
Reprodutibilidade
4Ferramentas
Terraform
Ansible
CloudFormation
Puppet
Chef
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque descreve com precisão o conceito de Infraestrutura como Código (IaC). O enunciado menciona "gerenciamento e provisionamento de recursos de infraestrutura por meio de arquivos de configuração e scripts" — isso é a definição literal de IaC. A prática permite que a infraestrutura seja versionada, testada e implantada de forma automatizada, exatamente como código de software.
Alternativa B — ❌ Incorreta
Entrega Contínua (CD) é a prática de manter o software sempre pronto para produção, com alterações testadas e carregadas em um repositório, aguardando aprovação para implantação. Não tem relação com provisionamento de infraestrutura. O enunciado fala de infraestrutura, não de entrega de software.
Alternativa C — ❌ Incorreta
Monitoramento e Controle de Logs refere-se à coleta, análise e gestão de logs de sistemas e aplicações para identificar problemas e garantir a observabilidade. Não envolve provisionamento de infraestrutura por código. É uma prática de operação, não de provisionamento.
Alternativa D — ❌ Incorreta
Monitoramento de Aplicação (APM) é o acompanhamento do desempenho e da disponibilidade de aplicações em produção, coletando métricas como tempo de resposta, taxa de erro e uso de recursos. Não tem relação com provisionamento de infraestrutura via código.
Alternativa E — ❌ Incorreta
Integração Contínua (CI) é a prática de integrar alterações de código em um repositório central com frequência, executando compilações e testes automatizados. O foco é no código da aplicação, não na infraestrutura. O enunciado fala de provisionamento de recursos de infraestrutura, o que é IaC.
PEGA ESSA DICA!
Para diferenciar IaC de CI/CD na prova, procure palavras-chave: se o enunciado mencionar "provisionamento", "infraestrutura", "arquivos de configuração", "scripts", "máquinas físicas" → IaC. Se mencionar "integração de código", "repositório central", "builds" → CI. Se mencionar "pronto para produção", "implantação" → CD. Essa distinção resolve a maioria das questões de DevOps.