🚀 Capítulo 14: Entrega Contínua (CD) (Tema: Star Trek)

NOTE

Este capítulo utiliza a temática de Star Trek para explicar a Entrega e a Implantação Contínua. Teletransporte o seu código aprovado direto para o planeta de produção na velocidade da luz!


1. 🎯 Objetivo da Aula

Compreender os conceitos de Continuous Delivery (Entrega Contínua) e Continuous Deployment (Implantação Contínua), entendendo como o código aprovado nos testes chega até o usuário final de forma automatizada.

2. 🏢 O Cenário Prático (Seu Desafio)

Na nave USS Enterprise de Star Trek, os tripulantes usam o famoso Teletransportador. Quando precisam descer para explorar um planeta, eles não pegam uma nave menor e viajam por horas. Eles entram em uma cabine, o computador mapeia suas moléculas e os teletransporta instantaneamente para a superfície do planeta. É rápido, direto e automático.

Na Engenharia de Software antiga, enviar o código pronto para o servidor (produção) onde os clientes usam era um parto. O programador precisava copiar os arquivos manualmente via FTP, rezar para não esquecer nenhum arquivo e, muitas vezes, o site ficava fora do ar por horas. O CD (Continuous Delivery/Deployment) é o teletransportador de código! Sempre que o seu código passa com sucesso pelos testes da esteira de CI (do capítulo anterior), ele é empacotado e “teletransportado” para o servidor do cliente de forma automática! Seu desafio é garantir que ninguém seja teletransportado com as moléculas trocadas!


🧠 Fundamentos: A Teoria Traduzida

O termo CD pode significar duas coisas ligeiramente diferentes dependendo do nível de automação que a empresa deseja:

📦 1. Continuous Delivery (Entrega Contínua):

  • Como funciona: O código passa por todos os testes automáticos na esteira de CI. Se estiver tudo perfeito, o sistema gera o pacote pronto para o lançamento e o deixa “na porta de saída”.
  • O Toque Humano: O código não vai para o ar sozinho. Um gerente ou diretor precisa clicar fisicamente em um botão escrito “Aprovar Lançamento” para o teletransporte acontecer.
  • Uso comum: Empresas que precisam de aprovação legal ou de marketing antes de lançar algo novo.

🚀 2. Continuous Deployment (Implantação Contínua):

  • Como funciona: Não há botão de aprovação humana. Se o código passou em todos os testes automáticos da esteira de CI, o próprio sistema já faz o teletransporte direto para o servidor de produção onde os clientes estão usando!
  • Uso comum: Empresas gigantes de tecnologia (como Netflix ou Instagram) que fazem centenas de atualizações por dia. Seria impossível um humano clicar no botão aprovar tantas vezes.

4. 📖 Exemplo Guiado: O Pipeline

O caminho completo que o código faz do computador do programador até o cliente é chamado de Pipeline de CI/CD:

  1. Programadorgit push.
  2. Esteira de CI compila e roda os testes (Se falhar, para aqui!).
  3. Esteira de CD pega o código aprovado e atualiza o site automaticamente.

5. 🛠️ Prática Obrigatória 1: Delivery ou Deployment?

Diga se a situação descreve Continuous Delivery ou Continuous Deployment:

  1. A equipe de programação enviou o código. O servidor testou tudo e deixou o aplicativo pronto para ir para a loja. O diretor da empresa olhou, gostou e clicou no botão “Publicar na App Store”.
  2. O programador corrigiu um erro de digitação no site e enviou a alteração. Em 5 minutos, a alteração já estava visível para todos os clientes do mundo, sem que ninguém precisasse aprovar manualmente.

6. 🛠️ Prática Obrigatória 2: A Confiança nos Testes

Para uma empresa usar a Implantação Contínua (Continuous Deployment), onde o código vai para o ar sozinho sem ninguém olhar:

  1. Como deve ser a qualidade dos testes automáticos dessa empresa? O que acontece se os testes forem fracos ou incompletos?

7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 14 EngSoftware) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

extra_engenharia_de_software/
├── capitulos/
│   ├── capitulo_14_cd.md
│   └── codigos/
│       └── cap14/
│           └── script_deploy.sh

💡 Checkpoint de Lógica

O CD permite que as empresas corrijam erros e lancem novidades em minutos. Antigamente, os usuários tinham que esperar meses por uma nova versão do software em CD-ROM!

10. 🔥 Desafio de Fixação

Pesquise o que significa o termo Rollback no contexto de deploy de software.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Continuous Delivery (Houve intervenção humana para autorizar o lançamento final).
  2. Continuous Deployment (Processo automatizado do início ao fim). Gabarito da Prática 2:
  3. Os testes devem ser perfeitos e cobrir quase todas as situações possíveis. Se os testes forem fracos, um código com bug passará pela esteira fingindo que está bom e o sistema automático vai derrubar o site da empresa fora do ar sem que nenhum humano perceba a tempo!

Capitulo Anterior | Proximo Capitulo