SlideShare uma empresa Scribd logo
1 de 134
Continuous Delivery
@samantacicilia
Sobre mim
O que é Entregar Software
Continuous Delivery
Exemplo
Resultados
Referências
@samantacicilia
Sobre mim
@samantacicilia
“Eu acredito no poder das Comunidades”
Evento TEST DAY 2012 - SP
insideoutproject.com.br
O que é Entregar Software
@samantacicilia
O que raios significa Entregar Software?
O que raios significa Entregar Software?
O que raios significa Entregar Software?
O mega deploy
da meia-noite
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)
Falando do Desenvolvimento…
Codificar & Testar & Disponibilizar (Deploy)
Codificar …
• Linguagens;
• Frameworks;
• Técnicas;
• Ferramentas;
Testar…
Disponibilizar…
Como fazer tudo isso certo e rápido?
Continuous Delivery
@samantacicilia
Exemplos
Exemplos
● Google: 8 minutos entre DEV e PRD
Exemplos
● Google: 8 minutos entre DEV e PRD
● Facebook: 2 vezes por dia
Exemplos
● Google: 8 minutos entre DEV e PRD
● Facebook: 2 vezes por dia
● Linkedin: 30 minutos entre DEV e PRD
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;
Objetivos
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;
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
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
Conceitos Importantes
Conceitos Importantes
• Controle de Versão
Conceitos Importantes
• Controle de Versão
• Integração Contínua
Conceitos Importantes
• Controle de Versão
• Integração Contínua
• Testes Automatizados (unitários, integração e aceitação)
Conceitos Importantes
• Controle de Versão
• Integração Contínua
• Testes Automatizados (unitários, integração e aceitação)
• Testes de Capacidade
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
Exemplo
@samantacicilia
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
Resultados
@samantacicilia
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 fazem Deploy em PRODUÇÃO 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
@samantacicilia
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)

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
 
CNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous DeliveryCNQS - Testes Automatizados & Continuous Delivery
CNQS - Testes Automatizados & Continuous Delivery
 
WTM - Entrega Contínua
WTM - Entrega ContínuaWTM - Entrega Contínua
WTM - Entrega Contínua
 
MTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression TestingMTC - Automatizando Visual Regression Testing
MTC - Automatizando Visual Regression 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
 
