🚀 Capítulo 13: Infraestrutura como Código (IaC) (Tema: Lego)

NOTE

Este capítulo utiliza a temática de Lego para explicar a Infraestrutura como Código. Escreva o manual de instruções e monte sua cidade na nuvem bloco a bloco, de forma automática e sem erros!


1. 🎯 Objetivo da Aula

Compreender o conceito de Infraestrutura como Código (IaC - Infrastructure as Code), conhecendo a ferramenta Terraform e as vantagens de criar recursos na nuvem através de arquivos de texto em vez de cliques manuais.

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

Você quer construir uma cidade gigante usando blocos de Lego.

  • O Jeito Difícil: Você vai pegando as peças e montando na hora, de cabeça. Se você precisar construir outra cidade igual amanhã em outra sala, você não vai lembrar onde colocou cada peça e vai demorar horas para tentar fazer parecido.
  • O Jeito Inteligente (IaC): Você desenha o manual de instruções passo a passo. O manual diz: “Coloque 4 blocos azuis na base, depois 2 amarelos”. Qualquer pessoa no mundo que pegar esse manual vai conseguir criar a cidade exatamente igual à sua, em minutos!

No mundo da computação em nuvem, criar servidores, bancos de dados e redes clicando nos botões do site da AWS é o “Jeito Difícil”. É demorado e você pode esquecer de marcar alguma opção importante. O Terraform é a ferramenta que nos permite escrever o “Manual do Lego” em um arquivo de texto! Nós escrevemos o que queremos e ele monta tudo na nuvem para nós! Seu desafio é escrever esse manual!


🧠 Fundamentos: A Teoria Traduzida

Infraestrutura como Código (IaC) é a prática de gerenciar e provisionar a infraestrutura de TI através de arquivos de definição legíveis por máquina, em vez de configuração física ou ferramentas de configuração interativas.

🏗️ Por que usar o Terraform?

  1. Reprodutibilidade: Se você precisar criar a mesma estrutura de servidores para o ambiente de Teste, Homologação e Produção, basta rodar o mesmo arquivo 3 vezes.
  2. Versionamento: Como a sua infraestrutura agora é um arquivo de texto, você pode salvá-la no Git! Você sabe exatamente quem alterou o tamanho do servidor e quando isso foi feito.
  3. Velocidade: Criar 10 servidores, 2 bancos de dados e 1 rede clicando na tela demora uns 40 minutos. Com o Terraform, demora menos de 2 minutos!

4. 📖 Exemplo Guiado: O Arquivo do Terraform (HCL)

O Terraform usa uma linguagem muito simples chamada HCL (HashiCorp Configuration Language). Veja como pedimos para ele criar um servidor na AWS:

# Arquivo principal.tf
 
# 1. Diga qual provedor você quer usar
provider "aws" {
  region = "us-east-1"
}
 
# 2. Descreva o recurso que você quer criar
resource "aws_instance" "meu_servidor" {
  ami           = "ami-0c55b159cbfafe1f0" # O ID do sistema operacional
  instance_type = "t2.micro"              # O tamanho do servidor (pequeno)
 
  tags = {
    Name = "Servidor-Do-Projeto"
  }
}

Para aplicar essa configuração, você abre o terminal e digita terraform apply. O Terraform lê o arquivo e cria o servidor na sua conta da AWS automaticamente!


5. 🛠️ Prática Obrigatória 1: Vantagens da IaC

Com base no que aprendemos:

  1. Imagine que a sua empresa foi hackeada e todos os servidores na nuvem foram apagados. Se você usava o “Jeito Difícil” (cliques manuais), quanto tempo você acha que demoraria para reconstruir tudo?
  2. Se você usava o Terraform, como seria o processo de reconstrução e quanto tempo demoraria?

6. 🛠️ Prática Obrigatória 2: O Perigo do Código

Se a Infraestrutura como Código automatiza a criação de tudo:

  1. O que acontece se você escrever no arquivo do Terraform que deseja criar 1.000 servidores gigantes por engano e rodar o comando terraform apply?
  2. O que o Terraform fará na sua conta da nuvem e qual será a consequência no final do mês?

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

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 13 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_13_iac.md
│   └── codigos/
│       └── cap13/
│           └── main.tf

💡 Checkpoint de Lógica

O Terraform não serve apenas para a AWS. Ele funciona com Azure, Google Cloud, Oracle e centenas de outros serviços. Você aprende uma linguagem só e consegue controlar qualquer nuvem do mundo!

10. 🔥 Desafio de Fixação

Pesquise o que significa o comando terraform destroy (Dica: Use com muito cuidado!).

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Demoraria dias ou até semanas, pois a equipe teria que lembrar de cabeça todas as configurações de cada servidor e refazer tudo manualmente.
  2. Bastaria rodar o comando terraform apply novamente usando o arquivo de backup. Toda a estrutura seria recriada exatamente como estava em poucos minutos! Gabarito da Prática 2:
  3. O Terraform vai tentar criar os 1.000 servidores cegamente, seguindo as suas ordens!
  4. A consequência será uma conta financeira gigantesca (milhares de dólares) cobrada pelo provedor de nuvem pelo uso dessas máquinas! Automação exige muita responsabilidade.

Capitulo Anterior | Proximo Capitulo