Do push para a produção: 
Os desafios de automação em Continuous Delivery 
Camilo Ribeiro 
Julio Maia
Camilo Ribeiro 
www.klarna.com
Klarna Checkout
Julio Maia 
www.soundcloud.com
Continuous Delivery 
Cada mudança aplicada a um sistema 
possa ser colocada em produção 
rapidamente... 
… e com tanta con...
30-40% 
Investimento
50+% 
Retorno médio/longo prazo
Investimento em complexidade 
Linguagens de 
programação 
Ferramentas (IDE, build) 
Testes 
Refatoramentos 
Controle de ve...
Integração contínua
Build local 
Velocidade (acima de alguns 
minutos ele afeta a capacidade 
de desenvolvimento do time) 
Garantir que cada m...
Confiabilidade Funcional 
100% 
75% 
50% 
25% 
0% 
Local Estágio 1 Estágio 2 Estágio 3 
Build Pipeline
Build pipeline 
Geração de artefato binário 
(o qual será utilizado nos testes) 
Aumentar a confiabilidade da 
alteração p...
Confiabilidade Operacional 
100% 
75% 
50% 
25% 
0% 
Local Estágio 1 Estágio 2 Estágio 3 
Build Pipeline
testes em ambiente 
code build controle 
versões 
build 
produção 
testes em ambiente 
integrado 
isolado 
testes em ambie...
Automação de testes 
Infra-estrutura de testes 
Automação de build 
Automação de deployment 
Monitoramento
Automação e infra-estrutura 
de testes
Testes de unidade 
Guiar o design do sistema 
Suportar refactorings
Testes de integração 
(funcionais, aceitação, etc.) 
Validar se o sistema se comunica 
corretamente com suas dependências ...
http://www.soapui.org/Best-Practices/api-mocking.html
Testes de performance 
(performance, carga, stress) 
Validar se o sistema se comporta 
adequadamente quando é submetido a ...
Testes de deployment 
Validar que todos os componentes do 
sistema foram instalados e 
configurados corretamente 
Versões,...
TDD para infra-estrutura
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 dese...
build 
produção 
testes em ambiente 
isolado 
testes em ambiente 
integrado 
testes em ambiente 
isolado 
testes em ambien...
Testes de segurança 
Auditam se os componentes do 
sistema não possuem vulnerabilidades 
conhecidas publicamente
https://www.owasp.org/images/f/f4/SkipFishReport.png
Monitoramento 
Healthchecks e telemetria
http://grafana.org
Conclusão 
Continuous delivery é uma otimização 
necessária para entregar valor da 
maneira mais rápida e barata possível ...
www.klarna.com/jobs
www.soundcloud.com/jobs
Obrigado
Dúvidas
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
Do push para a produção: Os desafios de automação em Continuous Delivery
Próximos SlideShares
Carregando em…5
×

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

985 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
985
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

×