🚀 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?
- 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.
- 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.
- 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:
- 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?
- 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:
- 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? - 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)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 13 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_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:
- 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.
- Bastaria rodar o comando
terraform applynovamente usando o arquivo de backup. Toda a estrutura seria recriada exatamente como estava em poucos minutos! Gabarito da Prática 2: - O Terraform vai tentar criar os 1.000 servidores cegamente, seguindo as suas ordens!
- 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.