towards a responsive business - devops meetup melbourne 2013

52
TOWARDS A RESPONSIVE BUSINESS The Developer Way

Upload: nigel-fernandes

Post on 21-Jan-2015

218 views

Category:

Technology


0 download

DESCRIPTION

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".

TRANSCRIPT

  • 1. TOWARDSARESPONSIVEBUSINESS TheDeveloperWay

2. @nigelfds github.com/nigelfds 3. Understanding the problems 4. We make a change in one place and somewhere, something else breaks 5. It feels like it takes a long time to complete what should be a simple thing 6. Feels like all we have done are patches, hacks and short term tactical xes to meet deadlines 7. Part of any problem is: people & process 8. Im going to focus on the technical parts 9. www.laputan.org 10. 1. Architecture 2. Automations 3. Quality Well talk about getting responsive in 3 levels and what we learnt along the way. 11. 1. Architecture 12. Kitchen Sink 13. Legacy systems grow arms and legsbecause the world needs to continue 14. Different speeds of evolution 15. Factoring systems by Value Stream 16. You arent going to get it right at rst go 17. Using WebAPI and Areas to build services within a service 18. Eliminating batch processes is hard 19. 2. Automations 20. Idobelievethatcomplexityistheenemy. Un7lwebe9erunderstandcomplexity,our chancesofbuildingbe9erITsystemsis limited.Therstthingwemustunderstand aboutcomplexityisthatnotallcomplexityis equal.Andthecomplexityonwhichmost peoplefocusisprobablytheleastcomplex complexityofall. h4p://simplearchitectures.blogspot.com/2009/03/cancer-of-complexity.html RogerSessions 21. AccidentalcomplexityvsPlannedcomplexity 22. Dealing with artifacts 23. Managing Pipelines 24. MakeitVisible! 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. Drilling down... 27. to package our apps 28. Whats inside the nuget package? Puppetmanifests Environment ConguraOonsasJSON InstallScriptin Powershell ZipedupapplicaOon 29. Proget to manage the packages for the environments Dev Feed Test Feed Staging Feed Production Feed 30. Push button deployment 1.Deployv0.1.7 tostaging 3.Installversionv.0.1.7 4.ProgetStagingFeed, giveme,v0.1.7 6.Unpacksthe boxand runstheinstall script 2.PowershelloverwinRM 5.Hereyougo! Target Server 31. Checksfor thecorrect environment Usestheenvironment conguraOonwith puppettocongurethe environment IISconguraOon, Folderpermissions etc 32. 3. Quality 33. Testing deployment scripts with Canary packages 34. Guarantees at every every stage in pipeline UnitTested IntegraOonTested BlackBoxTested 35. Status Checks 36. End-to-End tests 37. 5 Months +scope 9 weeks +scope 4 weeks +scope 38. ApplicaOon Environment Infrastructure 39. Build Farm S3Bucket NigelsLaptop Puppet&AWS scripts Cloud FormaOon APIs Packaged Scripts Create Machine SelfCongured Behindthescenes 40. Repeatable&ConOnuous 41. App Server Cloud FormaOon APIs Behindthescenes GO Server SelfCongured Puppet&AWS scripts 42. 1. Architecture 2. Automations 3. Quality Recap 43. Thank you.