Continous delivery

1,337 views

Published on

Published in: Technology, Business
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,337
On SlideShare
0
From Embeds
0
Number of Embeds
47
Actions
Shares
0
Downloads
29
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Continous delivery

  1. 1. Andrzej GrzesikMonday, July 2, 12
  2. 2. CONTINOUS DELIVERY jak to ugryźć? Andrzej GrzesikMonday, July 2, 12
  3. 3. GREAT BOOKS!Monday, July 2, 12
  4. 4. 3.6% prelegentów jest zMonday, July 2, 12
  5. 5. ABOUT:ME Present PastMonday, July 2, 12
  6. 6. I HATE COMPUTERS disclaimerMonday, July 2, 12
  7. 7. QUESTIONS? ask them right away!Monday, July 2, 12
  8. 8. So...Monday, July 2, 12
  9. 9. because is more fun thanMonday, July 2, 12
  10. 10. what is.. done?Monday, July 2, 12
  11. 11. #define doneMonday, July 2, 12
  12. 12. What is done?Monday, July 2, 12
  13. 13. What is done? CodedMonday, July 2, 12
  14. 14. What is done? Coded Checked-inMonday, July 2, 12
  15. 15. What is done? Coded Checked-in ReviewedMonday, July 2, 12
  16. 16. What is done? Coded Checked-in Reviewed BuiltMonday, July 2, 12
  17. 17. What is done? Coded Checked-in Reviewed Built TestedMonday, July 2, 12
  18. 18. What is done? Coded Checked-in Reviewed Built Tested DemoedMonday, July 2, 12
  19. 19. not really :-)Monday, July 2, 12
  20. 20. #redefine doneMonday, July 2, 12
  21. 21. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.Monday, July 2, 12
  22. 22. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Agile ManifestoMonday, July 2, 12
  23. 23. it’s not ready till it’s deployed done === releasedMonday, July 2, 12
  24. 24. feedback!Monday, July 2, 12
  25. 25. Eric Ries, The Lean Startup build& create hypothesis ideas& deploy& deliver minimum viable product get feedback learn& measure& (repeat) data&Monday, July 2, 12
  26. 26. If we can reduce the time between major iterations We can increase our odds of success Eric Ries, Lean StartupMonday, July 2, 12
  27. 27. If we can reduce the time between major iterations We can increase our odds of success Eric Ries, Lean StartupMonday, July 2, 12
  28. 28. How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis? Mary and Tom Poppendieck, Implementing Lean Software DevelopmentMonday, July 2, 12
  29. 29. How long would it take your organization to deploy a change that involved just one single line of code? Do you do this on a repeatable, reliable basis? Mary and Tom Poppendieck, Implementing Lean Software DevelopmentMonday, July 2, 12
  30. 30. repeatableMonday, July 2, 12
  31. 31. HOW?!Monday, July 2, 12
  32. 32. entreth: The Deployment PipelineMonday, July 2, 12
  33. 33. The Deployment PipelineMonday, July 2, 12
  34. 34. The Deployment Pipeline compileMonday, July 2, 12
  35. 35. The Deployment Pipeline compile unit testMonday, July 2, 12
  36. 36. The Deployment Pipeline compile unit test packageMonday, July 2, 12
  37. 37. The Deployment Pipeline compile unit test package artifact repositoryMonday, July 2, 12
  38. 38. The Deployment Pipeline compile Acceptance unit test testing package artifact repositoryMonday, July 2, 12
  39. 39. The Deployment Pipeline compile Acceptance Capacity unit test testing testing package artifact repositoryMonday, July 2, 12
  40. 40. The Deployment Pipeline compile Acceptance Capacity Manual unit test testing testing testing package artifact repositoryMonday, July 2, 12
  41. 41. The Deployment Pipeline compile Acceptance Capacity Manual unit test testing Release testing testing package artifact repositoryMonday, July 2, 12
  42. 42. build only once!Monday, July 2, 12
  43. 43. The Deployment PipelineMonday, July 2, 12
  44. 44. The Deployment Pipeline compile Acceptance Capacity unit test testing testing package artifact repositoryMonday, July 2, 12
  45. 45. The Deployment Pipeline compile Acceptance Capacity Manual unit test testing testing testing package artifact repositoryMonday, July 2, 12
  46. 46. The Deployment Pipeline compile Acceptance Capacity Manual unit test testing Release testing testing package artifact repositoryMonday, July 2, 12
  47. 47. The Deploymentfear! Pipeline compile Acceptance Capacity Manual unit test testing Release testing testing package artifact repositoryMonday, July 2, 12
  48. 48. automate everything! (almost)Monday, July 2, 12
  49. 49. automate everything!Monday, July 2, 12
  50. 50. and?Monday, July 2, 12
  51. 51. well, it’s BIGMonday, July 2, 12
  52. 52. all code is production readyMonday, July 2, 12
  53. 53. every version is a Release CandidateMonday, July 2, 12
  54. 54. Pro tip: --versionMonday, July 2, 12
  55. 55. antipatternsMonday, July 2, 12
  56. 56. deploying manually is evil!Monday, July 2, 12
  57. 57. error-prone http://www.flickr.com/photos/aaronjacobs/64368770/Monday, July 2, 12
  58. 58. always different repeatableMonday, July 2, 12
  59. 59. impossible to testMonday, July 2, 12
  60. 60. voodoo http://flickr.com/photos/35541100@N00/2486381001/Monday, July 2, 12
  61. 61. 2 AM deploys http://www.flickr.com/photos/dhdesign/1096464615/sizes/z/in/photostream/Monday, July 2, 12
  62. 62. the “deploy” teamMonday, July 2, 12
  63. 63. deploying rarely/late symptomps: “alpha”, “beta”, “gold”Monday, July 2, 12
  64. 64. Monday, July 2, 12
  65. 65. deploying rarely late first contact with reality creates unrealistic assumptions tested.. in devMonday, July 2, 12
  66. 66. do you avoid deploys?Monday, July 2, 12
  67. 67. deploy each? year quarter week ...Monday, July 2, 12
  68. 68. if it hurts do it more often! practice, practice, practiceMonday, July 2, 12
  69. 69. incremental, frequent releases reduce riskMonday, July 2, 12
  70. 70. provide dataMonday, July 2, 12
  71. 71. give rollback pointsMonday, July 2, 12
  72. 72. some stats Facebook - deploy every 10 minutes Netflix Etsy - 50-60 deploys/day last project - 1374 commits, 1057 deployments, <8 monthsMonday, July 2, 12
  73. 73. Monday, July 2, 12
  74. 74. environmentsMonday, July 2, 12
  75. 75. If I erased ALL your production machines, how long would you need to be back up?Monday, July 2, 12
  76. 76. well, code is in Git mercurial, subversion, ClearCase, whathaveyouMonday, July 2, 12
  77. 77. Imagine: http://www.flickr.com/photos/roadhunter/68017745/Monday, July 2, 12
  78. 78. infrastructure and configuration is just as importantMonday, July 2, 12
  79. 79. version it! (puppet, chef, etc)Monday, July 2, 12
  80. 80. Befriend some admins :-)Monday, July 2, 12
  81. 81. and version everythingMonday, July 2, 12
  82. 82. manual configuration of environments not repeatable privileged team of “magicians” slight differences create errors hard to version doesn’t scaleMonday, July 2, 12
  83. 83. rollback, anyone?Monday, July 2, 12
  84. 84. trucksMonday, July 2, 12
  85. 85. Monday, July 2, 12
  86. 86. meanwhile, in the real worldMonday, July 2, 12
  87. 87. deploys how do I?Monday, July 2, 12
  88. 88. deploys blue-green canary emergency fixesMonday, July 2, 12
  89. 89. bluegreen trafficMonday, July 2, 12
  90. 90. full bluegreen is costly but great for availabilityMonday, July 2, 12
  91. 91. canaryMonday, July 2, 12
  92. 92. Monday, July 2, 12
  93. 93. emergency fixesMonday, July 2, 12
  94. 94. emergency fixes go the same wayMonday, July 2, 12
  95. 95. DON’T break rulesMonday, July 2, 12
  96. 96. caveats!Monday, July 2, 12
  97. 97. caveats State Configuration vs JEEMonday, July 2, 12
  98. 98. caveat: datastores ideally: each app has it’s ownMonday, July 2, 12
  99. 99. caveat: datastores really: must be scripted migrations scripts + from scratch have tests talking to the db test each datastoreMonday, July 2, 12
  100. 100. maybe event sourcing?Monday, July 2, 12
  101. 101. branchingMonday, July 2, 12
  102. 102. Monday, July 2, 12
  103. 103. if your system looks like thatMonday, July 2, 12
  104. 104. cut!Monday, July 2, 12
  105. 105. Monday, July 2, 12
  106. 106. have integration tests have a “test” systemMonday, July 2, 12
  107. 107. desktops LOVE your autoupdate build-in version checking and inform userMonday, July 2, 12
  108. 108. desktops DoMonday, July 2, 12
  109. 109. desktops orMonday, July 2, 12
  110. 110. in practice modules, modules, modules pre-tested commits rock.. a bit dvcs rock a lot! VMs rock a lot^2!Monday, July 2, 12
  111. 111. there are toolsMonday, July 2, 12
  112. 112. Go ($$$)Monday, July 2, 12
  113. 113. Monday, July 2, 12
  114. 114. is awesomeMonday, July 2, 12
  115. 115. +Monday, July 2, 12
  116. 116. resources http://continuousdelivery.com http://lmgtfy.com/?q=continuous+deliveryMonday, July 2, 12
  117. 117. kthxbye!Monday, July 2, 12

×