🚀 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:
- Programador dá
git push. - Esteira de CI compila e roda os testes (Se falhar, para aqui!).
- 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:
- 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”.
- 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:
- 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)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 14 EngSoftware) e clique em Commit to main. - 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:
- Continuous Delivery (Houve intervenção humana para autorizar o lançamento final).
- Continuous Deployment (Processo automatizado do início ao fim). Gabarito da Prática 2:
- 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!