Successfully reported this slideshow.
Continuous               Deployment             The writing is on the wall                     John Stevenson             ...
Who is John Stevenson●    Lean agile coach              Kanban, system thinking, ToC.●    Atlassian ambassador in UK     ...
My Journey●    Started with RUP, UML & XP●    Fell for Behaviour Driven    Development & kanban●    Learn about a lot of V...
So what is Continuous            Deployment ?©LeanAgileMachineCreative Commons Licence
...its incredibly hard©LeanAgileMachineCreative Commons Licence
...even if you are...©LeanAgileMachineCreative Commons Licence
...hard plus infinity for             everyone else©LeanAgileMachineCreative Commons Licence
Continuous deployment example:©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
Typically:               25 deploys                 per day              per developer©LeanAgileMachineCreative Commons Li...
Forward culture©LeanAgileMachineCreative Commons Licence
So why go for            continuous           deployment?©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
http://blog.thehigheredcio.com/2011/08/31/efficiency-vs-effectiveness/  ©LeanAgileMachine  Creative Commons Licence
Understanding the businessTable stakes /foundations                           DifferentiatorsSpoilers                     ...
©LeanAgileMachineCreative Commons Licence
Benefits©LeanAgileMachineCreative Commons Licence
Where to get started ??©LeanAgileMachineCreative Commons Licence
Is your team / company               ready ?          A case study in pain and dissapointment!©LeanAgileMachineCreative Co...
Change can be expensive©LeanAgileMachineCreative Commons Licence
A long journey of discovery©LeanAgileMachineCreative Commons Licence
Involving the whole business©LeanAgileMachineCreative Commons Licence
Understanding of Value©LeanAgileMachineCreative Commons Licence
The right motivation©LeanAgileMachineCreative Commons Licence
What is the goal?©LeanAgileMachineCreative Commons Licence
Where to start ??©LeanAgileMachineCreative Commons Licence
Visualise how you do IT...©LeanAgileMachineCreative Commons Licence
Kanban – a wall of Facts©LeanAgileMachineCreative Commons Licence
Let the board show issues...                           V1.0.1,                           V1.0.2,                          ...
Value stream mapping   The (often wide) path to getting things done   Activities that get things done effectively©LeanAgil...
Software development©LeanAgileMachineCreative Commons Licence
Software development©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
Include the whole process...   Strategy to shiped   Budgeting   Business sign off   Deployment dry run©LeanAgileMachineCre...
Improve the             foundations©LeanAgileMachineCreative Commons Licence
Monitoring your servers●    Nagios / NagVis●    The Dude●    Microsoft Operations Manager●    Outsource IT...©LeanAgileMac...
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
Sever                           Provisioning©LeanAgileMachineCreative Commons Licence
Its all virtual these days...©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
Virtual Machines   Automate provisioning   Manage sys-admin tasks remotely   Spin up instances into the cloud            ...
Managing VMs is easy©LeanAgileMachineCreative Commons Licence
Automating Virtual Machines©LeanAgileMachineCreative Commons Licence
Vagrant – simple to use  ●      Requirements                  Ruby                  Virtualbox                  Chef / ...
Consistent environments©LeanAgileMachineCreative Commons Licence
Automated server management    Puppet / Chef / Rex ©LeanAgileMachine Creative Commons Licence
Disaster recovery for learning©LeanAgileMachineCreative Commons Licence
Change freezes   The period of time when   the most of the changes   happen   When lots of patches are   done !   A good t...
Deployment           Strategies©LeanAgileMachineCreative Commons Licence
If it hurts,    do it more often©LeanAgileMachineCreative Commons Licence
Segmented deploys   Different customers / different expectations©LeanAgileMachineCreative Commons Licence
Timely deployments   Cost of delay ?   When is the software valuable ?©LeanAgileMachineCreative Commons Licence
Smaller deployments©LeanAgileMachineCreative Commons Licence
Visualise            deployment            strategies??©LeanAgileMachineCreative Commons Licence
Managing your         code©LeanAgileMachineCreative Commons Licence
It compiles, ship it!!                           Ship It   Compile©LeanAgileMachineCreative Commons Licence
Automated builds   Design around common patterns for building       Should have valuable reason for doing something       ...
Simple Maven config<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance...
Local repositories   Nexus        Artefactory                  DVCS©LeanAgileMachineCreative Commons Licence
Build tools – continuous              feedback   Maven 3 Shell   Simple Build Tool       ~Tests©LeanAgileMachineCreative C...
Coding fast feedback                           JavaScript©LeanAgileMachineCreative Commons Licence
Testable code●    TDD / BDD helped devs have a better    appreciation of code that is more testable●    Faster feedback ga...
Behaviour Driven Developent©LeanAgileMachineCreative Commons Licence
Deployable software●    Automated server builds●    Automated deployment scripts / tools●    Automated tests / specificati...
Distributed Versioning●    Smaller repositories              Per component / module              Simpler architecture●  ...
©LeanAgileMachineCreative Commons Licence
Git Workflow©LeanAgileMachineCreative Commons Licence
Git architecure (logical)©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
Change-set history©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
Code reviews                           DVCS push requests©LeanAgileMachineCreative Commons Licence
Central          or     Distributed    Version control©LeanAgileMachineCreative Commons Licence
Centralised team©LeanAgileMachineCreative Commons Licence
Centralised issuesFear of breaking thebuild      unnecessary     branching      delayed commitsOff-line support?Any redu...
Managed Distributed team©LeanAgileMachineCreative Commons Licence
Continuous Integration   What   When   How long   Run specifications / unit tests   Reports   Actions to initiate©LeanAgil...
CI Server basics©LeanAgileMachineCreative Commons Licence
BOfH CI Server   Kicks out checked in code if it fails   Wires up build bunnies to stop you hiding from   broken builds   ...
©LeanAgileMachineCreative Commons Licence
©LeanAgileMachineCreative Commons Licence
CI Server lights©LeanAgileMachineCreative Commons Licence
Ultimate Wallboards©LeanAgileMachineCreative Commons Licence
Issue ticker   Stream of issues flowing       Highlight new features, overdue items, critical       issues, time related n...
©LeanAgileMachineCreative Commons Licence
UltimateWallboard       .com©LeanAgileMachineCreative Commons Licence
More than compiling code...conf/tomcat-users.xml<user username=”bamboo” password=”bamboo” roles=”manager-script,manager-gu...
One click deploy©LeanAgileMachineCreative Commons Licence
Architect for deployment   Modular systems   Simple interfaces   Supported by acceptance tests (specifications)   Automate...
Final thoughts©LeanAgileMachineCreative Commons Licence
Predictability / Cadence                   Smaller tasks                           Understanding you capacity©LeanAgileMac...
Communicate effectively©LeanAgileMachineCreative Commons Licence
Feedback©LeanAgileMachineCreative Commons Licence
How will you make a change ?●    Automated deployments●    Distributed version control●    Refactoring architecture, desig...
Benefits©LeanAgileMachineCreative Commons Licence
Thank you©LeanAgileMachineCreative Commons Licence
Feedback & Refs                 @JR0cket                             John@jr0cket.co.uk   Please note: Very few bulletpoin...
Upcoming SlideShare
Loading in …5
×

