SlideShare une entreprise Scribd logo
Continuous Delivery Automation of Cloud
Infrastructure and Applications at
Agenda
Page 2 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
• What challenges did we face with software delivery?
• How we solved these problems using:
− Technology
− Process
A little about Choice Hotels…
• Founded in 1939 (77 years ago!)
• 1,150 Employees (~500 in IT)
• Publicly traded (CHH)
• $859.9 million in revenue (2015)
• $7+ billion flows through reservation system each year
• Franchise model (Economy, Mid-Scale, Upscale)
• 6,400+ Hotels (500,000+ rooms)
• 35+ Countries
• Vacation Rentals (launched 2016)
Page 3 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
A little about me…
• Distinguished Engineer (1st at Choice)
• Formerly, Senior Director, Platform Engineering
• Specialize in OO Design, SOA and CI/CD
• Sixteen years software engineering experience
• Prior: Director of IT @ O’Reilly Media, Inc.
• Married with three kids
Page 4 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
What challenges did we
face with software
delivery?
Page 5 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Prior Deployment Process
Page 6 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Software Delivery Concerns
Page 7 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
• Inconsistent and manual deployment process
• Formal change control process (meets once a week)
• Inconsistent or lack of automated testing
• Load testing performed by one team
• Unchecked code quality analysis
• No deployment process measurements
• Requests for infrastructure takes weeks
• Inconsistent and non-standard VM configuration
How we solved these
problems using:
Technology
Page 8 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Infrastructure as Code
• Base AMIs defined with Puppet
− Linux (based on Amazon Linux)
− Web Server [httpd] (based on Linux AMI)
− Java Server (based on Linux AMI)
− Application Server [Tomcat] (based on Java AMI)
− Cassandra Server (based on Java AMI)
− ActiveMQ Server (based on Java AMI)
• Baked by launching an instance with Cloud Formation, run Puppet, create
image, teardown instance
• Re-bake at least every 30 days
Page 9 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Application Deployment Descriptors
• Written in JSON
• Defines required infrastructure resources and application dependencies
− Allows definition of the following infrastructure resources:
• EC2, ASG, ELB, Scaling Policy, Security Groups, Subnets, RDS, SQS, SNS, Cloud Watch alarms
• Descriptors are composable with other descriptors to enable chaining
application dependencies together
− An entire stack can be deployed by deploying highest level descriptor
Page 10 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Application Deployment Descriptor Example
Page 11 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Application Deployment Service
• Java CLI application
• Cloud provider agnostic (sort of)
• Communicates to cloud provider through SDK
• Traverses descriptor graph (depth-first)
− Creates infrastructure resources (idempotent)
− Deploys application (idempotent)
Page 12 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
How we solved these
problems using:
Process
Page 13 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Continuous Delivery Pipeline
Page 14 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Commit Stage
• Compile source
• Execute unit tests
• Execute static code analysis
• Package artifact
• Deploy artifact to Nexus
• Deploy site to Nexus
• Publish pipeline stage metrics
Page 15 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Functional Acceptance Testing Stage
• Bake and copy AMI
• Launch test environment
• Wait for test environment
• Execute functional testing with SoapUI
• Publish pipeline stage metrics
Page 16 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Exploratory Acceptance Testing Stage (Optional)
• Reuse functional acceptance testing environment
• Execute manual testing (QA Approval Gate)
• Publish pipeline stage metrics
Page 17 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Operational Acceptance Testing Stage
• Reuse functional acceptance testing environment
• Execute load testing with JMeter
• Execute security testing with ZAP
• Execute resiliency testing with Chaos Monkey
• Teardown acceptance test environment
• Publish pipeline stage metrics
Page 18 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Deployment to Systems Integration Test QA Environment
• Execute blue/green deployment to SIT (QA Approval Gate)
− Launch Green ASG with New Image
− Wait For Green ASG
− Teardown Blue ASG
• Execute smoke tests against SIT (QA Approval Gate)
• Publish pipeline stage metrics
Page 19 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Deployment to Production Environment
• Submit change report to CAB (CAB Approval Gate)
• Promote machine image to release
• Execute canary deployment to production (Operations Approval Gate)
• Execute blue/green deployment to production (Operations Approval Gate)
• Rollback if necessary
• Publish pipeline stage metrics
Page 20 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Page 21 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
Thank You!
Page 22 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
www.choicehotels.com
brian.mericle@choicehotels.com
@bpmericle
https://www.linkedin.com/in/brianpmericle

