Skip to content

Instantly share code, notes, and snippets.

@GusAntoniassi
Created April 19, 2020 14:37
Show Gist options
  • Save GusAntoniassi/efbb6e80c70f88b988b967850248bd44 to your computer and use it in GitHub Desktop.
Save GusAntoniassi/efbb6e80c70f88b988b967850248bd44 to your computer and use it in GitHub Desktop.
[Anotações] Melhores práticas para sua pipeline de infra as code - Gomex

https://www.youtube.com/watch?v=XGSuK8kyGag

Infra imutável

  • Golden image
  • Não recebe modificação depois de criada

Infra como produto

  • Parar de ser um time baseado em atender ticket
  • Entrega um artefato, e não a infra funcionando em algum lugar

Como fazer?

  • Colocar o que é mais "leve" ou "rápido" primeiro na pipeline
  • Pipeline
    • Validação estática
    • Criar ambiente temp
    • Configurar ambiente por código
    • Teste de infra
    • Criar imagem
    • Destruir ambiente temp
    • Artefato (imagem) entregue

Ferramentas

  • Packer
  • Ansible
  • Terraform

Packer

  • Consegue subir EC2 temporária
  • Roda o ansible pra provisionar e testa a infra
  • testinfra

Artefatos

  • Repositório de artefatos
  • Artefatos precisam ter versões

Exemplo prático - Criação de servidor web

  • Pipeline de infra <<<

  • Lint e validate de cdigo
  • Packer build
    • Cria ec2 temp
    • Testa
    • Gera AMI
    • Destrói
  • Add no repositório com tag nova
  • Pipeline de produto <<<

  • Cria servidor c/ artefato em staging
  • Valida
  • Cria servidor em prod

Teste de infra

  • Evitar testar o que a ferramenta já testou
    • Ex. Testar se a EC2 foi criada de fato, o Terraform já validou isso pra você
  • Testar comportamento e integração
    • Servidor conecta com banco?
  • Testes demoram mesmo
  • Vá com calma?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment