Curso Terraform Infraestrutura como Codigo

  • DevOps | CI | CD | Kubernetes | Web3

Curso Terraform Infraestrutura como Codigo

24 horas
Visão Geral

Este Curso Terraform Infraestrutura como Código é essencial para engenheiros de DevOps, administradores de sistemas, arquitetos de nuvem, desenvolvedores e qualquer profissional de TI que busca dominar a automação do provisionamento e gerenciamento de infraestrutura. Do ponto de vista técnico, você será imerso no universo do Terraform, aprendendo a definir, provisionar e gerenciar infraestrutura de forma declarativa usando HashiCorp Configuration Language (HCL). O curso cobrirá desde os fundamentos da Infraestrutura como Código (IaC) até tópicos avançados como gerenciamento de estado (state management), módulos, workspaces, integração com provedores de nuvem líderes (AWS, Azure, GCP) e automação de pipelines de deployment. O foco será em exemplos práticos e cenários do mundo real, garantindo que os participantes saiam aptos a aplicar o Terraform em seus próprios projetos.

Curso Terraform: Infraestrutura como Código, o domínio do Terraform é uma habilidade altamente valorizada e estratégica no mercado de TI atual. Ele permite que as organizações acelerem o provisionamento de ambientes, padronizem infraestruturas, reduzam erros humanos e minimizem custos operacionais através da automação. Ao implementar a Infraestrutura como Código, as empresas ganham em agilidade, escalabilidade, segurança e auditoria, tornando-se mais competitivas. Profissionais capacitados em Terraform são indispensáveis para equipes que buscam implementar práticas modernas de DevOps e Cloud Computing, garantindo a entrega rápida e confiável de infraestrutura e aplicações.

Objetivo

Ao final do Curso Terraform: Infraestrutura como Código, você será capaz de:

  • Compreender os princípios e benefícios da Infraestrutura como Código (IaC) e o papel do Terraform.
  • Instalar e configurar o Terraform e seus provedores.
  • Escrever código Terraform utilizando a HashiCorp Configuration Language (HCL) para definir recursos.
  • Provisionar e gerenciar infraestrutura em provedores de nuvem como AWS, Azure ou GCP.
  • Entender e gerenciar o estado (state) do Terraform, incluindo backends remotos.
  • Utilizar variáveis, outputs e data sources para criar configurações flexíveis.
  • Desenvolver e consumir módulos Terraform para reutilização de código.
  • Gerenciar múltiplos ambientes (dev, staging, prod) usando workspaces.
  • Implementar boas práticas de organização, segurança e colaboração em projetos Terraform.
  • Realizar troubleshooting de problemas comuns em configurações Terraform.
Publico Alvo
  • Engenheiros de DevOps: Para automatizar o provisionamento de infraestrutura em seus pipelines de CI/CD.
  • Administradores de Sistemas: Que desejam automatizar tarefas repetitivas de gerenciamento de infraestrutura.
  • Arquitetos de Nuvem: Para projetar e implementar soluções de infraestrutura como código em provedores de nuvem.
  • Desenvolvedores: Que buscam entender e automatizar o ambiente onde suas aplicações serão executadas.
  • Profissionais de TI que desejam migrar para o cloud e adotar práticas de Infraestrutura como Código.
Pre-Requisitos
  • Conhecimento básico de computação em nuvem (conceitos de VMs, redes, segurança em AWS, Azure ou GCP).
  • Noções de linha de comando Linux/Windows e sistemas de controle de versão (Git).
  • Acesso a uma conta de provedor de nuvem (AWS, Azure ou GCP) com permissões para criar e gerenciar recursos (recomenda-se uma conta de teste/desenvolvedor para evitar custos inesperados).
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Módulo 1: Introdução à Infraestrutura como Código e Terraform (4 horas)

  • 1.1. O que é Infraestrutura como Código (IaC)?
    • Definição, princípios e benefícios (velocidade, consistência, automação, auditoria).
    • Diferença entre IaC e Configuration Management.
    • O papel do Terraform no ecossistema IaC.
  • 1.2. Primeiros Passos com Terraform:
    • Instalação da Terraform CLI.
    • Sintaxe básica da HashiCorp Configuration Language (HCL).
    • Provedores (Providers): Como o Terraform se conecta aos serviços de nuvem.
    • Comandos essenciais: terraform init, terraform plan, terraform apply, terraform destroy.
  • 1.3. Seu Primeiro Recurso na Nuvem:
    • Configurando o provedor e suas credenciais.
    • Definindo um recurso simples (ex: uma Virtual Private Cloud/Network ou um Resource Group).
    • Executando plan e apply para provisionar o recurso.
  • Prática: Instalar Terraform e a CLI do provedor de nuvem. Criar sua primeira configuração HCL para provisionar um recurso de rede simples.

