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

  • 1,078 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,078
On Slideshare
0
From Embeds
0
Number of Embeds
14

Actions

Shares
Downloads
7
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Nunca fora do ar Como manter uma aplicação sempre disponível com Continuous Delivery Giovanni Bassi giovanni@lambda3.com.br @giovannibassi
  • 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. Tenha cuidado, posso ser eu na sua frente
  • 4. Uma empresa democrática • • • • Sem gerentes ou estrutura hierárquica Livros abertos Decisões por consenso 100% ágil http://bit.ly/lambda3democracia
  • 5. Continuous Delivery
  • 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. 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. 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. 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. 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. 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. 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. 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. Deployment Pipeline
  • 15. Deployment Pipeline Ambiente mais parecido com produção
  • 16. Mindset Esse commit vai para produção a qualquer momento sem meu envolvimento
  • 17. Nunca fora do ar: green blue deployment
  • 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. Aplicando green blue deployment
  • 20. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 21. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 22. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 23. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 24. Green blue deployment: testando em produção
  • 25. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 26. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 27. Green blue deployment Servidor web 90% MinhaEmpresa.com.br 10% Servidor banco de dados
  • 28. Green blue deployment Servidor web 90% MinhaEmpresa.com.br 10% Logs Servidor banco de dados
  • 29. Green blue deployment Servidor web 50% MinhaEmpresa.com.br 50% Servidor banco de dados
  • 30. Green blue deployment Servidor web 50% MinhaEmpresa.com.br 50% Logs Servidor banco de dados
  • 31. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 32. Green blue deployment Servidor web MinhaEmpresa.com.br Servidor banco de dados
  • 33. Dúvidas? Giovanni Bassi giovanni@lambda3.com.br @giovannibassi
  • 34. Obrigado! Giovanni Bassi giovanni@lambda3.com.br @giovannibassi
  • 35. www.lambda3.com.br