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

333 visualizações

Publicada em

Entregar software que atenda as objetivos do negócio, em pouco tempo e com um alto padrão de qualidade ainda é um desafio para muitas empresas já que processos de desenvolvimento são muitas vezes burocráticos Nessa palestra vamos mostrar como estamos implementando Entrega Contínua na Infoglobo. Serão abordados os seguintes temas:Introdução à Entrega Contínua de software - Pipeline de Entrega - Estágio de Commit - Deploys nos ambientes de teste - Smoke Tests -Testes de Performance Automatizados - Análise de Log - Promoção dos pacotes para cada ambiente - Testes Regressivos (Automatizados/Manuais) - Deploy em Produção - Desafios Culturais -Próximos Passos

Publicada em: Software
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
333
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • 1 - qualquer pessoa pode colocar qualquer versão em qualquer ambiente; os testers não precisam ficar esperando que alguém disponibilize uma versão para teste
    2 - não só erros de software, mas também de ambiente, arquivos de configuração, scripts de compilação, banco de dados, erro manual ao fazer deploy por infra
    3 - entregar em PRD não devem ser um evento
    4 - executar a aplicação em um ambiente novo deve ser simples, vinte servidores com configurações manuais diferentes
    5- implantações feitas do mesmo jeito em qualquer ambiente e estratégia de testes
    6 - não existe mais o evento “gerar pacote para PRD”
  • 1 - entregar software deve ser tão simples quanto clicar em um botão (fornecer e gerenciar o ambiente, instalar a versão correta, configurar a aplicação)
    2 - processo de compilação automatizado até onde precise de uma decisão manual
    3 -
    4 - ao invés de esperar meses para fazer um deploy, faça pequenos deploys (exemplo do problema no Extra)
    5 - encontrando erros mais cedo, mais barata é a correção
  • 6 - funcionalidade pronta quando está entregando valor aos usuários
    7 - problemas com silos
    8 -
  • Alcançando Qualidade de Software: Entrega Contínua - Samanta Cicilia

    1. 1. 1 Alcançando Qualidade de Software: Entrega Contínua Samanta Cicilia
    2. 2. 2 Samanta Cicilia E-mail:samycici@gmail.com Twitter: @samantacicilia Facebook: samanta.cicilia Linkedin: Samanta Cicilia GitHub: samycici Slideshare: samantacicilia testedesoftware.com blog.samantacicilia.com.br medium.com/@samantacicilia rtstreinamentos.com.br
    3. 3. 3 Sumário 1. Sobre a Infoglobo 2. Entrega Contínua 3. Entrega Contínua na Infoglobo
    4. 4. 4 SORTEIO!!!! Preencher o formulário em http://twixar.me/Yv5
    5. 5. 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. 6. 6 Sobre a Infoglobo ● Tecnologias e Plataformas: http://twixar.me/Yv5
    7. 7. 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. 8. 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. 9. 9 Entrega Contínua Manifesto Ágil http://twixar.me/Yv5
    10. 10. 10 Algumas definições http://twixar.me/Yv5
    11. 11. 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. 12. 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. 13. 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. 14. 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. 15. 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. 16. 16 Pipeline de Implantação
    17. 17. 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. 18. 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. 19. 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. 20. 20 Testes Funcionais Automatizados http://twixar.me/Yv5
    21. 21. 21 Deploys ● Feitos da mesma maneira em qualquer ambiente ● Dependem da aprovação do estágio anterior
    22. 22. 22 Testes de Performance Automatizados ● Scritps do JMeter ● Cenários pré-definidos ● Limite máximo aceitável de tempo http://twixar.me/Yv5
    23. 23. 23 Testes de Performance Automatizados http://twixar.me/Yv5
    24. 24. 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. 25. 25 Análise de Log http://twixar.me/Yv5
    26. 26. 26 Análise de Log http://twixar.me/Yv5
    27. 27. 27 Já implementados ● TIBCO ● Aplicações Tomcat (Java & Grails) ● Apache ● Varnish ● Solr ● 63 pipelines http://twixar.me/Yv5
    28. 28. 28 SUCCESS http://twixar.me/Yv5
    29. 29. 29 FAIL http://twixar.me/Yv5
    30. 30. 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. 31. 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. 32. 32 Alguns Resultados http://twixar.me/Yv5 O Pacote 16572 levou 2 horas entre Estágio de Commit e Deploy em PRD
    33. 33. 33 Alguns Resultados http://twixar.me/Yv5
    34. 34. 34 http://twixar.me/Yv5
    35. 35. 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. 36. 36 Próxima Fase http://twixar.me/Yv5
    37. 37. 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. 38. 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. 39. 39 Dica!!! http://twixar.me/Yv5
    40. 40. 40 Selenium Webdriver Belo Horizonte: 8/8/2015 - 8:30 às 17:30 Av. Augusto de Lima, 527, Loja 2 – Centro – Belo Horizonte http://twixar.me/Yv5
    41. 41. 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
    42. 42. 42 samycici@gmail.com

    ×