Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Towards a responsive business - DevOps MeetUp Melbourne 2013


Published on

Over the last year, a team of software engineers have been quietly revamping the architecture, codebase and development practises at World Vision Australia. They have been using the principles of continuous delivery to deliver a SOA based IT platform for a non-profit who's business genuinely has a world wide impact. In the span of 6 months they have delivered several drops to production through a push button deployment process.

We use Nuget, ProGet, WinRM, Chocolately, NSpec, Jasmine/Karma/PhantomJS and SpecFlow/Selenium/WebDriver. We test our deployment scripts with Canary deployments orchestrated through PowerShell. More interestingly we're using Puppet and Node.js to drive the idea of shipping products intended for single tenant architectures and the principle of "the machine as the artefact of the pipeline".

Published in: Technology
  • i like how you added alot of information
    Are you sure you want to  Yes  No
    Your message goes here

Towards a responsive business - DevOps MeetUp Melbourne 2013

  1. 1. TOWARDS  A  RESPONSIVE  BUSINESS   The  Developer  Way  
  2. 2. @nigelfds
  3. 3. Understanding the problems
  4. 4. “We make a change in one place and somewhere, something else breaks”
  5. 5. “It feels like it takes a long time to complete what should be a simple thing”
  6. 6. “Feels like all we have done are patches, hacks and short term tactical fixes to meet deadlines”
  7. 7. Part of any problem is: people & process
  8. 8. I’m going to focus on the technical parts
  9. 9.  
  10. 10. 1.  Architecture 2.  Automations 3.  Quality We’ll talk about getting responsive in 3 levels …and what we learnt along the way.
  11. 11. 1. Architecture
  12. 12. Kitchen Sink
  13. 13. Legacy systems grow arms and legs… …because the world needs to continue
  14. 14. Different speeds of evolution
  15. 15. Factoring systems by Value Stream
  16. 16. You aren’t going to get it right at first go
  17. 17. Using WebAPI and Areas to build services within a service
  18. 18. Eliminating batch processes is hard
  19. 19. 2. Automations
  20. 20. “I  do  believe  that  complexity  is  the  enemy.   Un7l  we  be9er  understand  complexity,  our   chances  of  building  be9er  IT  systems  is   limited.  The  first  thing  we  must  understand   about  complexity  is  that  not  all  complexity  is   equal.  And  the  complexity  on  which  most   people  focus  is  probably  the  least  complex   complexity  of  all.”   h4p://­‐of-­‐complexity.html   Roger  Sessions  
  21. 21. Accidental  complexity  vs  Planned  complexity  
  22. 22. Dealing with artifacts…
  23. 23. Managing Pipelines
  24. 24. Make  it  Visible!  
  25. 25. Raw Materials i.e GIT Factory i.e CI Server Warehouse i.e ProGet /Nuget Distribution Network i.e. Powershell etc. Retailer i.e. Target Environment Use an Analogy
  26. 26. Drilling down...
  27. 27. to package our apps
  28. 28. What’s inside the nuget package? Puppet  manifests     Environment   ConfiguraOons  as  JSON     Install  Script  in   Powershell     Zip’ed  up  applicaOon  
  29. 29. Proget to manage the packages for the environments Dev Feed Test Feed Staging Feed Production Feed
  30. 30. Push button deployment 1.  Deploy  v0.1.7   to  staging   3.  Install  version  v.0.1.7   4.  Proget  Staging  Feed,   give  me,  v0.1.7   6.  Unpacks  the   box  and     runs  the  install   script   2.  Powershell  over  winRM   5.  Here  you  go!   Target Server
  31. 31. Checks  for   the  correct   environment   Uses  the  environment   configuraOon  with   puppet  to  configure  the   environment   IIS  configuraOon,   Folder  permissions    etc  
  32. 32. 3. Quality
  33. 33. Testing deployment scripts… …with Canary packages
  34. 34. Guarantees at every every stage in pipeline ü Unit  Tested   ü IntegraOon  Tested     ü BlackBox  Tested  
  35. 35. Status Checks
  36. 36. End-to-End tests
  37. 37. 5 Months +scope 9 weeks +scope 4 weeks +scope
  38. 38. ApplicaOon   Environment   Infrastructure  
  39. 39. Build   Farm   S3  Bucket   Nigel’s  Laptop   Puppet  &  AWS     scripts   Cloud   FormaOon   APIs   Packaged   Scripts   Create     Machine   Self  Configured   Behind  the  scenes  
  40. 40. Repeatable  &  ConOnuous    
  41. 41. App   Server   Cloud   FormaOon   APIs   Behind  the  scenes   GO   Server   Self  Configured   Puppet  &  AWS     scripts  
  42. 42. 1.  Architecture 2.  Automations 3.  Quality Recap
  43. 43. Thank you.