Continuous delivery - JAX London 2011

1,117 views

Published on

An overview of the many issues involved in continuous delivery along w

Published in: Technology, News & Politics
  • Be the first to comment

Continuous delivery - JAX London 2011

  1. 1. Continuous Deployment The writing is on the wall John Stevenson Lean Agile Machine©LeanAgileMachineCreative Commons Licence
  2. 2. Who is John Stevenson● Lean agile coach  Kanban, system thinking, ToC.● Atlassian ambassador in UK  Growing communities around JIRA...● Community geek  London Java, Graduate Devs,  London Scala, London Clojurians, etc.● Dabbles with©LeanAgileMachineCreative Commons Licence
  3. 3. My Journey● Started with RUP, UML & XP● Fell for Behaviour Driven Development & kanban● Learn about a lot of Value & Systems thinking● Coached teams & individuals● Sharing experiences with community©LeanAgileMachineCreative Commons Licence
  4. 4. So what is Continuous Deployment ?©LeanAgileMachineCreative Commons Licence
  5. 5. ...its incredibly hard©LeanAgileMachineCreative Commons Licence
  6. 6. ...even if you are...©LeanAgileMachineCreative Commons Licence
  7. 7. ...hard plus infinity for everyone else©LeanAgileMachineCreative Commons Licence
  8. 8. Continuous deployment example:©LeanAgileMachineCreative Commons Licence
  9. 9. ©LeanAgileMachineCreative Commons Licence
  10. 10. Typically: 25 deploys per day per developer©LeanAgileMachineCreative Commons Licence
  11. 11. Forward culture©LeanAgileMachineCreative Commons Licence
  12. 12. So why go for continuous deployment?©LeanAgileMachineCreative Commons Licence
  13. 13. ©LeanAgileMachineCreative Commons Licence
  14. 14. ©LeanAgileMachineCreative Commons Licence
  15. 15. ©LeanAgileMachineCreative Commons Licence
  16. 16. ©LeanAgileMachineCreative Commons Licence
  17. 17. http://blog.thehigheredcio.com/2011/08/31/efficiency-vs-effectiveness/ ©LeanAgileMachine Creative Commons Licence
  18. 18. Understanding the businessTable stakes /foundations DifferentiatorsSpoilers Accelerators©LeanAgileMachineCreative Commons Licence
  19. 19. ©LeanAgileMachineCreative Commons Licence
  20. 20. Benefits©LeanAgileMachineCreative Commons Licence
  21. 21. Where to get started ??©LeanAgileMachineCreative Commons Licence
  22. 22. Is your team / company ready ? A case study in pain and dissapointment!©LeanAgileMachineCreative Commons Licence
  23. 23. Change can be expensive©LeanAgileMachineCreative Commons Licence
  24. 24. A long journey of discovery©LeanAgileMachineCreative Commons Licence
  25. 25. Involving the whole business©LeanAgileMachineCreative Commons Licence
  26. 26. Understanding of Value©LeanAgileMachineCreative Commons Licence
  27. 27. The right motivation©LeanAgileMachineCreative Commons Licence
  28. 28. What is the goal?©LeanAgileMachineCreative Commons Licence
  29. 29. Where to start ??©LeanAgileMachineCreative Commons Licence
  30. 30. Visualise how you do IT...©LeanAgileMachineCreative Commons Licence
  31. 31. Kanban – a wall of Facts©LeanAgileMachineCreative Commons Licence
  32. 32. Let the board show issues... V1.0.1, V1.0.2, V1.0.3, V1.0.4, Build 1209 Build 1221 Build 1301©LeanAgileMachineCreative Commons Licence
  33. 33. Value stream mapping The (often wide) path to getting things done Activities that get things done effectively©LeanAgileMachineCreative Commons Licence
  34. 34. Software development©LeanAgileMachineCreative Commons Licence
  35. 35. Software development©LeanAgileMachineCreative Commons Licence
  36. 36. ©LeanAgileMachineCreative Commons Licence
  37. 37. Include the whole process... Strategy to shiped Budgeting Business sign off Deployment dry run©LeanAgileMachineCreative Commons Licence
  38. 38. Improve the foundations©LeanAgileMachineCreative Commons Licence
  39. 39. Monitoring your servers● Nagios / NagVis● The Dude● Microsoft Operations Manager● Outsource IT...©LeanAgileMachineCreative Commons Licence
  40. 40. ©LeanAgileMachineCreative Commons Licence
  41. 41. ©LeanAgileMachineCreative Commons Licence
  42. 42. ©LeanAgileMachineCreative Commons Licence
  43. 43. ©LeanAgileMachineCreative Commons Licence
  44. 44. ©LeanAgileMachineCreative Commons Licence
  45. 45. Sever Provisioning©LeanAgileMachineCreative Commons Licence
  46. 46. Its all virtual these days...©LeanAgileMachineCreative Commons Licence
  47. 47. ©LeanAgileMachineCreative Commons Licence
  48. 48. Virtual Machines Automate provisioning Manage sys-admin tasks remotely Spin up instances into the cloud  Using public cloud when your private cloud is maxed out Off the shelf pre-configured servers©LeanAgileMachineCreative Commons Licence
  49. 49. Managing VMs is easy©LeanAgileMachineCreative Commons Licence
  50. 50. Automating Virtual Machines©LeanAgileMachineCreative Commons Licence
  51. 51. Vagrant – simple to use ● Requirements  Ruby  Virtualbox  Chef / Puppet for other VM systems©LeanAgileMachineCreative Commons Licence
  52. 52. Consistent environments©LeanAgileMachineCreative Commons Licence
  53. 53. Automated server management Puppet / Chef / Rex ©LeanAgileMachine Creative Commons Licence
  54. 54. Disaster recovery for learning©LeanAgileMachineCreative Commons Licence
  55. 55. Change freezes The period of time when the most of the changes happen When lots of patches are done ! A good time to learn what is important !©LeanAgileMachineCreative Commons Licence
  56. 56. Deployment Strategies©LeanAgileMachineCreative Commons Licence
  57. 57. If it hurts, do it more often©LeanAgileMachineCreative Commons Licence
  58. 58. Segmented deploys Different customers / different expectations©LeanAgileMachineCreative Commons Licence
  59. 59. Timely deployments Cost of delay ? When is the software valuable ?©LeanAgileMachineCreative Commons Licence
  60. 60. Smaller deployments©LeanAgileMachineCreative Commons Licence
  61. 61. Visualise deployment strategies??©LeanAgileMachineCreative Commons Licence
  62. 62. Managing your code©LeanAgileMachineCreative Commons Licence
  63. 63. It compiles, ship it!! Ship It Compile©LeanAgileMachineCreative Commons Licence
  64. 64. Automated builds Design around common patterns for building Should have valuable reason for doing something different SBT©LeanAgileMachineCreative Commons Licence
  65. 65. Simple Maven config<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId><packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Maven Quick Start Archetype</name><url>http://maven.apache.org</url><dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency></dependencies></project>©LeanAgileMachineCreative Commons Licence
  66. 66. Local repositories Nexus Artefactory DVCS©LeanAgileMachineCreative Commons Licence
  67. 67. Build tools – continuous feedback Maven 3 Shell Simple Build Tool ~Tests©LeanAgileMachineCreative Commons Licence
  68. 68. Coding fast feedback JavaScript©LeanAgileMachineCreative Commons Licence
  69. 69. Testable code● TDD / BDD helped devs have a better appreciation of code that is more testable● Faster feedback gave devs (and team) better understanding of what is needed● Resolve issues quickly, prevent many from happening at all●©LeanAgileMachineCreative Commons Licence
  70. 70. Behaviour Driven Developent©LeanAgileMachineCreative Commons Licence
  71. 71. Deployable software● Automated server builds● Automated deployment scripts / tools● Automated tests / specifications● Effective business review● Faster feedback● Resolve issues quickly● Deploy when valuable©LeanAgileMachineCreative Commons Licence
  72. 72. Distributed Versioning● Smaller repositories  Per component / module  Simpler architecture● Manage branching easier with pull requests  A pull system is more effective than central push● Different repos for different purposes  Repo for deployment, trunk, CI server©LeanAgileMachineCreative Commons Licence
  73. 73. ©LeanAgileMachineCreative Commons Licence
  74. 74. Git Workflow©LeanAgileMachineCreative Commons Licence
  75. 75. Git architecure (logical)©LeanAgileMachineCreative Commons Licence
  76. 76. ©LeanAgileMachineCreative Commons Licence
  77. 77. Change-set history©LeanAgileMachineCreative Commons Licence
  78. 78. ©LeanAgileMachineCreative Commons Licence
  79. 79. Code reviews DVCS push requests©LeanAgileMachineCreative Commons Licence
  80. 80. Central or Distributed Version control©LeanAgileMachineCreative Commons Licence
  81. 81. Centralised team©LeanAgileMachineCreative Commons Licence
  82. 82. Centralised issuesFear of breaking thebuild  unnecessary branching  delayed commitsOff-line support?Any redundancy inversioning server?©LeanAgileMachineCreative Commons Licence
  83. 83. Managed Distributed team©LeanAgileMachineCreative Commons Licence
  84. 84. Continuous Integration What When How long Run specifications / unit tests Reports Actions to initiate©LeanAgileMachineCreative Commons Licence
  85. 85. CI Server basics©LeanAgileMachineCreative Commons Licence
  86. 86. BOfH CI Server Kicks out checked in code if it fails Wires up build bunnies to stop you hiding from broken builds Wall of shame for breaking builds Top ten worst programmers©LeanAgileMachineCreative Commons Licence
  87. 87. ©LeanAgileMachineCreative Commons Licence
  88. 88. ©LeanAgileMachineCreative Commons Licence
  89. 89. CI Server lights©LeanAgileMachineCreative Commons Licence
  90. 90. Ultimate Wallboards©LeanAgileMachineCreative Commons Licence
  91. 91. Issue ticker Stream of issues flowing Highlight new features, overdue items, critical issues, time related news, etc©LeanAgileMachineCreative Commons Licence
  92. 92. ©LeanAgileMachineCreative Commons Licence
  93. 93. UltimateWallboard .com©LeanAgileMachineCreative Commons Licence
  94. 94. More than compiling code...conf/tomcat-users.xml<user username=”bamboo” password=”bamboo” roles=”manager-script,manager-gui”/> ©LeanAgileMachine Creative Commons Licence
  95. 95. One click deploy©LeanAgileMachineCreative Commons Licence
  96. 96. Architect for deployment Modular systems Simple interfaces Supported by acceptance tests (specifications) Automate low value tasks©LeanAgileMachineCreative Commons Licence
  97. 97. Final thoughts©LeanAgileMachineCreative Commons Licence
  98. 98. Predictability / Cadence Smaller tasks Understanding you capacity©LeanAgileMachineCreative Commons Licence
  99. 99. Communicate effectively©LeanAgileMachineCreative Commons Licence
  100. 100. Feedback©LeanAgileMachineCreative Commons Licence
  101. 101. How will you make a change ?● Automated deployments● Distributed version control● Refactoring architecture, design & code● Modularity in design● Migrating from technical debt● Shouting...©LeanAgileMachineCreative Commons Licence
  102. 102. Benefits©LeanAgileMachineCreative Commons Licence
  103. 103. Thank you©LeanAgileMachineCreative Commons Licence
  104. 104. Feedback & Refs @JR0cket John@jr0cket.co.uk Please note: Very few bulletpoints were hurt during the making of this presentation©LeanAgileMachineCreative Commons Licence

×