Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Gerenciando ambientes complexos com Terraform

Gerenciando ambientes complexos com Terraform

Tweet

More Decks by Bruno Russi Lautenschlager

Other Decks in Technology

Transcript

  1. Gerenciando ambientes complexos com Terraform Bruno Russi Lautenschlager The information

    in this document is confidential to the person to whom it is addressed and should not be disclosed to any other person. It may not be reproduced in whole, or in part, nor may any of the information contained therein be disclosed without the prior consent of the directors of iFood. It has been used as support material for an oral presentation and, therefore, it does not represent a complete record of the topics presented in the mentioned presentation.
  2. Deep dive módulos Terraform Como é nosso ambiente cloud Ferramentas

    que utilizamos Workflow e Arquitetura do projeto O que será coberto nessa apresentação Agenda Especialização de times
  3. Quem sou eu? • Bruno Russi Lautenschlager • SRE @

    iFood • Creator @ Rocketseat • AWS Community Builder • Contatos ◦ linktr.ee/bruno_russi
  4. • Provisionamento de recursos AWS • Maior abstração IaC &

    visibilidade da infraestrutura • Autonomia para os times • Fluxo de trabalho baseado no GitOps O que fazemos
  5. Terragrunt • Auxilia no gerenciamento de múltiplos ambientes e/ou contas

    AWS em um monorepo • Maior manutenibilidade ◦ DRY para o código Terraform ◦ DRY para a configuração de backend ◦ DRY para argumentos da CLI
  6. Interface em Terragrunt consumindo uma blueprint Exemplo de implementação: •

    github.com/gruntwork-io/terragrunt-infrastructure-live-example Arquitetura do projeto
  7. Interface em Terragrunt consumindo uma blueprint Exemplo de implementação: •

    github.com/gruntwork-io/terragrunt-infrastructure-live-example Arquitetura do projeto
  8. Blueprint • O que é uma blueprint? ◦ Composição de

    módulos e/ou resources do Terraform • Para que serve uma blueprint? ◦ Cria um "componente" cloud completo ◦ Simplificar a interface do usuário
  9. Módulos • O que é um módulo Terraform? ◦ Impementação

    nativa de recursos utilizando • Para que serve um módulo Terraform? ◦ Reaproveitamento de implementação ◦ Encapsulamento de código • Quando implementar? blog.gruntwork.io/how-to-create-reusable-infrastructure-with-terraform-mod ules-25526d65f73d
  10. • Use Git tags • Teste muito sua blueprint •

    Utilize pre-commit • Terraform-docs • Tenha outputs consistentes • Evite regras hard coded • Seja agnóstico a regras de negócio em suas implementações TIP: https://www.terraform-best-practices.com/ Boas práticas