Módulo 2: Gerenciamento de Estado e Organização do Código (6 horas)

  • 2.1. O Estado do Terraform (Terraform State):
    • O que é o arquivo de estado (terraform.tfstate) e por que ele é crucial.
    • Entendendo como o Terraform mapeia recursos reais com a configuração.
    • Problemas de gerenciamento de estado local.
  • 2.2. Backends Remotos:
    • Configurando backends remotos para colaboração e segurança (ex: S3, Azure Storage Account, GCS, Terraform Cloud).
    • Bloqueio de estado (state locking) para evitar conflitos.
  • 2.3. Organização do Código Terraform:
    • Estrutura de diretórios para projetos maiores.
    • Separando main.tf, variables.tf, outputs.tf e versions.tf.
  • 2.4. Manipulando o Estado:
    • terraform show, terraform state list, terraform state rm.
    • Cuidado e segurança ao manipular o estado.
  • Prática: Configurar um backend remoto para seu projeto Terraform. Organizar seu código em múltiplos arquivos. Explorar comandos de terraform state.

Módulo 3: Flexibilidade e Reusabilidade (6 horas)

  • 3.1. Variáveis de Entrada (Input Variables):
    • Definindo variáveis (variable {}).
    • Atribuindo valores a variáveis (linha de comando, arquivos .tfvars, variáveis de ambiente).
    • Tipos de variáveis e validação.
  • 3.2. Valores de Saída (Output Values):
    • Definindo outputs (output {}) para exportar informações de recursos provisionados.
    • Acessando outputs de outros módulos ou pipelines.
  • 3.3. Fontes de Dados (Data Sources):
    • Como buscar informações de recursos existentes na nuvem.
    • Uso de data blocks para integrar recursos criados manualmente ou por outras equipes.
  • 3.4. Expressões e Funções Integradas:
    • Utilizando for_each, count, for loops para criar múltiplos recursos.
    • Funções de string, lista, mapa e numéricas (ex: join, lookup, concat).
  • Prática: Refatorar seu código para usar variáveis de entrada e outputs. Utilizar data sources para buscar informações de recursos existentes. Criar recursos dinamicamente usando for_each ou count.

Módulo 4: Módulos e Gerenciamento de Ambientes (5 horas)

  • 4.1. Módulos Terraform:
    • O que são módulos e por que usá-los (reusabilidade, abstração, organização).
    • Estrutura de um módulo.
    • Criando seu próprio módulo local.
    • Consumindo módulos (locais, remotos, do Terraform Registry).
    • Passando variáveis e recebendo outputs de módulos.
  • 4.2. Gerenciamento de Múltiplos Ambientes com Workspaces:
    • O que são workspaces e quando usá-los (terraform workspace).
    • Gerenciando estado isolado para diferentes ambientes (dev, staging, prod).
    • Limitações e alternativas aos workspaces.
  • 4.3. Gerenciamento de Dependencies:
    • Ordem de operações e dependências implícitas/explícitas (depends_on).
  • Prática: Criar um módulo Terraform para provisionar um componente comum (ex: um Security Group/NSG). Usar este módulo para provisionar recursos em diferentes ambientes usando workspaces.

Módulo 5: Boas Práticas, Colaboração e Troubleshooting (3 horas)

  • 5.1. Boas Práticas em Projetos Terraform:
    • Convenções de nomenclatura.
    • Comentários e documentação.
    • Revisão de código (Code Review) para Terraform.
    • Utilizando .terraformignore.
  • 5.2. Colaboração em Equipes:
    • Fluxo de trabalho Git com Terraform (branches, pull requests).
    • Ferramentas de CI/CD para automação de terraform plan e terraform apply (conceitual).
  • 5.3. Troubleshooting e Depuração:
    • Analisando erros comuns (terraform validate, terraform fmt).
    • Modo de depuração do Terraform (TF_LOG).
    • Estratégias para resolver problemas de estado e dependências.
    • Importação de recursos existentes (terraform import).
  • Prática: Realizar uma simulação de code review. Depurar um erro intencional em uma configuração Terraform. Importar um recurso existente para o estado do Terraform.
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h