0Pricing
DevOps Bootcamp · Aula

Automação de atualizações da infraestrutura

Implemente fluxos de trabalho para planejar, aplicar e remover alterações na infraestrutura com segurança, incluindo etapas de revisão e aprovação.

Automação de atualizações da infraestrutura é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Por que automatizar as atualizações de IaC?

Gerenciar a infraestrutura manualmente pode ser lento e propenso a erros. A Infraestrutura como Código (IaC) ajuda definindo sua infraestrutura em código.

Automatizar as atualizações de IaC com ferramentas como as Ações do GitHub traz consistência e rapidez, além de reduzir erros humanos. Isso garante que sua infraestrutura esteja sempre de acordo com a definição.

O ciclo de vida do fluxo de trabalho de IaC

A automação de IaC segue um ciclo de vida claro: planejar, aplicar e, às vezes, destruir. Cada etapa pode ser integrada ao seu pipeline de CI/CD.

  • Planejar: revisar as alterações propostas sem executá-las.
  • Aplicar: implementar as alterações planejadas na infraestrutura.
  • Destruir: remover os recursos da infraestrutura (use com extrema cautela!).

As Ações do GitHub ajudam a gerenciar essas etapas com segurança.

Planejando alterações com Terraform

Antes de fazer qualquer alteração, é essencial saber o que acontecerá. O comando plan do Terraform ajuda você a visualizar previamente as modificações da infraestrutura.

Ele compara o estado desejado (obtido do código) com o estado atual da sua infraestrutura e mostra quais recursos serão adicionados, alterados ou destruídos.

Experimente executar estes comandos em um projeto simples do Terraform:

echo "Initializing Terraform..."
terraform init

echo "Running terraform plan..."
terraform plan

Fluxo de trabalho para `terraform plan`

Vamos criar um fluxo de trabalho das Ações do GitHub que execute automaticamente terraform plan sempre que o código for enviado para sua ramificação principal. Isso fornece feedback imediato sobre as alterações propostas.

A saída do plano pode então ser revisada diretamente na solicitação de pull ou nos registros do fluxo de trabalho.

name: 'Terraform Plan'

on:
  pull_request:
    branches:
      - main

jobs:
  terraform:
    name: 'Terraform Plan'
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Plan
      id: plan
      run: terraform plan -no-color

Aprovação manual com ambientes

Aplicar alterações na infraestrutura automaticamente pode ser arriscado. Os ambientes do GitHub oferecem uma forma de adicionar etapas de aprovação manual aos fluxos de trabalho.

Você pode definir ambientes (por exemplo, "staging", "produção") e estabelecer regras, como exigir revisores específicos ou períodos de espera antes que um trabalho de implantação possa prosseguir.

Isso adiciona uma etapa essencial de revisão humana antes de operações sensíveis.

Fluxo de trabalho para aplicar alterações

Para aplicar alterações com segurança, vamos configurar um fluxo de trabalho direcionado a um ambiente protegido do GitHub. O trabalho será pausado e aguardará a aprovação de membros designados da equipe.

Somente após a aprovação o comando terraform apply será executado, atualizando sua infraestrutura.

name: 'Terraform Apply'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to deploy to'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Apply'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Apply
      id: apply
      run: terraform apply -auto-approve

Destruindo a infraestrutura com segurança

O comando terraform destroy remove permanentemente todos os recursos definidos na sua configuração do Terraform. Essa é uma operação muito poderosa e potencialmente perigosa.

Ele só deve ser usado em situações específicas e controladas, como a remoção de um ambiente temporário de testes. Sempre verifique tudo novamente antes de prosseguir!

Nunca automatize um `destroy` sem etapas rigorosas de aprovação manual e várias confirmações.

echo "Preparing to destroy infrastructure..."
terraform init
terraform plan -destroy
read -p "Are you absolutely sure you want to destroy ALL resources? (yes/no): " CONFIRM
if [ "$CONFIRM" = "yes" ]; then
  echo "Destroying infrastructure..."
  terraform destroy -auto-approve
else
  echo "Destroy operation cancelled."
fi

Destruição controlada da infraestrutura

Mesmo para `destroy`, podemos aproveitar os ambientes do GitHub para adicionar uma camada extra de proteção. Isso garante que ninguém possa destruir acidentalmente ou maliciosamente os recursos de produção sem a devida autorização.

O fluxo de trabalho deve exigir aprovação e só poder ser acionado manualmente, idealmente por funções específicas.

name: 'Terraform Destroy'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to destroy'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Destroy'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Destroy
      id: destroy
      run: terraform destroy -auto-approve

Práticas recomendadas para automação de IaC

Para manter um pipeline de IaC robusto e seguro:

  • Revisões de código: sempre exija revisões de código para alterações de IaC.
  • Privilégio mínimo: conceda aos tokens do fluxo de trabalho e às contas de serviço somente as permissões mínimas necessárias.
  • Bloqueio de estado: garanta que sua ferramenta de IaC (como o Terraform) use o bloqueio de estado para evitar modificações simultâneas.
  • Alterações pequenas e incrementais: evite atualizações grandes e monolíticas da infraestrutura.
  • Ambientes separados: use ambientes distintos (desenvolvimento, staging, produção) com regras de aprovação diferentes.

Verificação do fluxo de trabalho de IaC

Você aprendeu sobre a automação de atualizações de IaC com o planejamento, a aplicação e a destruição de recursos. Agora, vamos testar sua compreensão sobre como proteger esses processos.

Recapitulação: atualizações automatizadas de IaC

Nesta lição, você aprendeu a automatizar seus fluxos de trabalho de Infraestrutura como Código usando as Ações do GitHub. Abordamos:

  • Executar terraform plan para visualizar as alterações com segurança.
  • Usar ambientes do GitHub para etapas de aprovação manual antes de aplicar ou destruir a infraestrutura.
  • Implementar fluxos de trabalho para operações controladas de terraform apply e terraform destroy.
  • Práticas recomendadas essenciais para uma automação de IaC segura e confiável.

Automatizar a IaC ajuda você a gerenciar seus recursos de nuvem com eficiência e confiança!

Perguntas Frequentes

A aula “Automação de atualizações da infraestrutura” é grátis?

Sim — o texto completo de “Automação de atualizações da infraestrutura” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Automação de atualizações da infraestrutura”?

Implemente fluxos de trabalho para planejar, aplicar e remover alterações na infraestrutura com segurança, incluindo etapas de revisão e aprovação. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Automação de atualizações da infraestrutura”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. IaC com Terraform e GitHub Actions
  2. Gerenciamento de recursos de nuvem
  3. Automação de atualizações da infraestrutura
  4. Gerenciando o estado do Terraform e back-ends remotos
← Voltar para DevOps Bootcamp