Contenu connexe

Tendances

Data2Ontology
Data2OntologyData2Ontology
Data2Ontology
Alexander Polonsky
 
Update: IDL & ENVI
Update: IDL & ENVIUpdate: IDL & ENVI
Cloudsolutionday 2016: Docker & FAAS at getvero.com
Cloudsolutionday 2016: Docker & FAAS at getvero.comCloudsolutionday 2016: Docker & FAAS at getvero.com
Cloudsolutionday 2016: Docker & FAAS at getvero.com
AWS Vietnam Community
 
SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016
Rick Van Rousselt
 
ONAP TOSCA Orchestration with Cloudify
ONAP TOSCA Orchestration with CloudifyONAP TOSCA Orchestration with Cloudify
ONAP TOSCA Orchestration with Cloudify
Cloudify Community
 
Reactive Programming with RxJava
Reactive Programming with RxJavaReactive Programming with RxJava
Reactive Programming with RxJava
Grand Parade Poland
 
VEDAViz for ETSAP partners
VEDAViz for ETSAP partnersVEDAViz for ETSAP partners
VEDAViz for ETSAP partners
IEA-ETSAP
 
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
How To Build Auto-Adaptive Machine Learning Models with KubernetesHow To Build Auto-Adaptive Machine Learning Models with Kubernetes
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
cnvrg.io AI OS - Hands-on ML Workshops
 
Microservices: next-steps
Microservices: next-stepsMicroservices: next-steps
Microservices: next-steps
Boyan Dimitrov
 
Verilog & Vivado Quickstart
Verilog & Vivado QuickstartVerilog & Vivado Quickstart
Verilog & Vivado Quickstart
Stewart Dulaney
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
David Voyles
 
How To Tweak Angular 2 Performance
How To Tweak Angular 2 PerformanceHow To Tweak Angular 2 Performance
How To Tweak Angular 2 Performance
Oleksandr Tryshchenko
 
RxSwift
RxSwiftRxSwift
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Waldek Mastykarz
 
Metrics driven development with dedicated Observability Team
Metrics driven development with dedicated Observability TeamMetrics driven development with dedicated Observability Team
Metrics driven development with dedicated Observability Team
LINE Corporation
 
WEBridge 4 SAP R2
WEBridge 4 SAP R2WEBridge 4 SAP R2
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
AWS Vietnam Community
 
Intern Report
Intern ReportIntern Report
Intern Report
Shivang Singh
 
SJM_ESI_Casestudy
SJM_ESI_CasestudySJM_ESI_Casestudy
Moving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journeyMoving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journey
Boyan Dimitrov
 

Tendances (20)

Data2Ontology
Data2OntologyData2Ontology
Data2Ontology
 
Update: IDL & ENVI
Update: IDL & ENVIUpdate: IDL & ENVI
Update: IDL & ENVI
 
Cloudsolutionday 2016: Docker & FAAS at getvero.com
Cloudsolutionday 2016: Docker & FAAS at getvero.comCloudsolutionday 2016: Docker & FAAS at getvero.com
Cloudsolutionday 2016: Docker & FAAS at getvero.com
 
SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016
 
ONAP TOSCA Orchestration with Cloudify
ONAP TOSCA Orchestration with CloudifyONAP TOSCA Orchestration with Cloudify
ONAP TOSCA Orchestration with Cloudify
 
Reactive Programming with RxJava
Reactive Programming with RxJavaReactive Programming with RxJava
Reactive Programming with RxJava
 
VEDAViz for ETSAP partners
VEDAViz for ETSAP partnersVEDAViz for ETSAP partners
VEDAViz for ETSAP partners
 
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
How To Build Auto-Adaptive Machine Learning Models with KubernetesHow To Build Auto-Adaptive Machine Learning Models with Kubernetes
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
 
Microservices: next-steps
Microservices: next-stepsMicroservices: next-steps
Microservices: next-steps
 
