42
1 Alcançando Qualidade de Software através de Entrega Contínua Samanta Cicilia

WTM - Entrega Contínua

Embed Size (px)

Citation preview

Page 1: WTM - Entrega Contínua

1

Alcançando Qualidade de Software através de Entrega Contínua

Samanta Cicilia

Page 2: WTM - Entrega Contínua

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]

Page 3: WTM - Entrega Contínua

3

Sumário

1. Sobre a Infoglobo2. Entrega Contínua3. Entrega Contínua na Infoglobo

Page 4: WTM - Entrega Contínua

4

Quem somos

Page 5: WTM - Entrega Contínua

5

Sobre a Infoglobo

● Focada no Impresso em processo de migração para o digital;

● Agilidade apenas em TI● Alguns produtos:

Page 6: WTM - Entrega Contínua

6

Sobre a Infoglobo

● Tecnologias e Plataformas:

Page 7: WTM - Entrega Contínua

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

Page 8: WTM - Entrega Contínua

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

Page 9: WTM - Entrega Contínua

9

Entrega Contínua

Manifesto Ágil

Page 10: WTM - Entrega Contínua

10

Algumas definições

Page 11: WTM - Entrega Contínua

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

Page 12: WTM - Entrega Contínua

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

Page 13: WTM - Entrega Contínua

13

Princípios

● Pronto quer dizer versão entregue● Todos são responsáveis pelo processo de

entrega● Melhoria Contínua

Page 14: WTM - Entrega 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;

Page 15: WTM - Entrega Contínua

15

Pipeline de Implantação

● Manifestação automatizada do processo de levar o software do controle de versão até os usuários.

Page 16: WTM - Entrega Contínua

16

Pipeline de Implantação

Page 17: WTM - Entrega Contínua

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

Page 18: WTM - Entrega Contínua

18

Nosso Pipeline

Estágio de Commit

Deploy DSV

Smoke Tests

Deploy QLT

Testes Funcionais

Testes de Performance

Análise de Log

Deploy PRD

Page 19: WTM - Entrega Contínua

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

Page 20: WTM - Entrega Contínua

20

Testes Funcionais Automatizados

Page 21: WTM - Entrega Contínua

21

Deploys

● Feitos da mesma maneira em qualquer ambiente

● Dependem da aprovação do estágio anterior

Page 22: WTM - Entrega Contínua

22

Testes de Performance Automatizados

● Scritps do JMeter● Cenários pré-definidos● Limite máximo aceitável de tempo

Page 23: WTM - Entrega Contínua

23

Testes de Performance Automatizados

Page 24: WTM - Entrega Contínua

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

Page 25: WTM - Entrega Contínua

25

Análise de Log

Page 26: WTM - Entrega Contínua

26

Análise de Log

Page 27: WTM - Entrega Contínua

27

Já implementados

● TIBCO● Aplicações Tomcat (Java & Grails)● Apache● Varnish● Solr● 63 pipelines

Page 28: WTM - Entrega Contínua

28

SUCCESS

Page 29: WTM - Entrega Contínua

29

FAIL

Page 30: WTM - Entrega Contínua

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

Page 31: WTM - Entrega Contínua

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

Page 32: WTM - Entrega Contínua

32

Alguns Resultados

O Pacote 16572 levou 2 horas entre Estágio de Commit e Deploy em PRD

Page 33: WTM - Entrega Contínua

33

Alguns Resultados

Page 34: WTM - Entrega Contínua

34

Page 35: WTM - Entrega Contínua

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

Page 36: WTM - Entrega Contínua

36

Próxima Fase

Page 37: WTM - Entrega Contínua

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

Page 38: WTM - Entrega Contínua

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

Page 39: WTM - Entrega Contínua

39

Dica!!!

Page 40: WTM - Entrega Contínua

40

RTS Treinamentos

Page 41: WTM - Entrega Contínua

41

RTS Treinamentos

http://rtstreinamentos.com.br/