170
Fabricio Leotti | Rodrigo Russo

QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Embed Size (px)

DESCRIPTION

Tutorial Iniciando Com Continuous Delivery apresentado na QConRio 2014

Citation preview

Page 1: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Fabricio Leotti | Rodrigo Russo

Page 2: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Agenda  

Page 3: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

h)p://agilemanifesto.org/principles.html  h)p://manifestoagil.com.br/principios.html  

Page 4: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Our  highest  priority  is  to  sa;sfy  the  customer  through  early  and  con;nuous  delivery  

of  valuable  so=ware.  

Nossa  maior  prioridade  é  sa;sfazer  o  cliente,  através  da  entrega  adiantada  e  conCnua  de  so=ware  de  valor.  

h)p://agilemanifesto.org/principles.html  h)p://manifestoagil.com.br/principios.html  

Page 5: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

O  que  é  Con;nuous  Delivery  ?  

Page 6: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

O  que  é  Con;nuous  Delivery  ?  

Page 7: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

O  que  é  Con;nuous  Delivery  ?  

Page 8: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

O  que  é  Con;nuous  Delivery  ?  

Page 9: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

O  que  é  Con;nuous  Delivery  ?  

Page 10: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

“Continuous Delivery é uma atitude!” By  John  Smart  

Page 11: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

h)p://farm9.sta;cflickr.com/8030/8057947567_c82a02824b.jpg  

The  whole  point  of  con;nuous  delivery  is  that    every  check-­‐in  creates  a  poten;al  release  candidate.    “   ”  

Page 12: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Create  a  Repeatable,  Reliable  Process  for  Releasing  so=ware  #1

h)p://www.ridelust.com/wp-­‐content/uploads/2010/11/ManualTransmission.jpg  

Page 13: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Automate  Almost  Everything  #2

h)p://2.bp.blogspot.com/-­‐46RNdJb6Vkk/UTDkS6Zn9GI/AAAAAAAAAEc/2cvNLy9CWyY/s1600/Charles+Chaplin+filme+Tempos+Modernos.jpg  

Page 14: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Keep  Everything  in  Version  Control  #3

Page 15: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

If  it  Hurts,  Do  it  more  frequently,  and  Bring  the  pain  forward  #4

h)p://m.cdn.blog.hu/ko/koczyblogja/image/piled-­‐up-­‐dishes-­‐in-­‐kitchen-­‐sink.jpg  

Page 16: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

If  it  Hurts,  Do  it  more  frequently,  and  Bring  the  pain  forward  #4

h)p://m.cdn.blog.hu/ko/koczyblogja/image/piled-­‐up-­‐dishes-­‐in-­‐kitchen-­‐sink.jpg  

Page 17: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Build  Quality  In  #5

“Não se gerencia o que não se mede, não se mede o que não se define,

não se define o que não se entende, e não há sucesso no que não se gerencia”

(William Edwards Deming)

Page 18: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Done  Means  Released  #6

Page 19: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Everybody  is  Responsible  for  the  Delivery  Process  #7

Page 20: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Con;nuous  Improvement  #8

h)p://2.bp.blogspot.com/-­‐Po8jm5Rjca8/UXha4EXEcXI/AAAAAAAAHUM/858rzSlOVTw/s1600/evolu;on4fun.jpg  

Page 21: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Algumas  Ferramentas  

Code  quality  

Source  control  

Infra  as  a  code  

CI  Server  

Binary  repository  

Dependency/Build    tools  

Page 22: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Ecossistema  

Logging  &  Metrics  

Orchestra;on  

Build  Data  Repo  

SCM  

Build   Provision   Deploy   Test   Release  

Ar;fact  Repo  Test  Environment  

Page 23: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

CONTINUOUS  INTEGRATION  Fabricio Leotti | Rodrigo Russo

Page 24: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Princípios  básicos  •  Maintain  a  code  repository  •  Automate  the  build  •  Make  the  build  self-­‐tes;ng  •  Everyone  commits  to  the  baseline  every  day  •  Every  commit  (to  baseline)  should  be  built  •  Keep  the  build  fast  •  Test  in  a  clone  of  the  produc;on  environment  •  Make  it  easy  to  get  the  latest  deliverables  •  Everyone  can  see  the  results  of  the  latest  build  •  Automate  deployment  

Page 25: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Princípios  básicos  

•  Controle  de  versão  

Page 26: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Princípios  básicos  

•  Controle  de  versão  •  Prepare  para  a  automação  

Page 27: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Princípios  básicos  

•  Controle  de  versão  •  Prepare  para  a  automação  •  Faça,  meça,  corrija  

Page 28: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

