SlideShare a Scribd company logo
1 of 50
DESIGNING FOR
                       RAPID RELEASE
                       SAM NEWMAN - Crash & Burn 2012




      Crash & Burn, 2012                                @samnewman
Tuesday, 6 March 12
Not Him




                           We’re hiring...


      Crash & Burn, 2012                     @samnewman
Tuesday, 6 March 12
Crash & Burn, 2012   @samnewman
Tuesday, 6 March 12
Tuesday, 6 March 12
We’re hiring...


      Crash & Burn, 2012                     @samnewman
Tuesday, 6 March 12
Why is rapid release
                         important?


      Crash & Burn, 2012                @samnewman
Tuesday, 6 March 12
Scaling                        Performance
                           Compliance
                                          Durability
                  What criteria influence
                         design?
                      Geographical   Technology

      Crash & Burn, 2012                      @samnewman
Tuesday, 6 March 12
What about making it
                       easy to release?


      Crash & Burn, 2012                @samnewman
Tuesday, 6 March 12
Make it quick to make a change

                      Make it quick to deploy the
                                change

                      Reduce the risk of releasing

      Crash & Burn, 2012                       @samnewman
Tuesday, 6 March 12
MusikShop
                              v1
                              v2




      Crash & Burn, 2012               @samnewman
Tuesday, 6 March 12
v23   v1
                             2       v9   v14


                             MusikShop




      Crash & Burn, 2012                  @samnewman
Tuesday, 6 March 12
The Same Change...




      ...resulting in very different
               deployments
      Crash & Burn, 2012               @samnewman
Tuesday, 6 March 12
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
Small, Incremental
                         Releases FTW!

      Crash & Burn, 2012                    @samnewman
Tuesday, 6 March 12
So how do we design
                      our systems to allow
                       for small changes?

      Crash & Burn, 2012                @samnewman
Tuesday, 6 March 12
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
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
MusikShop v1




                       Rekomender    Rekomender
                          v124          v200




      Crash & Burn, 2012                          @samnewman
Tuesday, 6 March 12
Showcase
                      MusikShop v1
                                                Smoke Test




                       Rekomender    Rekomender
                          v124          v200




      Crash & Burn, 2012                          @samnewman
Tuesday, 6 March 12
Crash & Burn, 2012   @samnewman
Tuesday, 6 March 12
What can stop blue/
                      green deployments?


      Crash & Burn, 2012               @samnewman
Tuesday, 6 March 12
User



                      MusikShop v1         MusikShop v2
                              State




                            Avoid stateful services
      Crash & Burn, 2012                              @samnewman
Tuesday, 6 March 12
Expensive Hardware!


      Crash & Burn, 2012               @samnewman
Tuesday, 6 March 12
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
Crash & Burn, 2012   @samnewman
Tuesday, 6 March 12
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
Crash & Burn, 2012   @samnewman
Tuesday, 6 March 12
Things to watch for...


      Crash & Burn, 2012                  @samnewman
Tuesday, 6 March 12
Musik Web



                      Persistence




                                The Trifle
      Crash & Burn, 2012                    @samnewman
Tuesday, 6 March 12
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
“A set of capabilities on
                           an endpoint”

      Crash & Burn, 2012                    @samnewman
Tuesday, 6 March 12
Search
                  Shopping Cart            Catalog
                      Add to cart


                                    View Latest
                                     Releases
         Checkout


                                    Listen To Library
                                       Music Previews


      Crash & Burn, 2012                             @samnewman
Tuesday, 6 March 12
Model Services Based
                       On Your Business
                            Domain

      Crash & Burn, 2012                @samnewman
Tuesday, 6 March 12
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
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
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
RFC 761

      Crash & Burn, 2012             @samnewman
Tuesday, 6 March 12
Postel’s Law:
                      “Be conservative in what you do, be liberal in
                                  what you expect“




      Crash & Burn, 2012                                       @samnewman
Tuesday, 6 March 12
MusikShop         Rekomender




                      Consumer Driven Contracts
      Crash & Burn, 2012                     @samnewman
Tuesday, 6 March 12
DATABASES!


      Crash & Burn, 2012                @samnewman
Tuesday, 6 March 12
DATA IS COOL


      Crash & Burn, 2012                  @samnewman
Tuesday, 6 March 12
DATABASES ARE EVIL


      Crash & Burn, 2012                   @samnewman
Tuesday, 6 March 12
Rekomender
                      MusikShop




                           DB Schema




      Crash & Burn, 2012               @samnewman
Tuesday, 6 March 12
Each service owns its own data


                      MusikShop                   Rekomender




                           Schema                   Schema


                                    DB Instance

      Crash & Burn, 2012                                     @samnewman
Tuesday, 6 March 12
MusikShop   Rekomender




                           RDMS      RDMS
                                      Riak




      Crash & Burn, 2012                     @samnewman
