SlideShare una empresa de Scribd logo
1 de 33
Continuous Delivery
in a Complex S.O.A.
Richard Lennox
Senior Architect, Skyscanner
www.skyscanner.net
@richardlennox
www.linkedin.com/in/rlennox
Skyscanner
Why Continuous Delivery?
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
Goals of CD
Quality Cycle Time
Core Practices
 Continuous Integration
 Automated Testing
 [Automated] Configuration Management
 Deployment Pipelines
Continuous Integration
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
Automated Testing
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
Automated Testing
Cost of
Execution
Time
Number of Tests
Unit Tests
Integration Tests
UI Tests
100% Automated
100% Manual
Acceptance Tests
Configuration Management
Configuration Management
 Stuff we make is valuable
 Not just the source code :
 Application configuration
 OS setup
 Machine Configuration
 Tests
 Documentation
 Where possible should live with the code
Deployment Pipeline
Deployment Pipeline
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
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
Vision of Necessary State
Individual Services
Working of own heartbeat
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
Deployable Units
 1+ Services to be deployed
 Single, built once Package Comprising:
 Releasable Software
 Tests
 Application Configuration
 “Install” / Rollback Scripts
 Assets
 One mainline (Trunk) per Deployable Unit
 Decoupled Deployments and Rollbacks
 Fits naturally with S.O.A.
 But not necessarily 1:1 ratio
Not a 1:1 ratio?
Service Governance
a.k.a. Making sure people do the right things –
Anne Thomas Manes, OOP2007
 SLAs
 Versioning
 Fault Tolerance and Resilient Engineering
Service Compatibility Governance
Client
(v1)
Client
(v2)
Service
(v1)
Service
(v2)
Deployment
Deployment
Rollback
Rollback
Databases
 Services may have own DB
 Versioned with
 Some DBs act as integration points
 Legacy
 Must be treated as any other Service
 Same levels of governance,
 Same SLAs
 Same Tolerance to failures
Consistent Deployment Pipelines
 Early Integration not Late Integration
 Consistency, Consistency and Consistency
 Build Scripts
 Tools of choice,
 Test Frameworks and Usage
 Everything where possible
 Canary Release Patterns
 Aligning to a single flow for all components
Just Enough Test Automation
Cost of
Execution
Time
Number of Tests
Unit Tests
Integration Tests
Acceptance Tests
UI Tests
100% Automated
100% Manual
Dependency Test Triggers
C D E
B
A
Y
XX
ZI
Real Time Metrics
 Safety Net for canary release
 Coupled with Operational Metrics
 Individual Service defined
 Asynchronous Data Loaders – throughput
 Failing Fast and Hard
Cascading Healthchecks
1
F G D
E
A
H
C
I
B
2 3
Aligning Delivery Conditions
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
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.
Thanks!
Richard Lennox
Senior Architect, Skyscanner
www.skyscanner.net
@richardlennox
www.linkedin.com/in/rlennox
Questions?

Más contenido relacionado

La actualidad más candente

QA Automation testing - Cloud deployed workflow application
QA Automation testing - Cloud deployed workflow applicationQA Automation testing - Cloud deployed workflow application
QA Automation testing - Cloud deployed workflow applicationZado Technologies
 
Firmware Application Test Automation
Firmware Application Test AutomationFirmware Application Test Automation
Firmware Application Test AutomationIndium Software
 
The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automationMidVision
 
Apica Company Summary
Apica Company SummaryApica Company Summary
Apica Company SummaryApica
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAnand Bagmar
 
The Qa Testing Checklists for Successful Cloud Migration
The Qa Testing Checklists for Successful Cloud MigrationThe Qa Testing Checklists for Successful Cloud Migration
The Qa Testing Checklists for Successful Cloud MigrationTestingXperts
 
Delivery With Chef - ChefConf 2015
Delivery With Chef - ChefConf 2015 Delivery With Chef - ChefConf 2015
Delivery With Chef - ChefConf 2015 Chef
 
Reliability (R)evolution: Turning the DevOps World Upside Down (Again).
Reliability (R)evolution: Turning the DevOps World Upside Down (Again).Reliability (R)evolution: Turning the DevOps World Upside Down (Again).
Reliability (R)evolution: Turning the DevOps World Upside Down (Again).Hannes Lenke
 
