SlideShare a Scribd company logo
1 of 22
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

More Related Content

What's hot

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.comAWS Vietnam Community
 
SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016Rick Van Rousselt
 
ONAP TOSCA Orchestration with Cloudify
ONAP TOSCA Orchestration with CloudifyONAP TOSCA Orchestration with Cloudify
ONAP TOSCA Orchestration with CloudifyCloudify Community
 
Reactive Programming with RxJava
Reactive Programming with RxJavaReactive Programming with RxJava
Reactive Programming with RxJavaGrand Parade Poland
 
VEDAViz for ETSAP partners
VEDAViz for ETSAP partnersVEDAViz for ETSAP partners
VEDAViz for ETSAP partnersIEA-ETSAP
 
Microservices: next-steps
Microservices: next-stepsMicroservices: next-steps
Microservices: next-stepsBoyan Dimitrov
 
Verilog & Vivado Quickstart
Verilog & Vivado QuickstartVerilog & Vivado Quickstart
Verilog & Vivado QuickstartStewart Dulaney
 
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 2016Waldek 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 TeamLINE Corporation
 
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 AWSAWS Vietnam Community
 
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 journeyBoyan Dimitrov
 

What's hot (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
 

Similar to 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 platformRonak 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 LoadrunnerWhitney 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 ChallengesIBM 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 AutomationAllCloud
 
Performance in the cloud
Performance in the cloudPerformance in the cloud
Performance in the cloudDiego Cardozo
 
Rez gateway - RezOS - innovate the future
Rez gateway - RezOS -   innovate the futureRez gateway - RezOS -   innovate the future
Rez gateway - RezOS - innovate the futureindikaMaligaspe
 
Rez gateway (RezOS) innovate the future
Rez gateway  (RezOS) innovate the futureRez gateway  (RezOS) innovate the future
Rez gateway (RezOS) innovate the futureindikaMaligaspe
 
Cloud migration Through Automation
Cloud migration Through AutomationCloud migration Through Automation
Cloud migration Through AutomationUni 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
 
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 PlatformJake Borr
 
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 FutureMatthew Castle
 
Microservices on AWS Spot instances
Microservices on AWS Spot instancesMicroservices on AWS Spot instances
Microservices on AWS Spot instancesJim 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 MicroservicesNoriaki Tatsumi
 
Modernizing Cloud and Hyperconverged Infrastructure monitoring
Modernizing Cloud and Hyperconverged Infrastructure monitoringModernizing Cloud and Hyperconverged Infrastructure monitoring
Modernizing Cloud and Hyperconverged Infrastructure monitoringManageEngine, 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 AutomateMatt 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.0minseok kim
 

Similar to 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
 

More from Brian Mericle

DEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaCDEVOPS LIVE 2018 JaC
DEVOPS LIVE 2018 JaCBrian 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 CodeBrian Mericle
 
Effective Continuous Deployment
Effective Continuous DeploymentEffective Continuous Deployment
Effective Continuous DeploymentBrian Mericle
 
The Journey Towards Continuous Deployment
The Journey Towards Continuous DeploymentThe Journey Towards Continuous Deployment
The Journey Towards Continuous DeploymentBrian Mericle
 

More from 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
 

Recently uploaded

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
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
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
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?
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

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

Editor's Notes

  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]