Page 29: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 30: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 31: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 32: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 33: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 34: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 35: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 36: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 37: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 38: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Master  branch  

Page 39: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 40: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 41: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 42: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 43: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 44: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 45: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 46: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 47: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 48: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 49: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 50: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 51: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  strategy  

•  Howix  

Page 52: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

CI/CD  Pipeline  

Page 53: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

CI/CD  Pipeline  

ptg

A Basic Deployment Pipeline

Figure 5.4 shows a typical deployment pipeline and captures the essence of the approach. Of course, a real pipeline will reflect your project’s actual process for delivering software.

Artifact repository

Source code

Commit stage

Compile Commit tests

Assemble Code analysis

reports binaries metadata

Acceptance stage

Configure environmentDeploy binaries

Smoke test Acceptance tests

Capacity stage

Configure environmentDeploy binaries

Smoke test Run capacity tests

UAT

Configure environmentDeploy binaries

Smoke test

Env & app

config

reports metadatabinaries

Production

Configure environmentDeploy binaries

Smoke test

Env & app

config

binariesreports metadata

Operationsperform

push-button releases

TestersSelf-service deploymentsDevelopers

See code metrics and test failures

Version control

Figure 5.4 Basic deployment pipeline

The process starts with the developers committing changes into their version control system. At this point, the continuous integration management system responds to the commit by triggering a new instance of our pipeline. The first (commit) stage of the pipeline compiles the code, runs unit tests, performs code analysis, and creates installers. If the unit tests all pass and the code is up to scratch, we assemble the executable code into binaries and store them in an artifact repository. Modern CI servers provide a facility to store artifacts like these and make them easily accessible both to the users and to the later stages in your pipeline. Alternatively, there are plenty of tools like Nexus and Artifactory which help you manage artifacts. There are other tasks that you might also run as part of the commit stage of your pipeline, such as preparing a test database to use for your acceptance tests. Modern CI servers will let you execute these jobs in parallel on a build grid.

111What Is a Deployment Pipeline?

Page 54: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

Code  pull   Build  &  Unit  Tes1ng   Build  &  Promote  Package  

Sta1c  Analysis  

Commit  Stage  

<Environment>  Deployment  

<Environment>  Smoke  Test  

<Environment>  Integra1on  Test  

<Environment>  Acceptance  Test  

Acceptance  Stage  

<Environment>  Load  Test  

<Environment>  Performance  Test  

Capacity  Stage  

Deploy  Binaries  

Configure  Environment  

Produc1on  

Smoke  Test  

Page 55: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

Page 56: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 57: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 58: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 59: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 60: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 61: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 62: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 63: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 64: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 65: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 66: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 67: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 68: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Jenkins  Pipeline  

•  Jenkins  jobs  

Page 69: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Pollmachine  Pipeline  

Page 70: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Você  é  realmente  ágil  ?    

Fabricio Leotti | Rodrigo Russo

Page 71: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

“Quanto  tempo  demora  para  a  sua  organização  colocar  em  produção  uma  modificação  de  apenas  uma  

linha  de  código?”  Mary  Poppendieck  e  Tom  Poppendieck  

Page 72: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Lead  ;me/  Cycle  ;me  /  value  stream  

Lead  ;me  

Cycle  ;me  

Page 73: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Lead  ;me/  Cycle  ;me  /  value  stream  

Lead  ;me  

Cycle  ;me  

Melhoria  conCnua…  Faça,  meça,  corrija  

Page 74: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Histórias  •  I  –  Independent  |  Independente  entre  outras  histórias  •  N  –  Nego;able  |  Negociável  com  o  cliente  •  V  –  Valuable  |  Valiosa  para  o  cliente  •  E  –  Es;matable  |  Es;mável  pela  equipe  •  S  –  Sized  Appropriately  |  Dimensionada  apropriadamente  

para  ser  desenvolvida  (escopo)  •  T  –  Testable  |  Testável  para  melhor  entendimento  

Page 75: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Critérios  de  aceitação  

Page 76: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Testes  Automa;zados  

Fabricio Leotti | Rodrigo Russo

Page 77: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Quadrante  de  testes  ágeis  Suporta  a  Equipe  

Foco  em  Tecno

logia  

Foco  em  Negócio  

Cri;ca  o  Produto  

Page 78: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Quadrante  de  testes  ágeis  Suporta  a  Equipe  

Foco  em  Tecno

logia  

Foco  em  Negócio  

Cri;ca  o  Produto  

Testes  Funcionais  Story  Tests  Protó;pos  Exemplos  Simulações  

Testes  Exploratórios  Testes  de  Usuabilidade  

Testes  de  aceitação  do  usuário  Testes  A/B  

Testes  unitários  Testes  de  componentes  Testes  de  Integração  Testes  de  Sistemas  

