SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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

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
 

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

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

CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
Overkill Security
 

Dernier (20)

Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
ChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps ProductivityChatGPT and Beyond - Elevating DevOps Productivity
ChatGPT and Beyond - Elevating DevOps Productivity
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
Human Expert Website Manual WCAG 2.0 2.1 2.2 Audit - Digital Accessibility Au...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Vector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptxVector Search @ sw2con for slideshare.pptx
Vector Search @ sw2con for slideshare.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Microsoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdfMicrosoft BitLocker Bypass Attack Method.pdf
Microsoft BitLocker Bypass Attack Method.pdf
 

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]