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

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Recently uploaded (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

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