Adopting Continuous
Delivery
Adjusting your Architecture

RACHEL LAYCOCK

http://thoughtworks.com
@rachellaycock
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/adopting-continuous-delivery
...
Presented at QCon San Francisco
www.qconsf.com
Purpose of QCon
- to empower software development by facilitating the sprea...
Continuous Delivery
Our highest priority is to satisfy
the customer through early and
continuous delivery of
valuable soft...
You can’t have
Continuous Delivery
Once upon a time I was
a happy developer...
I thought I knew what
Continuous Delivery was
I was even doing it on my
projects
Then one day...
...a client wanted
Continuous Delivery
...and we said “sure”
...but 3 months later they
were still asking...
“Where is my
Continuous Delivery?”
So what went wrong?
Their code base was
huge and complex
I learned something from
that...
...something I will share with
you
1. Conway’s Law is THE LAW
2. Keep things small
3. Evolve your architecture
agile 101
"Agile" team
Analysis + Design

Centralized QA

IT Operations

Development

Integration + QA

Release and operat...
continuous delivery
Customer

Delivery team

Constant flow of new features into production

software always production-read...
releasing frequently
feedback from users
reduce risk of release

John Allspaw: “Ops Metametrics” http://slidesha.re/dsSZIr
releasing frequently
feedback from users
reduce risk of release
real project progress
CD is BIG!
Organisational Alignment

Release Management

Architecture

Quality
Assurance

Continuous
Integration

Configura...
Stuff that's hard to
change
?
1. Conway’s Law is THE LAW
Conway's Law: "organisations which design
systems ... are constrained to designs which
are copies of the communication str...
Fred Brooks (mythical man-month): “Because the design
that occurs first is almost never the best possible, the
prevailing s...
The wrong side of the law
Some time passed...
Ball of Mud
Dependency Hell
dependencies
Reports engine

Framework

Settlement
engine

CDS pricing
library

Pricing engine

Portfolio
management
appli...
Brownfield
untangling
strangler pattern

http://paulhammant.com/2013/07/14/legacy-application-strangulation-case-studies/
feature toggles

http://martinfowler.com/bliki/FeatureToggle.html
branch by abstraction

http://continuousdelivery.com/wp-content/uploads/2011/05/branch_by_abstraction.png
The law on your side
***.com.au


***.com.us

Web


Services


Data


***.com.it
2. Keep things small
What is a 
Micro Service?

http://www.infoq.com/presentations/Micro-Services
The monolith
backlash
Simple and lightweight
Why we want them?
Things to consider...
Communication
Monitoring
Testing
Scripting
Replaceable
Services
3. Evolve your architecture
Evolutionary Architecture
& Emergent Design
Greenfield
Principles of
Evolutionary Architecture
1. Last Responsible Moment
2. Architect for Evolvability
3. Postel’s Law
4. Archit...
1. Last Responsible Moment
2. Architect for Evolvability
3. Postel’s Law
4. Architect for Testability
5. Conway’s Law
1. Conway’s Law is THE LAW
2. Keep things small
3. Evolve your architecture
Architect for Build,
Run and Deploy
Thank you!
RACHEL LAYCOCK

http://thoughtworks.com
@rachellaycock
?
Resources
Books:
• Continuous Delivery - Jez Humble, Dave Farley
• Working Effectively with Legacy Code - Michael Feathers...
Watch the video with slide synchronization on
InfoQ.com!
http://www.infoq.com/presentations/adoptingcontinuous-delivery
Adopting Continuous Delivery: Adjusting your Architecture
Prochain SlideShare
Chargement dans…5
×

Adopting Continuous Delivery: Adjusting your Architecture

1 859 vues

Publié le

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.

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

×