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

Infraestrutura Imutável

Infraestrutura Imutável

Apresentação sobre os conceitos de infraestrutura imutável, características, benefícios e as responsabilidades das equipes de TI ao adotar essa abordagem

Fernando ike

March 06, 2018
Tweet

More Decks by Fernando ike

Other Decks in Technology

Transcript

  1. Infraestrutura Imutável
    A base das aplicações na nuvem
    PHP Experience 2018 Fernando Ike

    View Slide

  2. Fernando Ike
    DevOps Engineer @ QuintoAndar
    // [email protected]
    // linkedin.com/in/fernandoike
    // twitter.com/fernandoike
    // www.10deploys.com

    View Slide

  3. View Slide

  4. View Slide

  5. “Sinônimos”
    ● Immutable Infrastructure
    ● Immutable Server
    ● Immutable Delivery
    ● Golden Images
    ● Phoenix Servers vs Snowflake Servers
    ● Pets vs Cattle
    ● Infrastructure as Code

    View Slide

  6. View Slide

  7. View Slide

  8. View Slide

  9. 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

    View Slide

  10. 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

    View Slide

  11. Snowflake Servers

    View Slide

  12. 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

    View Slide

  13. Por que (Quando) a ordem dos comandos é importante?
    ● Dependência Circular
    ● Comandos certos na ordem errada
    ● Pacotes certos na ordem errada

    View Slide

  14. View Slide

  15. Problemas comuns em servidores mutáveis
    ● Aumento da complexidade operacional
    ● Suscetível a mais falhas no pipeline e operação (via serviços
    terceiros)

    View Slide

  16. View Slide

  17. View Slide

  18. Phoenix Servers

    View Slide

  19. https://www.thoughtworks.com/insights/blog/moving-to-phoenix-server-pattern-introduction

    View Slide

  20. View Slide

  21. 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”

    View Slide

  22. Implementação - Não faça em produção
    ● Atualização de pacotes
    ● Alteração de configurações
    ● Modificações na aplicação

    View Slide

  23. 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

    View Slide

  24. 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

    View Slide

  25. Testes de “aceitação”
    ● Testes de segurança
    ● Testes dos serviços
    ● Testes de conformidade
    ● Testes de integração

    View Slide

  26. Demo

    View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. View Slide

  31. #joinus
    We are hiring!
    carreiras.quintoandar.com.br

    View Slide

  32. 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

    View Slide

  33. View Slide

  34. Agradecimentos
    ● IMasters
    ● Fernando Barbosa
    ● Thiago Balthazar
    ● Thiago Pinto

    View Slide

  35. 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/

    View Slide

  36. Fernando Ike
    DevOps Engineer @ QuintoAndar
    // [email protected]
    // linkedin.com/in/fernandoike
    // twitter.com/fernandoike
    // www.10deploys.com

    View Slide