1 Alcançando Qualidade de Software através de Entrega Contínua Samanta Cicilia
1
Alcançando Qualidade de Software através de Entrega Contínua
Samanta Cicilia
2
QA na InfogloboCoach e Co-fundadora RTS Treinamentos
MBA Garantia de Qualidade de Software POLI-UFRJ
Certified Tester Foundation Level (ISTQB)Certified Scrum Master (Scrum Alliance)
Sitestestedesoftware.comrtstreinamentos.com.brmedium.com/@samantacicilia
ContatosLinkedin: Samanta CiciliaTwitter: @samantaciciliaSlideshare: pt.slideshare.net/samantacicilia/Email: [email protected] ou [email protected]
3
Sumário
1. Sobre a Infoglobo2. Entrega Contínua3. Entrega Contínua na Infoglobo
4
Quem somos
5
Sobre a Infoglobo
● Focada no Impresso em processo de migração para o digital;
● Agilidade apenas em TI● Alguns produtos:
6
Sobre a Infoglobo
● Tecnologias e Plataformas:
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
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
9
Entrega Contínua
Manifesto Ágil
10
Algumas definições
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
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
13
Princípios
● Pronto quer dizer versão entregue● Todos são responsáveis pelo processo de
entrega● Melhoria Contínua
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.
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
18
Nosso Pipeline
Estágio de Commit
Deploy DSV
Smoke Tests
Deploy QLT
Testes Funcionais
Testes de Performance
Análise de Log
Deploy PRD
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
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
23
Testes de Performance Automatizados
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
26
Análise de Log
27
Já implementados
● TIBCO● Aplicações Tomcat (Java & Grails)● Apache● Varnish● Solr● 63 pipelines
28
SUCCESS
29
FAIL
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
● 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
O Pacote 16572 levou 2 horas entre Estágio de Commit e Deploy em PRD
33
Alguns Resultados
34
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
36
Próxima Fase
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
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
39
Dica!!!
40
RTS Treinamentos
41
RTS Treinamentos
http://rtstreinamentos.com.br/