Sobes.tech
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:

  1. Commit: O desenvolvedor faz um commit das alterações no sistema de controlo de versões (por exemplo, Git).
  2. Build: Construção automática do artefacto (imagem, pacote, etc.).
  3. Test: Execução de testes automáticos (testes unitários, de integração, funcionais, de carga, etc.).
  4. 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