118
Continuous Delivery: entregando software de valor @samantacici lia

[DevOps Carioca] Continuous Delivery

Embed Size (px)

Citation preview

Page 1: [DevOps Carioca]  Continuous Delivery

Continuous Delivery: entregando software de valor

@samantacicilia

Page 2: [DevOps Carioca]  Continuous Delivery

Sobre mimContinuous Delivery

Case da Infoglobo - Jenkins e GoCDResultadosReferências

@samantacicilia

Page 3: [DevOps Carioca]  Continuous Delivery

Sobre mim

@samantacicilia

Page 4: [DevOps Carioca]  Continuous Delivery
Page 5: [DevOps Carioca]  Continuous Delivery

Comunidades <3

Evento TEST DAY 2012 - SP

Page 6: [DevOps Carioca]  Continuous Delivery

insideoutproject.com.br

Page 7: [DevOps Carioca]  Continuous Delivery

Mulheres Palestrantes

http://insideoutproject.com.br/mulheres-palestrantes

Page 8: [DevOps Carioca]  Continuous Delivery
Page 9: [DevOps Carioca]  Continuous Delivery

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)

Page 10: [DevOps Carioca]  Continuous Delivery

Continuous Delivery

@samantacicilia

Page 11: [DevOps Carioca]  Continuous Delivery
Page 12: [DevOps Carioca]  Continuous Delivery

Objetivos

Page 13: [DevOps Carioca]  Continuous Delivery

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;

Page 14: [DevOps Carioca]  Continuous Delivery

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

Page 15: [DevOps Carioca]  Continuous Delivery

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  

Page 16: [DevOps Carioca]  Continuous Delivery

Conceitos Importantes

Page 17: [DevOps Carioca]  Continuous Delivery

Conceitos Importantes

• Controle de Versão

Page 18: [DevOps Carioca]  Continuous Delivery

Conceitos Importantes

• Controle de Versão

• Integração Contínua

Page 19: [DevOps Carioca]  Continuous Delivery

Conceitos Importantes

• Controle de Versão

• Integração Contínua

• Testes Automatizados (unitários, integração e aceitação)

Page 20: [DevOps Carioca]  Continuous Delivery

Conceitos Importantes

• Controle de Versão

• Integração Contínua

• Testes Automatizados (unitários, integração e aceitação)

• Testes de Capacidade

Page 21: [DevOps Carioca]  Continuous Delivery

Pipeline de Implantação

Page 22: [DevOps Carioca]  Continuous Delivery

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 23: [DevOps Carioca]  Continuous Delivery

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: [DevOps Carioca]  Continuous Delivery

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: [DevOps Carioca]  Continuous Delivery
Page 26: [DevOps Carioca]  Continuous Delivery

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 27: [DevOps Carioca]  Continuous Delivery

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 28: [DevOps Carioca]  Continuous Delivery

Case

@samantacicilia

Page 29: [DevOps Carioca]  Continuous Delivery

124 pipelines

Page 30: [DevOps Carioca]  Continuous Delivery

Escalável

Page 31: [DevOps Carioca]  Continuous Delivery

Diferentes tecnologias

Page 32: [DevOps Carioca]  Continuous Delivery

vs

Page 33: [DevOps Carioca]  Continuous Delivery
Page 34: [DevOps Carioca]  Continuous Delivery
Page 35: [DevOps Carioca]  Continuous Delivery

Estágio de Commit

Page 36: [DevOps Carioca]  Continuous Delivery

Estágio de Commit

Page 37: [DevOps Carioca]  Continuous Delivery

Estágio de Commit● Entrada: Código

○ compilar projeto;○ executar testes unitários;○ executar Sonar;○ gerar binário;

Page 38: [DevOps Carioca]  Continuous Delivery

Estágio de Commit● Entrada: Código

○ compilar projeto;○ executar testes unitários;○ executar Sonar;○ gerar binário;

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

Page 39: [DevOps Carioca]  Continuous Delivery

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 40: [DevOps Carioca]  Continuous Delivery
Page 41: [DevOps Carioca]  Continuous Delivery
Page 42: [DevOps Carioca]  Continuous Delivery

SONARTESTES UNITÁRIOS

ARTEFATO

Page 43: [DevOps Carioca]  Continuous Delivery
Page 44: [DevOps Carioca]  Continuous Delivery

Deploy em INTEGRAÇÃO

Page 45: [DevOps Carioca]  Continuous Delivery

Deploy em INTEGRAÇÃO

Page 46: [DevOps Carioca]  Continuous Delivery

Deploy em INTEGRAÇÃO

● Entrada: Versão para Deploy○ pegar binário no repositório;○ executar deploy em Integração;

Page 47: [DevOps Carioca]  Continuous Delivery

Deploy em INTEGRAÇÃO

● Entrada: Versão para Deploy○ pegar binário no repositório;○ executar deploy em Integração;

● Saída: Servidores atualizados

Page 48: [DevOps Carioca]  Continuous Delivery

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 49: [DevOps Carioca]  Continuous Delivery
Page 50: [DevOps Carioca]  Continuous Delivery
Page 51: [DevOps Carioca]  Continuous Delivery
Page 52: [DevOps Carioca]  Continuous Delivery

Promover para STAGING

Page 53: [DevOps Carioca]  Continuous Delivery
Page 54: [DevOps Carioca]  Continuous Delivery

SMOKE TESTSDEPLOY

