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

Infra-Compose - Desenvolvedores com autonomia p...

Infra-Compose - Desenvolvedores com autonomia para compor recursos de infraestrutura!

Avatar for Paulo

Paulo

May 10, 2019

Other Decks in Programming

Transcript

  1. CENÁRIO • Migração dos monólitos para arquitetura de microsserviços, com

    isso muitos serviços surgindo em paralelo e rapidamente.
  2. PROBLEMA • Dezenas de desenvolvedores com prazos "desafiadores" requisitando o

    provisionamento de recursos para um time muito pequeno de infra.
  3. PROBLEMA • A comunicação entre os devs e infra não

    era tão clara e durante o desenvolvimento tinham muitas mudanças.
  4. PROBLEMA • O time de infra virou um gargalo para

    o lançamento de novos serviços, pois a vazão da entrega dos recursos de infra era demorada.
  5. PRIMEIRA SOLUÇÃO • Redundância de códigos (copy/paste) • Código centralizado

    (infra) • Permissão para provisionar • Dados sensíveis (bancos de dados, criptografia...)
  6. FERRAMENTAS EXTERNAS • Grande parte dos recursos dos serviços provisionados

    tinham características comuns, por exemplo: ◦ Bancos de dados ◦ Filas ◦ Chaves de criptografia ◦ Usuários
  7. SEGUNDA SOLUÇÃO • Dependência do time de infra • Permissão

    para provisionar • Dados sensíveis (bancos de dados, criptografia...)
  8. TERCEIRA SOLUÇÃO • Vamos escalar dando autonomia e responsabilidade para

    os devs provisionar os recursos de infra do seu projeto de forma segura e simples.
  9. TERCEIRA SOLUÇÃO • HCL • Controle de acesso • Complexidade

    (descentralização/esquec imento) • Sincronização com CI/CD
  10. INFRACOMPOSE IC YAML YAML/HCL PARTS HCL HOOKS FINAL HCL HCL

    $ terraform init $ terraform apply meliuz/infra-compose:<tag>
  11. INFRACOMPOSE • Reusabilidade (Módulos e Ferramentas) • Projeto autocontido •

    Portabilidade (versão) • Centralização no CI/CD ( deploy)
  12. INFRACOMPOSE • Reusabilidade (Módulos e Ferramentas) • Projeto autocontido •

    Portabilidade (versão) • Centralização no CI/CD ( deploy) • Controle de acesso
  13. • Abstração ◦ Cloud Provider ◦ IaC ◦ Configurações complexas

    ◦ Configurações padrões • Idempotência INFRACOMPOSE
  14. • Abstração ◦ Cloud Provider ◦ IaC ◦ Configurações complexas

    ◦ Configurações padrões • Idempotência • Simplicidade (devs) INFRACOMPOSE
  15. • Provisionamento dos recursos em minutos • Remoção de ruídos

    de comunicação entre times • Autonomia para os devs comporem os recursos INFRACOMPOSE
  16. • Provisionamento dos recursos em minutos • Remoção de ruídos

    de comunicação entre times • Autonomia para os devs comporem os recursos • Dados sensíveis protegidos INFRACOMPOSE
  17. • Provisionamento dos recursos em minutos • Remoção de ruídos

    de comunicação entre times • Autonomia para os devs comporem os recursos • Dados sensíveis protegidos • O time de infra não é mais o gargalo INFRACOMPOSE
  18. • Provisionamento dos recursos em minutos • Remoção de ruídos

    de comunicação entre times • Autonomia para os devs comporem os recursos • Dados sensíveis protegidos • O time de infra não é mais o gargalo • Padronização da infra INFRACOMPOSE
  19. • Provisionamento dos recursos em minutos • Remoção de ruídos

    de comunicação entre times • Autonomia para os devs comporem os recursos • Dados sensíveis protegidos • O time de infra não é mais o gargalo • Padronização da infra • Cultura DevOps INFRACOMPOSE
  20. • Provisionamento dos recursos em minutos • Remoção de ruídos

    de comunicação entre times • Autonomia para os devs comporem os recursos • Dados sensíveis protegidos • O time de infra não é mais o gargalo • Padronização da infra • Cultura DevOps • Mais tempo para infra trabalhar em outras melhorias INFRACOMPOSE
  21. • Mudança de versão dos recursos • Granularidade de permissões

    AWS • Necessita previamente da criação dos módulos Terraform pelo time de infra (métricas) • Remover recursos com persistência (banco de dados, logs...) INFRACOMPOSE
  22. • Aprovação manual para remoção de recursos • Fluxo de

    atualização de risco (Snapshot, backup...) • Integração com WAF, Kubernetes, Istio... INFRACOMPOSE