DEV107 · Infraestrutura como código com Terraform
Sobre o curso
Descreva a infraestrutura em código com Terraform para que os ambientes possam ser criados, revisados, alterados e destruídos com confiabilidade. Você vai construir módulos reutilizáveis, gerenciar state e variáveis e rodar planos em um pipeline, tudo com providers gratuitos no seu computador.
Para quem é
Equipes de operações, pessoas desenvolvedoras e administradores de TI que provisionam servidores, redes ou serviços de nuvem e querem uma infraestrutura repetível e revisável.
Pré-requisitos
Ter concluído o DEV105 (o DEV104 é recomendado) ou estar à vontade com Docker, Git e linha de comando.
O que você será capaz de fazer
- Explicar infraestrutura como código e o fluxo do Terraform: init, plan, apply e destroy.
- Escrever configurações Terraform com providers, recursos, variáveis, outputs e data sources.
- Organizar o código em módulos reutilizáveis e gerenciar o state com segurança, incluindo backends remotos e bloqueio.
- Usar o Terraform em fluxo de equipe com formatação, validação, verificação de segurança e planos em pull requests.
Aulas
- Aula 1 · Infraestrutura como código e o fluxo do Terraform
- Aula 2 · Variáveis, state e módulos
- Aula 3 · Terraform em equipes e pipelines
- Aula 4 · Laboratório e atividade
Laboratório: Provisione um ambiente web local com Terraform
Você vai usar o Terraform com o provider Docker para criar uma rede, um contêiner PostgreSQL com volume e dois contêineres web, com valores passados por variáveis. Depois vai transformar o serviço web em um módulo, criar configurações separadas para dev e homologação, verificar o código e adicionar um workflow no GitHub Actions que roda fmt, validate e plan em pull requests.
Ferramentas gratuitas: Terraform CLI ou OpenTofu (gratuitos), o provider Docker com o Docker Desktop, os providers random e local, VS Code com a extensão HashiCorp Terraform, TFLint e Trivy para verificar a configuração, GitHub Actions
Atividade avaliada
Escreva código Terraform que provisiona o ambiente da aplicação de um pequeno negócio, como uma loja virtual ou o sistema de agendamento de uma clínica, usando o provider Docker localmente (ou o plano gratuito de um provedor de nuvem, se você já tiver conta). Inclua pelo menos um módulo reutilizável, variáveis com tipo, descrição e validação, outputs, dois ambientes que compartilham o módulo com configurações diferentes e a configuração de um backend de state com notas sobre bloqueio. Adicione um workflow de CI que roda terraform fmt, validate, TFLint, uma verificação de segurança e plan em todo pull request. Documente a arquitetura, como aplicar e destruir cada ambiente e uma mudança que você demonstrou por meio de um plano revisado.
| Critério | Peso | Como é um trabalho excelente |
|---|---|---|
| Qualidade da configuração | 30% | Recursos, variáveis e outputs são claros, tipados, validados e sem segredos fixos no código. |
| Módulos e ambientes | 25% | O módulo é realmente reutilizável e os ambientes diferem apenas pelas entradas. |
| State e fluxo de trabalho | 25% | A abordagem de state é segura, os planos rodam na CI em pull requests e a mudança demonstrada foi revisada por um plano. |
| Documentação | 20% | O README explica com clareza a arquitetura, os passos de apply e destroy e a mudança revisada. |
Peça de portfólio
Uma base de código Terraform modular e documentada, com dois ambientes e um workflow de CI que gera o plano de cada mudança.
Próximo passo
Continue com DEV108 · Monitoramento, logs e resposta a incidentes · 8 horas · R$ 80,00
Conteúdo do curso
DEV107 · Infraestrutura como código com Terraform (8 h)
-
Aula 1 · Infraestrutura como código e o fluxo do Terraform
-
Aula 2 · Variáveis, state e módulos
-
Aula 3 · Terraform em equipes e pipelines
-
Aula 4 · Laboratório e atividade
-
DEV107 Avaliação · Infraestrutura como código com Terraform
