minas testing conference - entrega contínua
TRANSCRIPT
1
Alcançando Qualidade de Software: Entrega Contínua
Samanta Cicilia
2
Samanta Cicilia
E-mail:[email protected]: @samantaciciliaFacebook: samanta.ciciliaLinkedin: Samanta CiciliaGitHub: samyciciSlideshare: samantaciciliatestedesoftware.comblog.samantacicilia.com.brmedium.com/@samantaciciliartstreinamentos.com.br
3
Sumário
1. Sobre a Infoglobo2. Entrega Contínua3. Entrega Contínua na Infoglobo
5
Sobre a Infoglobo
● Focada no Impresso em processo de migração para o digital;
● Empresa sem Cultura Ágil (apenas em TI)● Alguns produtos:
http://twixar.me/Yv5
6
Sobre a Infoglobo
● Tecnologias e Plataformas:
http://twixar.me/Yv5
7
Cenário Anterior
● Execução de Testes Unitários dependia de “boa vontade”
● Validação (manuais e automatizadas) das funcionalidades levando mais de 2 dias
● Correria para corrigir testes automatizados falhando (ou nem corrigir)
● Deploys feitos em PRD de forma manual pela equipe de INFRA
http://twixar.me/Yv5
8
Cenário Anterior
● Demora de até 1 mês para colocar uma mudança em PRD
● Necessidade de uma Auditoria antes de uma versão estar disponível para PRD
● Erros em log eram ignorados
http://twixar.me/Yv5
9
Entrega Contínua
Manifesto Ágil
http://twixar.me/Yv5
10
Algumas definições
http://twixar.me/Yv5
11
Benefícios
● Autonomia aos times● Reduzir erros● Reduzir estresse● Flexibilidade de Implantação● Prática leva a perfeição● Todo check-in é uma versão em potencial
http://twixar.me/Yv5
12
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
http://twixar.me/Yv5
13
Princípios
● Pronto quer dizer versão entregue● Todos são responsáveis pelo processo de
entrega● Melhoria Contínua
http://twixar.me/Yv5
14
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;
15
Pipeline de Implantação
● Manifestação automatizada do processo de levar o software do controle de versão até os usuários.
http://twixar.me/Yv5
16
Pipeline de Implantação
17
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
http://twixar.me/Yv5
18
Nosso Pipeline
Estágio de Commit
Deploy DSV
Smoke Tests
Deploy QLT
Testes Funcionais
Testes de Performance
Análise de Log
Deploy PRD
http://twixar.me/Yv5
19
Estágio de Commit
● Entrada para o Pipeline de Implantação● Feedback para os devs● Entrada: Código - Saída: Binários e Relatórios● CUIDADO: poucos testes e qualidade de
código ruim
20
Testes Funcionais Automatizados
http://twixar.me/Yv5
21
Deploys
● Feitos da mesma maneira em qualquer ambiente
● Dependem da aprovação do estágio anterior
22
Testes de Performance Automatizados
● Scritps do JMeter● Cenários pré-definidos● Limite máximo aceitável de tempo
http://twixar.me/Yv5
23
Testes de Performance Automatizados
http://twixar.me/Yv5
24
Análise de Log
● 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 PRD)● Muito importante para os produtos mais
antigos● Preocupação de INFRA
25
Análise de Log
http://twixar.me/Yv5
26
Análise de Log
http://twixar.me/Yv5
27
Já implementados
● TIBCO● Aplicações Tomcat (Java & Grails)● Apache● Varnish● Solr● 63 pipelines
http://twixar.me/Yv5
28
SUCCESS
http://twixar.me/Yv5
29
FAIL
http://twixar.me/Yv5
30
Alguns Resultados
● Deploy em PRD NÃO é mais um evento temido
● Facilidade na identificação da causa de erros em PRD
● Replicabilidade do Processo● Feedback ● Validação diluída no processo, não
precisamos mais de vários dias para os testes● Abertura de Solicitação de Deploy
automatizada
31
Alguns Resultados
● Análise de Log parte do processo de todos os produtos
● Deploys automatizados em PRD feitos por Atendimento Especializado (utilizando Jenkins)
● Não é mais necessária auditoria antes dos Deploys em PRD
● Deploy em PRD pode ser feito a qualquer momento
● Sem erros gerados por intervenção manual
32
Alguns Resultados
http://twixar.me/Yv5
O Pacote 16572 levou 2 horas entre Estágio de Commit e Deploy em PRD
33
Alguns Resultados
http://twixar.me/Yv5
34http://twixar.me/Yv5
35
Desafios
● Acabar com os mitos:○ Testes “atrasam” o processo○ Custo da Qualidade é alto demais○ “Só está quebrando um teste, não precisa
investigar”● Testes Unitários● DevOps● Agilidade na Organização
http://twixar.me/Yv5
36
Próxima Fase
http://twixar.me/Yv5
37
Próxima Fase
● Desenvolvedores fazendo Deploys em PRD● Projetos desenvolvidos por Fornecedores no
Pipeline● Levar o conhecimento de Entrega Contínua
para todos os times● Implementar Pipeline para Mobile
○ já começamos com Android
http://twixar.me/Yv5
38
Referências
● http://manifestoagil.com.br/● The Facebook Release Process● Continuous Delivery at Google● The Evolution of Continuous Delivery at Scale
@ Linkedin● Deploying the Netflix API
http://twixar.me/Yv5
39
Dica!!!
http://twixar.me/Yv5
40
Selenium Webdriver
Belo Horizonte: 8/8/2015 - 8:30 às 17:30Av. Augusto de Lima, 527, Loja 2 – Centro – Belo Horizonte
http://twixar.me/Yv5
41
Selenium Webdriver
R$ 410,00 à vista ou 2x R$ 205,00
PROMOÇÃO. R$ 310,00 à vista ou 2x R$ 155,00 para inscrições até 20/07/2015
http://rtstreinamentos.com.br/contato/
http://twixar.me/Yv5