SlideShare uma empresa Scribd logo
1 de 41
Baixar para ler offline
Infraestrutura Imutável
A base das aplicações na nuvem
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
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
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
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
Phoenix Servers
https://www.thoughtworks.com/insights/blog/moving-to-phoenix-server-pattern-introduction
Container
Infrastructure
Hypervisor
Docker
App A
Artifact
Bin/Libs
App B
Bin/Libs
App C
Bin/Libs
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
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 (bibliotecas e dependências)
● Alteração de configurações
● Modificações na aplicação
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
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
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
Testes de “aceitação”
● Testes de segurança
● Testes dos serviços
● Testes de conformidade
● Testes de integração
Agradecimentos
● Agile Trends
● 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
Demo
https://github.com/fike/hello-world
#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
Infraestrutura Imutável - Agile Trends
Infraestrutura Imutável - Agile Trends

Mais conteúdo relacionado

Mais procurados

Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Domingos Teruel
 

Mais procurados (20)

Alcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínuaAlcançando qualidade de software através de entrega contínua
Alcançando qualidade de software através de entrega contínua
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
 
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a ServiçosContinuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
Continuous Delivery & APIs - Evoluindo uma Arquitetura Orientada a Serviços
 
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
[DevOps Summit]Importância de testes automatizados para sustentar Continuous...
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
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
 
Cloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows AzureCloud Computing e Integração Contínua com o Windows Azure
Cloud Computing e Integração Contínua com o Windows Azure
 
Jenkins integrando e estendendo.
Jenkins integrando e estendendo.Jenkins integrando e estendendo.
Jenkins integrando e estendendo.
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
UAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao JenkinsUAI Test - Introdução Prática ao Jenkins
UAI Test - Introdução Prática ao Jenkins
 
Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014Jenkins + DCS / Dafiti Conference 2014
Jenkins + DCS / Dafiti Conference 2014
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
 
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnitAgile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
 
Minas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com LocustMinas Testing Conference 2016 - Testes de Carga com Locust
Minas Testing Conference 2016 - Testes de Carga com Locust
 
VR Dev Summit 2016 - Primeiros Passos em Automação de Testes
VR Dev Summit 2016 - Primeiros Passos em Automação de TestesVR Dev Summit 2016 - Primeiros Passos em Automação de Testes
VR Dev Summit 2016 - Primeiros Passos em Automação de Testes
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
Workshop ietec Devops Testing
Workshop ietec Devops TestingWorkshop ietec Devops Testing
Workshop ietec Devops Testing
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 

Semelhante a Infraestrutura Imutável - Agile Trends

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

Semelhante a Infraestrutura Imutável - Agile Trends (20)

Infraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvemInfraestrutura imutável - A base das aplicações na nuvem
Infraestrutura imutável - A base das aplicações na nuvem
 
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
 
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 ...
 
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
 
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
 
Go git - Presentation @Navita
Go git - Presentation @NavitaGo git - Presentation @Navita
Go git - Presentation @Navita
 
De 0 a DevOps
De 0 a DevOpsDe 0 a DevOps
De 0 a DevOps
 
Vagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizadoVagrant - ambiente de desenvolvimento virtualizado
Vagrant - ambiente de desenvolvimento virtualizado
 
Evoluindo bancos de dados com flyway
Evoluindo bancos de dados com flywayEvoluindo bancos de dados com flyway
Evoluindo bancos de dados com flyway
 
Integração Contínua com Hudson
Integração Contínua com HudsonIntegração Contínua com Hudson
Integração Contínua com Hudson
 
Hubot deployments
Hubot deploymentsHubot deployments
Hubot deployments
 
Web tools pt-br
Web tools pt-brWeb tools pt-br
Web tools pt-br
 
Fluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando GitFluxo de desenvolvimento de software utilizando Git
Fluxo de desenvolvimento de software utilizando Git
 
Desenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full JavascriptDesenvolvendo uma aplicacao Full Javascript
Desenvolvendo uma aplicacao Full Javascript
 
VDI e Projeto OSDVT
VDI e Projeto OSDVTVDI e Projeto OSDVT
VDI e Projeto OSDVT
 
Fisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.comFisl14 - DevOps - Exame.com
Fisl14 - DevOps - Exame.com
 
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
 
Workshop - Jenkins
Workshop - JenkinsWorkshop - Jenkins
Workshop - Jenkins
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 

Mais de Fernando Ike

Researching postgresql
Researching postgresqlResearching postgresql
Researching postgresql
Fernando Ike
 

Mais de 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
 
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
 
Postgres nuvens
Postgres nuvensPostgres nuvens
Postgres nuvens
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (6)

Apresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdfApresentação Comercial VITAL DATA 2024.pdf
Apresentação Comercial VITAL DATA 2024.pdf
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdfConcurso Caixa TI - Imersão Final - Rogério Araújo.pdf
Concurso Caixa TI - Imersão Final - Rogério Araújo.pdf
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
Certificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdfCertificado - Data Analytics - CoderHouse.pdf
Certificado - Data Analytics - CoderHouse.pdf
 

Infraestrutura Imutável - Agile Trends