Pular para o conteúdo principal

Questão de Engenharia de Software — DevOps, IaC, Integração Contínua e Entrega Contínua — INSTITUTO AOCP 2024

Engenharia de SoftwareDevOps, 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
  1. AInfraestrutura como Código.
  2. BEntrega Contínua.
  3. CMonitoramento e Controle de Logs.
  4. DMonitoramento de Aplicação.
  5. 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.

Gabarito: letra A

Link permanente: /questoes/qa631575