O documento discute Continuous Delivery, apresentando conceitos como controle de versão, integração contínua, testes automatizados e pipeline de implantação. Ele descreve o caso da Infoglobo, que implementou pipelines de implantação usando Jenkins e GoCD para entregar software de forma contínua, resultando em mais de 120 pipelines em um ano e deploys a qualquer hora.
9. Reflexão
A forma como as empresas desenvolvem software muda
rapidamente – seja por necessidades do mercado, evolução
de tecnologias ou até mesmo redução de custos. Todos os
dias essas empresas precisam fazer mais com menos
investimento, para simultaneamente manter a
competitividade e reduzir os custos. (The Phoenix Project)
13. Objetivos
• tornar todas as partes do processo de compilar, implantar, testar e entregar a
versão visíveis para todas as pessoas envolvidas a fim de promover
colaboração;
14. Objetivos
• tornar todas as partes do processo de compilar, implantar, testar e entregar a
versão visíveis para todas as pessoas envolvidas a fim de promover
colaboração;
• melhorar o feedback do processo para que problemas sejam identificados o
mais cedo possível dentro do ciclo ; e
15. Objetivos
• tornar todas as partes do processo de compilar, implantar, testar e entregar a
versão visíveis para todas as pessoas envolvidas a fim de promover
colaboração;
• melhorar o feedback do processo para que problemas sejam identificados o
mais cedo possível dentro do ciclo ; e
• permitir que o software seja entregue em qualquer ambiente e a qualquer
momento
22. 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.
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.
26. 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
27. 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
46. Deploy em INTEGRAÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ executar deploy em Integração;
47. Deploy em INTEGRAÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ executar deploy em Integração;
● Saída: Servidores atualizados
48. 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
60. Deploy em STAGING
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ executar deploy em Staging;
61. Deploy em STAGING
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ executar deploy em Staging;
● Saída: Servidores e propriedades do binário atualizados
62. 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
75. Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
76. 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;
77. 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;
78. 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);
79. 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;
80. 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.
97. Deploy em PRODUÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ executar deploy em Produção;
98. Deploy em PRODUÇÃO
● Entrada: Versão para Deploy
○ pegar binário no repositório;
○ executar deploy em Produção;
● Saída: Servidores e propriedades do binário atualizados
99. 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;
• +120 pipelines em 1 ano;
110. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• +120 pipelines em 1 ano;
111. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• +120 pipelines em 1 ano;
• Devs fazem Deploy em PRODUÇÃO o/;
112. Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• +120 pipelines em 1 ano;
• Devs fazem Deploy em PRODUÇÃO o/;
• Redução do tempo de entrega