Page 55: [DevOps Carioca]  Continuous Delivery
Page 56: [DevOps Carioca]  Continuous Delivery

Deploy STAGING

Page 57: [DevOps Carioca]  Continuous Delivery

Deploy STAGING

Page 58: [DevOps Carioca]  Continuous Delivery

Deploy em STAGING

Page 59: [DevOps Carioca]  Continuous Delivery

Deploy em STAGING

Page 60: [DevOps Carioca]  Continuous Delivery

Deploy em STAGING

● Entrada: Versão para Deploy○ pegar binário no repositório;○ executar deploy em Staging;

Page 61: [DevOps Carioca]  Continuous Delivery

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

Page 62: [DevOps Carioca]  Continuous Delivery

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 63: [DevOps Carioca]  Continuous Delivery
Page 64: [DevOps Carioca]  Continuous Delivery
Page 65: [DevOps Carioca]  Continuous Delivery
Page 66: [DevOps Carioca]  Continuous Delivery

Promover para PRODUÇÃO

Page 67: [DevOps Carioca]  Continuous Delivery

Promover para PRODUÇÃO

Page 68: [DevOps Carioca]  Continuous Delivery

Promover para PRODUÇÃO

Page 69: [DevOps Carioca]  Continuous Delivery

Promover para PRODUÇÃO

Page 70: [DevOps Carioca]  Continuous Delivery

Promover para PRODUÇÃO

Page 71: [DevOps Carioca]  Continuous Delivery

Promover para PRODUÇÃO

Page 72: [DevOps Carioca]  Continuous Delivery

Promover para PRODUÇÃO

Page 73: [DevOps Carioca]  Continuous Delivery

Análise de Log Automatizada

Page 74: [DevOps Carioca]  Continuous Delivery

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

Page 75: [DevOps Carioca]  Continuous Delivery

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

Page 76: [DevOps Carioca]  Continuous Delivery

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 77: [DevOps Carioca]  Continuous Delivery

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 78: [DevOps Carioca]  Continuous Delivery

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 79: [DevOps Carioca]  Continuous Delivery

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 80: [DevOps Carioca]  Continuous Delivery

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 81: [DevOps Carioca]  Continuous Delivery

Análise de Log Automatizada

Page 82: [DevOps Carioca]  Continuous Delivery

Testes de Performance Automatizados

Page 83: [DevOps Carioca]  Continuous Delivery

Testes de Performance Automatizados● Scritps do Jmeter;

Page 84: [DevOps Carioca]  Continuous Delivery

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

Page 85: [DevOps Carioca]  Continuous Delivery

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

Page 86: [DevOps Carioca]  Continuous Delivery

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

Page 87: [DevOps Carioca]  Continuous Delivery

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

Page 88: [DevOps Carioca]  Continuous Delivery

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

Page 89: [DevOps Carioca]  Continuous Delivery
Page 90: [DevOps Carioca]  Continuous Delivery

DEPLOY

REGRESSIVOS

ANÁLISE DE LOGS

Page 91: [DevOps Carioca]  Continuous Delivery
Page 92: [DevOps Carioca]  Continuous Delivery
Page 93: [DevOps Carioca]  Continuous Delivery

Deploy em PRODUÇÃO

Page 94: [DevOps Carioca]  Continuous Delivery

Deploy em PRODUÇÃO

Page 95: [DevOps Carioca]  Continuous Delivery

Deploy em PRODUÇÃO

Page 96: [DevOps Carioca]  Continuous Delivery

Deploy em PRODUÇÃO

Page 97: [DevOps Carioca]  Continuous Delivery

Deploy em PRODUÇÃO

● Entrada: Versão para Deploy○ pegar binário no repositório;○ executar deploy em Produção;

Page 98: [DevOps Carioca]  Continuous Delivery

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

Page 99: [DevOps Carioca]  Continuous Delivery

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 100: [DevOps Carioca]  Continuous Delivery
Page 101: [DevOps Carioca]  Continuous Delivery
Page 102: [DevOps Carioca]  Continuous Delivery

DEPLOY SMOKE TESTS

Page 103: [DevOps Carioca]  Continuous Delivery
Page 104: [DevOps Carioca]  Continuous Delivery
Page 105: [DevOps Carioca]  Continuous Delivery

Resultados

@samantacicilia

Page 106: [DevOps Carioca]  Continuous Delivery

Alguns Resultados

Page 107: [DevOps Carioca]  Continuous Delivery

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

Page 108: [DevOps Carioca]  Continuous Delivery

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

Page 109: [DevOps Carioca]  Continuous Delivery

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

Page 110: [DevOps Carioca]  Continuous Delivery

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

Page 111: [DevOps Carioca]  Continuous Delivery

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

Page 112: [DevOps Carioca]  Continuous Delivery

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

Page 113: [DevOps Carioca]  Continuous Delivery

Referências

@samantacicilia

Page 114: [DevOps Carioca]  Continuous Delivery

Referências

Page 115: [DevOps Carioca]  Continuous Delivery

Referências

Page 116: [DevOps Carioca]  Continuous Delivery

Outros Links slideshare.net/stefanteixeira/meetup-devops-carioca-gocd-docker-docker-compose-uma-histria-de-amor-lt3

agiletesters.com.br

meetup.com/pt-BR/Grupo-de-Testes-Carioca

Monografia - https://goo.gl/CE6xzH

Page 117: [DevOps Carioca]  Continuous Delivery
Page 118: [DevOps Carioca]  Continuous Delivery

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]