Do push para a produção: Os desafios de automação em Continuous Delivery

1.012 visualizações

Publicada em

Apresentação por Camilo Ribeiro e Julio Maia no Agile Brazil 2014

Publicada em: Software
1 comentário
2 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
1.012
No SlideShare
0
A partir de incorporações
0
Número de incorporações
69
Ações
Compartilhamentos
0
Downloads
0
Comentários
1
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Do push para a produção: Os desafios de automação em Continuous Delivery

  1. 1. Do push para a produção: Os desafios de automação em Continuous Delivery Camilo Ribeiro Julio Maia
  2. 2. Camilo Ribeiro www.klarna.com
  3. 3. Klarna Checkout
  4. 4. Julio Maia www.soundcloud.com
  5. 5. Continuous Delivery Cada mudança aplicada a um sistema possa ser colocada em produção rapidamente... … e com tanta confiança quanto possível que irá funcionar
  6. 6. 30-40% Investimento
  7. 7. 50+% Retorno médio/longo prazo
  8. 8. Investimento em complexidade Linguagens de programação Ferramentas (IDE, build) Testes Refatoramentos Controle de versão Automação Integração contínua Maior maturidade, menos falhas Menor maturidade, mais falhas
  9. 9. Integração contínua
  10. 10. Build local Velocidade (acima de alguns minutos ele afeta a capacidade de desenvolvimento do time) Garantir que cada mudança é funcionalmente correta, mas não necessariamente confiável operacionalmente
  11. 11. Confiabilidade Funcional 100% 75% 50% 25% 0% Local Estágio 1 Estágio 2 Estágio 3 Build Pipeline
  12. 12. Build pipeline Geração de artefato binário (o qual será utilizado nos testes) Aumentar a confiabilidade da alteração progressivamente
  13. 13. Confiabilidade Operacional 100% 75% 50% 25% 0% Local Estágio 1 Estágio 2 Estágio 3 Build Pipeline
  14. 14. testes em ambiente code build controle versões build produção testes em ambiente integrado isolado testes em ambiente isolado Local Pipeline
  15. 15. Automação de testes Infra-estrutura de testes Automação de build Automação de deployment Monitoramento
  16. 16. Automação e infra-estrutura de testes
  17. 17. Testes de unidade Guiar o design do sistema Suportar refactorings
  18. 18. Testes de integração (funcionais, aceitação, etc.) Validar se o sistema se comunica corretamente com suas dependências externas e sob a expectativa dos usuários finais
  19. 19. http://www.soapui.org/Best-Practices/api-mocking.html
  20. 20. Testes de performance (performance, carga, stress) Validar se o sistema se comporta adequadamente quando é submetido a uma certa carga
  21. 21. Testes de deployment Validar que todos os componentes do sistema foram instalados e configurados corretamente Versões, portas, permissões, conectividade
  22. 22. TDD para infra-estrutura
  23. 23. Testes de versões Validam se a versão atual do sistema funciona contra a versão em produção e contra as versões em desenvolvimento das suas dependências
  24. 24. build produção testes em ambiente isolado testes em ambiente integrado testes em ambiente isolado testes em ambiente integrado Versões em desenvolvimento Versões em produção
  25. 25. Testes de segurança Auditam se os componentes do sistema não possuem vulnerabilidades conhecidas publicamente
  26. 26. https://www.owasp.org/images/f/f4/SkipFishReport.png
  27. 27. Monitoramento Healthchecks e telemetria
  28. 28. http://grafana.org
  29. 29. Conclusão Continuous delivery é uma otimização necessária para entregar valor da maneira mais rápida e barata possível Isso só é possível com investimento constante em testes e automação
  30. 30. www.klarna.com/jobs
  31. 31. www.soundcloud.com/jobs
  32. 32. Obrigado
  33. 33. Dúvidas

×