Your SlideShare is downloading. ×
  • Like
  • Save
Padrões de deploy para DevOps e Entrega Contínua
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Padrões de deploy para DevOps e Entrega Contínua

  • 617 views
Published

Slides da minha palestra "Padrões de deploy para DevOps e Entrega Contínua" na Geek Night Recife em Julho

Slides da minha palestra "Padrões de deploy para DevOps e Entrega Contínua" na Geek Night Recife em Julho

Published 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
617
On SlideShare
0
From Embeds
0
Number of Embeds
5

Actions

Shares
Downloads
0
Comments
0
Likes
12

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. G e e k N i g h t R e c i f e PADRÕES DE DEPLOY PARA DEVOPS E ENTREGA CONTÍNUA Danilo Sato (@dtsato) dsato@thoughtworks.com
  • 2. QUEM SOU EU? ▫︎Desenvolvedor ▫︎Arquiteto ▫︎Coach ▫︎Treinador ▫︎Administrador de Rede 2 @dtsato
  • 3. 3 www.devopsnapratica.com.br
  • 4. 3 www.devopsnapratica.com.br
  • 5. Desenvolvimento Operações
  • 6. Eu quero mudanças Desenvolvimento Operações
  • 7. Eu quero mudanças Eu quero estabilidade Desenvolvimento Operações
  • 8. Eu quero mudanças Eu quero estabilidade Desenvolvimento Operações
  • 9. Desenvolvimento Operações + DevOps
  • 10. UMA HISTÓRIA COMUM… “O dia que fizemos o deploy errado” 6
  • 11. 7 Freqüência de deploy Quantidade de mudanças Risco Processo
  • 12. COM UM FINAL DIFERENTE… “Problemas difíceis não se resolvem do dia para a noite” 8
  • 13. 9 Freqüência de deploy Quantidade de mudanças Risco Processo DevOps
  • 14. 10 Ideia Em produção
  • 15. 11 Ideia Em produção Código Testes Pacote Servidores/Am bientes Exploração /Hom ologação /Aprovação Im plantar
  • 16. 11 Ideia Em produção Código Testes Pacote Servidores/Am bientes Exploração /Hom ologação /Aprovação Im plantar Pipeline de Entrega
  • 17. 12 M onitoram entoAlertas Suporte Dados/AnálisesFeedback dosusuários Insights Em produção
  • 18. 12 M onitoram entoAlertas Suporte Dados/AnálisesFeedback dosusuários Insights Em produção Ideia
  • 19. 13 Qualidade Tempo de Ciclo
  • 20. Nosso objetivo é tornar o deploy um “não-evento” 14
  • 21. PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  • 22. 1. Incremental é melhor que “big bang” PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  • 23. 1. Incremental é melhor que “big bang” 2. Implantação != Entrega PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  • 24. 1. Incremental é melhor que “big bang” 2. Implantação != Entrega 3. Foque em entregar lotes pequenos PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  • 25. 1. Incremental é melhor que “big bang” 2. Implantação != Entrega 3. Foque em entregar lotes pequenos 4. Qualidade deve estar embutida no processo PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  • 26. 1. Mudança paralela 2. Implantação Azul-Verde 3. Implantação Canário 4. Feature Toggles 5. Entrega no Escuro PADRÕES DE DEPLOY
  • 27. MUDANÇA PARALELA Também conhecida como “Expansão e Contração” http://www.thoughtworks.com/insights/blog/mudança-paralela 17https://www.flickr.com/photos/telstar/8246798446
  • 28. 1. EXPANSÃO 18 class Grid { private Cell[][] cells; … ! public void addCell(int x, int y, Cell cell) { cells[x][y] = cell; } public Cell fetchCell(int x, int y) { return cells[x][y]; } ! ! public boolean isEmpty(int x, int y) { return cells[x][y] == null; } ! ! ! }
  • 29. 1. EXPANSÃO 19 class Grid { private Cell[][] cells; … ! public void addCell(int x, int y, Cell cell) { cells[x][y] = cell; } ! public Cell fetchCell(int x, int y) { return cells[x][y]; } ! ! ! public boolean isEmpty(int x, int y) { return cells[x][y] == null; } ! ! ! }
  • 30. 1. EXPANSÃO 20 class Grid { private Cell[][] cells; private Map<Coordinate, Cell> newCells; … ! public void addCell(int x, int y, Cell cell) { cells[x][y] = cell; } public void addCell(Coordinate coordinate, Cell cell) { newCells.put(coordinate, cell); } public Cell fetchCell(int x, int y) { return cells[x][y]; } public Cell fetchCell(Coordinate coordinate) { return newCells.get(coordinate); } public boolean isEmpty(int x, int y) { return cells[x][y] == null; } public boolean isEmpty(Coordinate coordinate) { return !newCells.containsKey(coordinate); } }
  • 31. 2. MIGRAÇÃO 21 Nova Versão Cliente Versão Antiga Cliente Cliente addCell(int x, int y, Cell cell) fetchCell(int x, int y) isEmpty(int x, int y) Cell[][] cells Map<Coordinate, Cell> newCells
  • 32. 2. MIGRAÇÃO 22 Nova Versão Cliente Versão Antiga Cliente Cliente addCell(int x, int y, Cell cell) fetchCell(Coordinate c) isEmpty(Coordinate c) Cell[][] cells Map<Coordinate, Cell> newCells
  • 33. 3. CONTRAÇÃO 23 Nova Versão Cliente Cliente Cliente addCell(Coordinate c, Cell cell) fetchCell(Coordinate c) isEmpty(Coordinate c) Cell[][] cells Map<Coordinate, Cell> cells
  • 34. 3. CONTRAÇÃO 24 class Grid { private Cell[][] cells; private Map<Coordinate, Cell> newCells; … ! public void addCell(int x, int y, Cell cell) { cells[x][y] = cell; } public void addCell(Coordinate coordinate, Cell cell) { newCells.put(coordinate, cell); } public Cell fetchCell(int x, int y) { return cells[x][y]; } public Cell fetchCell(Coordinate coordinate) { return newCells.get(coordinate); } public boolean isEmpty(int x, int y) { return cells[x][y] == null; } public boolean isEmpty(Coordinate coordinate) { return !newCells.containsKey(coordinate); } }
  • 35. 3. CONTRAÇÃO 25 class Grid { ! private Map<Coordinate, Cell> cells; … ! ! ! ! public void addCell(Coordinate coordinate, Cell cell) { cells.put(coordinate, cell); } ! ! ! public Cell fetchCell(Coordinate coordinate) { return cells.get(coordinate); } ! ! ! public boolean isEmpty(Coordinate coordinate) { return !cells.containsKey(coordinate); } }
  • 36. IMPLANTAÇÃO AZUL-VERDE http://www.thoughtworks.com/insights/blog/implementando-implantacoes- azul-verde-com-amazon-web-services-aws 26
  • 37. IMPLANTAÇÃO AZUL-VERDE 27 Azul Verde Servidor web Servidor de aplicação Servidor de BD RoteadorUsuários Servidor web Servidor de aplicação Servidor de BD
  • 38. IMPLANTAÇÃO AZUL-VERDE 28 Azul Verde Servidor web Servidor de aplicação Servidor de BD RoteadorUsuários Servidor web Servidor de aplicação Servidor de BD
  • 39. “Mas e o Banco de Dados?” 29
  • 40. IMPLANTAÇÃO AZUL-VERDE 30 Azul Verde Azul Verde Servidor web Servidor de BD RoteadorUsuários Servidor web Servidor de BD Servidor de aplicação Servidor de aplicação
  • 41. IMPLANTAÇÃO AZUL-VERDE 31 Azul Verde Azul Verde Servidor web Servidor de BD RoteadorUsuários Servidor web Servidor de BD Servidor de aplicação Servidor de aplicação
  • 42. IMPLANTAÇÃO AZUL-VERDE 32 Azul Verde Azul Verde Servidor web Servidor de BD RoteadorUsuários Servidor web Servidor de BD Servidor de aplicação Servidor de aplicação
  • 43. IMPLANTAÇÃO CANÁRIO http://www.thoughtworks.com/insights/blog/implantações-canário 33
  • 44. IMPLANTAÇÃO CANÁRIO 34 Nova Versão Versão Antiga Servidor web Servidor de aplicação Servidor de BD Servidor web Servidor de aplicação Servidor de BD RoteadorUsuários Todos os usuários
  • 45. IMPLANTAÇÃO CANÁRIO 35 Nova Versão Versão Antiga Servidor web Servidor de aplicação Servidor de BD Servidor web Servidor de aplicação Servidor de BD RoteadorUsuários Maior parte dos usuários (95%) Alguns usuários (5%)
  • 46. IMPLANTAÇÃO CANÁRIO 36 Nova Versão Versão Antiga Servidor web Servidor de aplicação Servidor de BD Servidor web Servidor de aplicação Servidor de BD Usuários Roteador Alguns usuários (2%) Maior parte dos usuários (98%)
  • 47. IMPLANTAÇÃO CANÁRIO 37 Nova Versão Versão Antiga Servidor web Servidor de aplicação Servidor de BD Servidor web Servidor de aplicação Servidor de BD Usuários Todos os usuários Roteador
  • 48. FEATURE TOGGLES 38https://www.flickr.com/photos/waynewilkinson/6187603535
  • 49. FEATURE TOGGLE 39 share_with_friends = false Googlehttp://www.devopsnapratica.com.br Livro Devops na Prática: Entrega de Software Confiável e Automatizada Configuração:
  • 50. FEATURE TOGGLE 40 share_with_friends = true Googlehttp://www.devopsnapratica.com.br Livro Devops na Prática: Entrega de Software Confiável e Automatizada Configuração:
  • 51. ENTREGA NO ESCURO 41https://www.flickr.com/photos/dwrose/3967195917
  • 52. ENTREGA NO ESCURO 42 Googlehttp://facebook.com Web Page Title João Backend de Chat Googlehttp://facebook.com Web Page Title Maria
  • 53. ENTREGA NO ESCURO 43 Googlehttp://facebook.com Web Page Title Phasellus nulla risus, semper non dictum semper, congue vitae augue. Nunc vulputate ligula eget neque tempus. Maria disse Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur eget ultrices velit. Suspendisse ut justo elementum felis facilisis aliquam ut sit amet mi. Praesent sit amet venenatis eros. Fusce est tellus, congue ac augue in, congue elementum quam.João disse João Backend de Chat Googlehttp://facebook.com Web Page Title Phasellus nulla risus, semper non dictum semper, congue vitae augue. Nunc vulputate ligula eget neque tempus. Maria disse Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur eget ultrices velit. Suspendisse ut justo elementum felis facilisis aliquam ut sit amet mi. Praesent sit amet venenatis eros. Fusce est tellus, congue ac augue in, congue elementum quam.João disse Maria
  • 54. ENTREGA NO ESCURO 44 Googlehttp://facebook.com Web Page Title Phasellus nulla risus, semper non dictum semper, congue vitae augue. Nunc vulputate ligula eget neque tempus. Maria disse Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur eget ultrices velit. Suspendisse ut justo elementum felis facilisis aliquam ut sit amet mi. Praesent sit amet venenatis eros. Fusce est tellus, congue ac augue in, congue elementum quam.João disse João Backend de Chat Googlehttp://facebook.com Web Page Title Phasellus nulla risus, semper non dictum semper, congue vitae augue. Nunc vulputate ligula eget neque tempus. Maria disse Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur eget ultrices velit. Suspendisse ut justo elementum felis facilisis aliquam ut sit amet mi. Praesent sit amet venenatis eros. Fusce est tellus, congue ac augue in, congue elementum quam.João disse Maria
  • 55. DEVOPS ALÉM DAS FERRAMENTAS DevOps é mais que automação e ferramentas 45
  • 56. CALMS 46
  • 57. CALMS Cultura 46
  • 58. CALMS Cultura Automação 46
  • 59. CALMS Cultura Automação Lean (pensamento enxuto) 46
  • 60. CALMS Cultura Automação Lean (pensamento enxuto) Medição 46
  • 61. CALMS Cultura Automação Lean (pensamento enxuto) Medição Sharing (compartilhamento) 46
  • 62. 47 MAIS CONTEÚDO ▫︎Kit de Entrega Contínua: ▫︎http://info.thoughtworks.com/entrega-continua-toolkit ▫︎Insights (blogs e artigos) ▫︎Livros ▫︎Slides ▫︎Vídeo
  • 63. PERGUNTAS? #DevopsNaPratica 48
  • 64. Danilo Sato (@dtsato) dsato@thoughtworks.com OBRIGADO! www.devopsnapratica.com.br ! Continue a discussão usando a hashtag #DevopsNaPratica