Upload
mark-rendell
View
242
Download
0
Embed Size (px)
Citation preview
Copyright © 2015 Accenture All rights reserved.
Continuous Delivery
using a self-managed Cloud Foundry
PaaS application
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 AutomationContinuous Delivery
Rational and Jira
5. Increase quality and efficiency
Infrastructure as code
CloudPaaS
Build and operate platforms optimised for rapid delivery
Continuous Delivery and PaaA
3Copyright © 2015 Accenture All rights reserved.
4Copyright © 2015 Accenture All rights reserved.
Value Stream
Idea Value
Value Stream
Idea Value
“Continuous Delivery”Copyright © 2015 Accenture All rights reserved.
Continuous Integration
Compile
Sonar Code Analysis
Run Unit Tests
Committer: jdoeStory:25
Commit ID: 113
Copyright © 2015 Accenture All rights reserved.
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: jdoeStory:25
Commit ID: 113 Run Test HarnessLoad Test Data
+
?Copyright © 2015 Accenture All rights reserved.
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 deployCommitter: 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.
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 deployCommitter: 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.
Reference Architecture for a Platform as an Application (PaaA)
Business Applications
Security model
Deployment architecture
Logical environment separationExecution architecture
Platform Infrastructure orchestration
Basic Infrastructure orchestration
Hardware management
Business Application
Business Application
Business Application
Business Application
Business Application
Platfor
mApplication
Business Applications
Copyright © 2015 Accenture All rights reserved.
A solution using Cloud Foundry
11Copyright © 2015 Accenture All rights reserved.
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.
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
PlatformApplication
Copyright © 2015 Accenture All rights reserved.
A first class native concern
Orchestrated by Jenkins so good central hubDeployment automation native to Cloud Foundry
For Cloud Foundry supported application packages, native to the platform application, very convenient, fully abstracted and optimisedCloud Foundry (Bosh) managed for natively supported application packagesWe extended Bosh for other packages
Natively managed by the Cloud Foundry
Fully automated by calls from the above layer
Fully abstracted from us
Business Applications
Security model
Deployment architecture
Logical environment separation
Execution architecture
Platform Infrastructure orchestration
Basic Infrastructure orchestration
Hardware management
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
Developing and releasing the Platform
15Copyright © 2015 Accenture All rights reserved.
Continuous Delivery of the Platform
Sonar Code Analysis
Run Unit Tests
PackageCommitter: jdoe
Story:25
Commit ID: 113
https://github.com/bbatsov/rubocop
http://rspec.info/
Platform data centre Dev/Test data centre Prod data centreCreate Platform Test Platform Create Platform Test Platform Create Platform Test Platform
Platform data centre: v1.3.9
Platform to Application Integration Testing
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Platform
Prod data centre: v1.3.9
Non
pro
d da
ta c
entre
: v1
.3.9 Compile
and packageStatic Code
Analysis Unit Tests Run Functional Tests
Run Security Tests
CT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
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.
Prod data centre: v1.3.9
Non
pro
d da
ta c
entre
: v1
.3.9
Platform data centre: v1.4.4
Managing Flow of Platform Application Updates
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Platform
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
Tests PT env deploy Run Tech TestsCT envdeploy
Production deploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
Tests PT env deploy Run Tech TestsCT envdeploy
Production deploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
Tests PT env deploy Run Tech TestsCT envdeploy
Production deploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
Tests PT env deploy Run Tech TestsCT envdeploy
Production deploy
Check in
Copyright © 2015 Accenture All rights reserved.
Prod data centre: v1.3.9
Non
pro
d da
ta c
entre
: v1
.4.4
Platform data centre: v1.4.4
Managing Flow of Platform Application Updates
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Platform
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Copyright © 2015 Accenture All rights reserved.
Prod data centre: v1.3.9
Prod data centre: v1.4.4
Non
pro
d da
ta c
entre
: v1
.4.4
Platform data centre: v1.4.4
Managing Flow of Platform Application Updates
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
in
Compileand package Unit Tests Platform env
deployMonitoring
testsCheck
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
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Compileand package
Static Code Analysis Unit Tests Run Functional
TestsRun Security
TestsCT envdeploy
Check in
Copyright © 2015 Accenture All rights reserved.
Team Structure
21Copyright © 2015 Accenture All rights reserved.
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
Mobile partners
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)
Questions?
@markosrendell
http://markosrendell.wordpress.com
Copyright © 2015 Accenture All rights reserved.