How to Reduce Time to Market Using Microsoft DevOps Solutions
How to Reduce Time to Market Using Microsoft DevOps SolutionsHow to Reduce Time to Market Using Microsoft DevOps Solutions
How to Reduce Time to Market Using Microsoft DevOps SolutionsSoftServe
 
Diving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the TechnologiesDiving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the TechnologiesQASymphony
 
IT Agility Model - Supercharge your development and test activities with Micr...
IT Agility Model - Supercharge your development and test activities with Micr...IT Agility Model - Supercharge your development and test activities with Micr...
IT Agility Model - Supercharge your development and test activities with Micr...InCycle Software
 
Slack Integration Adapter - Datasheet
Slack Integration Adapter - DatasheetSlack Integration Adapter - Datasheet
Slack Integration Adapter - DatasheetKovair
 
Shift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentShift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentClaudia Ring
 
BOSE - Josh Steckler - Automating Automation: Build environments, on-demand
BOSE - Josh Steckler - Automating Automation: Build environments, on-demandBOSE - Josh Steckler - Automating Automation: Build environments, on-demand
BOSE - Josh Steckler - Automating Automation: Build environments, on-demandDevOps Enterprise Summit
 
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMAdopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMJules Pierre-Louis
 
Monitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspectiveMonitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspectiveDevOpsProdigy
 
Atagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integrationAtagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integrationAgile Testing Alliance
 
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLCDevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLCCA Technologies
 

La actualidad más candente (20)

QA Automation testing - Cloud deployed workflow application
QA Automation testing - Cloud deployed workflow applicationQA Automation testing - Cloud deployed workflow application
QA Automation testing - Cloud deployed workflow application
 
Firmware Application Test Automation
Firmware Application Test AutomationFirmware Application Test Automation
Firmware Application Test Automation
 
The art of wmb deployment automation
The art of wmb deployment automationThe art of wmb deployment automation
The art of wmb deployment automation
 
Apica Company Summary
Apica Company SummaryApica Company Summary
Apica Company Summary
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaS
 
The Qa Testing Checklists for Successful Cloud Migration
The Qa Testing Checklists for Successful Cloud MigrationThe Qa Testing Checklists for Successful Cloud Migration
The Qa Testing Checklists for Successful Cloud Migration
 
Delivery With Chef - ChefConf 2015
Delivery With Chef - ChefConf 2015 Delivery With Chef - ChefConf 2015
Delivery With Chef - ChefConf 2015
 
Devops is all greek
Devops is all greekDevops is all greek
Devops is all greek
 
Reliability (R)evolution: Turning the DevOps World Upside Down (Again).
Reliability (R)evolution: Turning the DevOps World Upside Down (Again).Reliability (R)evolution: Turning the DevOps World Upside Down (Again).
Reliability (R)evolution: Turning the DevOps World Upside Down (Again).
 
How to Reduce Time to Market Using Microsoft DevOps Solutions
How to Reduce Time to Market Using Microsoft DevOps SolutionsHow to Reduce Time to Market Using Microsoft DevOps Solutions
How to Reduce Time to Market Using Microsoft DevOps Solutions
 
Web Performance Testing
Web Performance TestingWeb Performance Testing
Web Performance Testing
 
Diving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the TechnologiesDiving into the World of Test Automation The Approach and the Technologies
Diving into the World of Test Automation The Approach and the Technologies
 
IT Agility Model - Supercharge your development and test activities with Micr...
IT Agility Model - Supercharge your development and test activities with Micr...IT Agility Model - Supercharge your development and test activities with Micr...
IT Agility Model - Supercharge your development and test activities with Micr...
 
Slack Integration Adapter - Datasheet
Slack Integration Adapter - DatasheetSlack Integration Adapter - Datasheet
Slack Integration Adapter - Datasheet
 
Shift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentShift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deployment
 
BOSE - Josh Steckler - Automating Automation: Build environments, on-demand
BOSE - Josh Steckler - Automating Automation: Build environments, on-demandBOSE - Josh Steckler - Automating Automation: Build environments, on-demand
BOSE - Josh Steckler - Automating Automation: Build environments, on-demand
 
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBMAdopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
Adopting DevOps @ Scale: Lessons learned at Hertz, Kaiser Permanente and lBM
 
Monitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspectiveMonitoring microservice applications: An SRE’s perspective
Monitoring microservice applications: An SRE’s perspective
 
Atagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integrationAtagg 2015 Test automation and effective continuous integration
Atagg 2015 Test automation and effective continuous integration
 
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLCDevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
DevOps and Cloud Tips and Techniques to Revolutionize Your SDLC
 

