SlideShare uma empresa Scribd logo
1 de 117
Continuous Delivery:
Entrega Contínua de Software de Valor
@samantacicilia
“I believe in the power of community”
Evento TEST DAY 2012 - SP
insideoutproject.com.br
O que raios significa
Entregar Software?
O que raios significa Entregar Software?
O que raios significa Entregar Software?
O que raios significa Entregar Software?
O que raios significa Entregar Software?
O mega deploy
da meia-noite
Falando do Desenvolvimento…
Codificar & Testar & Disponibilizar (Deploy)
Codificar …
• Linguagens;
• Frameworks;
• Técnicas;
• Ferramentas;
Testar…
Disponibilizar…
Como fazer tudo isso certo e rápido?
Exemplos
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;
Pipeline de Implantação
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.
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.
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.
Princípios
Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
Princípios
● Criar um processo de confiabilidade e repetitividade de entrega de versão
● Automatize quase tudo
● Mantenha tudo sob controle de versão
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
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
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
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
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
Práticas
Práticas
● Compile seus binários somente uma vez
Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em cada ambiente
Práticas
● Compile seus binários somente uma vez
● Faça a implementação da mesma maneira em cada ambiente
● Use Smoke Tests
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
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
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
Pipeline na Prática
Estágio de Commit
Estágio de Commit
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).
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
Deploy em INTEGRAÇÃO
Deploy em INTEGRAÇÃO
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.
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
Promover para STAGING
Deploy STAGING
Deploy STAGING
Deploy em STAGING
Deploy em STAGING
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.
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
Promover para PRODUÇÃO
Promover para PRODUÇÃO
Promover para PRODUÇÃO
Promover para PRODUÇÃO
Promover para PRODUÇÃO
Promover para PRODUÇÃO
Promover para PRODUÇÃO
Análise de Log Automatizada
Análise de Log Automatizada
● Logs da Aplicação;
Análise de Log Automatizada
● Logs da Aplicação;
● Sumarização do TOP 15 erros que mais ocorreram;
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;
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;
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);
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;
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.
Análise de Log Automatizada
Testes de Performance Automatizados
Testes de Performance Automatizados
● Scritps do Jmeter;
Testes de Performance Automatizados
● Scritps do Jmeter;
● Cenários pré-definidos;
Testes de Performance Automatizados
● Scritps do Jmeter;
● Cenários pré-definidos;
● Limite máximo aceitável de tempo.
Testes de Performance Automatizados
● Scritps do Jmeter;
● Cenários pré-definidos;
● Limite máximo aceitável de tempo.
Abrir Coordenação de Mudança Automática
Abrir Coordenação de Mudança Automática
Deploy em PRODUÇÃO
Deploy em PRODUÇÃO
Deploy em PRODUÇÃO
Deploy em PRODUÇÃO
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.
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
Alguns Resultados
Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• 90 pipelines em 1 ano;
Alguns Resultados
• Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
• Deploy em qualquer horário;
• 90 pipelines em 1 ano;
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/;
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
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).
Referências
Referências
Contatos
➔ testedesoftware.com
➔ rtstreinamentos.com.br
➔ medium.com/@samantacicilia
➔ Linkedin: Samanta Cicilia
➔ Twitter: @samantacicilia
➔ Slideshare: pt.slideshare.net/samantacicilia/
➔ Email: samanta.souza@infoglobo.com.br
➔ Email: samycici@gmail.com

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building
[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building
[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building
 
Retrospectivas Divertidas, por Paulo Caroli
Retrospectivas Divertidas, por Paulo CaroliRetrospectivas Divertidas, por Paulo Caroli
Retrospectivas Divertidas, por Paulo Caroli
 
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
The 7 Secrets of Highly Effective Retrospectives (DCSUG)The 7 Secrets of Highly Effective Retrospectives (DCSUG)
The 7 Secrets of Highly Effective Retrospectives (DCSUG)
 
How to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessionsHow to facilitate product backlog refinement sessions
How to facilitate product backlog refinement sessions
 
How to do effective pi planning
How to do effective pi planningHow to do effective pi planning
How to do effective pi planning
 
Practical Guide to Scrum
Practical Guide to ScrumPractical Guide to Scrum
Practical Guide to Scrum
 
When will it be done? (Lean Agile Forecasting)
When will it be done? (Lean Agile Forecasting)When will it be done? (Lean Agile Forecasting)
When will it be done? (Lean Agile Forecasting)
 
Taller Agile Inception Deck
Taller Agile Inception DeckTaller Agile Inception Deck
Taller Agile Inception Deck
 
The Synergistic Nature of PI Objectives
The Synergistic Nature of PI ObjectivesThe Synergistic Nature of PI Objectives
The Synergistic Nature of PI Objectives
 
Gestao de Projeto com gráfico burndown
Gestao de Projeto com gráfico burndownGestao de Projeto com gráfico burndown
Gestao de Projeto com gráfico burndown
 
Modelagem com historias bem além dos requisitos
Modelagem com historias bem além dos requisitosModelagem com historias bem além dos requisitos
Modelagem com historias bem além dos requisitos
 
Requisitos Ágeis
Requisitos ÁgeisRequisitos Ágeis
Requisitos Ágeis
 
Scrum - Uma introdução a agilidade
Scrum - Uma introdução a agilidadeScrum - Uma introdução a agilidade
Scrum - Uma introdução a agilidade
 
Formation : découper des User Stories
Formation : découper des User StoriesFormation : découper des User Stories
Formation : découper des User Stories
 
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
Forecasting with Less Effort and More Accuracy (Agile Camp NY 2018)
 
Product backlog
Product backlogProduct backlog
Product backlog
 
Presentación gestión ágil de proyectos v 1.0
Presentación gestión ágil de proyectos v 1.0Presentación gestión ágil de proyectos v 1.0
Presentación gestión ágil de proyectos v 1.0
 
Selección de un método de evaluación
Selección de un método de evaluaciónSelección de un método de evaluación
Selección de un método de evaluación
 
Kanban pizza game - Introdução ao Kanban
Kanban pizza game - Introdução ao KanbanKanban pizza game - Introdução ao Kanban
Kanban pizza game - Introdução ao Kanban
 
Agile coach - roadmap and user story map
Agile coach - roadmap and user story map Agile coach - roadmap and user story map
Agile coach - roadmap and user story map
 

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

Semelhante a [Uff] Continuous Delivery: Entrega Contínua de Software de Valor (20)

[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous Delivery
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)
 
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas[Agile Brazil] Entrega Contínua na Infoglobo:  gerando valor em 2 horas
[Agile Brazil] Entrega Contínua na Infoglobo: gerando valor em 2 horas
 
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
 
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
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
 
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Estratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocdEstratégias para o uso de integração e entrega contínua com gocd
Estratégias para o uso de integração e entrega contínua com gocd
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando Octopus
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
 
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
2PHP_Metodologia
2PHP_Metodologia2PHP_Metodologia
2PHP_Metodologia
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 

Mais de Samanta Cicilia

Mais de Samanta Cicilia (20)

InterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingInterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression Testing
 
Coders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile TestingCoders On Beer + Ministry Of Testing - Agile Testing
Coders On Beer + Ministry Of Testing - Agile Testing
 
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de TestesTOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
TOTVS - Agile Testing e a Importância de se ter Estratégia de Testes
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression Testing
 
Visual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipelineVisual Regression Testing: mais um tipo de teste pra sua pipeline
Visual Regression Testing: mais um tipo de teste pra sua pipeline
 
WTM - Workshop Agile Testing
WTM - Workshop Agile TestingWTM - Workshop Agile Testing
WTM - Workshop Agile Testing
 
ATC BSB - Agile Testing
ATC BSB - Agile Testing ATC BSB - Agile Testing
ATC BSB - Agile Testing
 
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile TestingDevOps Summit Brasil - O que não te contaram sobre Agile Testing
DevOps Summit Brasil - O que não te contaram sobre Agile Testing
 
Meetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por ExemploMeetup SP - O QA & a Especificação Por Exemplo
Meetup SP - O QA & a Especificação Por Exemplo
 
TDC POA - Especificação Por Exemplo como ferramenta de negócios
TDC POA - Especificação Por Exemplo como ferramenta de negóciosTDC POA - Especificação Por Exemplo como ferramenta de negócios
TDC POA - Especificação Por Exemplo como ferramenta de negócios
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
[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...
 
[Semana da mulher] Comunidades & Eventos
[Semana da mulher] Comunidades & Eventos[Semana da mulher] Comunidades & Eventos
[Semana da mulher] Comunidades & Eventos
 
[MBQA6] Redes sociais
[MBQA6] Redes sociais[MBQA6] Redes sociais
[MBQA6] Redes sociais
 
Informatica - Ferramenta de Qualidade de Dados
Informatica - Ferramenta de Qualidade de DadosInformatica - Ferramenta de Qualidade de Dados
Informatica - Ferramenta de Qualidade de Dados
 
Qualidade & Agilidade: desafios!
Qualidade & Agilidade: desafios!Qualidade & Agilidade: desafios!
Qualidade & Agilidade: desafios!
 
Perfil segundo o E-Talent
Perfil segundo o E-TalentPerfil segundo o E-Talent
Perfil segundo o E-Talent
 
Processo de Qualidade: indo além dos testes funcionais
Processo de Qualidade: indo além dos testes funcionaisProcesso de Qualidade: indo além dos testes funcionais
Processo de Qualidade: indo além dos testes funcionais
 
Utilização de Ferramenta de Gestão de TI para melhoria dos serviços prestados...
Utilização de Ferramenta de Gestão de TI para melhoria dos serviços prestados...Utilização de Ferramenta de Gestão de TI para melhoria dos serviços prestados...
Utilização de Ferramenta de Gestão de TI para melhoria dos serviços prestados...
 

Último

Último (9)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

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

  • 1. Continuous Delivery: Entrega Contínua de Software de Valor @samantacicilia
  • 2.
  • 3. “I believe in the power of community” Evento TEST DAY 2012 - SP
  • 5. O que raios significa Entregar Software?
  • 6. O que raios significa Entregar Software?
  • 7. O que raios significa Entregar Software?
  • 8. O que raios significa Entregar Software?
  • 9. O que raios significa Entregar Software?
  • 10. O mega deploy da meia-noite
  • 11.
  • 13. Codificar & Testar & Disponibilizar (Deploy)
  • 14. Codificar … • Linguagens; • Frameworks; • Técnicas; • Ferramentas;
  • 17.
  • 18. Como fazer tudo isso certo e rápido?
  • 19.
  • 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.
  • 26.
  • 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
  • 37. Práticas ● Compile seus binários somente uma vez
  • 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
  • 44.
  • 45.
  • 48. 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).
  • 49. 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
  • 50.
  • 51.
  • 52.
  • 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
  • 57.
  • 58.
  • 59.
  • 61.
  • 62.
  • 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
  • 69.
  • 70.
  • 71.
  • 79. Análise de Log Automatizada
  • 80. Análise de Log Automatizada ● Logs da Aplicação;
  • 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.
  • 87. Análise de Log Automatizada
  • 88. Testes de Performance Automatizados
  • 89. Testes de Performance Automatizados ● Scritps do Jmeter;
  • 90. Testes de Performance Automatizados ● Scritps do Jmeter; ● Cenários pré-definidos;
  • 91. Testes de Performance Automatizados ● Scritps do Jmeter; ● Cenários pré-definidos; ● Limite máximo aceitável de tempo.
  • 92. Testes de Performance Automatizados ● Scritps do Jmeter; ● Cenários pré-definidos; ● Limite máximo aceitável de tempo.
  • 93. Abrir Coordenação de Mudança Automática
  • 94. Abrir Coordenação de Mudança Automática
  • 95.
  • 96.
  • 97.
  • 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
  • 104.
  • 105.
  • 107. Alguns Resultados • Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
  • 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).
  • 116.
  • 117. Contatos ➔ testedesoftware.com ➔ rtstreinamentos.com.br ➔ medium.com/@samantacicilia ➔ Linkedin: Samanta Cicilia ➔ Twitter: @samantacicilia ➔ Slideshare: pt.slideshare.net/samantacicilia/ ➔ Email: samanta.souza@infoglobo.com.br ➔ Email: samycici@gmail.com

Notas do Editor

  1. Faz sprint de 15 dias e coloca em PRD no fim Um grande pacote com muitas mudanças Deploy traumático e penoso, faz cada vez menos
  2. Falar do antes
  3. Falar do antes