Contenu connexe Similaire à Continuous Delivery with a PaaS Application (20) Continuous Delivery with a PaaS Application1. Copyright © 2015 Accenture All rights reserved.
Continuous Delivery
using a self-managed Cloud Foundry
PaaS application
2. Copyright © 2015 Accenture All rights reserved.
Mark Rendell – Accenture
DevOps Control Services Centre
A globally networked pool of resources
providing projects the option to have key areas of
their DevOps delivered as a service. By
emphasising Continuous Delivery, we are able
to vastly improve your Software Delivery
Lifecycle at all each stages including
Transformation, Mobilisation and
Assessment
Software Configuration
Management
Release Management
Assessments
Environment Management
We can…
1. Take a project from a standing-start to a
working Development and Tools
infrastructure in days
2. Increase Agility by using our pioneering
methods for Continuous Delivery
3. Increase productivity and predictability
through fully automated environments
4. Reduce Cost by using proven
processes and expertise to reduce
errors and downtime
DevOps
DevOps Transformation
Build & Deploy Automation
Continuous Delivery
Rational and Jira
5. Increase quality and
efficiency
Infrastructure as code
CloudPaaS
Build and operate platforms optimised for rapid delivery
7. Continuous Delivery
Compile
Sonar Code Analysis
Run Unit Tests
Package Deploy Code Deploy Code Run Test Harness Run Perf Test
Run Security Test
Run Ops Test
Prod deploy
Committer: jdoe
Story:25
Commit ID: 113 Run Test HarnessLoad Test Data
+
?
Copyright © 2015 Accenture All rights reserved.
8. How does the Platform (as in “tools”) fit in?
Compile
Sonar Code Analysis
Run Unit Tests
Package Deploy Code Deploy Code Functional test Run Perf Test
Run Security Test
Prod deploy
Committer: jdoe
Story:25
Commit ID: 113 Functional testLoad Test Data
• Where we store code, configuration, binary artefacts etc.
• The workflow for doing CD
• Moving code around (build / deploy)
• Hooks for automated quality gates
Copyright © 2015 Accenture All rights reserved.
9. How does the Platform (as in “environments”) fit in?
Compile
Sonar Code Analysis
Run Unit Tests
Package Deploy Code Deploy Code Functional test Run Perf Test
Run Security Test
Prod deploy
Committer: jdoe
Story:25
Commit ID: 113 Functional testLoad Test Data
Absolute environment consistency required!
Should use CD for platform / infrastructure code as well!
Copyright © 2015 Accenture All rights reserved.
10. Reference Architecture for a Platform as an Application (PaaA)
Business
Application
Business
Application
Business
Application
Business
Application
Business
Application
Business Applications
Copyright © 2015 Accenture All rights reserved.
11. A solution using Cloud Foundry
11Copyright © 2015 Accenture All rights reserved.
12. Project Background
Brand new
Delivering applications for B2B and B2C
Ready to use public cloud
Positive attitude towards open source
4 months from inception to soft launch
Copyright © 2015 Accenture All rights reserved.
13. Many different (micro) services
Lots of test environments (for different service teams)
J2E Servlet Containers, Message Queues, RDBS, NoSQL, Caching
Support for Continuous Delivery (eventually Continuous Deployment)
Auto-scaling
High-availability
Cloud provider independence
Requirements of our Platform
Copyright © 2015 Accenture All rights reserved.
14. A first class native concern
Orchestrated by Jenkins so good central hub
Deployment automation native to Cloud Foundry
For Cloud Foundry supported application packages, native to
the platform application, very convenient, fully abstracted
and optimised
Cloud Foundry (Bosh) managed for natively supported
application packages
We extended Bosh for other packages
Natively managed by the Cloud Foundry
Fully automated by calls from the above layer
Fully abstracted from us
Our Cloud Foundry-based Solution
Auto-scaling
High availability
J2E Servlet container, Message bus, RDBS, NoSQL, Caching
Many different (micro) services
Lots of test environments (for different service teams) Support for Continuous Delivery (eventually Continuous Deployment)
Copyright © 2015 Accenture All rights reserved.
Cloud provider independence
16. Continuous Delivery of the Platform
Sonar Code Analysis
Run Unit Tests
Package
Committer: jdoe
Story:25
Commit ID: 113
https://github.com/bbatsov/rubocop
http://rspec.info/
Platform data centre Dev/Test data centre Prod data centre
Create Platform Test Platform Create Platform Test Platform Create Platform Test Platform
17. Platform data centre: v1.3.9
Platform to Application Integration Testing
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Platform
Proddatacentre:v1.3.9
Nonproddatacentre:v1.3.9
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
PT env deploy
Run Tech
Tests
Production
deploy
PT env deploy
Run Tech
Tests
Production
deploy
PT env deploy
Run Tech
Tests
Production
deploy
PT env deploy
Run Tech
Tests
Production
deploy
Copyright © 2015 Accenture All rights reserved.
18. Proddatacentre:v1.3.9
Nonproddatacentre:v1.3.9
Platform data centre: v1.4.4
Managing Flow of Platform Application Updates
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Platform
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
PT env deploy
Run Tech
Tests
CT env
deploy
Production
deploy
Check
in
Copyright © 2015 Accenture All rights reserved.
19. Proddatacentre:v1.3.9
Nonproddatacentre:v1.4.4
Platform data centre: v1.4.4
Managing Flow of Platform Application Updates
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Platform
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Copyright © 2015 Accenture All rights reserved.
20. Proddatacentre:v1.3.9Proddatacentre:v1.4.4
Nonproddatacentre:v1.4.4
Platform data centre: v1.4.4
Managing Flow of Platform Application Updates
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Compile
and package
Unit Tests
Platform env
deploy
Monitoring
tests
Check
in
Platform
PT env deploy
Run Tech
Tests
Production
deploy
PT env deploy
Run Tech
Tests
Production
deploy
PT env deploy
Run Tech
Tests
Production
deploy
PT env deploy
Run Tech
Tests
Production
deploy
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Compile
and package
Static Code
Analysis
Unit Tests
Run Functional
Tests
Run Security
Tests
CT env
deploy
Check
in
Copyright © 2015 Accenture All rights reserved.
22. DevOps with a Platform Application
Classic problem statement
Monolithic Team?
End-to-end teams
and
Platform as an Application
UI
agency
Cloud
“Ops”
(possibly
shadow!)
Testing
Centre
“Heritage
System”
owner
Mobil
e
partn
ers
ERP
owner
CMS
vendor
CRM
owner
SaaS
(possibly
shadow!)
“Operations”
Common Reality
“That which optimizes one part of the system necessarily undermines the system as a whole”
Eric Ries, The Lean Startup, (2011)