Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Infraestrutura Imutável - Agile Trends

125 views

Published on

Uma pequena revisão da versão ministrada no PHP Experience 2018 para o Agile Trends. Infraestrutura Imutável é parte importante, diria fundamental das aplicações que precisam ter o menor downtime possível. Sendo microserviços ou monolito, qualquer um delas pode aproveitar as vantagens de usá-la como parte do conceito de artefato imutável.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Infraestrutura Imutável - Agile Trends

  1. 1. Infraestrutura Imutável A base das aplicações na nuvem Fernando Ike
  2. 2. Fernando Ike DevOps Engineer @ QuintoAndar // fernando.ike@gmail.com // linkedin.com/in/fernandoike // twitter.com/fernandoike // www.10deploys.com
  3. 3. “Sinônimos” ● Immutable Infrastructure ● Immutable Server ● Immutable Delivery ● Golden Images ● Phoenix Servers vs Snowflake Servers ● Pets vs Cattle ● Infrastructure as Code
  4. 4. Cenário mais comum - Snowflakes ● A construção do artefato é realizado numa ferramenta de Entrega Contínua ● As dependências são (re)instaladas a cada lançamento de versão do artefato ● O artefato é implementado nos servidores de homologação ● O artefato é implementado nos servidores de produção
  5. 5. Snowflake Servers
  6. 6. Uma falsa premissa “The least-cost way to ensure that the behavior of any two hosts will remain completely identical is always to implement the same changes in the same order on both hosts.” John Willis - @botchagalupe
  7. 7. Por que (Quando) a ordem dos comandos é importante? ● Dependência Circular ● Comandos certos na ordem errada ● Pacotes certos na ordem errada
  8. 8. Efeito colaterais ● O repositório do sistema de empacotamento (Composer, PIP, GEM, apt, etc.) está indisponível ● As dependências quebram porque a biblioteca foo-1.15-1 não está mais disponível ● A biblioteca de dependência foobar-1.15-2 quebrou a construção do artefato
  9. 9. Problemas comuns em servidores mutáveis ● Aumento da complexidade operacional ○ Mais etapas no Pipeline ○ Maior tempo de Lead Time ○ Mais suscetível a falhas de terceiros, ex: repositórios externos
  10. 10. Phoenix Servers
  11. 11. https://www.thoughtworks.com/insights/blog/moving-to-phoenix-server-pattern-introduction
  12. 12. Container Infrastructure Hypervisor Docker App A Artifact Bin/Libs App B Bin/Libs App C Bin/Libs
  13. 13. VM Infrastructure Hypervisor App A Artifact Bin/Libs App B Bin/Libs App C Bin/Libs Guest OS Guest OS Guest OS VM Infrastructure Hypervisor App A Artifact Bin/Libs App B Bin/Libs App C Bin/Libs Guest OS Guest OS Guest OS
  14. 14. Implementação - Boas práticas ● Servidores na Nuvem ● Automação completa de todo pipeline de serviços ● Logs centralizados ● Armazenamento de dados em “ambiente” externo ● Equipes de desenvolvimento e operações “engajadas”
  15. 15. Implementação - Não faça em produção ● Atualização de pacotes (bibliotecas e dependências) ● Alteração de configurações ● Modificações na aplicação
  16. 16. Visibilidade ● Onde e quando foi construído e por que? ● Qual foi a imagem anterior? ● Como iniciar, validar, monitorar e atualizá-la? ● Qual repositório está sendo usado e qual hash do git foi usado para construir a imagem? ● Quais são as tags específicas do container/vm usada como registro do build? ● Qual o nome do projeto no qual pertence o artefato John Willis - @botchagalupe
  17. 17. Como tornar Imutável ● Provisione um novo servidor ● Teste o novo servidor ● Altera a referência para o novo servidor ● Mantenha a versão antiga (temporariamente) para fazer o rollback
  18. 18. Pontos de atenção ● Centralizador de Logs ● Feature toggle ● Observability ● Múltipla versões (“temporariamente”) em produção ● Balanceadores de carga com suporte: ○ Canary ○ Blue/Green ○ Rolling Deploys
  19. 19. Testes de “aceitação” ● Testes de segurança ● Testes dos serviços ● Testes de conformidade ● Testes de integração
  20. 20. Agradecimentos ● Agile Trends ● Fernando Barbosa ● Thiago Balthazar ● Thiago Pinto
  21. 21. Referências ● https://medium.com/netflix-techblog/building-with-legos-d68368fe4ce ● https://martinfowler.com/bliki/PhoenixServer.html ● https://martinfowler.com/bliki/SnowflakeServer.html ● https://www.oreilly.com/ideas/an-introduction-to-immutable-infrastructure ● https://www.theregister.co.uk/2013/03/18/servers_pets_or_cattle_cern/ ● https://boxfuse.com/blog/no-ssh ● https://www.digitalocean.com/community/tutorials/what-is-immutable-infrastructure ● https://www.devopsdays.org/events/2018-sao-paulo/welcome/
  22. 22. Fernando Ike DevOps Engineer @ QuintoAndar // fernando.ike@quintoandar.com.br // linkedin.com/in/fernandoike // twitter.com/fernandoike // www.10deploys.com
  23. 23. Demo
  24. 24. https://github.com/fike/hello-world
  25. 25. #joinus We are hiring! carreiras.quintoandar.com.br
  26. 26. https://carreiras.quintoandar.com.br/ Estágio - Administrador de Redes Estágio em Computação Estágio em Computação (Engenharia de Dados) Front-end Engineer (for PWA) Ignite - One day class on PWA and DataMining Lead Software Engineer Product Manager Senior iOS Software Engineer Senior Product Designer (UX/UI) Senior Software Engineer Software Engineer Software Engineer (Data Engineer) Software QA analyst

×