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 Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Data Governance Engineering

24 horas

Curso ISO/IEC 20000-1 Certification Service Management

24 horas

Curso Automotive Cloud and Connected Vehicle Security

24 horas

Curso FinOps for AI Practitioners

16 horas