Verilog & Vivado Quickstart
Verilog & Vivado QuickstartVerilog & Vivado Quickstart
Verilog & Vivado Quickstart
 
ASP.NET 5
ASP.NET 5ASP.NET 5
ASP.NET 5
 
How To Tweak Angular 2 Performance
How To Tweak Angular 2 PerformanceHow To Tweak Angular 2 Performance
How To Tweak Angular 2 Performance
 
RxSwift
RxSwiftRxSwift
RxSwift
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
 
Metrics driven development with dedicated Observability Team
Metrics driven development with dedicated Observability TeamMetrics driven development with dedicated Observability Team
Metrics driven development with dedicated Observability Team
 
WEBridge 4 SAP R2
WEBridge 4 SAP R2WEBridge 4 SAP R2
WEBridge 4 SAP R2
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Intern Report
Intern ReportIntern Report
Intern Report
 
SJM_ESI_Casestudy
SJM_ESI_CasestudySJM_ESI_Casestudy
SJM_ESI_Casestudy
 
Moving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journeyMoving to microservices – a technology and organisation transformational journey
Moving to microservices – a technology and organisation transformational journey
 

Similaire à Continuous Delivery Automation of Cloud Infrastructure and Applications at Choice Hotels

Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
Ronak Banka
 
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP LoadrunnerWebinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Whitney Donaldson
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
IBM UrbanCode Products
 
How to Triple Your Speed of Development Using Automation
How to Triple Your Speed of Development Using AutomationHow to Triple Your Speed of Development Using Automation
How to Triple Your Speed of Development Using Automation
AllCloud
 
Performance in the cloud
Performance in the cloudPerformance in the cloud
Performance in the cloud
Diego Cardozo
 
Rez gateway (RezOS) innovate the future
Rez gateway  (RezOS) innovate the futureRez gateway  (RezOS) innovate the future
Rez gateway (RezOS) innovate the future
indikaMaligaspe
 
Rez gateway - RezOS - innovate the future
Rez gateway - RezOS -   innovate the futureRez gateway - RezOS -   innovate the future
Rez gateway - RezOS - innovate the future
indikaMaligaspe
 
Cloud migration Through Automation
Cloud migration Through AutomationCloud migration Through Automation
Cloud migration Through Automation
Uni Systems S.M.S.A.
 
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
VMware Tanzu
 
AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...
AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...
AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...
Amazon Web Services
 
Cloud testing
Cloud testingCloud testing
Cloud testing
Khizra Sammad
 
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Lucas Jellema
 
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital PlatformRe-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
Jake Borr
 
Defense
DefenseDefense
Defense
Pascal Potvin
 
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the FutureIWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
Matthew Castle
 
Microservices on AWS Spot instances
Microservices on AWS Spot instancesMicroservices on AWS Spot instances
Microservices on AWS Spot instances
Jim Bugwadia
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
Noriaki Tatsumi
 
Modernizing Cloud and Hyperconverged Infrastructure monitoring
Modernizing Cloud and Hyperconverged Infrastructure monitoringModernizing Cloud and Hyperconverged Infrastructure monitoring
Modernizing Cloud and Hyperconverged Infrastructure monitoring
ManageEngine, Zoho Corporation
 
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
Matt Ray
 
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
minseok kim
 

Similaire à Continuous Delivery Automation of Cloud Infrastructure and Applications at Choice Hotels (20)

Pivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platformPivotal CloudFoundry on Google cloud platform
Pivotal CloudFoundry on Google cloud platform
 
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP LoadrunnerWebinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
 
Using Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT ChallengesUsing Blueprints to Overcome Multi-speed IT Challenges
Using Blueprints to Overcome Multi-speed IT Challenges
 
How to Triple Your Speed of Development Using Automation
How to Triple Your Speed of Development Using AutomationHow to Triple Your Speed of Development Using Automation
How to Triple Your Speed of Development Using Automation
 
Performance in the cloud
Performance in the cloudPerformance in the cloud
Performance in the cloud
 
Rez gateway (RezOS) innovate the future
Rez gateway  (RezOS) innovate the futureRez gateway  (RezOS) innovate the future
Rez gateway (RezOS) innovate the future
 
