SlideShare a Scribd company logo
1 of 36
Download to read offline
Infraestrutura Imutável
A base das aplicações na nuvem
PHP Experience 2018 Fernando Ike
Fernando Ike
DevOps Engineer @ QuintoAndar
// fernando.ike@gmail.com
// linkedin.com/in/fernandoike
// twitter.com/fernandoike
// www.10deploys.com
“Sinônimos”
● Immutable Infrastructure
● Immutable Server
● Immutable Delivery
● Golden Images
● Phoenix Servers vs Snowflake Servers
● Pets vs Cattle
● Infrastructure as Code
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
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
Snowflake Servers
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
Por que (Quando) a ordem dos comandos é importante?
● Dependência Circular
● Comandos certos na ordem errada
● Pacotes certos na ordem errada
Problemas comuns em servidores mutáveis
● Aumento da complexidade operacional
● Suscetível a mais falhas no pipeline e operação (via serviços
terceiros)
Phoenix Servers
https://www.thoughtworks.com/insights/blog/moving-to-phoenix-server-pattern-introduction
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”
Implementação - Não faça em produção
● Atualização de pacotes
● Alteração de configurações
● Modificações na aplicação
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
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
Testes de “aceitação”
● Testes de segurança
● Testes dos serviços
● Testes de conformidade
● Testes de integração
Demo
#joinus
We are hiring!
carreiras.quintoandar.com.br
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
Agradecimentos
● IMasters
● Fernando Barbosa
● Thiago Balthazar
● Thiago Pinto
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/
Fernando Ike
DevOps Engineer @ QuintoAndar
// fernando.ike@quintoandar.com.br
// linkedin.com/in/fernandoike
// twitter.com/fernandoike
// www.10deploys.com

More Related Content

What's hot

What's hot (20)

From Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika HeidiFrom Development to Production: Vagrant and Ansible, por Erika Heidi
From Development to Production: Vagrant and Ansible, por Erika Heidi
 
BaaS com Firebase 3
BaaS com Firebase 3BaaS com Firebase 3
BaaS com Firebase 3
 
Introdução ao Flyway
Introdução ao FlywayIntrodução ao Flyway
Introdução ao Flyway
 
DevOps com Python
DevOps com PythonDevOps com Python
DevOps com Python
 
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
ASP.NET Core: visão geral, exemplos práticos e novidades esperadas - .NET SP ...
 
TDC 2018
TDC 2018TDC 2018
TDC 2018
 
Webpack
Webpack Webpack
Webpack
 
Continuous integration, delivery and deployment in nodejs
Continuous integration, delivery and deployment in nodejsContinuous integration, delivery and deployment in nodejs
Continuous integration, delivery and deployment in nodejs
 
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOpsTDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
TDC2018SP | Trilha Testes - Guia de sobrevivência do QA em DevOps
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScript
 
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
ASP.NET Core: visão geral, exemplos práticos e novidades - .NET SP - Agosto-2017
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos
 
JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1JBoss Fuse Workshop Desenvolvimento - Parte 1
JBoss Fuse Workshop Desenvolvimento - Parte 1
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App for ...
 
12 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 201812 Factor App TDC São Paulo 2018
12 Factor App TDC São Paulo 2018
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
 
Evoluindo bancos de dados com Flyway
Evoluindo bancos de dados com FlywayEvoluindo bancos de dados com Flyway
Evoluindo bancos de dados com Flyway
 
Slide Live Conhecendo o Kubernetes
Slide Live Conhecendo o KubernetesSlide Live Conhecendo o Kubernetes
Slide Live Conhecendo o Kubernetes
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 

Similar to Infraestrutura imutável - A base das aplicações na nuvem

VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
apsegundo
 

Similar to Infraestrutura imutável - A base das aplicações na nuvem (20)

Infraestrutura Imutável - Agile Trends
Infraestrutura Imutável - Agile TrendsInfraestrutura Imutável - Agile Trends
Infraestrutura Imutável - Agile Trends
 
Segurança Através de Gerência de Configurações
Segurança Através de Gerência de ConfiguraçõesSegurança Através de Gerência de Configurações
Segurança Através de Gerência de Configurações
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Release Management for Visual Studio 2013
Release Management for Visual Studio 2013Release Management for Visual Studio 2013
Release Management for Visual Studio 2013
 
VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
 
JHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãosJHipster - Produtividade e Maturidade em suas mãos
JHipster - Produtividade e Maturidade em suas mãos
 
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOpsComo automatizar Sistemas Legados utilizando ferramentas de DevOps
Como automatizar Sistemas Legados utilizando ferramentas de DevOps
 
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...DevOps na AWS: Construindo Sistemas para Entregas Rápidas -  DEV301 - Sao Pau...
DevOps na AWS: Construindo Sistemas para Entregas Rápidas - DEV301 - Sao Pau...
 
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
Boas Práticas em Aplicações na Nuvem: Twelve-Factor App | TDC Connections 2021
 
Webinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWSWebinar: Introdução à Distribuição Contínua na AWS
Webinar: Introdução à Distribuição Contínua na AWS
 
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWSAcelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
E so mais um campinho na tela
E so mais um campinho na telaE so mais um campinho na tela
E so mais um campinho na tela
 

More from Fernando Ike

Researching postgresql
Researching postgresqlResearching postgresql
Researching postgresql
Fernando Ike
 

More from Fernando Ike (20)

Arquitetura de Micro Serviços
Arquitetura de Micro ServiçosArquitetura de Micro Serviços
Arquitetura de Micro Serviços
 
(Quase) 10 anos de DevOps, e agora?
(Quase) 10 anos de DevOps, e agora? (Quase) 10 anos de DevOps, e agora?
(Quase) 10 anos de DevOps, e agora?
 
Containers and Databases
Containers and DatabasesContainers and Databases
Containers and Databases
 
DevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus PartyDevOps Anti-Patterns - Campus Party
DevOps Anti-Patterns - Campus Party
 
Blameless: A culpa não é sua
Blameless: A culpa não é suaBlameless: A culpa não é sua
Blameless: A culpa não é sua
 
DevOps: A revolução ruidosa da TI
DevOps: A revolução ruidosa da TIDevOps: A revolução ruidosa da TI
DevOps: A revolução ruidosa da TI
 
Docker Swarm Cluster
Docker Swarm ClusterDocker Swarm Cluster
Docker Swarm Cluster
 
DevOps - Por onde começar
DevOps - Por onde começarDevOps - Por onde começar
DevOps - Por onde começar
 
DevOps Anti-Patterns
DevOps Anti-PatternsDevOps Anti-Patterns
DevOps Anti-Patterns
 
A lista do PostgerSQL Brasil caiu?
A lista do PostgerSQL Brasil caiu? A lista do PostgerSQL Brasil caiu?
A lista do PostgerSQL Brasil caiu?
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Akamai Cloud Security
Akamai Cloud SecurityAkamai Cloud Security
Akamai Cloud Security
 
Management 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidadeManagement 3.0 - a vida pós-agilidade
Management 3.0 - a vida pós-agilidade
 
Docker na vida real
Docker na vida realDocker na vida real
Docker na vida real
 
Devops
DevopsDevops
Devops
 
Docker e postgresql
Docker e postgresqlDocker e postgresql
Docker e postgresql
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Banco caiu! E a gora?
Banco caiu! E a gora?Banco caiu! E a gora?
Banco caiu! E a gora?
 
Researching postgresql
Researching postgresqlResearching postgresql
Researching postgresql
 
Escalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQLEscalabilidade, as modas, (No)SQL
Escalabilidade, as modas, (No)SQL
 

Recently uploaded

Recently uploaded (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Infraestrutura imutável - A base das aplicações na nuvem

  • 1. Infraestrutura Imutável A base das aplicações na nuvem PHP Experience 2018 Fernando Ike
  • 2. Fernando Ike DevOps Engineer @ QuintoAndar // fernando.ike@gmail.com // linkedin.com/in/fernandoike // twitter.com/fernandoike // www.10deploys.com
  • 3.
  • 4.
  • 5. “Sinônimos” ● Immutable Infrastructure ● Immutable Server ● Immutable Delivery ● Golden Images ● Phoenix Servers vs Snowflake Servers ● Pets vs Cattle ● Infrastructure as Code
  • 6.
  • 7.
  • 8.
  • 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
  • 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
  • 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
  • 13. Por que (Quando) a ordem dos comandos é importante? ● Dependência Circular ● Comandos certos na ordem errada ● Pacotes certos na ordem errada
  • 14.
  • 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)
  • 16.
  • 17.
  • 20.
  • 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”
  • 22. Implementação - Não faça em produção ● Atualização de pacotes ● Alteração de configurações ● Modificações na aplicação
  • 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
  • 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
  • 25. Testes de “aceitação” ● Testes de segurança ● Testes dos serviços ● Testes de conformidade ● Testes de integração
  • 26. Demo
  • 27.
  • 28.
  • 29.
  • 30.
  • 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
  • 33.
  • 34. Agradecimentos ● IMasters ● Fernando Barbosa ● Thiago Balthazar ● Thiago Pinto
  • 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/
  • 36. Fernando Ike DevOps Engineer @ QuintoAndar // fernando.ike@quintoandar.com.br // linkedin.com/in/fernandoike // twitter.com/fernandoike // www.10deploys.com