Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
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
QUEM SOU EU?
▫︎Desenvolvedor
▫︎Arquiteto
▫︎Coach
▫︎Treinador
▫︎Administrador de Rede
2
@dtsato
3
www.devopsnapratica.com.br
3
www.devopsnapratica.com.br
Desenvolvimento Operações
Eu quero
mudanças
Desenvolvimento Operações
Eu quero
mudanças
Eu quero
estabilidade
Desenvolvimento Operações
Eu quero
mudanças
Eu quero
estabilidade
Desenvolvimento Operações
Desenvolvimento Operações
+
DevOps
UMA HISTÓRIA
COMUM…
“O dia que fizemos o deploy errado”
6
7
Freqüência de
deploy
Quantidade de
mudanças
Risco
Processo
COM UM FINAL
DIFERENTE…
“Problemas difíceis não se resolvem do dia para a noite”
8
9
Freqüência de
deploy
Quantidade de
mudanças
Risco
Processo
DevOps
10
Ideia Em produção
11
Ideia Em produção
Código
Testes
Pacote
Servidores/Am
bientes
Exploração
/Hom
ologação
/Aprovação
Im
plantar
11
Ideia Em produção
Código
Testes
Pacote
Servidores/Am
bientes
Exploração
/Hom
ologação
/Aprovação
Im
plantar
Pipeline de...
12
M
onitoram
entoAlertas
Suporte
Dados/AnálisesFeedback
dosusuários
Insights
Em produção
12
M
onitoram
entoAlertas
Suporte
Dados/AnálisesFeedback
dosusuários
Insights
Em produção Ideia
13
Qualidade
Tempo de Ciclo
Nosso objetivo é tornar o deploy um
“não-evento”
14
PRINCÍPIOS PARA ENTREGAS
DE BAIXO RISCO
1. Incremental é melhor que “big bang”
PRINCÍPIOS PARA ENTREGAS
DE BAIXO RISCO
1. Incremental é melhor que “big bang”
2. Implantação != Entrega
PRINCÍPIOS PARA ENTREGAS
DE BAIXO RISCO
1. Incremental é melhor que “big bang”
2. Implantação != Entrega
3. Foque em entregar lotes pequenos
PRINCÍPIOS PARA ENTRE...
1. Incremental é melhor que “big bang”
2. Implantação != Entrega
3. Foque em entregar lotes pequenos
4. Qualidade deve est...
1. Mudança paralela
2. Implantação Azul-Verde
3. Implantação Canário
4. Feature Toggles
5. Entrega no Escuro
PADRÕES DE DE...
MUDANÇA PARALELA
Também conhecida como “Expansão e Contração”
http://www.thoughtworks.com/insights/blog/mudança-paralela
1...
1. EXPANSÃO
18
class Grid {
private Cell[][] cells;
…
!
public void addCell(int x, int y, Cell cell) {
cells[x][y] = cell;...
1. EXPANSÃO
19
class Grid {
private Cell[][] cells;
…
!
public void addCell(int x, int y, Cell cell) {
cells[x][y] = cell;...
1. EXPANSÃO
20
class Grid {
private Cell[][] cells;
private Map<Coordinate, Cell> newCells;
…
!
public void addCell(int x,...
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)
...
2. MIGRAÇÃO
22
Nova Versão
Cliente
Versão
Antiga
Cliente
Cliente
addCell(int x, int y, Cell cell)
fetchCell(Coordinate c)
...
3. CONTRAÇÃO
23
Nova Versão
Cliente
Cliente
Cliente
addCell(Coordinate c, Cell cell)
fetchCell(Coordinate c)
isEmpty(Coord...
3. CONTRAÇÃO
24
class Grid {
private Cell[][] cells;
private Map<Coordinate, Cell> newCells;
…
!
public void addCell(int x...
3. CONTRAÇÃO
25
class Grid {
!
private Map<Coordinate, Cell> cells;
…
!
!
!
!
public void addCell(Coordinate coordinate, C...
IMPLANTAÇÃO
AZUL-VERDE
http://www.thoughtworks.com/insights/blog/implementando-implantacoes-
azul-verde-com-amazon-web-ser...
IMPLANTAÇÃO AZUL-VERDE
27
Azul
Verde
Servidor
web
Servidor de
aplicação
Servidor de
BD
RoteadorUsuários
Servidor
web
Servi...
IMPLANTAÇÃO AZUL-VERDE
28
Azul
Verde
Servidor
web
Servidor de
aplicação
Servidor de
BD
RoteadorUsuários
Servidor
web
Servi...
“Mas e o Banco de Dados?”
29
IMPLANTAÇÃO AZUL-VERDE
30
Azul
Verde
Azul
Verde
Servidor
web
Servidor de
BD
RoteadorUsuários
Servidor
web
Servidor de
BD
S...
IMPLANTAÇÃO AZUL-VERDE
31
Azul
Verde
Azul
Verde
Servidor
web
Servidor de
BD
RoteadorUsuários
Servidor
web
Servidor de
BD
S...
IMPLANTAÇÃO AZUL-VERDE
32
Azul
Verde
Azul
Verde
Servidor
web
Servidor de
BD
RoteadorUsuários
Servidor
web
Servidor de
BD
S...
IMPLANTAÇÃO
CANÁRIO
http://www.thoughtworks.com/insights/blog/implantações-canário
33
IMPLANTAÇÃO CANÁRIO
34
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor d...
IMPLANTAÇÃO CANÁRIO
35
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor d...
IMPLANTAÇÃO CANÁRIO
36
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor d...
IMPLANTAÇÃO CANÁRIO
37
Nova Versão
Versão Antiga
Servidor
web
Servidor de
aplicação
Servidor de
BD
Servidor
web
Servidor d...
FEATURE TOGGLES
38https://www.flickr.com/photos/waynewilkinson/6187603535
FEATURE TOGGLE
39
share_with_friends = false
Googlehttp://www.devopsnapratica.com.br
Livro Devops na Prática: Entrega de S...
FEATURE TOGGLE
40
share_with_friends = true
Googlehttp://www.devopsnapratica.com.br
Livro Devops na Prática: Entrega de So...
ENTREGA NO
ESCURO
41https://www.flickr.com/photos/dwrose/3967195917
ENTREGA NO ESCURO
42
Googlehttp://facebook.com
Web Page Title
João
Backend de Chat
Googlehttp://facebook.com
Web Page Titl...
ENTREGA NO ESCURO
43
Googlehttp://facebook.com
Web Page Title
Phasellus nulla risus, semper non dictum semper, congue
vita...
ENTREGA NO ESCURO
44
Googlehttp://facebook.com
Web Page Title
Phasellus nulla risus, semper non dictum semper, congue
vita...
DEVOPS ALÉM DAS
FERRAMENTAS
DevOps é mais que automação e ferramentas
45
CALMS
46
CALMS
Cultura
46
CALMS
Cultura
Automação
46
CALMS
Cultura
Automação
Lean (pensamento enxuto)
46
CALMS
Cultura
Automação
Lean (pensamento enxuto)
Medição
46
CALMS
Cultura
Automação
Lean (pensamento enxuto)
Medição
Sharing (compartilhamento)
46
47
MAIS CONTEÚDO
▫︎Kit de Entrega Contínua:
▫︎http://info.thoughtworks.com/entrega-continua-toolkit
▫︎Insights (blogs e ar...
PERGUNTAS?
#DevopsNaPratica
48
Danilo Sato (@dtsato)
dsato@thoughtworks.com
OBRIGADO!
www.devopsnapratica.com.br
!
Continue a discussão usando
a hashtag
...
Prochain SlideShare
Chargement dans…5
×

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

1 449 vues

Publié le

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

Publié dans : Technologie
  • Soyez le premier à commenter

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

  1. 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. 2. QUEM SOU EU? ▫︎Desenvolvedor ▫︎Arquiteto ▫︎Coach ▫︎Treinador ▫︎Administrador de Rede 2 @dtsato
  3. 3. 3 www.devopsnapratica.com.br
  4. 4. 3 www.devopsnapratica.com.br
  5. 5. Desenvolvimento Operações
  6. 6. Eu quero mudanças Desenvolvimento Operações
  7. 7. Eu quero mudanças Eu quero estabilidade Desenvolvimento Operações
  8. 8. Eu quero mudanças Eu quero estabilidade Desenvolvimento Operações
  9. 9. Desenvolvimento Operações + DevOps
  10. 10. UMA HISTÓRIA COMUM… “O dia que fizemos o deploy errado” 6
  11. 11. 7 Freqüência de deploy Quantidade de mudanças Risco Processo
  12. 12. COM UM FINAL DIFERENTE… “Problemas difíceis não se resolvem do dia para a noite” 8
  13. 13. 9 Freqüência de deploy Quantidade de mudanças Risco Processo DevOps
  14. 14. 10 Ideia Em produção
  15. 15. 11 Ideia Em produção Código Testes Pacote Servidores/Am bientes Exploração /Hom ologação /Aprovação Im plantar
  16. 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. 17. 12 M onitoram entoAlertas Suporte Dados/AnálisesFeedback dosusuários Insights Em produção
  18. 18. 12 M onitoram entoAlertas Suporte Dados/AnálisesFeedback dosusuários Insights Em produção Ideia
  19. 19. 13 Qualidade Tempo de Ciclo
  20. 20. Nosso objetivo é tornar o deploy um “não-evento” 14
  21. 21. PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  22. 22. 1. Incremental é melhor que “big bang” PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  23. 23. 1. Incremental é melhor que “big bang” 2. Implantação != Entrega PRINCÍPIOS PARA ENTREGAS DE BAIXO RISCO
  24. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 36. IMPLANTAÇÃO AZUL-VERDE http://www.thoughtworks.com/insights/blog/implementando-implantacoes- azul-verde-com-amazon-web-services-aws 26
  37. 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. 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. 39. “Mas e o Banco de Dados?” 29
  40. 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. 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. 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. 43. IMPLANTAÇÃO CANÁRIO http://www.thoughtworks.com/insights/blog/implantações-canário 33
  44. 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. 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. 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. 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. 48. FEATURE TOGGLES 38https://www.flickr.com/photos/waynewilkinson/6187603535
  49. 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. 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. 51. ENTREGA NO ESCURO 41https://www.flickr.com/photos/dwrose/3967195917
  52. 52. ENTREGA NO ESCURO 42 Googlehttp://facebook.com Web Page Title João Backend de Chat Googlehttp://facebook.com Web Page Title Maria
  53. 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. 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. 55. DEVOPS ALÉM DAS FERRAMENTAS DevOps é mais que automação e ferramentas 45
  56. 56. CALMS 46
  57. 57. CALMS Cultura 46
  58. 58. CALMS Cultura Automação 46
  59. 59. CALMS Cultura Automação Lean (pensamento enxuto) 46
  60. 60. CALMS Cultura Automação Lean (pensamento enxuto) Medição 46
  61. 61. CALMS Cultura Automação Lean (pensamento enxuto) Medição Sharing (compartilhamento) 46
  62. 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. 63. PERGUNTAS? #DevopsNaPratica 48
  64. 64. Danilo Sato (@dtsato) dsato@thoughtworks.com OBRIGADO! www.devopsnapratica.com.br ! Continue a discussão usando a hashtag #DevopsNaPratica

×