21. Exemplos
● Google: 8 minutos entre DEV e PRD
● Facebook: 2 vezes por dia
● Linkedin: 30 minutos entre DEV e PRD
● Etsy: 30 deploys por dia feitos por 200+ pessoas;
23. Pipeline de Implantação
● Implementação automatizada do processo de compilar todas as partes de uma
aplicação, implantá-las em um ambiente qualquer – homologação ou produção
– testá-la e efetuar sua entrega final.
24. Pipeline de Implantação
● Implementação automatizada do processo de compilar todas as partes de uma
aplicação, implantá-las em um ambiente qualquer – homologação ou produção
– testá-la e efetuar sua entrega final.
25. Pipeline de Implantação
● Implementação automatizada do processo de compilar todas as partes de uma
aplicação, implantá-las em um ambiente qualquer – homologação ou produção
– testá-la e efetuar sua entrega final.
28. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
29. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
30. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
● Mantenha tudo sob controle de versão
31. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
● Mantenha tudo sob controle de versão
● Se é difícil, faça com mais frequência e amenize o sofrimento
32. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
● Mantenha tudo sob controle de versão
● Se é difícil, faça com mais frequência e amenize o sofrimento
● A qualidade DEVE estar presente desde o início
33. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
● Mantenha tudo sob controle de versão
● Se é difícil, faça com mais frequência e amenize o sofrimento
● A qualidade DEVE estar presente desde o início
● Pronto quer dizer versão entregue
34. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
● Mantenha tudo sob controle de versão
● Se é difícil, faça com mais frequência e amenize o sofrimento
● A qualidade DEVE estar presente desde o início
● Pronto quer dizer versão entregue
● Todos são responsáveis pelo processo de entrega
35. Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
● Mantenha tudo sob controle de versão
● Se é difícil, faça com mais frequência e amenize o sofrimento
● A qualidade DEVE estar presente desde o início
● Pronto quer dizer versão entregue
● Todos são responsáveis pelo processo de entrega
● Melhoria Contínua
38. Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em cada ambiente
39. Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em cada ambiente
● Use Smoke Tests
40. Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em cada ambiente
● Use Smoke Tests
● Implante em uma cópia de Produção
41. Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em cada ambiente
● Use Smoke Tests
● Implante em uma cópia de Produção
● Cada mudança deve ser propagada pelo pipeline instantaneamente
42. Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em cada ambiente
● Use Smoke Tests
● Implante em uma cópia de Produção
● Cada mudança deve ser propagada pelo pipeline instantaneamente
● Se qualquer parte do pipeline falhar, pare o processo
55. Deploy em INTEGRAÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ verificar propriedades do binário (pode fazer deploy?);
○ executar deploy em Integração;
○ atualizar propriedades do binário.
56. Deploy em INTEGRAÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ verificar propriedades do binário (pode fazer deploy?);
○ executar deploy em Integração;
○ atualizar propriedades do binário.
● Saída: Servidores e propriedades do binário atualizados
67. Deploy em STAGING
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ verificar propriedades do binário (pode fazer deploy?);
○ executar deploy em Staging;
○ atualizar propriedades do binário.
68. Deploy em STAGING
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ verificar propriedades do binário (pode fazer deploy?);
○ executar deploy em Staging;
○ atualizar propriedades do binário.
● Saída: Servidores e propriedades do binário atualizados
81. Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
82. Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
● Verificação de erros 404 e 50X;
83. Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
● Verificação de erros 404 e 50X;
● Envio de e-mail para todos os responsáveis;
84. Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
● Verificação de erros 404 e 50X;
● Envio de e-mail para todos os responsáveis;
● Tomada de decisão se o processo vai até o final (Deploy em PRODUÇÃO);
85. Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
● Verificação de erros 404 e 50X;
● Envio de e-mail para todos os responsáveis;
● Tomada de decisão se o processo vai até o final (Deploy em PRODUÇÃO);
● Muito importante para os produtos mais antigos;
86. Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
● Verificação de erros 404 e 50X;
● Envio de e-mail para todos os responsáveis;
● Tomada de decisão se o processo vai até o final (Deploy em PRODUÇÃO);
● Muito importante para os produtos mais antigos;
● Preocupação de OPS.
102. Deploy em PRODUÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ verificar propriedades do binário (pode fazer deploy?);
○ executar deploy em Produção;
○ atualizar propriedades do binário.
103. Deploy em PRODUÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ verificar propriedades do binário (pode fazer deploy?);
○ executar deploy em Produção;
○ atualizar propriedades do binário.
● Saída: Servidores e propriedades do binário atualizados
108. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
109. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• 90 pipelines em 1 ano;
110. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• 90 pipelines em 1 ano;
111. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• 90 pipelines em 1 ano;
• Devs fazendo Deploy em PRODUÇÃO (pelo Jenkins, é claro) o/;
112. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• 90 pipelines em 1 ano;
• Devs fazem Deploy em PRODUÇÃO o/;
• Tempo de entrega
113. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• 90 pipelines em 1 ano;
• Devs fazem Deploy em PRODUÇÃO o/;
• Tempo de entrega (2 horas).