continuous delivery in a complex s.o.a
DESCRIPTION
Slides from STV Tech Talks (Glasgow, UK) - 27 August 2013 -- Based on the experience of leading the current initiative to move towards Continuous Delivery at Skyscanner, I presented a view on 5 key focus areas that must be considered to make Continuous Delivery an achievable objective within a very complex Service Oriented Architecture.TRANSCRIPT
![Page 1: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/1.jpg)
Continuous Delivery in a Complex S.O.A.
Richard LennoxSenior Architect, Skyscannerwww.skyscanner.net
@richardlennoxwww.linkedin.com/in/rlennox
![Page 2: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/2.jpg)
Skyscanner
![Page 3: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/3.jpg)
Why Continuous Delivery?
![Page 4: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/4.jpg)
Continuous Delivery“How long would it take your organisation to deploy a change that involved just a single line of code?” Do you do this on a repeatable, reliable basis?”
…is a set of practices and principles aimed at building, testing and releasing software reliably and repeatably at a necessary frequency.
Keeping systems production-ready throughout development, so that they can be released to users at any time
![Page 5: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/5.jpg)
Goals of CD
Quality Cycle Time
Efficiency
![Page 6: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/6.jpg)
Core Practices Continuous Integration Automated Testing [Automated] Configuration Management Deployment Pipelines
![Page 7: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/7.jpg)
Continuous Integration
![Page 8: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/8.jpg)
Continuous Integration Everyone Commits to the Mainline Every
Day Automate the Build Make Build Self Testing Every Commit triggers build on Integration
server Fail Fast, Feedback Faster
http://martinfowler.com/articles/continuousIntegration.html
![Page 9: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/9.jpg)
Automated Testing
![Page 10: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/10.jpg)
Build Quality In
“Cease dependence on mass inspection to achieve quality. Improve the process and build quality into the product in the first place”
W. Edwards Deming
![Page 11: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/11.jpg)
Automated TestingCost of
Execution Time
Number of Tests
Unit Tests
Integration Tests
UI Tests
100% Automated
100% Manual
Acceptance Tests
![Page 12: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/12.jpg)
Configuration Management
![Page 13: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/13.jpg)
Configuration Management Stuff we make is valuable Not just the source code :
Application configurationOS setupMachine ConfigurationTestsDocumentation
Where possible should live with the code
![Page 14: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/14.jpg)
Deployment Pipeline
![Page 15: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/15.jpg)
Deployment Pipeline
![Page 16: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/16.jpg)
8 Principles / Patterns Reliable & Repeatable delivery process Automate (almost) everything Take the pain early and more often Source control is king Done or Done, Done = Released, Build quality in Everybody is responsible Continuous improvement
![Page 17: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/17.jpg)
Service Oriented Architecture
Definition:- software architecture design pattern- structured collections of discrete software
modules (the services)- collectively provide the complete functionality
of a large software application
![Page 18: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/18.jpg)
Vision of Necessary State
Individual ServicesWorking of own heartbeat
![Page 19: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/19.jpg)
Considerations for CD in SOA
Focus on 5 key areas- Partitioning the SOA into governed
Deployable Units- Consistent Deployment Pipelines- Just Enough Test Automation Coverage- Real Time Metrics- Aligning the Delivery Conditions
![Page 20: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/20.jpg)
Deployable Units 1+ Services to be deployed Single, built once Package Comprising:
Releasable Software Tests Application Configuration“Install” / Rollback ScriptsAssets
One mainline (Trunk) per Deployable Unit Decoupled Deployments and Rollbacks Fits naturally with S.O.A.
But not necessarily 1:1 ratio
![Page 21: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/21.jpg)
Not a 1:1 ratio?
![Page 22: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/22.jpg)
Service Governance
a.k.a. Making sure people do the right things – Anne Thomas Manes, OOP2007
SLAs Versioning Fault Tolerance and Resilient Engineering
![Page 23: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/23.jpg)
Service Compatibility Governance
Client(v1)
Client(v2)
Service(v1)
Service(v2)
Deployment
Deployment
Rollback
Rollback
![Page 24: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/24.jpg)
Databases Services may have own DB
Versioned with
Some DBs act as integration pointsLegacy
Must be treated as any other ServiceSame levels of governance,Same SLAsSame Tolerance to failures
![Page 25: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/25.jpg)
Consistent Deployment Pipelines
Early Integration not Late Integration Consistency, Consistency and Consistency
Build ScriptsTools of choice,Test Frameworks and UsageEverything where possible
Canary Release Patterns Aligning to a single flow for all components
![Page 26: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/26.jpg)
Just Enough Test AutomationCost of
Execution Time
Number of Tests
Unit Tests
Integration Tests
Acceptance Tests
UI Tests
100% Automated
100% Manual
![Page 27: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/27.jpg)
Dependency Test Triggers
C D E
B
A
Y
XX
ZI
![Page 28: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/28.jpg)
Real Time Metrics Safety Net for canary release Coupled with Operational Metrics Individual Service defined
Asynchronous Data Loaders – throughputFailing Fast and Hard
![Page 29: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/29.jpg)
Cascading Healthchecks1
F G D
E
A
H
C
I
B
2 3
![Page 30: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/30.jpg)
Aligning Delivery Conditions
![Page 31: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/31.jpg)
Culture Agile Practices First Breaking down Silos Getting over the fear of collaboration Trunk Based Development over Feature
Branching Discipline in Continuous Integration Dealing with breaks
![Page 32: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/32.jpg)
Summary Architecture has a huge impact on the
ability to Continuously Deliver Comes with its own set of challenges and It is the right thing for modern web-based
businesses.
![Page 33: Continuous Delivery in a Complex S.O.A](https://reader036.vdocuments.us/reader036/viewer/2022070303/54b7150f4a7959a2718b45a9/html5/thumbnails/33.jpg)
Thanks!
Richard LennoxSenior Architect, Skyscannerwww.skyscanner.net
@richardlennoxwww.linkedin.com/in/rlennox
Questions?