continuous delivery in a complex s.o.a

33
Continuous Delivery in a Complex S.O.A. Richard Lennox Senior Architect, Skyscanner www.skyscanner.net @richardlennox www.linkedin.com/in/rlennox

Upload: richardlennox

Post on 15-Jan-2015

440 views

Category:

Technology


0 download

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

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

Skyscanner

Page 3: Continuous Delivery in a Complex S.O.A

Why Continuous Delivery?

Page 4: Continuous Delivery in a Complex S.O.A

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

Goals of CD

Quality Cycle Time

Efficiency

Page 6: Continuous Delivery in a Complex S.O.A

Core Practices Continuous Integration Automated Testing [Automated] Configuration Management Deployment Pipelines

Page 7: Continuous Delivery in a Complex S.O.A

Continuous Integration

Page 8: Continuous Delivery in a Complex S.O.A

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

Automated Testing

Page 10: Continuous Delivery in a Complex S.O.A

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

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

Configuration Management

Page 13: Continuous Delivery in a Complex S.O.A

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

Deployment Pipeline

Page 15: Continuous Delivery in a Complex S.O.A

Deployment Pipeline

Page 16: Continuous Delivery in a Complex S.O.A

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

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

Vision of Necessary State

Individual ServicesWorking of own heartbeat

Page 19: Continuous Delivery in a Complex S.O.A

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

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

Not a 1:1 ratio?

Page 22: Continuous Delivery in a Complex S.O.A

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

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

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

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

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

Dependency Test Triggers

C D E

B

A

Y

XX

ZI

Page 28: Continuous Delivery in a Complex S.O.A

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

Cascading Healthchecks1

F G D

E

A

H

C

I

B

2 3

Page 30: Continuous Delivery in a Complex S.O.A

Aligning Delivery Conditions

Page 31: Continuous Delivery in a Complex S.O.A

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

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

Thanks!

Richard LennoxSenior Architect, Skyscannerwww.skyscanner.net

@richardlennoxwww.linkedin.com/in/rlennox

Questions?