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
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?
AConfigurar manualmente todos os servidores e recursos de rede para garantir controle total sobre o ambiente de produção.
BAplicar mudanças diretamente nos servidores de produção sem realizar testes prévios para agilizar o processo de implantação.
CManter a documentação da infraestrutura em um documento separado e atualizado manualmente após cada alteração no ambiente.
DUtilizar ferramentas gráficas para configurar a infraestrutura, evitando o uso de código para descrever os recursos e suas configurações.
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
Reprodutibilidade
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.