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

PDF
Bringing a public GraphQL API from the whiteboard to production
PDF
Cnvrg webinar continual learning
PPTX
Scaling from 1 to 10 million users - Hailo
PPTX
Rootconf 2017 - State of the Open Source monitoring landscape
PPTX
What’s new mvc 4
PDF
Demonstrating RES visualisation software
PDF
Kicking off of the ETSAP-TIAM cooperation and version control project
PDF
How We Migrate PBs Data from Beijing to Shanghai
Bringing a public GraphQL API from the whiteboard to production
Cnvrg webinar continual learning
Scaling from 1 to 10 million users - Hailo
Rootconf 2017 - State of the Open Source monitoring landscape
What’s new mvc 4
Demonstrating RES visualisation software
Kicking off of the ETSAP-TIAM cooperation and version control project
How We Migrate PBs Data from Beijing to Shanghai

What's hot (20)

PDF
Data2Ontology
PPTX
Cloudsolutionday 2016: Docker & FAAS at getvero.com
PPTX
SharePoint Saturday Belgium 2016
PDF
ONAP TOSCA Orchestration with Cloudify
PPTX
Reactive Programming with RxJava
PDF
VEDAViz for ETSAP partners
PDF
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
PPTX
Microservices: next-steps
PPTX
Verilog & Vivado Quickstart
PPTX
ASP.NET 5
PDF
How To Tweak Angular 2 Performance
PPTX
PPTX
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
PDF
Metrics driven development with dedicated Observability Team
PPS
PDF
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
PPTX
Intern Report
PPSX
PPTX
Moving to microservices – a technology and organisation transformational journey
Data2Ontology
Cloudsolutionday 2016: Docker & FAAS at getvero.com
SharePoint Saturday Belgium 2016
ONAP TOSCA Orchestration with Cloudify
Reactive Programming with RxJava
VEDAViz for ETSAP partners
How To Build Auto-Adaptive Machine Learning Models with Kubernetes
Microservices: next-steps
Verilog & Vivado Quickstart
ASP.NET 5
How To Tweak Angular 2 Performance
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Metrics driven development with dedicated Observability Team
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Intern Report
Moving to microservices – a technology and organisation transformational journey
Ad

Similar to Continuous Delivery Automation of Cloud Infrastructure and Applications at Choice Hotels (20)

PPT
DevOps for Dummies By Sanjeev Sharma Bernie Coyne
PDF
Pivotal CloudFoundry on Google cloud platform
PPTX
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
PDF
Using Blueprints to Overcome Multi-speed IT Challenges
PPTX
How to Triple Your Speed of Development Using Automation
PPTX
Performance in the cloud
PPTX
Rez gateway - RezOS - innovate the future
PPTX
Rez gateway (RezOS) innovate the future
PPTX
Cloud migration Through Automation
PDF
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
PPTX
Cloud testing
PPTX
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
PPTX
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
PPSX
Defense
PPTX
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
PDF
Microservices on AWS Spot instances
PPTX
Operating a High Velocity Large Organization with Spring Cloud Microservices
PPTX
Modernizing Cloud and Hyperconverged Infrastructure monitoring
PDF
Brisbane AWS Meetup: OpsWorks for Chef Automate
PDF
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
DevOps for Dummies By Sanjeev Sharma Bernie Coyne
Pivotal CloudFoundry on Google cloud platform
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Using Blueprints to Overcome Multi-speed IT Challenges
How to Triple Your Speed of Development Using Automation
Performance in the cloud
Rez gateway - RezOS - innovate the future
Rez gateway (RezOS) innovate the future
Cloud migration Through Automation
Concourse, Spinnaker, Cloud Foundry, Oh My! Creating Sophisticated Deployment...
Cloud testing
Dutch Oracle Architects Platform - Reviewing Oracle OpenWorld 2017 and New Tr...
Re-Platforming: How to Plan Your Next Multi-Site Digital Platform
Defense
IWMW 2017 - Oxford Mosaic - A Web Publishing Platform for the Future
Microservices on AWS Spot instances
Operating a High Velocity Large Organization with Spring Cloud Microservices
Modernizing Cloud and Hyperconverged Infrastructure monitoring
Brisbane AWS Meetup: OpsWorks for Chef Automate
Pivotal korea transformation_strategy_seminar_enterprise_dev_ops_20160630_v1.0
Ad

More from Brian Mericle (6)

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

Recently uploaded (20)

PPT
What is a Computer? Input Devices /output devices
PDF
Architecture types and enterprise applications.pdf
PPTX
Microsoft Excel 365/2024 Beginner's training
PDF
CloudStack 4.21: First Look Webinar slides
PDF
Getting started with AI Agents and Multi-Agent Systems
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Configure Apache Mutual Authentication
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
The influence of sentiment analysis in enhancing early warning system model f...
PPTX
Modernising the Digital Integration Hub
PDF
Flame analysis and combustion estimation using large language and vision assi...
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
What is a Computer? Input Devices /output devices
Architecture types and enterprise applications.pdf
Microsoft Excel 365/2024 Beginner's training
CloudStack 4.21: First Look Webinar slides
Getting started with AI Agents and Multi-Agent Systems
Module 1.ppt Iot fundamentals and Architecture
Configure Apache Mutual Authentication
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
How IoT Sensor Integration in 2025 is Transforming Industries Worldwide
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Taming the Chaos: How to Turn Unstructured Data into Decisions
Module 1 Introduction to Web Programming .pptx
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
UiPath Agentic Automation session 1: RPA to Agents
The influence of sentiment analysis in enhancing early warning system model f...
Modernising the Digital Integration Hub
Flame analysis and combustion estimation using large language and vision assi...
4 layer Arch & Reference Arch of IoT.pdf
A contest of sentiment analysis: k-nearest neighbor versus neural network

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 [email protected] @bpmericle https://www.linkedin.com/in/brianpmericle

Editor's Notes

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