Destacado

Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackBob Sokol
 
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...CA Technologies
 
Web Service Versioning
Web Service VersioningWeb Service Versioning
Web Service VersioningIgnaz Wanders
 
Continuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceContinuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceDao Ngoc Kien
 
DevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn GandhiDevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn GandhiTriNimbus
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Jen Wong
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoGrid Dynamics
 
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)Amazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsAmazon Web Services
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 

Destacado (11)

Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
 
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
 
Web Service Versioning
Web Service VersioningWeb Service Versioning
Web Service Versioning
 
Continuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceContinuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practice
 
DevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn GandhiDevOps in the Amazon Warehouse - Shawn Gandhi
DevOps in the Amazon Warehouse - Shawn Gandhi
 
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silico...
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
 
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
AWS re:Invent 2016: Chalk Talk: Succeeding at Infrastructure-as-Code (GPSCT312)
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 

Similar a Continuous Delivery in a Complex S.O.A.

Functional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and HudsonFunctional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and HudsonDavid Jellison
 
OpsWorks for Chef Automate - Auckland AWS
OpsWorks for Chef Automate - Auckland AWS OpsWorks for Chef Automate - Auckland AWS
OpsWorks for Chef Automate - Auckland AWS Matt Ray
 
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...Amazon Web Services
 
Brisbane AWS Meetup: OpsWorks for Chef Automate
Brisbane AWS Meetup: OpsWorks for Chef AutomateBrisbane AWS Meetup: OpsWorks for Chef Automate
Brisbane AWS Meetup: OpsWorks for Chef AutomateMatt Ray
 
REAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud
 
Fast, Secure Deployments with Docker on AWS
Fast, Secure Deployments with Docker on AWSFast, Secure Deployments with Docker on AWS
Fast, Secure Deployments with Docker on AWSAmazon Web Services
 
Infrastructure as Code with Chef
Infrastructure as Code with ChefInfrastructure as Code with Chef
Infrastructure as Code with ChefSarah Hynes Cheney
 
Operations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningOperations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningAmazon Web Services
 
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023VMware Tanzu
 
Strong practices for rails applications continuous delivery
Strong practices for rails applications continuous deliveryStrong practices for rails applications continuous delivery
Strong practices for rails applications continuous deliveryRobb Kidd
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...Skytap Cloud
 
Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Rosalind Radcliffe
 
Accelerating software delivery with AWS
Accelerating software delivery with AWSAccelerating software delivery with AWS
Accelerating software delivery with AWSRob Greenwood
 
Achieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef AutomateAchieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef AutomateAmazon Web Services
 
Webinar: DevOps challenges facing QA
Webinar: DevOps challenges facing QAWebinar: DevOps challenges facing QA
Webinar: DevOps challenges facing QAQualitest
 
Visual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximoVisual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximoDaniel Semedo
 
Operations: Production Readiness
Operations: Production ReadinessOperations: Production Readiness
Operations: Production ReadinessAmazon Web Services
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Tomas Riha
 
Visual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughVisual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughAngela Dugan
 

Similar a Continuous Delivery in a Complex S.O.A. (20)

Functional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and HudsonFunctional Continuous Integration with Selenium and Hudson
Functional Continuous Integration with Selenium and Hudson
 
OpsWorks for Chef Automate - Auckland AWS
OpsWorks for Chef Automate - Auckland AWS OpsWorks for Chef Automate - Auckland AWS
OpsWorks for Chef Automate - Auckland AWS
 
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
DevOps on Windows: How to Deploy Complex Windows Workloads | AWS Public Secto...
 
Brisbane AWS Meetup: OpsWorks for Chef Automate
Brisbane AWS Meetup: OpsWorks for Chef AutomateBrisbane AWS Meetup: OpsWorks for Chef Automate
Brisbane AWS Meetup: OpsWorks for Chef Automate
 
REAN Cloud DevOps Accelerators
REAN Cloud DevOps AcceleratorsREAN Cloud DevOps Accelerators
REAN Cloud DevOps Accelerators
 
Fast, Secure Deployments with Docker on AWS
Fast, Secure Deployments with Docker on AWSFast, Secure Deployments with Docker on AWS
Fast, Secure Deployments with Docker on AWS
 
Infrastructure as Code with Chef
Infrastructure as Code with ChefInfrastructure as Code with Chef
Infrastructure as Code with Chef
 
