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
qa631612
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
Você exerce o cargo de especialista em desenvolvimento de software pelo Ministério da Gestão e da Inovação e recebeu a tarefa de implantar um sistema de automação de infraestrutura. O projeto visa utilizar a abordagem de Infraestrutura como Código (IaC) para gerenciar e provisionar recursos de TI de forma eficiente e repetível. Durante a fase de planejamento, você precisa garantir que todos os membros da equipe compreendam os benefícios e as práticas associadas à IaC.   Com base nos conceitos de Infraestrutura como Código, qual das seguintes alternativas apresenta corretamente a aplicação dos princípios de IaC no desenvolvimento do sistema de automação de infraestrutura?
  1. AConfigurar manualmente todos os servidores e recursos de rede para garantir controle total sobre o ambiente de produção.
  2. BAplicar mudanças diretamente nos servidores de produção sem realizar testes prévios para agilizar o processo de implantação.
  3. CManter a documentação da infraestrutura em um documento separado e atualizado manualmente após cada alteração no ambiente.
  4. DUtilizar ferramentas gráficas para configurar a infraestrutura, evitando o uso de código para descrever os recursos e suas configurações.
  5. EUtilizar scripts versionados para definir e provisionar a infraestrutura, permitindo que o ambiente possa ser replicado de forma consistente em diferentes etapas do desenvolvimento.
Revelar gabarito e comentário

GabaritoE — Utilizar scripts versionados para definir e provisionar a infraestrutura, permitindo que o ambiente possa ser replicado de forma consistente em diferentes etapas do desenvolvimento.

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): princípios e aplicação

Gabarito: letra E. A alternativa correta descreve a essência da Infraestrutura como Código (IaC): utilizar scripts versionados para definir e provisionar a infraestrutura, permitindo que o ambiente seja replicado de forma consistente em diferentes etapas do desenvolvimento. Esse é o conceito central da IaC, que trata a infraestrutura como software, aplicando práticas como controle de versão, 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 arquivos de definição legíveis por máquina, em vez de configuração manual ou ferramentas interativas. O princípio fundamental é tratar a infraestrutura da mesma forma que o código-fonte de uma aplicação: ela é versionada, revisada, testada e implantada de forma automatizada e repetível. Isso garante que o ambiente possa ser recriado de maneira idêntica em qualquer estágio (desenvolvimento, teste, homologação, produção), eliminando as inconsistências que surgem quando a configuração é feita manualmente.

A IaC pode ser implementada de duas formas principais: a abordagem declarativa, que define o estado desejado do sistema (o "quê") e a ferramenta se encarrega de aplicar as mudanças (ex.: Terraform, Ansible), e a abordagem imperativa, que define os comandos específicos necessários para alcançar a configuração desejada (o "como") (ex.: scripts em Bash, AWS CLI). Em ambas, o uso de controle de versão é essencial, pois permite rastrear o histórico de mudanças, reverter alterações problemáticas e colaborar em equipe.

Os benefícios da IaC são numerosos: reprodutibilidade (infraestrutura sempre igual), escalabilidade (ajuste conforme a necessidade), automação (menos trabalho manual e menos erros humanos) e versionamento (histórico completo das mudanças). Além disso, a IaC é um pilar fundamental para a Integração Contínua (CI) e a Entrega Contínua (CD), pois permite que os ambientes sejam provisionados e configurados automaticamente como parte do pipeline de entrega de software.

A banca explora aqui a contraposição entre a IaC e as práticas tradicionais de administração de sistemas, que envolvem configuração manual, documentação separada e ferramentas gráficas. A pegadinha está em identificar qual alternativa representa a aplicação correta dos princípios da IaC, que é justamente a que envolve código versionado e automação. As demais alternativas descrevem práticas que vão contra os princípios da IaC, como configuração manual, mudanças sem teste, documentação separada e uso de ferramentas gráficas.

Guarde a fronteira entre o que é IaC e o que não é: IaC é código versionado, automatizado e repetível. É exatamente nessa fronteira que as alternativas se dividem.

Infraestrutura como Código (IaC)
  • 1Princípios
    • Código versionado
    • Automação
    • Repetibilidade
  • 2Abordagens
    • Declarativa (estado desejado)
      • Terraform, Ansible
    • Imperativa (comandos)
      • Bash, AWS CLI
  • 3Benefícios
    • Repro­dutibilidade
    • Escalabilidade
    • Versionamento
  • 4O que NÃO é IaC
    • Configuração manual
    • Mudança sem teste
    • Documentação separada
    • Ferramentas gráficas
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Configurar manualmente todos os servidores e recursos de rede é o oposto da IaC. A IaC busca justamente eliminar a configuração manual, que é propensa a erros, não é repetível e não deixa rastro de mudanças. A configuração manual também dificulta a escalabilidade e a consistência entre ambientes.

Alternativa B — ❌ Incorreta

Aplicar mudanças diretamente nos servidores de produção sem testes prévios é uma prática arriscada e contrária aos princípios de DevOps e IaC. A IaC permite que as mudanças sejam testadas em ambientes de desenvolvimento e homologação antes de serem aplicadas em produção, garantindo que o ambiente seja replicado de forma consistente e segura.

Alternativa C — ❌ Incorreta

Manter a documentação da infraestrutura em um documento separado e atualizado manualmente é uma prática ultrapassada. Na IaC, a própria infraestrutura é descrita em código, que serve como documentação viva e sempre atualizada. A documentação manual tende a ficar desatualizada e não reflete o estado real do ambiente.

Alternativa D — ❌ Incorreta

Utilizar ferramentas gráficas para configurar a infraestrutura, evitando o uso de código, é o oposto da IaC. A IaC se baseia na descrição da infraestrutura por meio de código, que pode ser versionado, revisado e automatizado. Ferramentas gráficas, embora possam ser úteis para visualização, não oferecem os benefícios de reprodutibilidade e automação da IaC.

Alternativa E — ✅ Correta ⟵ GABARITO

Utilizar scripts versionados para definir e provisionar a infraestrutura é a essência da IaC. O versionamento permite rastrear mudanças, colaborar em equipe e reverter alterações. A definição da infraestrutura em código permite que o ambiente seja replicado de forma consistente em diferentes etapas do desenvolvimento, garantindo reprodutibilidade e automação. Essa alternativa descreve exatamente os princípios da IaC.

Gabarito: letra E

Link permanente: /questoes/qa631612