🚀 Capítulo 18: GitOps e Entrega Declarativa (Tema: Inception / A Origem)

NOTE

Este capítulo utiliza a temática de Inception para explicar o GitOps. O que você escreve no código (o sonho) se torna a realidade física na nuvem!


1. 🎯 Objetivo da Aula

Compreender o conceito de GitOps, entendendo como o Git se torna a única fonte de verdade para a infraestrutura e como ferramentas automatizam a sincronização entre o código e a realidade.

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

No filme Inception, os arquitetos conseguem projetar o mundo dos sonhos.

  • Eles desenham prédios, ruas e pontes no papel ou na mente.
  • Quando eles entram no sonho, aquela arquitetura desenhada se torna a realidade física deles. Se eles dobrarem a rua no papel, a rua se dobra no sonho!

No mundo DevOps, o GitOps faz exatamente isso!

  • A sua mente de arquiteto é o repositório Git (GitHub).
  • Você escreve em um arquivo de configuração exatamente como você quer que a sua infraestrutura seja (Ex: “Quero 3 servidores e 1 banco de dados”).
  • Um robô (como o ArgoCD) fica vigiando o Git. Se ele perceber que você alterou o arquivo para “Quero 5 servidores”, ele vai lá na nuvem da AWS e cria mais 2 servidores sozinho! A realidade da nuvem sempre imita o que está escrito no seu Git! Seu desafio é projetar esse sonho!

🧠 Fundamentos: A Teoria Traduzida

GitOps é um modelo operacional para Kubernetes e outras tecnologias nativas da nuvem, onde o Git é usado como a única fonte de verdade para sistemas declarativos.

📜 Os 4 Princípios do GitOps:

  1. Declarativo: O sistema deve ser descrito em arquivos (como YAML), dizendo o estado final desejado (o que eu quero), e não os comandos para chegar lá (o como fazer).
  2. Versionado e Imutável: Todo o estado do sistema fica guardado no Git. Se precisarmos voltar no tempo (fazer Rollback), basta dar um checkout em um commit antigo!
  3. Puxado Automaticamente: O sistema (robô) lê as mudanças do Git e aplica na nuvem automaticamente.
  4. Reconciliação Contínua: O robô fica checando 24h por dia se a nuvem está igual ao Git. Se alguém entrar na AWS e apagar um servidor manualmente, o robô percebe a diferença e recria o servidor na hora para ficar igual ao Git!

4. 📖 Exemplo Guiado: O Robô ArgoCD

Imagine que você quer atualizar a versão do seu site de v1 para v2.

  • Sem GitOps: Você abre o terminal, conecta no Kubernetes e digita comandos para atualizar a imagem.
  • Com GitOps: Você abre o arquivo deployment.yaml no GitHub, muda a linha de image: site:v1 para image: site:v2 e faz o commit.
  • O robô ArgoCD vê o commit novo e atualiza o site sozinho na nuvem! Você não precisa nem abrir o terminal.

5. 🛠️ Prática Obrigatória 1: O Princípio do GitOps

Um administrador de sistemas entrou no painel da AWS e alterou manualmente o tamanho de um servidor de “Pequeno” para “Grande” porque o sistema estava lento. No arquivo do Git, o servidor continuava escrito como “Pequeno”.

  1. Se essa empresa usa GitOps com reconciliação contínua, o que o robô fará com esse servidor alguns minutos depois?
  2. Qual o jeito correto que o administrador deveria ter usado para aumentar o tamanho do servidor seguindo a cultura GitOps?

6. 🛠️ Prática Obrigatória 2: Vantagem do Histórico

Como tudo no GitOps fica registrado no Git como commits:

  1. Qual a vantagem disso para a equipe de segurança descobrir quem foi que mandou abrir uma porta do firewall do sistema na semana passada?

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

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

8. 📂 Estrutura de Pastas

mod_13_devops_e_cloud/
├── capitulos/
│   ├── capitulo_18_gitops.md
│   └── codigos/
│       └── cap18/
│           └── gitops_sync.txt

💡 Checkpoint de Lógica

GitOps é o ápice da automação de infraestrutura. Ele garante que o que está documentado no código seja exatamente o que está rodando em produção, sem mentiras ou esquecimentos!

10. 🔥 Desafio de Fixação

Pesquise o nome das duas ferramentas de GitOps mais famosas do mercado atualmente (Dica: Uma delas tem o símbolo de um polvo e a outra de uma âncora).

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. O robô vai desfazer a alteração manual e voltar o servidor para o tamanho “Pequeno”, para ficar igual ao que está escrito no Git!
  2. Ele deveria ter alterado o arquivo no Git para “Grande” e feito o commit. O robô se encarregaria de aplicar a mudança na nuvem. Gabarito da Prática 2:
  3. Basta olhar o histórico de commits (git log) para ver exatamente qual usuário fez a alteração no arquivo de configuração do firewall, em qual dia e hora!

Capitulo Anterior | Proximo Capitulo