Operations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from HappeningOperations: Production Readiness Review – How to stop bad things from Happening
Operations: Production Readiness Review – How to stop bad things from Happening
 
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
 
Strong practices for rails applications continuous delivery
Strong practices for rails applications continuous deliveryStrong practices for rails applications continuous delivery
Strong practices for rails applications continuous delivery
 
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S... Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
Tips to achieve continuous integration/delivery using HP ALM, Jenkins, and S...
 
Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402Dev ops for mainframe innovate session 2402
Dev ops for mainframe innovate session 2402
 
Accelerating software delivery with AWS
Accelerating software delivery with AWSAccelerating software delivery with AWS
Accelerating software delivery with AWS
 
Achieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef AutomateAchieve Scale & Velocity with AWS OpsWorks for Chef Automate
Achieve Scale & Velocity with AWS OpsWorks for Chef Automate
 
Webinar: DevOps challenges facing QA
Webinar: DevOps challenges facing QAWebinar: DevOps challenges facing QA
Webinar: DevOps challenges facing QA
 
Visual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximoVisual Studio 2015 - Lançamento está próximo
Visual Studio 2015 - Lançamento está próximo
 
What is DevOps?
What is DevOps?What is DevOps?
What is DevOps?
 
Operations: Production Readiness
Operations: Production ReadinessOperations: Production Readiness
Operations: Production Readiness
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014
 
Visual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughVisual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools Walkthrough
 

Último

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
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
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 