Testes  de  Desempenho  Testes  de  Carga    

Testes  de  Segurança  Testes  de  Infraestrutura  

Page 79: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Quadrante  de  testes  ágeis  Suporta  a  Equipe  

Foco  em  Tecno

logia  

Foco  em  Negócio  

Cri;ca  o  Produto  

Testes  Funcionais  Story  Tests  Protó;pos  Exemplos  Simulações  

Testes  Exploratórios  Testes  de  Usuabilidade  

Testes  de  aceitação  do  usuário  Testes  A/B  

Testes  unitários  Testes  de  componentes  Testes  de  Integração  Testes  de  Sistemas  

Testes  de  Desempenho  Testes  de  Carga    

Testes  de  Segurança  Testes  de  Infraestrutura  

Page 80: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Quadrante  de  testes  ágeis  Suporta  a  Equipe  

Foco  em  Tecno

logia  

Foco  em  Negócio  

Cri;ca  o  Produto  

Testes  Funcionais  Story  Tests  Protó;pos  Exemplos  Simulações  

Testes  Exploratórios  Testes  de  Usuabilidade  

Testes  de  aceitação  do  usuário  Testes  A/B  

Testes  unitários  Testes  de  componentes  Testes  de  Integração  Testes  de  Sistemas  

Testes  de  Desempenho  Testes  de  Carga    

Testes  de  Segurança  Testes  de  Infraestrutura  

BDD

Page 81: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Quadrante  de  testes  ágeis  Suporta  a  Equipe  

Foco  em  Tecno

logia  

Foco  em  Tecno

logia  

Cri;ca  o  Produto  

Testes  Funcionais  Story  Tests  Protó;pos  Exemplos  Simulações  

Testes  Exploratórios  Testes  de  Usuabilidade  

Testes  de  aceitação  do  usuário  Testes  A/B  

Testes  unitários  Testes  de  componentes  Testes  de  Integração  Testes  de  Sistemas  

Testes  de  Desempenho  Testes  de  Carga    

Testes  de  Segurança  Testes  de  Infraestrutura  

Page 82: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

h)p://wa;rmelon.files.wordpress.com/2012/01/automatedtes;ngpyramid.png?w=604  

Page 83: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

so=ware  tes;ng  ice-­‐cream  cone  An;-­‐Pa)ern  

h)p://wa;rmelon.files.wordpress.com/2012/01/so=waretes;ngicecreamconean;pa)ern.png  

Page 84: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Se  cada  build  é  uma  versão  em  potencial  para  ir  para  produção…  

Como  garan;r  a  qualidade  ?  h)p://www.rigastagweekend.com/img/ac;vi;es/ac;vi;es-­‐Bungee_Jumping_From_A_Cable_Car-­‐31365088466.jpg  

Page 85: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Busca  pela  excelência  

h)p://automo;va.com.ar/wp-­‐content/uploads/2013/06/Motor-­‐Renault-­‐F1-­‐2014-­‐2.jpg  

Page 86: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

h)p://cdn.caradvice.com.au/wp-­‐content/uploads/2013/06/renault-­‐2014-­‐f1-­‐engine-­‐4.jpg  

Testes  Unitários  

Page 87: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

h)p://www.f1fana;c.co.uk/wp-­‐content/uploads/2013/06/renault-­‐energy-­‐f1.jpg  

Testes  de  Integração  de  Componentes  (grupo  componentes  dentro  da  aplicação)  

Page 88: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

h)p://2.bp.blogspot.com/-­‐ZcHCWEl1c1U/UcQ-­‐WI-­‐LAhI/AAAAAAAAIwA/oTp2OmqigNw/s1600/COJ19833060506.JPG  

Testes  de  Aplicação  (Rodam  em  um  container,  porém  há  mocking  com  outras  

aplicações)  

Page 89: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Testes  de  Integração  de  Sistemas  

Dependência  externa  

Page 90: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

h)p://lowdownblog.files.wordpress.com/2013/05/f1-­‐2013-­‐monaco-­‐ricciardo-­‐toro-­‐rosso.jpg  

Testes  de  Funcionais  de  Aceitação  

Page 91: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Smoke  Test  

Page 92: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Testes  de  Desempenho  /  Stress  

Page 93: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Testes  de  Carga  

Page 94: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

•  Testes  manuais  demoram  muito  tempo  

Por  que  automação  de  testes  é  importante  ?  

Page 95: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

•  Testes  manuais  demoram  muito  tempo  •  Processos  manuais  são  susceCveis  a  erro  

Por  que  automação  de  testes  é  importante  ?  

Page 96: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

