Adopting Continuous Delivery: Adjusting your Architecture

1,033
-1

Published on

Video and slides synchronized, mp3 and slide download available at URL http://bit.ly/Kfuwmc.

Rachel Laycock advises on designing systems for rapid deployment, avoiding delivering pitfalls by using micro services and evolutionary architecture. Filmed at qconsf.com.

Rachel Laycock works for ThoughtWorks as a Lead Consultant with 10 years of experience in systems development. She has worked on a wide range of technologies and the integration of many disparate systems. Since working at ThoughtWorks, Rachel has coached teams on Agile and Continuous Delivery technical practices and has played the role of coach, trainer, technical lead, architect, and developer.

Published in: Technology, News & Politics

Adopting Continuous Delivery: Adjusting your Architecture

  1. 1. Adopting Continuous Delivery Adjusting your Architecture RACHEL LAYCOCK http://thoughtworks.com @rachellaycock
  2. 2. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /adopting-continuous-delivery InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • News 15-20 / week • Articles 3-4 / week • Presentations (videos) 12-15 / week • Interviews 2-3 / week • Books 1 / month
  3. 3. Presented at QCon San Francisco www.qconsf.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  4. 4. Continuous Delivery Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  5. 5. You can’t have Continuous Delivery
  6. 6. Once upon a time I was a happy developer...
  7. 7. I thought I knew what Continuous Delivery was
  8. 8. I was even doing it on my projects
  9. 9. Then one day...
  10. 10. ...a client wanted Continuous Delivery
  11. 11. ...and we said “sure”
  12. 12. ...but 3 months later they were still asking...
  13. 13. “Where is my Continuous Delivery?”
  14. 14. So what went wrong?
  15. 15. Their code base was huge and complex
  16. 16. I learned something from that...
  17. 17. ...something I will share with you
  18. 18. 1. Conway’s Law is THE LAW 2. Keep things small 3. Evolve your architecture
  19. 19. agile 101 "Agile" team Analysis + Design Centralized QA IT Operations Development Integration + QA Release and operation Testing + Showcase Customer Iteration 0 1 2 3 4 The "last mile"
  20. 20. continuous delivery Customer Delivery team Constant flow of new features into production software always production-ready releases tied to business needs, not operational constraints
  21. 21. releasing frequently feedback from users reduce risk of release John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr
  22. 22. releasing frequently feedback from users reduce risk of release real project progress
  23. 23. CD is BIG! Organisational Alignment Release Management Architecture Quality Assurance Continuous Integration Configuration Management Data Management Environments & Deployment
  24. 24. Stuff that's hard to change
  25. 25. ?
  26. 26. 1. Conway’s Law is THE LAW
  27. 27. Conway's Law: "organisations which design systems ... are constrained to designs which are copies of the communication structures of these organisations"
  28. 28. Fred Brooks (mythical man-month): “Because the design that occurs first is almost never the best possible, the prevailing system concept may need to change. Therefore, flexibility of organisation is important to effective design.”
  29. 29. The wrong side of the law
  30. 30. Some time passed...
  31. 31. Ball of Mud
  32. 32. Dependency Hell
  33. 33. dependencies Reports engine Framework Settlement engine CDS pricing library Pricing engine Portfolio management application
  34. 34. Brownfield
  35. 35. untangling
  36. 36. strangler pattern http://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/
  37. 37. feature toggles http://martinfowler.com/bliki/FeatureToggle.html
  38. 38. branch by abstraction http://continuousdelivery.com/wp-content/uploads/2011/05/branch_by_abstraction.png
  39. 39. The law on your side
  40. 40. ***.com.au ***.com.us Web Services Data ***.com.it
  41. 41. 2. Keep things small
  42. 42. What is a Micro Service? http://www.infoq.com/presentations/Micro-Services
  43. 43. The monolith backlash
  44. 44. Simple and lightweight
  45. 45. Why we want them?
  46. 46. Things to consider...
  47. 47. Communication
  48. 48. Monitoring
  49. 49. Testing
  50. 50. Scripting
  51. 51. Replaceable Services
  52. 52. 3. Evolve your architecture
  53. 53. Evolutionary Architecture & Emergent Design
  54. 54. Greenfield
  55. 55. Principles of Evolutionary Architecture 1. Last Responsible Moment 2. Architect for Evolvability 3. Postel’s Law 4. Architect for Testability 5. Conway’s Law
  56. 56. 1. Last Responsible Moment
  57. 57. 2. Architect for Evolvability
  58. 58. 3. Postel’s Law
  59. 59. 4. Architect for Testability
  60. 60. 5. Conway’s Law
  61. 61. 1. Conway’s Law is THE LAW 2. Keep things small 3. Evolve your architecture
  62. 62. Architect for Build, Run and Deploy
  63. 63. Thank you! RACHEL LAYCOCK http://thoughtworks.com @rachellaycock
  64. 64. ?
  65. 65. Resources Books: • Continuous Delivery - Jez Humble, Dave Farley • Working Effectively with Legacy Code - Michael Feathers • Release It - Michael Nygard • Domain Driven Design - Eric Evans Articles/Blogs: • Branch by Abstraction - Jez Humble: http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/ • Branch by Abstraction - Paul Hammant: http://paulhammant.com/blog/branch_by_abstraction.html/ • Feature Toggles - Martin Fowler: http://martinfowler.com/bliki/FeatureToggle.html • Evolutionary Architecture - Neal Ford: http://www.ibm.com/developerworks/views/java/libraryview.jsp? search_by=evolutionary+architecture+emergent+design: • Ball of Mud: http://www.laputan.org/mud/ • Deming - http://leanandkanban.wordpress.com/2011/07/15/demings-14-points/ • Coding Horror: http://www.codinghorror.com/blog/2007/11/the-big-ball-of-mud-and-other-architecturaldisasters.html • Who needs an architect: http://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf • Evolutionary Architecture and Emergent Design: http://www.ibm.com/developerworks/java/library/j-eaed1/ index.html • Strangler Application: http://martinfowler.com/bliki/StranglerApplication.html • Micro services: http://www.infoq.com/presentations/Micro-Services
  66. 66. Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations/adoptingcontinuous-delivery

×