WTM - Entrega Contínua

Preview:

Citation preview

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: samanta.souza@infoglobo.com.br ou samycici@gmail.com

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/

42

Obrigada!samycici@gmail.com

Recommended