Designing for rapid release   goto 2012
Upcoming SlideShare
Loading in...5
×
 

Designing for rapid release goto 2012

on

  • 483 views

 

Statistics

Views

Total Views
483
Views on SlideShare
443
Embed Views
40

Actions

Likes
0
Downloads
2
Comments
0

3 Embeds 40

http://lanyrd.com 38
http://cloud.feedly.com 1
http://www.feedspot.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Designing for rapid release   goto 2012 Designing for rapid release goto 2012 Presentation Transcript

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