Rez gateway - RezOS - innovate the future
Rez gateway - RezOS -   innovate the futureRez gateway - RezOS -   innovate the future
Rez gateway - RezOS - innovate the future
 
Cloud migration Through Automation
Cloud migration Through AutomationCloud migration Through Automation
Cloud migration Through Automation
 
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
 
AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...
AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...
AWS re:Invent 2016: Deploying Amazon WorkSpaces at Enterprise Scale to Delive...
 
Cloud testing
Cloud testingCloud testing
Cloud testing
 
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
 
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital PlatformRe-Platforming: How to Plan Your Next Multi-Site Digital Platform
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
 
Defense
DefenseDefense
Defense
 
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the FutureIWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
 
Microservices on AWS Spot instances
Microservices on AWS Spot instancesMicroservices on AWS Spot instances
Microservices on AWS Spot instances
 
Operating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud MicroservicesOperating a High Velocity Large Organization with Spring Cloud Microservices
Operating a High Velocity Large Organization with Spring Cloud Microservices
 
Modernizing Cloud and Hyperconverged Infrastructure monitoring
Modernizing Cloud and Hyperconverged Infrastructure monitoringModernizing Cloud and Hyperconverged Infrastructure monitoring
Modernizing Cloud and Hyperconverged Infrastructure monitoring
 
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
 
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
 

Plus de Brian Mericle

DEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaCDEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaC
Brian Mericle
 
Gluecon 2018 JaC
Gluecon 2018 JaCGluecon 2018 JaC
Gluecon 2018 JaC
Brian Mericle
 
Productive and Cost Effective Development Feedback Loops Within Continuous De...
Productive and Cost Effective Development Feedback Loops Within Continuous De...Productive and Cost Effective Development Feedback Loops Within Continuous De...
Productive and Cost Effective Development Feedback Loops Within Continuous De...
Brian Mericle
 
Managing Jenkins as Code
Managing Jenkins as CodeManaging Jenkins as Code
Managing Jenkins as Code
Brian Mericle
 
Effective Continuous Deployment
Effective Continuous DeploymentEffective Continuous Deployment
Effective Continuous Deployment
Brian Mericle
 
The Journey Towards Continuous Deployment
The Journey Towards Continuous DeploymentThe Journey Towards Continuous Deployment
The Journey Towards Continuous Deployment
Brian Mericle
 

Plus de Brian Mericle (6)

DEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaCDEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaC
 
Gluecon 2018 JaC
Gluecon 2018 JaCGluecon 2018 JaC
Gluecon 2018 JaC
 
Productive and Cost Effective Development Feedback Loops Within Continuous De...
Productive and Cost Effective Development Feedback Loops Within Continuous De...Productive and Cost Effective Development Feedback Loops Within Continuous De...
Productive and Cost Effective Development Feedback Loops Within Continuous De...
 
Managing Jenkins as Code
Managing Jenkins as CodeManaging Jenkins as Code
Managing Jenkins as Code
 
Effective Continuous Deployment
Effective Continuous DeploymentEffective Continuous Deployment
Effective Continuous Deployment
 
The Journey Towards Continuous Deployment
The Journey Towards Continuous DeploymentThe Journey Towards Continuous Deployment
The Journey Towards Continuous Deployment
 

Dernier

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 

Dernier (20)

Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 

