[Uff] Continuous Delivery: Entrega Contínua de Software de Valor

117
Continuous Delivery: Entrega Contínua de Software de Valor @samantacicilia

Transcript of [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Page 1: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Continuous Delivery:Entrega Contínua de Software de

Valor

@samantacicilia

Page 2: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 3: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

“I believe in the power of community”

Evento TEST DAY 2012 - SP

Page 4: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

insideoutproject.com.br

Page 5: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

O que raios significa Entregar Software?

Page 6: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

O que raios significa Entregar Software?

Page 7: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

O que raios significa Entregar Software?

Page 8: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

O que raios significa Entregar Software?

Page 9: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

O que raios significa Entregar Software?

Page 10: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

O mega deploy da meia-noite

Page 11: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 12: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Falando do Desenvolvimento…

Page 13: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Codificar & Testar & Disponibilizar (Deploy)

Page 14: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Codificar …

• Linguagens;• Frameworks;• Técnicas;• Ferramentas;

Page 15: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Testar…

Page 16: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Disponibilizar…

Page 17: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 18: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Como fazer tudo isso certo e rápido?

Page 19: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 20: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Exemplos

Page 21: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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;

Page 22: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Pipeline de Implantação

Page 23: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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.

Page 24: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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.

Page 25: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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.

Page 26: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 27: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Princípios

Page 28: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Princípios● Criar um processo de confiabilidade e repetitividade de entrega de

versão

Page 29: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Princípios● Criar um processo de confiabilidade e repetitividade de entrega de

versão● Automatize quase tudo

Page 30: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Princípios● Criar um processo de confiabilidade e repetitividade de entrega de

versão● Automatize quase tudo● Mantenha tudo sob controle de versão

Page 31: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 32: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 33: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 34: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 35: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 36: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Práticas

Page 37: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Práticas● Compile seus binários somente uma vez

Page 38: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Práticas● Compile seus binários somente uma vez● Faça a implementação da mesma maneira em cada ambiente

Page 39: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Práticas● Compile seus binários somente uma vez● Faça a implementação da mesma maneira em cada ambiente● Use Smoke Tests

Page 40: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 41: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 42: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 43: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Pipeline na Prática

Page 44: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 45: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 46: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Estágio de Commit

Page 47: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Estágio de Commit

Page 48: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Estágio de Commit● Entrada: Código

○ compilar projeto;○ executar testes unitários;○ executar Sonar;○ gerar binário;○ armazenar no repositório (binário + propriedades).

Page 49: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Estágio de Commit● Entrada: Código

○ compilar projeto;○ executar testes unitários;○ executar Sonar;○ gerar binário;○ armazenar no repositório (binário + propriedades).

● Saída: Binários e Relatórios

Page 50: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 51: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 52: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 53: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em INTEGRAÇÃO

Page 54: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em INTEGRAÇÃO

Page 55: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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.

Page 56: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 57: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 58: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 59: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 60: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para STAGING

Page 61: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 62: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 63: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy STAGING

Page 64: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy STAGING

Page 65: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em STAGING

Page 66: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em STAGING

Page 67: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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.

Page 68: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 69: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 70: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 71: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 72: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para PRODUÇÃO

Page 73: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para PRODUÇÃO

Page 74: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para PRODUÇÃO

Page 75: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para PRODUÇÃO

Page 76: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para PRODUÇÃO

Page 77: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para PRODUÇÃO

Page 78: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Promover para PRODUÇÃO

Page 79: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Análise de Log Automatizada

Page 80: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Análise de Log Automatizada● Logs da Aplicação;

Page 81: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Análise de Log Automatizada● Logs da Aplicação;● Sumarização do TOP 15 erros que mais ocorreram;

Page 82: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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;

Page 83: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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;

Page 84: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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);

Page 85: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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;

Page 86: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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.

Page 87: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Análise de Log Automatizada

Page 88: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Testes de Performance Automatizados

Page 89: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Testes de Performance Automatizados● Scritps do Jmeter;

Page 90: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Testes de Performance Automatizados● Scritps do Jmeter;● Cenários pré-definidos;

Page 91: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Testes de Performance Automatizados● Scritps do Jmeter;● Cenários pré-definidos;● Limite máximo aceitável de tempo.

Page 92: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Testes de Performance Automatizados● Scritps do Jmeter;● Cenários pré-definidos;● Limite máximo aceitável de tempo.

Page 93: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Abrir Coordenação de Mudança Automática

Page 94: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Abrir Coordenação de Mudança Automática

Page 95: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 96: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 97: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 98: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em PRODUÇÃO

Page 99: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em PRODUÇÃO

Page 100: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em PRODUÇÃO

Page 101: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Deploy em PRODUÇÃO

Page 102: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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.

Page 103: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 104: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 105: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 106: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Alguns Resultados

Page 107: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Alguns Resultados• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);

Page 108: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Alguns Resultados• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);• Deploy em qualquer horário;

Page 109: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Alguns Resultados• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);• Deploy em qualquer horário;• 90 pipelines em 1 ano;

Page 110: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Alguns Resultados• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);• Deploy em qualquer horário;• 90 pipelines em 1 ano;

Page 111: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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/;

Page 112: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 113: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

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

Page 114: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Referências

Page 115: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Referências

Page 116: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Page 117: [Uff] Continuous Delivery: Entrega Contínua de Software de Valor

Contatos➔ testedesoftware.com➔ rtstreinamentos.com.br➔ medium.com/@samantacicilia

➔ Linkedin: Samanta Cicilia➔ Twitter: @samantacicilia➔ Slideshare: pt.slideshare.net/samantacicilia/➔ Email: [email protected]➔ Email: [email protected]