[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados[DevOps Carioca] Testes Automatizados
[DevOps Carioca] Testes Automatizados
 
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
 
Qa ops mtc 2020 - mayara fernandes
Qa ops   mtc 2020 - mayara fernandesQa ops   mtc 2020 - mayara fernandes
Qa ops mtc 2020 - mayara fernandes
 
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-sourceDa Integração Contínua à Entrega Contínua apenas com ferramentas open-source
Da Integração Contínua à Entrega Contínua apenas com ferramentas open-source
 
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...
 
QAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de softwareQAOps e a sua impotância para a qualidade de software
QAOps e a sua impotância para a qualidade de software
 
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva 3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
 
QAOps - Agile Trends 2021
QAOps - Agile Trends 2021QAOps - Agile Trends 2021
QAOps - Agile Trends 2021
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
Minas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega ContínuaMinas Testing Conference - Entrega Contínua
Minas Testing Conference - Entrega Contínua
 
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
 
Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016Palestra TDD Javou! #08 2016
Palestra TDD Javou! #08 2016
 
DevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a QualidadeDevQA - Da zona de conforto ao comprometimento com a Qualidade
DevQA - Da zona de conforto ao comprometimento com a Qualidade
 
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
 

Semelhante a [Lady talks]Continuous Delivery

[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
Rafael Kanaoka
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
André Thiago
 

Semelhante a [Lady talks]Continuous Delivery (20)

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
 
2PHP_Metodologia
2PHP_Metodologia2PHP_Metodologia
2PHP_Metodologia
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016Palestra TDD - TDC - 2016
Palestra TDD - TDC - 2016
 
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração ContínuaAutomação de Testes: Ferramentas e Aplicação com Integração Contínua
Automação de Testes: Ferramentas e Aplicação com Integração Contínua
 
Apresentação webinar - DevOps - Os benefícios de um pipeline de entrega continua
Apresentação webinar - DevOps - Os benefícios de um pipeline de entrega continuaApresentação webinar - DevOps - Os benefícios de um pipeline de entrega continua
Apresentação webinar - DevOps - Os benefícios de um pipeline de entrega continua
 
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...
 
O Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidadeO Impacto da adoção de DevOps na qualidade
O Impacto da adoção de DevOps na qualidade
 
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
[Portfólio Acadêmico] [FIT] Mapas de navegação, lista de tarefas e fluxograma...
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
Testes
TestesTestes
Testes
 
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
 
TDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - FloripaTDC 2016 Trilha Testes - Floripa
TDC 2016 Trilha Testes - Floripa
 
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
 
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOpsQuebrando barreiras entre desenvolvimento e operação de software com DevOps
Quebrando barreiras entre desenvolvimento e operação de software com DevOps
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Feedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionaisFeedback mais rápido na sua build dividindo os testes funcionais
Feedback mais rápido na sua build dividindo os testes funcionais
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 

Mais de Samanta Cicilia

Mais de Samanta Cicilia (11)

InterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression TestingInterCon - Automatizando Visual Regression Testing
InterCon - Automatizando Visual Regression 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
 
[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...
 
Métricas para estimativa de esforço em projetos de teste de software
Métricas para estimativa de esforço em projetos de teste de softwareMétricas para estimativa de esforço em projetos de teste de software
Métricas para estimativa de esforço em projetos de teste de software
 

Último

Último (9)

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

[Lady talks]Continuous Delivery

  • 2. Sobre mim O que é Entregar Software Continuous Delivery Exemplo Resultados Referências @samantacicilia
  • 4.
  • 5. “Eu acredito no poder das Comunidades” Evento TEST DAY 2012 - SP
  • 7. O que é Entregar Software @samantacicilia
  • 8. O que raios significa Entregar Software?
  • 9. O que raios significa Entregar Software?
  • 10. O que raios significa Entregar Software?
  • 11. O mega deploy da meia-noite
  • 12.
  • 13. 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)
  • 15. Codificar & Testar & Disponibilizar (Deploy)
  • 16. Codificar … • Linguagens; • Frameworks; • Técnicas; • Ferramentas;
  • 19. Como fazer tudo isso certo e rápido?
  • 21.
  • 23. Exemplos ● Google: 8 minutos entre DEV e PRD
  • 24. Exemplos ● Google: 8 minutos entre DEV e PRD ● Facebook: 2 vezes por dia
  • 25. Exemplos ● Google: 8 minutos entre DEV e PRD ● Facebook: 2 vezes por dia ● Linkedin: 30 minutos entre DEV e PRD
  • 26. 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;
  • 28. 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;
  • 29. 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
  • 30. 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
  • 33. Conceitos Importantes • Controle de Versão • Integração Contínua
  • 34. Conceitos Importantes • Controle de Versão • Integração Contínua • Testes Automatizados (unitários, integração e aceitação)
  • 35. Conceitos Importantes • Controle de Versão • Integração Contínua • Testes Automatizados (unitários, integração e aceitação) • Testes de Capacidade
  • 37. 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.
  • 38. 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.
  • 39. 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.
  • 40.
  • 42. Princípios ● Criar um processo de confiabilidade e repetitividade de entrega de versão
  • 43. Princípios ● Criar um processo de confiabilidade e repetitividade de entrega de versão ● Automatize quase tudo
  • 44. Princípios ● Criar um processo de confiabilidade e repetitividade de entrega de versão ● Automatize quase tudo ● Mantenha tudo sob controle de versão
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 51. Práticas ● Compile seus binários somente uma vez
  • 52. Práticas ● Compile seus binários somente uma vez ● Faça a implementação da mesma maneira em cada ambiente
  • 53. Práticas ● Compile seus binários somente uma vez ● Faça a implementação da mesma maneira em cada ambiente ● Use Smoke Tests
  • 54. 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
  • 55. 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
  • 56. 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
  • 59.
  • 60.
  • 63. 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).
  • 64. 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
  • 65.
  • 66.
  • 67.
  • 70. 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.
  • 71. 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
  • 72.
  • 73.
  • 74.
  • 76.
  • 77.
  • 82. 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.
  • 83. 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
  • 84.
  • 85.
  • 86.
  • 94. Análise de Log Automatizada
  • 95. Análise de Log Automatizada ● Logs da Aplicação;
  • 96. Análise de Log Automatizada ● Logs da Aplicação; ● Sumarização do TOP 15 erros que mais ocorreram;
  • 97. 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;
  • 98. 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;
  • 99. 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);
  • 100. 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;
  • 101. 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.
  • 102. Análise de Log Automatizada
  • 103. Testes de Performance Automatizados
  • 104. Testes de Performance Automatizados ● Scritps do Jmeter;
  • 105. Testes de Performance Automatizados ● Scritps do Jmeter; ● Cenários pré-definidos;
  • 106. Testes de Performance Automatizados ● Scritps do Jmeter; ● Cenários pré-definidos; ● Limite máximo aceitável de tempo.
  • 107. Testes de Performance Automatizados ● Scritps do Jmeter; ● Cenários pré-definidos; ● Limite máximo aceitável de tempo.
  • 108. Abrir Coordenação de Mudança Automática
  • 109. Abrir Coordenação de Mudança Automática
  • 110.
  • 111.
  • 112.
  • 117. 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.
  • 118. 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
  • 119.
  • 120.
  • 123. Alguns Resultados • Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços);
  • 124. Alguns Resultados • Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços); • Deploy em qualquer horário;
  • 125. Alguns Resultados • Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços); • Deploy em qualquer horário; • 90 pipelines em 1 ano;
  • 126. Alguns Resultados • Deploys por camadas (Tomcat, Apache, Varnish, Solr, Serviços); • Deploy em qualquer horário; • 90 pipelines em 1 ano;
  • 127. 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/;
  • 128. 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
  • 129. 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).
  • 133.
  • 134. 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