Tuesday, 6 March 12
Release 2:
                                    Rekomender
                                                  Read from Riak

                                                 Release 1:
                       Release 3:                Dual Write
                      Retire RDMS

                                      RDBMS
                                       Riak




      Crash & Burn, 2012                              @samnewman
Tuesday, 6 March 12
MusikShop     Dark Launching!




                      Rekomender   AceSuggest




      Crash & Burn, 2012                        @samnewman
Tuesday, 6 March 12
Decompose Your Systems


                             Model Your Domain


                             Get Interfaces Right


                      Seperate Deployment From Release


      Crash & Burn, 2012                            @samnewman
Tuesday, 6 March 12
Questions?


      Crash & Burn, 2012                @samnewman
Tuesday, 6 March 12
Thanks!
                           @samnewman


                           We’re hiring!

      Crash & Burn, 2012                   @samnewman
Tuesday, 6 March 12

More Related Content

More from Sam Newman

Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice OrganisationSam Newman
 
What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?Sam Newman
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionSam Newman
 
AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and MicroservicesSam Newman
 
Feature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub WorldFeature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub WorldSam Newman
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessSam Newman
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And MicroservicesSam Newman
 
Deploying and Scaling Microservices
Deploying and Scaling MicroservicesDeploying and Scaling Microservices
Deploying and Scaling MicroservicesSam Newman
 
BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservicesSam Newman
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc osloSam Newman
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocitySam Newman
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneySam Newman
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days UkraineSam Newman
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014Sam Newman
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014Sam Newman
 
Practical microservices - NDC 2014
Practical microservices  - NDC 2014Practical microservices  - NDC 2014
Practical microservices - NDC 2014Sam Newman
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014Sam Newman
 
Practical microservices - YOW 2013
Practical microservices  - YOW 2013Practical microservices  - YOW 2013
Practical microservices - YOW 2013Sam Newman
 
From macro to micro goto
From macro to micro   gotoFrom macro to micro   goto
From macro to micro gotoSam Newman
 

More from Sam Newman (20)

It's a trap!
It's a trap!It's a trap!
It's a trap!
 
Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice Organisation
 
What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min Version
 
AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and Microservices
 
Feature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub WorldFeature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub World
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The Serverless
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And Microservices
 
Deploying and Scaling Microservices
Deploying and Scaling MicroservicesDeploying and Scaling Microservices
Deploying and Scaling Microservices
 
BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservices
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc oslo
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014
 
Practical microservices - NDC 2014
Practical microservices  - NDC 2014Practical microservices  - NDC 2014
Practical microservices - NDC 2014
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014
 
Practical microservices - YOW 2013
Practical microservices  - YOW 2013Practical microservices  - YOW 2013
Practical microservices - YOW 2013
 
From macro to micro goto
From macro to micro   gotoFrom macro to micro   goto
From macro to micro goto
 

Recently uploaded

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 

Recently uploaded (20)

AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 

Designing for rapid release - Crash & Burn 2012

  • 1. DESIGNING FOR RAPID RELEASE SAM NEWMAN - Crash & Burn 2012 Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 2. Not Him We’re hiring... Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 3. Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 5. We’re hiring... Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 6. Why is rapid release important? Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 7. Scaling Performance Compliance Durability What criteria influence design? Geographical Technology Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 8. What about making it easy to release? Crash & Burn, 2012 @samnewman Tuesday, 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 @samnewman Tuesday, 6 March 12
  • 10. MusikShop v1 v2 Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 11. v23 v1 2 v9 v14 MusikShop Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 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
  • 14. Small, Incremental Releases FTW! 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
  • 18. MusikShop v1 Rekomender Rekomender v124 v200 Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 19. Showcase MusikShop v1 Smoke Test Rekomender Rekomender v124 v200 Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 20. Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 21. What can stop blue/ green deployments? Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 22. User MusikShop v1 MusikShop v2 State Avoid stateful services Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 23. Expensive Hardware! 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
  • 25. 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
  • 27. 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
  • 37. RFC 761 Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 38. Postel’s Law: “Be conservative in what you do, be liberal in what you expect“ Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 39. MusikShop Rekomender Consumer Driven Contracts Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 40. DATABASES! Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 41. DATA IS COOL Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 42. DATABASES ARE EVIL Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 43. Rekomender MusikShop DB Schema Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 44. Each service owns its own data MusikShop Rekomender Schema Schema DB Instance Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 45. MusikShop Rekomender RDMS RDMS Riak Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 46. Release 2: Rekomender Read from Riak Release 1: Release 3: Dual Write Retire RDMS RDBMS Riak Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 47. MusikShop Dark Launching! Rekomender AceSuggest Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 48. Decompose Your Systems Model Your Domain Get Interfaces Right Seperate Deployment From Release Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 49. Questions? Crash & Burn, 2012 @samnewman Tuesday, 6 March 12
  • 50. Thanks! @samnewman We’re hiring! Crash & Burn, 2012 @samnewman Tuesday, 6 March 12