Your SlideShare is downloading. ×
Designing for rapid release - Crash & Burn 2012
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Designing for rapid release - Crash & Burn 2012

2,484

Published on

This talk focuses on the kinds of constraints we should consider when evolving their architecture of our systems in order to enable rapid, frequent release. So much of the conversation about …

This talk focuses on the kinds of constraints we should consider when evolving their architecture of our systems in order to enable rapid, frequent release. So much of the conversation about Continuous Delivery focuses on the design of build pipelines, or the nuts and bolts of CI and infrastructure automation.

But often the biggest constraint in being able to incrementally roll out new features are the problems in the design of the system itself. I’ll be pulling together a series of patterns that will help you identify what to look for in your own systems when moving towards Continuous Delivery.

Published in: Technology, Automotive
0 Comments
9 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,484
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DESIGNING FOR RAPID RELEASE SAM NEWMAN - Crash & Burn 2012 Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 2. Not Him We’re hiring... Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 3. Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 4. Tuesday, 6 March 12
  • 5. We’re hiring... Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 6. Why is rapid release important? Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 7. Scaling Performance Compliance Durability What criteria influence design? Geographical Technology Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 8. What about making it easy to release? Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 9. Make it quick to make a change Make it quick to deploy the change Reduce the risk of releasing Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 10. MusikShop v1 v2 Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 11. v23 v1 2 v9 v14 MusikShop Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 12. The Same Change... ...resulting in very different deployments Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 13. Each release is a rollback point and a data gathering point and a release process ... practiced often is more likely to work and to be efficient Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 14. Small, Incremental Releases FTW! Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 15. So how do we design our systems to allow for small changes? Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 16. MusikShop Small units - easier to reason about Rekomend Lib Fast CI turnaround cycles Invoice Creation ... String Utils Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 17. MusikShop v1 MusikShop v2 Rekomend Rekomend Lib v134 Lib v200 Change to a statically linked library = new deployment of the application Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 18. MusikShop v1 Rekomender Rekomender v124 v200 Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 19. Showcase MusikShop v1 Smoke Test Rekomender Rekomender v124 v200 Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 20. Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 21. What can stop blue/ green deployments? Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 22. User MusikShop v1 MusikShop v2 State Avoid stateful services Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 23. Expensive Hardware! Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 24. www.MusikShop MusikShop v1 Queens Of The Stone Age Take That Snoop Dogg We Rekomend ‘The We Can’t Rekomend Brakes’! Right Now! Rekomender Rekomender v124 Smoke Test v200 Manual Circuit Breaker Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 25. Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 26. www.MusikShop MusikShop v1 Queens Of The Stone Age Take That Snoop Dogg We Rekomend ‘The Waiting... Brakes’! Rekomender Rekomender v124 v200 Async Behaviour Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 27. Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 28. Things to watch for... Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 29. Musik Web Persistence The Trifle Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 30. Whitemail System Dumb System 1 Dumb System 2 Data Wharehouse CD Ordering System Dumb System 4 Finance System Dumb System 3 3rd Party Supplier The Spider Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 31. “A set of capabilities on an endpoint” Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 32. Search Shopping Cart Catalog Add to cart View Latest Releases Checkout Listen To Library Music Previews Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 33. Model Services Based On Your Business Domain Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 34. Musik Musik Musik Musik Shop Shop Shop Shop v1 v1 v1 v2 Reko. Reko. Reko. Reko. v9 v10 v10 v10 Internal Interface Expansion Change Change Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 35. Non-breaking expansion Rekomender V9 is to be preferred - but if you can’t... v1 v2 Consider maintaining multiple service endpoints Musik iOS Shop App Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 36. Service A Beware of shared serialization protocols Shared Lib v1 v2 WSDL-binding Service B JAXB Java Serialization Shared Lib v1 Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 37. RFC 761 Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 38. Postel’s Law: “Be conservative in what you do, be liberal in what you expect“ Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 39. MusikShop Rekomender Consumer Driven Contracts Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 40. DATABASES! Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 41. DATA IS COOL Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 42. DATABASES ARE EVIL Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 43. Rekomender MusikShop DB Schema Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 44. Each service owns its own data MusikShop Rekomender Schema Schema DB Instance Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 45. MusikShop Rekomender RDMS RDMS Riak Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 46. Release 2: Rekomender Read from Riak Release 1: Release 3: Dual Write Retire RDMS RDBMS Riak Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 47. MusikShop Dark Launching! Rekomender AceSuggest Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 48. Decompose Your Systems Model Your Domain Get Interfaces Right Seperate Deployment From Release Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 49. Questions? Crash & Burn, 2012 @samnewmanTuesday, 6 March 12
  • 50. Thanks! @samnewman We’re hiring! Crash & Burn, 2012 @samnewmanTuesday, 6 March 12

×