Último (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
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?
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 

Continuous Delivery in a Complex S.O.A.

Notas del editor

  1. As Michael has pointed out. Skyscanner – I am sure most of you know Skyscanner – even those few of you that work there… But for those wanting some idea of the scale.:#1 flight search engine across Europe, #3 in the world for traffic. Fastest Growing international travel search site outside of the US.50-75million visits per month40+ languages (some of which are in process of going live) in 30+ local markets and in 70+ currencies200 members of staff globally (closer to 300 now I think) – across 5 offices – Edinburgh, Galsgow, Singapore, Beijing and Miami. +150 by end of the year.Engineering is centred in Scotland, primarily Edinburgh but also Glasgow. Overall 120+ in Development + Test Engineering, 20+ in Service Management (ops). I’ll come on to a few technical implementations.Topic:I am currently leading the current project to bring Continuous Delivery practices to Skyscanner. I am going to talk about the lessons learned so far in doing that, the compromises we’ve made an how it applies to our complex S.O.A. We could talk all day on the topic and as I have an hour (and I am getting back to Edinburgh on the last train) – we are going to skirt some of the detail and keep it high level.Quickly introduce the topic – How many people understand the principles of Continuous Delivery? We’ll do a recap but I’ll be keeping it very brief, and my interpretation of it. First off I’d like to make a statement – IMHO the value of Agile isn’t in the prescription of the SCRUM or XP flavours. Agile development is about sticking to the principles but finding out exactly what the What is Continuous DeliveryWhat is SOAWhat is that at Skyscanner? Why bother ? Perfect Storm (Test team building up, defining release operations; too much pain)5 key challenges and how we are planning to solve itGet business buy in…Deployable Units (Monolithic vs component)Automating TestsService GovernanceLate integrationConsistency
  2. 50+ logical components 30+ “physical” services + web apps and Both:Message based (RabbitMQ)Restful Web ServicesMixed Technology Stack.Net (C#)Python JS / CSS / Mobile applicationsHA and Resiliance2 DCs (4 by Q2 next year)
  3. Literally playing through the pain…Some of our core applications and services are propped up by levels of effort every 4-6 weeks that they really shouldn’t be. Yes we have a strong SOA, component based architecture but we struggle to release – particualrly now we are at a scale of multiple DCs worldwide; hundreds of virtual machines.
  4. Mary & Tom Popendieck, Implementing Lean Software Development
  5. Martin Fowler:“Everyone should commit to the mainline at least once every day”Check in daily – checkRuns through builds. The values of the feature branching etc.
  6. Detecting when things go wrong – Building Quality in…Unit Testing from the developers
  7. Statistician said these words.. Fixing issues when they are created is by far cheaper than finding them at the end.The example is - In building quality at each stage of the German car production line, the quality teams at the end of the process had nothing to do. And if there’s one thing the Germans do well its penality taking and building cars. Essentially the same for Software Engineering.And the way we do that is through Automated Testing – at multiple levels right around the entire system.
  8. Version everythingWhere ever possible we should be automating that. Build Once – Deploy manyIntroduce the concept of a deployable unit.Data is a challenge – whether you look at something like DB Deploy.
  9. Ubiquitous Pipeline Image for Continuous Delivery Presentations….What does it mean?A deployment (or Build) pipeline is an automated manifestation of the process for getting the software out of versions control and in front of users.
  10. Particularlly simple example and know where near good enough.
  11. Loose Coupling between product systems enables small batchesServices have a single Responsibility – yes.Not the same as a deployable unit…
  12. Pretty simple statement – a key – value.Own heartbeat…I think the CD guys got it wrong when they talked about “Fast” – I believe in Efficient. Continuous Delviery is about having the mechanisms to “Once a product developer realises that small batches are desirable, the start adopting product architectures that permit work to flow in small, decoupled batches.”Principles of product Development Flow, Don Reinertson.
  13. Plannign carefullyIf 2 services move in direct lock step, then you don’t need to explode them into indeividual services. You do need to be very careful of integration testing nightmare of O to the NDelivering the elements
  14. MakingMassively Important for Services to be governed correctly. For many SOAs an Enterprise Service Bus is uesed to enforce and delvier the governance. That is one approach. But in its essence it is an abstract se
  15. Non-breaking changes are required. Any breaking changes are required to be Versioned and delivered.--Server Backward Compatability & Client Forward Compatibilty- New version of service must support v1 of client written to old interfaceClient continues to function against v2 of a service written to the new interdace.Here is the extra bits in this diagram. Took me a long time to get my head around this.Client Backward CompatibilityNew version of client – should continue to support v1 of Service as well as v2Server Forward compatibilityExisting Services must work with newer clients that written to newer interface.A non breaking change to this might be the addition of some optional parameters to a service call or some extra fields in the JSON response. This should be handled gracefully by the client with no changes required. Having the service also ignore unnecessary parameters rather than fail also delivers this level of compatibility.Or in a breaking change then the client must be aware that All of this supports releasing canaries and test elements.
  16. Late integration vs. Early integration
  17. Revisit the test pyramid.As part of our exapnded growth – massively increased our test automation capabilities in house. Those guys are delivering a shift towards the elements.Using a variety of integration tests against services dricectly and BDD techniques.They are applying it within the areas of expertise.Employ a Testing StrategyIdentify and Prioritise based on RiskDecide What Actions To TakeTests = Executable SpecificationsIncreasing ConfidenceAllows manual testing to be focussed on Exploratory rather than the mundane strategic elements
  18. Initially each Service is aware of the services on which it depends on and healthchecks are necessary. Looking at this diagram there are 3 healthchecks running at the outer layer. Each in turn bases it health, not just on itself but also the state of the healthcheck below.This takes effort to maintain on behalf of the component.sIn some SOA’s the ESB will take care of this. But an ESB is a large wieldy piece of kit – and not essentail for SOA.
  19. Me – Well I am me - WTF is an architect – well I would summarise it – a technical leads who has a broader field of vision when it comes to the application both in the systems space and in time. See byond the delviery of the current task and sets out the standards. Skyscanner – Who knows about Skyscanner? We are based in Edinburgh, have new glasgow office (+ singapore, Beijing and Miami) – all engineering is done in Scotland. – and yes we are hiring good engineers. Uve been there almost 4 years and therefore am a veteran. Topic:I am currently leading an underway project to bring Continuous Delivery practices to Skyscanner. I am going to talk about the lessons learned so far in doing that, the compromises we’ve made an how it applies to our complex S.O.A. We could talk all day on the topic and as I have an hour (and I am getting back to Edinburgh on the last train) – we are going to skirt some of the detail and keep it high level.Quickly introduce the topic – How many people understand the principles of Continuous Delivery? We’ll do a recap but I’ll be keeping it very brief, and my interpretation of it. First off I’d like to make a statement – IMHO the value of Agile isn’t in the prescription of the SCRUM or XP flavours. Agile development is about sticking to the principles but finding out exactly what the What is Continuous DeliveryWhat is SOAWhat is that at Skyscanner? Why bother ? Perfect Storm (Test team building up, defining release operations; too much pain)5 key challenges and how we are planning to solve itGet business buy in…Deployable Units (Monolithic vs component)Automating TestsService GovernanceLate integrationConsistency