Nunca fora do ar: como manter uma aplicação sempre disponível com Continuous Delivery

1,937 views

Published on

Palestra ministrada no Agile Vale 2013 sobre entrega continua, ou continuous delivery.

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,937
On SlideShare
0
From Embeds
0
Number of Embeds
677
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Nunca fora do ar: como manter uma aplicação sempre disponível com Continuous Delivery

  1. 1. Nunca fora do ar Como manter uma aplicação sempre disponível com Continuous Delivery Giovanni Bassi giovanni@lambda3.com.br @giovannibassi
  2. 2. @GiovanniBassi  Escalador, ciclista, pai  Lambda3  Programador (a.k.a não gerente)         C#, Ruby, Node, Coffeescript, Powershell, Bash... OO, Funcional, Estática, Dinâmica... Linux, Windows Desktop, web, mobile, game... Fundou o .NET Architects Tecnoretórica, blog, palestras, artigos, MVP… Trouxe a Scrum.org pro Brasil Gosta de “humanas” (gestão, coaching, psicologia...)
  3. 3. Tenha cuidado, posso ser eu na sua frente
  4. 4. Uma empresa democrática • • • • Sem gerentes ou estrutura hierárquica Livros abertos Decisões por consenso 100% ágil http://bit.ly/lambda3democracia
  5. 5. Continuous Delivery
  6. 6. Primeiro princípio do manifesto ágil “Nossa maior prioridade é satisfazer o cliente através da entrega contínua (continuous delivery) e adiantada de software com valor agregado.” http://agilemanifesto.org/principles.html
  7. 7. Continuous Delivery Software sempre pronto para ir para produção Todo commit pode ir para produção sem interferência do desenvolvedor Decisão de ir pra produção vem do negócio, não de TI
  8. 8. Continuous Deployment Não é Continuous Delivery  É ir para produção a cada commit que passar nos critérios de publicação Continuous Deployment demanda Continuous Delivery
  9. 9. Como fazer? Testes automatizados Integração contínua (build server, fast build, etc) Branches de vida curta Feature toggles One click deployment/rollback Binaries Repository Deployment pipeline Sempre produzindo código pronto para produção
  10. 10. Build Um build por push (ou commit) Testes rápidos rodam Análises de código rodam Scripts de deployment gerados Dados de testes preparados Repositório de binários recebe o resultado do build, dos script e dos dados
  11. 11. Feature Toggles Funcionalidade presente no código mas ainda não finalizada fica desabilitada e pode ir para produção Pode substituir o uso de branches Mais complexo de escrever e testar Pode ser feito facilmente “escondendo” uma funcionalidade Em alguns cenários não é possível usar
  12. 12. Feature branches, do or do not? Sem resposta simples, idealmente evite Se existir, sempre de vida curta Use pull requests Devem ser vistos como “ambientes de staging privados” * branches de ambiente (staging, UAT) são ok
  13. 13. Releasing Os resultados da compilação progridem de ambiente para ambiente dentro do deployment pipeline Os resultados do build são usados durante todo o processo, nunca o build é refeito Ambientes idealmente são sempre criados do zero
  14. 14. Deployment Pipeline
  15. 15. Deployment Pipeline Ambiente mais parecido com produção
  16. 16. Mindset Esse commit vai para produção a qualquer momento sem meu envolvimento
  17. 17. Nunca fora do ar: green blue deployment
  18. 18. Green blue deployments: nunca fora do ar Cada deploy sobe um ambiente completamente novo O ambiente antigo continua no ar O novo ambiente tem outro endereço Testes são feitos no novo endereço Se tudo estiver ok, vire o interruptor e desligue o ambiente antigo Suportado pelos principais provedores de cloud
  19. 19. Aplicando green blue deployment
  20. 20. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  21. 21. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  22. 22. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  23. 23. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  24. 24. Green blue deployment: testando em produção
  25. 25. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  26. 26. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  27. 27. Green blue deployment Servidor web 90% MinhaEmpresa.com.br 10% Servidor banco de dados
  28. 28. Green blue deployment Servidor web 90% MinhaEmpresa.com.br 10% Logs Servidor banco de dados
  29. 29. Green blue deployment Servidor web 50% MinhaEmpresa.com.br 50% Servidor banco de dados
  30. 30. Green blue deployment Servidor web 50% MinhaEmpresa.com.br 50% Logs Servidor banco de dados
  31. 31. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  32. 32. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  33. 33. Dúvidas? Giovanni Bassi giovanni@lambda3.com.br @giovannibassi
  34. 34. Obrigado! Giovanni Bassi giovanni@lambda3.com.br @giovannibassi
  35. 35. www.lambda3.com.br

×