Continuous Delivery Automation of Cloud Infrastructure and Applications at Choice Hotels

  • 1. Continuous Delivery Automation of Cloud Infrastructure and Applications at
  • 2. Agenda Page 2 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016 • What challenges did we face with software delivery? • How we solved these problems using: − Technology − Process
  • 3. A little about Choice Hotels… • Founded in 1939 (77 years ago!) • 1,150 Employees (~500 in IT) • Publicly traded (CHH) • $859.9 million in revenue (2015) • $7+ billion flows through reservation system each year • Franchise model (Economy, Mid-Scale, Upscale) • 6,400+ Hotels (500,000+ rooms) • 35+ Countries • Vacation Rentals (launched 2016) Page 3 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 4. A little about me… • Distinguished Engineer (1st at Choice) • Formerly, Senior Director, Platform Engineering • Specialize in OO Design, SOA and CI/CD • Sixteen years software engineering experience • Prior: Director of IT @ O’Reilly Media, Inc. • Married with three kids Page 4 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 5. What challenges did we face with software delivery? Page 5 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 6. Prior Deployment Process Page 6 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 7. Software Delivery Concerns Page 7 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016 • Inconsistent and manual deployment process • Formal change control process (meets once a week) • Inconsistent or lack of automated testing • Load testing performed by one team • Unchecked code quality analysis • No deployment process measurements • Requests for infrastructure takes weeks • Inconsistent and non-standard VM configuration
  • 8. How we solved these problems using: Technology Page 8 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 9. Infrastructure as Code • Base AMIs defined with Puppet − Linux (based on Amazon Linux) − Web Server [httpd] (based on Linux AMI) − Java Server (based on Linux AMI) − Application Server [Tomcat] (based on Java AMI) − Cassandra Server (based on Java AMI) − ActiveMQ Server (based on Java AMI) • Baked by launching an instance with Cloud Formation, run Puppet, create image, teardown instance • Re-bake at least every 30 days Page 9 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 10. Application Deployment Descriptors • Written in JSON • Defines required infrastructure resources and application dependencies − Allows definition of the following infrastructure resources: • EC2, ASG, ELB, Scaling Policy, Security Groups, Subnets, RDS, SQS, SNS, Cloud Watch alarms • Descriptors are composable with other descriptors to enable chaining application dependencies together − An entire stack can be deployed by deploying highest level descriptor Page 10 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 11. Application Deployment Descriptor Example Page 11 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 12. Application Deployment Service • Java CLI application • Cloud provider agnostic (sort of) • Communicates to cloud provider through SDK • Traverses descriptor graph (depth-first) − Creates infrastructure resources (idempotent) − Deploys application (idempotent) Page 12 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 13. How we solved these problems using: Process Page 13 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 14. Continuous Delivery Pipeline Page 14 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 15. Commit Stage • Compile source • Execute unit tests • Execute static code analysis • Package artifact • Deploy artifact to Nexus • Deploy site to Nexus • Publish pipeline stage metrics Page 15 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 16. Functional Acceptance Testing Stage • Bake and copy AMI • Launch test environment • Wait for test environment • Execute functional testing with SoapUI • Publish pipeline stage metrics Page 16 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 17. Exploratory Acceptance Testing Stage (Optional) • Reuse functional acceptance testing environment • Execute manual testing (QA Approval Gate) • Publish pipeline stage metrics Page 17 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 18. Operational Acceptance Testing Stage • Reuse functional acceptance testing environment • Execute load testing with JMeter • Execute security testing with ZAP • Execute resiliency testing with Chaos Monkey • Teardown acceptance test environment • Publish pipeline stage metrics Page 18 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 19. Deployment to Systems Integration Test QA Environment • Execute blue/green deployment to SIT (QA Approval Gate) − Launch Green ASG with New Image − Wait For Green ASG − Teardown Blue ASG • Execute smoke tests against SIT (QA Approval Gate) • Publish pipeline stage metrics Page 19 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 20. Deployment to Production Environment • Submit change report to CAB (CAB Approval Gate) • Promote machine image to release • Execute canary deployment to production (Operations Approval Gate) • Execute blue/green deployment to production (Operations Approval Gate) • Rollback if necessary • Publish pipeline stage metrics Page 20 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 21. Page 21 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016
  • 22. Thank You! Page 22 | Continuous Delivery Automation of Cloud Infrastructure and Applications | May 26, 2016 www.choicehotels.com brian.mericle@choicehotels.com @bpmericle https://www.linkedin.com/in/brianpmericle

Notes de l'éditeur

  1. What happens to a process over time without innovation.
  2. Manifests versioned in repo Re-bake every 30 days to ensure security updates are installed
  3. Broken up into discrete reusable components
  4. AMI Categories: Base linux, web server, java, application server, Cassandra Copies across dev account regions and shares the AMI with the prod account
  5. Runs parallel to Operational Acceptance Testing stage
  6. Load tests run when appropriate, not on every pipeline run ZAP - OWASP Zed Attack Proxy
  7. AMI statuses: [SNAPSHOT > RELEASE] [RELEASE > STABLE] [STABLE > ARCHIVE]