minas testing conference - entrega contínua

42
1 Alcançando Qualidade de Software: Entrega Contínua Samanta Cicilia

Upload: samanta-cicilia

Post on 11-Aug-2015

225 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Minas Testing Conference - Entrega Contínua

1

Alcançando Qualidade de Software: Entrega Contínua

Samanta Cicilia

Page 2: Minas Testing Conference - Entrega Contínua

2

Samanta Cicilia

E-mail:[email protected]: @samantaciciliaFacebook: samanta.ciciliaLinkedin: Samanta CiciliaGitHub: samyciciSlideshare: samantaciciliatestedesoftware.comblog.samantacicilia.com.brmedium.com/@samantaciciliartstreinamentos.com.br

Page 3: Minas Testing Conference - Entrega Contínua

3

Sumário

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

Page 4: Minas Testing Conference - Entrega Contínua

4

SORTEIO!!!!

Preencher o formulário em

http://twixar.me/Yv5

Page 5: Minas Testing Conference - Entrega Contínua

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

Page 6: Minas Testing Conference - Entrega Contínua

6

Sobre a Infoglobo

● Tecnologias e Plataformas:

http://twixar.me/Yv5

Page 7: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 8: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 9: Minas Testing Conference - Entrega Contínua

9

Entrega Contínua

Manifesto Ágil

http://twixar.me/Yv5

Page 10: Minas Testing Conference - Entrega Contínua

10

Algumas definições

http://twixar.me/Yv5

Page 11: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 12: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 13: Minas Testing Conference - Entrega Contínua

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

Page 14: Minas Testing Conference - 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: Minas Testing Conference - 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.

http://twixar.me/Yv5

Page 16: Minas Testing Conference - Entrega Contínua

16

Pipeline de Implantação

Page 17: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 18: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 19: Minas Testing Conference - 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: Minas Testing Conference - Entrega Contínua

20

Testes Funcionais Automatizados

http://twixar.me/Yv5

Page 21: Minas Testing Conference - Entrega Contínua

21

Deploys

● Feitos da mesma maneira em qualquer ambiente

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

Page 22: Minas Testing Conference - Entrega Contínua

22

Testes de Performance Automatizados

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

http://twixar.me/Yv5

Page 23: Minas Testing Conference - Entrega Contínua

23

Testes de Performance Automatizados

http://twixar.me/Yv5

Page 24: Minas Testing Conference - 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: Minas Testing Conference - Entrega Contínua

25

Análise de Log

http://twixar.me/Yv5

Page 26: Minas Testing Conference - Entrega Contínua

26

Análise de Log

http://twixar.me/Yv5

Page 27: Minas Testing Conference - Entrega Contínua

27

Já implementados

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

http://twixar.me/Yv5

Page 28: Minas Testing Conference - Entrega Contínua

28

SUCCESS

http://twixar.me/Yv5

Page 29: Minas Testing Conference - Entrega Contínua

29

FAIL

http://twixar.me/Yv5

Page 30: Minas Testing Conference - 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: Minas Testing Conference - Entrega Contínua

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

Page 32: Minas Testing Conference - Entrega Contínua

32

Alguns Resultados

http://twixar.me/Yv5

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

Page 33: Minas Testing Conference - Entrega Contínua

33

Alguns Resultados

http://twixar.me/Yv5

Page 34: Minas Testing Conference - Entrega Contínua

34http://twixar.me/Yv5

Page 35: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 36: Minas Testing Conference - Entrega Contínua

36

Próxima Fase

http://twixar.me/Yv5

Page 37: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 38: Minas Testing Conference - 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

http://twixar.me/Yv5

Page 39: Minas Testing Conference - Entrega Contínua

39

Dica!!!

http://twixar.me/Yv5

Page 40: Minas Testing Conference - Entrega Contínua

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

Page 41: Minas Testing Conference - Entrega Contínua

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