Alternativa D
O contexto da questão aborda práticas modernas de desenvolvimento de software (DevOps), focando na distinção entre Entrega Contínua (Continuous Delivery) e Implantação Contínua (Continuous Deployment). Embora ambos os processos busquem automatizar o ciclo de vida do software, eles diferem na etapa final de liberação.
Análise
Para identificar a resposta correta, devemos comparar os fluxos de trabalho de cada conceito:
- Entrega Contínua (Continuous Delivery): Garante que o software esteja sempre em um estado pronto para ser implantado. No entanto, a decisão de levar essa versão para o ambiente de produção ainda depende de um gatilho manual ou aprovação humana. Isso alinha com a frase inicial da questão: "...mesmo que a liberação em produção dependa de decisões de negócio."
- Implantação Contínua (Continuous Deployment): Vai além da entrega contínua. Aqui, toda alteração que passa pelos testes automatizados é liberada automaticamente em produção, sem qualquer intervenção manual.
Analisando as alternativas apresentadas:
- (A) Execução automática de testes: Necessária tanto para a Entrega quanto para a Implantação Contínua. Não as diferencia.
- (B) Integração frequente do código: Característica base da Integração Contínua, comum aos dois processos subsequentes.
- (C) Uso de pipelines automatizados: Ferramenta essencial para ambos os fluxos de trabalho.
- (D) Possibilidade de decisão manual para implantar em produção: Esta é a característica exclusiva da Entrega Contínua. Ela preserva o controle humano sobre o momento do release, ao contrário da Implantação Contínua, que é totalmente automatizada até o fim.
Conclusão
A alternativa correta é a D, pois a necessidade de aprovação manual antes da implantação em produção é o ponto de divergência principal entre a Entrega Contínua e a Implantação Contínua.