•  Testes  manuais  demoram  muito  tempo  •  Processos  manuais  são  susceCveis  a  erro  •  Automação  libera  as  pessoas  para  fazerem  o  seu  melhor  

Por  que  automação  de  testes  é  importante  ?  

Page 97: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

•  Testes  manuais  demoram  muito  tempo  •  Processos  manuais  são  susceCveis  a  erro  •  Automação  libera  as  pessoas  para  fazerem  o  seu  melhor  

•  Testes  de  regressão  automa;zados  fornecem  uma  rede  de  segurança  

Por  que  automação  de  testes  é  importante  ?  

Page 98: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

•  Testes  manuais  demoram  muito  tempo  •  Processos  manuais  são  susceCveis  a  erro  •  Automação  libera  as  pessoas  para  fazerem  o  seu  melhor  

•  Testes  de  regressão  automa;zados  fornecem  uma  rede  de  segurança  

•  Testes  automa;zados  dão  feedback  rápido  

Por  que  automação  de  testes  é  importante  ?  

Page 99: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

•  Testes  manuais  demoram  muito  tempo  •  Processos  manuais  são  susceCveis  a  erro  •  Automação  libera  as  pessoas  para  fazerem  o  seu  melhor  

•  Testes  de  regressão  automa;zados  fornecem  uma  rede  de  segurança  

•  Testes  automa;zados  dão  feedback  rápido  •  Testes  são  ó;mas  documentações  

Por  que  automação  de  testes  é  importante  ?  

Page 100: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

A Equipe é responsável pelos testes

Page 101: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Deployment e promoção

Fabricio Leotti | Rodrigo Russo

Page 102: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 103: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 104: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 105: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 106: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 107: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 108: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 109: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 110: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 111: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 112: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 113: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 114: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Promoção  de  pacotes  

Page 115: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deploy  

•  Indisponibilidade  zero  •  Controle  de  acesso  •  Tomada  de  decisão  baseada  em  evidência  

Page 116: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deploy  

h)p://ptgmedia.pearsoncmg.com/images/art_humble2_lowriskware/elementLinks/humble2_fig03.jpg  

•  Canary  Release  

Page 117: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 118: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 119: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 120: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 121: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 122: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 123: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 124: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 125: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 126: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 127: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 128: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 129: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 130: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Estratégias  de  deployment  

Page 131: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Deploy  não  deveria  ser  um  evento!  

Page 132: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Pequenos  saltos  evolu;vos  

Page 133: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Rollback  não  é  a  morte  

Page 134: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Existe  um  caminho  para  longe  do  deploy  manual  

Page 135: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Data Migration

Fabricio Leotti | Rodrigo Russo

Page 136: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

O  problema  

Page 137: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Database  Scrip;ng  

Page 138: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Mudanças  nos  dados  

Page 139: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Mudanças  nos  dados  

Page 140: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Branching  by  Abstrac;on  

Page 141: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Quando  usar?  

Page 142: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Como  usar?  

Page 143: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Como  usar?  

Page 144: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Como  usar?  

Page 145: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Como  usar?  

Page 146: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Como  usar?  

Page 147: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Como  usar?  

Page 148: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Como  usar?  

Page 149: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Feature  Toggle  

h)p://mar;nfowler.com/bliki/FeatureToggle.html  

Page 150: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Feature  Toggle  

Page 151: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Feature  Toggle  

Page 152: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Iniciando com Continuous Delivery

Fabricio Leotti | Rodrigo Russo

Page 153: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Baby  steps  

Page 154: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Baby  steps  

Conhecer  o  panorama  

Page 155: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Baby  steps  

Conhecer  o  panorama  

Entender  as  necessidades  

Page 156: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Baby  steps  

Conhecer  o  panorama  

Entender  as  necessidades  

Grupos  de  estudo  e  discussão  

Page 157: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Coragem  

Page 158: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Coragem  

Quando  algo  der  errado,  não  desista  

Page 159: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Controle  de  versão  

TDD  (mas  sobretudo,  

TESTES)  

Page 160: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

How  To?  Um  ambiente  de  

cada  vez  

CI  Server  

Page 161: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

O  que  você  ganha  com  isso?  

Page 162: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Feedback  rápido  

Page 163: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Lead  ;me  

Page 164: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Mais  Qualidade  

Page 165: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Menor  Risco  

Page 166: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

     40+  equipes                      400+  jobs  do  Jenkins  

         System  Engineers                                                Devtools  

Page 167: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Palestrantes  

fabricio.leo�@gmail.com  

[email protected]  

Page 168: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery

Palestrantes  

fabricio.leo�@gmail.com  

[email protected]  

Page 169: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
Page 170: QConRio 2014 - Tutorial Iniciando Com Continuous Delivery