Questão de Engenharia de Software — DevOps, IaC, Integração Contínua e Entrega Contínua — CESPE / CEBRASPE 2023
- Código
- ce398078
- Banca
- CESPE / CEBRASPE
- Órgão
- DATAPREV
- Ano
- 2023
- Cargo
- Ana TI ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: Errado (E). A afirmativa descreve, na verdade, o conceito de integração contínua (CI), e não o de entrega contínua (CD). A integração contínua é a prática de integrar alterações de código com frequência em um repositório compartilhado, com automação de build e testes. A entrega contínua, por sua vez, vai além: após a integração e os testes, o software é preparado e disponibilizado em um repositório, pronto para implantação, mas exige uma aprovação manual para ser efetivamente implantado em produção. A banca trocou os conceitos, e é exatamente essa distinção que o item explora.
No contexto de DevOps, os termos CI (Continuous Integration) e CD (Continuous Delivery/Deployment) são frequentemente confundidos, e as bancas adoram explorar essa confusão. Vamos destrinchar cada um:
Integração Contínua (CI): é uma prática em que os desenvolvedores, com frequência, integram suas alterações de código em um repositório central. A cada integração, o código é automaticamente compilado e testado. O objetivo é identificar e corrigir erros rapidamente, melhorando a qualidade do software e reduzindo o tempo de lançamento de novas atualizações. É a automação do processo de build e testes a cada commit.
Entrega Contínua (CD - Continuous Delivery): é a extensão da CI. Após a integração e os testes automatizados, o software é automaticamente preparado e carregado em um repositório, ficando pronto para ser implantado em produção a qualquer momento. No entanto, a implantação em si requer uma aprovação manual (humana). Ou seja, o software está sempre em um estado "implantável", mas a decisão de ir para produção é tomada por uma pessoa.
Implantação Contínua (CD - Continuous Deployment): é um passo além da entrega contínua. Aqui, cada alteração aprovada nos testes é implantada automaticamente em produção, sem intervenção humana. É a automação completa do pipeline, do commit à produção.
A pegadinha da questão está em atribuir à entrega contínua a automação de "desenvolvimento, testes e integração dos códigos de forma frequente e em um repositório compartilhado". Essa é a definição clássica de integração contínua. A entrega contínua pressupõe a integração contínua, mas adiciona a etapa de preparação para implantação (empacotamento, publicação em repositório de artefatos) e a exigência de aprovação antes de ir para produção.
Para fixar, veja a comparação:
Característica | Integração Contínua (CI) | Entrega Contínua (CD) | Implantação Contínua (CD) |
|---|---|---|---|
Objetivo principal | Integrar código com frequência e validar por meio de build e testes automatizados. | Deixar o software sempre pronto para implantação, com aprovação manual. | Implantar automaticamente em produção, sem intervenção humana. |
Automação | Build e testes a cada integração. | Preparação e publicação em repositório de artefatos. | Implantação em produção. |
Intervenção humana | Não há (é automático). | Há: uma aprovação manual é necessária antes da implantação. | Não há: é totalmente automático. |
Resultado | Código integrado e testado. | Artefato pronto para implantar. | Software em produção. |
A questão, ao afirmar que a entrega contínua envolve "automação de processos de desenvolvimento, testes e integração dos códigos de forma frequente e em um repositório compartilhado", está descrevendo a integração contínua. A entrega contínua, embora dependa da CI, tem como característica distintiva a preparação para implantação com aprovação manual.
A afirmativa está errada porque descreve o conceito de integração contínua (CI), não o de entrega contínua (CD). A integração contínua é que envolve a automação de desenvolvimento, testes e integração frequente em um repositório compartilhado. A entrega contínua, por sua vez, é a etapa que prepara o software para implantação (empacotando e publicando em um repositório de artefatos), mas exige uma aprovação manual antes de ir para produção. A banca trocou os conceitos, e o candidato que não domina a distinção entre CI e CD cai na armadilha.
A banca adora inverter os conceitos de CI e CD. A integração contínua é a automação de build e testes a cada integração no repositório. A entrega contínua é a preparação do software para implantação, aguardando aprovação manual. A implantação contínua é a automação total, sem intervenção humana. Quando a questão falar em "automação de testes e integração frequente", é CI; quando falar em "pronto para implantação, mas com aprovação", é entrega contínua; quando falar em "implantação automática em produção", é implantação contínua. Com esse mapa, você não erra mais.
Gabarito: Errado (E).
Link permanente: /questoes/ce398078