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

What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?Tuan Yang
 
10 Advantages of Agile Software Development
10 Advantages of Agile Software Development10 Advantages of Agile Software Development
10 Advantages of Agile Software DevelopmentValueCoders
 
What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...Invensis Learning
 
Kanban introduction
Kanban introductionKanban introduction
Kanban introductionAhmed Hammad
 
Kanban on different flight levels - with an implementation example
Kanban on different flight levels - with an implementation exampleKanban on different flight levels - with an implementation example
Kanban on different flight levels - with an implementation exampleMichael Rumpler
 
OKRs para Alinhamento e Direcionamento com Foco em Resultados
OKRs para Alinhamento e Direcionamento com Foco em ResultadosOKRs para Alinhamento e Direcionamento com Foco em Resultados
OKRs para Alinhamento e Direcionamento com Foco em ResultadosFabio Lacerda
 
O que acontece quando limitamos o WIP (Work In Progress)?
O que acontece quando limitamos o WIP (Work In Progress)?O que acontece quando limitamos o WIP (Work In Progress)?
O que acontece quando limitamos o WIP (Work In Progress)?Mary Provinciatto
 
Agile software development and Scrum - Framework
Agile software development and Scrum - FrameworkAgile software development and Scrum - Framework
Agile software development and Scrum - FrameworkAbdul Ghaffar, PMP
 
Introduction to scrum at scale
Introduction to scrum at scaleIntroduction to scrum at scale
Introduction to scrum at scaleMahmoud Ghoz
 
Power of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal DevelopmentPower of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal DevelopmentOpenSense Labs
 
Scrum process powerpoint presentation templates
Scrum process powerpoint presentation templatesScrum process powerpoint presentation templates
Scrum process powerpoint presentation templatesSlideTeam.net
 

Mais procurados (20)

What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?What are the Tools & Techniques in Agile Project Management?
What are the Tools & Techniques in Agile Project Management?
 
10 Advantages of Agile Software Development
10 Advantages of Agile Software Development10 Advantages of Agile Software Development
10 Advantages of Agile Software Development
 
Enterprise Agility
Enterprise AgilityEnterprise Agility
Enterprise Agility
 
What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...What is Agile Project Management? | Agile Project Management | Invensis Learn...
What is Agile Project Management? | Agile Project Management | Invensis Learn...
 
Kanban introduction
Kanban introductionKanban introduction
Kanban introduction
 
Kanban on different flight levels - with an implementation example
Kanban on different flight levels - with an implementation exampleKanban on different flight levels - with an implementation example
Kanban on different flight levels - with an implementation example
 
OKRs para Alinhamento e Direcionamento com Foco em Resultados
OKRs para Alinhamento e Direcionamento com Foco em ResultadosOKRs para Alinhamento e Direcionamento com Foco em Resultados
OKRs para Alinhamento e Direcionamento com Foco em Resultados
 
O que acontece quando limitamos o WIP (Work In Progress)?
O que acontece quando limitamos o WIP (Work In Progress)?O que acontece quando limitamos o WIP (Work In Progress)?
O que acontece quando limitamos o WIP (Work In Progress)?
 
Agile software development and Scrum - Framework
Agile software development and Scrum - FrameworkAgile software development and Scrum - Framework
Agile software development and Scrum - Framework
 
Agile Scrum Framework vs Kanban Method
Agile Scrum Framework  vs Kanban MethodAgile Scrum Framework  vs Kanban Method
Agile Scrum Framework vs Kanban Method
 
Introducción a lean para managers
Introducción a lean para managersIntroducción a lean para managers
Introducción a lean para managers
 
Hablemos de Agilidad y de Scrum
Hablemos de Agilidad y de ScrumHablemos de Agilidad y de Scrum
Hablemos de Agilidad y de Scrum
 
La alternativa agil v5.3
La alternativa agil   v5.3La alternativa agil   v5.3
La alternativa agil v5.3
 
Introduction to scrum at scale
Introduction to scrum at scaleIntroduction to scrum at scale
Introduction to scrum at scale
 
release management
release managementrelease management
release management
 
Power of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal DevelopmentPower of Microservices Architecture in Drupal Development
Power of Microservices Architecture in Drupal Development
 
Agile Scrum
Agile ScrumAgile Scrum
Agile Scrum
 
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
 
Scrum process powerpoint presentation templates
Scrum process powerpoint presentation templatesScrum process powerpoint presentation templates
Scrum process powerpoint presentation templates
 
Lean Software Development
Lean Software Development Lean Software Development
Lean Software Development
 

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

[Lady talks]Continuous Delivery
[Lady talks]Continuous Delivery[Lady talks]Continuous Delivery
[Lady talks]Continuous DeliverySamanta Cicilia
 
[DevOps Carioca] Continuous Delivery
[DevOps Carioca]  Continuous Delivery[DevOps Carioca]  Continuous Delivery
[DevOps Carioca] Continuous DeliverySamanta Cicilia
 
Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Continuous Delivery - versão estendida :)
Continuous Delivery - versão estendida :)Samanta Cicilia
 
[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 horasSamanta Cicilia
 
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çosSamanta Cicilia
 
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ínuaSamanta Cicilia
 
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 DeliveryRodrigo Russo
 
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...minastestingconference
 
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 & DevOpsSamanta Cicilia
 
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 gocdWalmyr Lima e Silva Filho
 
Deploy Automatizado usando Octopus
Deploy Automatizado usando OctopusDeploy Automatizado usando Octopus
Deploy Automatizado usando OctopusAndré Minelli
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaSamanta 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
Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia minastestingconference
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Bruno Maomeh
 
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 2016Felipe Klerk Signorini
 
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...Bruno Tanoue
 

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

InterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingInterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingSamanta Cicilia
 
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 TestingSamanta Cicilia
 
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 TestesSamanta Cicilia
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingSamanta Cicilia
 
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 pipelineSamanta Cicilia
 
WTM - Workshop Agile Testing
WTM - Workshop Agile TestingWTM - Workshop Agile Testing
WTM - Workshop Agile TestingSamanta Cicilia
 
ATC BSB - Agile Testing
ATC BSB - Agile Testing ATC BSB - Agile Testing
ATC BSB - Agile Testing Samanta Cicilia
 
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 TestingSamanta Cicilia
 
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 ExemploSamanta Cicilia
 
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óciosSamanta Cicilia
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliverySamanta Cicilia
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes AutomatizadosSamanta Cicilia
 
[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...Samanta Cicilia
 
[Semana da mulher] Comunidades & Eventos
[Semana da mulher] Comunidades & Eventos[Semana da mulher] Comunidades & Eventos
[Semana da mulher] Comunidades & EventosSamanta Cicilia
 
Informatica - Ferramenta de Qualidade de Dados
Informatica - Ferramenta de Qualidade de DadosInformatica - Ferramenta de Qualidade de Dados
Informatica - Ferramenta de Qualidade de DadosSamanta Cicilia
 
Qualidade & Agilidade: desafios!
Qualidade & Agilidade: desafios!Qualidade & Agilidade: desafios!
Qualidade & Agilidade: desafios!Samanta Cicilia
 
Perfil segundo o E-Talent
Perfil segundo o E-TalentPerfil segundo o E-Talent
Perfil segundo o E-TalentSamanta Cicilia
 
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 funcionaisSamanta Cicilia
 
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...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...
 

[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