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.
12. The Same Change...
...resulting in very different
deployments
Crash & Burn, 2012 @samnewman
Tuesday, 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 @samnewman
Tuesday, 6 March 12
15. So how do we design
our systems to allow
for small changes?
Crash & Burn, 2012 @samnewman
Tuesday, 6 March 12
16. MusikShop Small units - easier to
reason about
Rekomend
Lib Fast CI turnaround
cycles
Invoice
Creation
...
String Utils
Crash & Burn, 2012 @samnewman
Tuesday, 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 @samnewman
Tuesday, 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 @samnewman
Tuesday, 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 @samnewman
Tuesday, 6 March 12
28. Things to watch for...
Crash & Burn, 2012 @samnewman
Tuesday, 6 March 12
29. Musik Web
Persistence
The Trifle
Crash & Burn, 2012 @samnewman
Tuesday, 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 @samnewman
Tuesday, 6 March 12
31. “A set of capabilities on
an endpoint”
Crash & Burn, 2012 @samnewman
Tuesday, 6 March 12
32. Search
Shopping Cart Catalog
Add to cart
View Latest
Releases
Checkout
Listen To Library
Music Previews
Crash & Burn, 2012 @samnewman
Tuesday, 6 March 12
33. Model Services Based
On Your Business
Domain
Crash & Burn, 2012 @samnewman
Tuesday, 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 @samnewman
Tuesday, 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 @samnewman
Tuesday, 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 @samnewman
Tuesday, 6 March 12