🚀 Capítulo 12: Orquestração (Kubernetes) (Tema: Vingadores)

NOTE

Este capítulo utiliza a temática de Vingadores para explicar a Orquestração. “Vingadores, Avante!” — lidere seu exército de contêineres e garanta que a batalha nunca seja perdida!


1. 🎯 Objetivo da Aula

Compreender o conceito de Orquestração de Contêineres, conhecendo o Kubernetes (K8s) e entendendo como ele gerencia, escala e recupera centenas de contêineres automaticamente.

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

Na batalha final contra o Thanos, existem centenas de heróis e soldados lutando ao mesmo tempo.

  • Se cada herói fizesse o que quisesse, sem nenhuma ordem, o exército seria derrotado.
  • O Capitão América assume o papel de Líder (Orquestrador). Ele diz quem vai para onde, quem ataca pelo alto, quem defende por baixo.
  • Se um herói cai em combate, outro assume a posição dele na hora para manter a barreira firme.

No capítulo anterior, aprendemos a criar um contêiner Docker. Mas e se a sua empresa precisar de 500 contêineres rodando ao mesmo tempo para aguentar os acessos ao site? Como gerenciar todos eles? Quem avisa se um deles travar? O Kubernetes (apelidado de K8s) é o nosso Capitão América! Ele é o cérebro que coordena o exército de contêineres. Seu desafio é liderar esse exército!


🧠 Fundamentos: A Teoria Traduzida

Orquestração é a automação do ciclo de vida dos contêineres, especialmente em ambientes grandes e complexos.

☸️ O que o Kubernetes faz de melhor?

  1. Auto-cura (Self-healing):
    • Se um contêiner “morrer” (travar por falta de memória ou erro no código), o Kubernetes percebe em milissegundos, apaga o contêiner quebrado e cria um novinho em folha no lugar dele automaticamente! O usuário do site nem percebe.
  2. Escalabilidade Automática (Auto-scaling):
    • Se o site começar a receber muitos acessos (ex: Black Friday), o Kubernetes cria mais contêineres para dividir o peso. Quando a calmaria volta, ele apaga os extras para economizar dinheiro.
  3. Balanceamento de Carga (Load Balancing):
    • Ele distribui os acessos dos clientes de forma igualitária entre todos os contêineres disponíveis, para nenhum ficar sobrecarregado.

4. 📖 Exemplo Guiado: O Arquivo de Desejo (YAML)

No Kubernetes, nós não dizemos “rode este comando”. Nós dizemos o nosso Desejo (Estado Desejado) em um arquivo de configuração.

# Exemplo de configuração do Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
  name: meu-site-app
spec:
  replicas: 3 # EU QUERO SEMPRE 3 CÓPIAS DESSE SITE RODANDO!
  template:
    metadata:
      labels:
        app: meu-site
    spec:
      containers:
      - name: site
        image: meu-site:v1 # Usando a imagem que criamos no Docker

Se você enviar esse arquivo para o Kubernetes, ele vai criar 3 contêineres. Se você for lá e apagar 1 manualmente para testar, o Kubernetes verá que o estado atual (2) está diferente do seu desejo (3) e criará o terceiro novamente na hora!


5. 🛠️ Prática Obrigatória 1: O Capitão em Ação

Imagine que você configurou o Kubernetes para manter sempre 5 réplicas do seu site rodando. No meio da madrugada, um bug no código faz com que 2 desses contêineres travem e parem de responder.

  1. O que o Kubernetes fará ao perceber que esses 2 contêineres falharam?
  2. O programador precisa acordar de madrugada para resolver esse problema ou pode ver isso de manhã?

6. 🛠️ Prática Obrigatória 2: Docker vs Kubernetes

Muitos iniciantes confundem as duas ferramentas. Com base no que aprendemos nos Capítulos 11 e 12:

  1. Qual a função principal do Docker?
  2. Qual a função principal do Kubernetes?
  3. O Kubernetes substitui o Docker ou trabalha junto com ele?

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

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 12 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_12_kubernetes.md
│   └── codigos/
│       └── cap12/
│           └── deployment.yaml

💡 Checkpoint de Lógica

O Kubernetes é considerado o “Sistema Operacional da Nuvem”. Ele é tão poderoso que hoje em dia quase todas as grandes empresas do mundo o utilizam para rodar seus sistemas!

10. 🔥 Desafio de Fixação

Pesquise o que significa a sigla K8s (Por que o número 8 está ali no meio?).

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Ele vai apagar os 2 contêineres travados e criar 2 novos imediatamente para voltar a ter as 5 réplicas que você pediu.
  2. Ele pode ver de manhã! O Kubernetes cuida do sistema de madrugada mantendo-o no ar. O programador só precisa corrigir o bug do código depois. Gabarito da Prática 2:
  3. Criar e empacotar a aplicação dentro de um contêiner isolado.
  4. Gerenciar, escalar e orquestrar centenas de contêineres ao mesmo tempo.
  5. Trabalha junto! O Kubernetes precisa do Docker (ou outro criador de contêineres) para criar as cápsulas que ele vai liderar.

Capitulo Anterior | Proximo Capitulo