🚀 Capítulo 04: Entrega Contínua (CD) (Tema: Flash)
NOTE
Este capítulo utiliza a temática de Flash para explicar a Entrega Contínua. Entregar o software na velocidade da luz exige processos automáticos e seguros!
1. 🎯 Objetivo da Aula
Compreender os conceitos de Entrega Contínua (Continuous Delivery) e Implantação Contínua (Continuous Deployment), entendendo a diferença entre eles e como automatizar o processo de deploy.
2. 🏢 O Cenário Prático (Seu Desafio)
O herói Flash consegue correr na velocidade da luz. Se você pedir uma pizza para ele, ele vai à pizzaria, pega a pizza e entrega na sua porta antes mesmo de você desligar o telefone!
- Não há trânsito para ele.
- Não há atrasos.
No desenvolvimento de software, a CD é o nosso superpoder de velocidade. Depois que o código passou pelos testes automatizados (CI), ele precisa ir para o servidor de produção o mais rápido possível para o cliente usar.
- O Jeito Antigo: O programador gera um arquivo, envia por FTP, desliga o servidor, copia o arquivo, liga o servidor e reza para funcionar. Demora horas!
- O Jeito Flash (CD): Um robô pega o código testado e o coloca no servidor em segundos! Seu desafio é dominar a velocidade do Flash na entrega do seu código!
3. 🧠 Fundamentos: A Teoria Traduzida
A sigla CD pode significar duas coisas ligeiramente diferentes na prática:
🚚 1. Continuous Delivery (Entrega Contínua):
O processo de build e teste é 100% automatizado. O software está sempre pronto para ir para produção. Mas a decisão final de colocar no ar ainda depende de um humano apertar um botão (aprovação manual).
- Analogia: O Flash deixa a pizza quentinha na mesa, mas espera você dizer “Pode servir”.
🚀 2. Continuous Deployment (Implantação Contínua):
Vai um passo além. Se o código passou nos testes automatizados, ele vai direto para produção automaticamente, sem nenhuma intervenção humana.
- Analogia: O Flash já coloca a pizza direto na sua boca!
4. 📖 Exemplo Guiado: O Pipeline Completo (CI/CD)
O fluxo completo de uma fábrica de software moderna funciona assim:
flowchart LR A["Código"] --> B["Testes (CI)"] B -- Passou --> C["Gerar Pacote"] C --> D["Deploy (CD)"] style A fill:#ccf,stroke:#333 style B fill:#ccf,stroke:#333 style C fill:#ccf,stroke:#333 style D fill:#ccf,stroke:#333
Se o teste falhar no passo B, o pipeline para e nada vai para o servidor (Passo D). Isso garante velocidade com segurança!
5. 🛠️ Prática Obrigatória 1: Delivery ou Deployment?
Diga se a situação descreve Continuous Delivery ou Continuous Deployment:
- A empresa de jogos testa as atualizações automaticamente. Toda sexta-feira, o diretor clica em um botão e a atualização vai para todos os jogadores do mundo.
- O aplicativo de chat atualiza o servidor automaticamente 15 vezes por dia. Toda vez que um programador termina uma correção e o robô aprova, a correção vai direto para o ar.
6. 🛠️ Prática Obrigatória 2: O Risco da Velocidade
Se na Implantação Contínua (Continuous Deployment) o código vai para o ar sozinho sem nenhum humano revisar antes de apertar o botão:
- O que acontece se os programadores esquecerem de escrever bons testes automatizados?
- Por que a CD exige que a CI (testes) seja perfeita?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 04 DevOps) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
mod_13_devops_e_cloud/
├── capitulos/
│ ├── capitulo_04_cd.md
│ └── codigos/
│ └── cap04/
│ └── pipeline_config.txt💡 Checkpoint de Lógica
Para fazer CD sem derrubar o site para os usuários, usamos técnicas como Blue-Green Deployment (ter dois servidores idênticos: um atende os clientes e o outro recebe a atualização; depois trocamos as funções deles de forma invisível para o usuário).
10. 🔥 Desafio de Fixação
Pesquise sobre o que significa o termo Rollback em um pipeline de CD (Dica: Pense no Flash voltando no tempo).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Continuous Delivery (Há uma pausa para decisão humana).
- Continuous Deployment (Vai direto sem intervenção humana). Gabarito da Prática 2:
- Códigos com bugs vão direto para o cliente final sem ninguém ver!
- Porque os testes automatizados são a única barreira de proteção (o escudo) antes do código chegar ao cliente. Se o escudo falhar, o cliente sofre as consequências.