Junior
O que é implantação contínua (continuous deployment)?
sobes.tech IA
Resposta da IA
Esta é uma abordagem no desenvolvimento de software em que cada alteração, que passou por um pipeline de testes automatizados e foi aprovada, é automaticamente implantada no ambiente de produção. A principal diferença para a Entrega Contínua é a ausência de uma etapa manual de aprovação antes do deploy em produção.
Etapas principais:
- Commit: O desenvolvedor faz um commit das alterações no sistema de controlo de versões (por exemplo, Git).
- Build: Construção automática do artefacto (imagem, pacote, etc.).
- Test: Execução de testes automáticos (testes unitários, de integração, funcionais, de carga, etc.).
- Deploy: Se todos os testes passarem com sucesso, o artefacto é automaticamente implantado no ambiente de trabalho.
Componentes chave:
- Alto nível de automação.
- Infraestrutura fiável.
- Uso de práticas de Integração Contínua (CI) e Entrega Contínua (CD).
- Monitorização e registo para detetar problemas rapidamente.
- Capacidade de rollback rápido.
# Exemplo de parte do pipeline no GitLab CI/CD
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "A construir a aplicação..."
- # Comandos de build aqui
test_job:
stage: test
script:
- echo "A correr testes..."
- # Comandos de teste aqui
only:
- main # Dispara apenas para o branch principal
deploy_job:
stage: deploy
script:
- echo "A fazer deploy para produção..."
- # Comandos de deploy aqui
when: on_success # Deploy apenas se as etapas anteriores tiverem sucesso
only:
- main
| Vantagens | Desvantagens |
|---|---|
| Lançamento rápido de novas funcionalidades/correções | Requisitos elevados de qualidade dos testes |
| Redução do TTM (Tempo até ao Mercado) | Risco potencial de deploy de alterações indesejadas |
| Diminuição do risco em cada deploy | Complexidade na implementação sem processos maduros de CI/CD |
| Feedback rápido dos utilizadores | Necessidade de monitorização fiável e capacidade de rollback |