designing for rapid release
play

DESIGNING FOR RAPID RELEASE Sam Newman ThoughtWorks Tuesday, 2 - PowerPoint PPT Presentation

DESIGNING FOR RAPID RELEASE Sam Newman ThoughtWorks Tuesday, 2 October 12 Not Him Were hiring... @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12 @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12 Tuesday, 2 October 12 Were


  1. DESIGNING FOR RAPID RELEASE Sam Newman ThoughtWorks Tuesday, 2 October 12

  2. Not Him We’re hiring... @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  3. @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  4. Tuesday, 2 October 12

  5. We’re hiring... @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  6. Why is rapid release important? @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  7. Performance Scaling Compliance Durability What criteria influence design? Technology Geographical @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  8. What about making it easy to release? @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  9. Make it quick to make a change Make it quick to deploy the change Reduce the risk of releasing @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  10. MusikShop MusikShop v1 v2 @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  11. v1 v2 v23 v9 v14 MusikShop @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  12. The Same Change... ...resulting in very different deployments @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 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 @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  14. Small, Incremental Releases FTW! @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  15. So how do we design our systems to allow for small changes? @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  16. Small units - easier to MusikShop reason about Rekomend Lib Fast CI turnaround cycles Invoice Creation ... String Utils @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  17. MusikShop v2 MusikShop v1 Rekomend Rekomend Lib v134 Lib v200 Change to a statically linked library = new deployment of the application @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  18. MusikShop v1 Rekomender Rekomender v124 v200 @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  19. Showcase MusikShop v1 Smoke Test Rekomender Rekomender v124 v200 Blue/Green Deployments @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  20. @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  21. What can stop blue/ green deployments? @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  22. User MusikShop v1 MusikShop v2 State Avoid stateful services @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  23. Expensive Hardware! @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 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 Smoke Test v124 v200 Manual Circuit Breaker @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  25. @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 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 @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  27. @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  28. Things to watch for... @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  29. Musik Web Persistence The Trifle @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  30. @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  31. @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  32. @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  33. Dumb System 2 Whitemail System Data Wharehouse Dumb System 1 CD Ordering System Dumb System 4 Finance System Dumb System 3 3rd Party Supplier The Spider @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  34. “A set of capabilities on an endpoint” @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  35. Search Shopping Cart Catalog Add to cart View Latest Releases Checkout Music Library Listen To Previews @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  36. Model Services Based On Your Business Domain @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  37. Musik Musik Musik Musik Shop Shop Shop Shop v1 v1 v1 v2 Reko. Reko. Reko. Reko. v10 v10 v10 v9 Internal Interface Expansion Change Change @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  38. Non-breaking expansion is to be preferred - but Rekomender V9 if you can’t... v1 v2 Consider maintaining multiple service endpoints iOS Musik App Shop @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  39. Service A Beware of shared serialization protocols Shared Lib v1 Shared Lib v2 WSDL-binding Service B JAXB Shared Lib v1 Java Serialization @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  40. RFC 761 @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  41. Postel’s Law: “Be conservative in what you do, be liberal in what you expect“ @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  42. MusikShop Rekomender Consumer Driven Contracts @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  43. DATABASES! @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  44. DATA IS COOL @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  45. DATABASES ARE EVIL @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  46. Rekomender MusikShop DB Schema @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  47. Each service owns its own data MusikShop Rekomender Schema Schema DB Instance @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  48. MusikShop Rekomender RDMS RDMS Riak @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  49. Release 2: Rekomender Read from Riak Release 1: Release 3: Dual Write Retire RDMS RDBMS Riak @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  50. MusikShop Dark Launching! Rekomender AceSuggest @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  51. Decompose Your Systems Model Your Domain Get Interfaces Right Seperate Deployment From Release @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  52. Questions? @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

  53. Thanks! @samnewman We’re hiring! @samnewman GOTO: Aarhus 2012 Tuesday, 2 October 12

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend