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

IaC - Infrastructure As Code

IaC - Infrastructure As Code

Overview and cases about infrastructure as code with terraform, and differences of it and configuration manager. Language: Pt-Br

Wallison Marra

June 19, 2018
Tweet

More Decks by Wallison Marra

Other Decks in Technology

Transcript

  1. Overview Gerenciamento de Configuração ≠ IaC Criação/Replicação de infraestruturas em

    nuvem como códigos literais. Abstração de códigos (reutilização). Melhores práticas para computação em nuvem. Migração entre regiões (AWS) em minutos.
  2. Ação e reação Crescimento abrupto da computação em nuvem. •

    Desorganização • -- Segurança • ++ Tempo • ++ Custo
  3. Ação e reação Abordagens para criação do mesmo, otimizando tempo,

    segurança e custos. Ambiente imutável. Reutilização. Controle do estado.
  4. Infraestrutura como Código - IaC CloudFormation (Json, YML) • Protosphery

    (Python) • Npm cnf (NodeJS) Terraform (HCL - Hashicorp Configuration Language / Human and Machine friendly).
  5. IaC - Cloud Formation Serviço Exclusivo da AWS. Criado para

    criar/replicar recursos da aws via código (json, yml). Gera outputs para linkar recursos de outras infras (nat gateway IP, VPC range, etc..) Mantém o controle sobre o estado da infra estrutura (s3 storage). Trigger de reversão baseado em alarmes CloudWatch.
  6. IaC - Terraform Serviço criado pela Hashicorp (vagrant, packer, vault,

    etc…). Multi provedor cloud. Gera outputs para linkar recursos de outras infras (nat gateway IP, VPC range IP, alb address) Mantém o controle sobre o estado da infraestrutura (arquivo terrafom.tfstate). Controle de mutação (terraform import, state).
  7. IaC - Terraform VS Cloud Formation (cons) Terraform • Update

    de novos recursos. • Validação de condições. Cloud Formation • Exclusividade AWS. • Json/Yaml (Arquivo único).
  8. Geren. de Configuração ≠ IaC Ansible, Chef, Puppet? Como se

    controla o estado? Como manter o estado imutável? Como controlar a mutação de um estado?
  9. Boas Práticas - Terraform Mantenha versões de provedores sempre fixas.

    Salve arquivos de estado (terraform.tfstate) no s3, e habilite o versionamento no bucket. Não declare as credenciais de seu provedor como variáveis ou via CLI. Rode terraform plan com frequência e seja notificado em caso de alterações. Reutilize códigos criando/utilizando módulos.
  10. Referências Terraform Book: https://goo.gl/J27kzv Terraform Tutorial: https://goo.gl/bpoaev Terraform Modules https://goo.gl/3EAnEs

    Conceitos CloudFormation https://goo.gl/iUcBbL CloudFormation Templates https://goo.gl/kZ12fs Ansible Galaxy https://goo.gl/sdqgKx