Towards a responsive business, the developer way

468 views

Published on

Presentation at DDD Melbourne in July 2013 by Venetia Bird and Nigel Fernandes. The talk focuses on dealing with legacy systems and complexity. They discuss the developer techniques to evolving an architecture thats better able to handle business evolution.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Towards a responsive business, the developer way

  1. 1. TOWARDS A RESPONSIVE BUSINESS The Developer Way
  2. 2. @nigelfds github.com/nigelfds
  3. 3. @venetiabird github.com/venetiabird
  4. 4. Understanding the problems
  5. 5. “We make a change in one place and somewhere, something else breaks”
  6. 6. “It feels like it takes a long time to complete what should be a simple thing”
  7. 7. “Feels like all we have done are patches, hacks and short term tactical fixes to meet deadlines”
  8. 8. Part of any problem is: people & process
  9. 9. We’re going to focus on the technical parts
  10. 10. www.laputan.org
  11. 11. 1. Legacy Systems 2. Kitchen Sink Applications 3. Monolithic Applications 4. Complexity We’ll talk about dealing with 4 things: …and what we learnt along the way.
  12. 12. 1. Legacy Systems
  13. 13. Strangler Pattern
  14. 14. Legacy systems grow arms and legs… …because the world needs to continue
  15. 15. 2. Kitchen Sink Applications
  16. 16. Kitchen Sink
  17. 17. Different speeds of evolution
  18. 18. Factoring systems by Value Stream
  19. 19. You aren’t going to get it right at first go
  20. 20. Using WebAPI and Areas to build services within a service
  21. 21. 3. Monolithic Applications
  22. 22. Eliminating batch processes is hard
  23. 23. 4. Complexity
  24. 24. “I do believe that complexity is the enemy. Until we better understand complexity, our chances of building better 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.” http://simplearchitectures.blogspot.com/2009/03/cancer-of-complexity.html Roger Sessions
  25. 25. Complexity
  26. 26. Accidental complexity vs Planned complexity
  27. 27. Dealing with artifacts…
  28. 28. Managing Pipelines
  29. 29. Make it Visible!
  30. 30. Drilling down...
  31. 31. to package our apps
  32. 32. What’s inside the nuget package? Puppet manifests Environment Configurations as JSON Install Script in Powershell Zip’ed up application
  33. 33. Proget to manage the packages for the environments Dev Feed Test Feed Staging Feed Production Feed
  34. 34. Push button deployment 1. Hey Bamboo, deploy v0.1.7 to staging 3. Hey Choclatey, install version 10 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! Staging Server
  35. 35. Checks for the correct environment Uses the environment configuration with puppet to configure the environment IIS configuration, Folder permissions etc
  36. 36. What’s interesting!!? Packages shipped with ability configure their environment
  37. 37. Testing deployment scripts… …with Canary packages
  38. 38. Guarantees at every every stage in pipeline
  39. 39. Unit Testing
  40. 40. Integration Testing
  41. 41. Systems
  42. 42. The test pyramid.
  43. 43. Status Checks
  44. 44. 5 Months +scope 9 weeks +scope 4 weeks +scope
  45. 45. Thank you.

×