23
Copyright © 2015 Accenture All rights reserved. Continuous Delivery using a self-managed Cloud Foundry PaaS application

Continuous Delivery with a PaaS Application

Embed Size (px)

Citation preview

Page 1: Continuous Delivery with a PaaS Application

Copyright © 2015 Accenture All rights reserved.

Continuous Delivery

using a self-managed Cloud Foundry

PaaS application

Page 2: Continuous Delivery with a 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

Page 3: Continuous Delivery with a PaaS Application

Continuous Delivery and PaaA

3Copyright © 2015 Accenture All rights reserved.

Page 4: Continuous Delivery with a PaaS Application

4Copyright © 2015 Accenture All rights reserved.

Value Stream

Idea Value

Page 5: Continuous Delivery with a PaaS Application

Value Stream

Idea Value

“Continuous Delivery”Copyright © 2015 Accenture All rights reserved.

Page 6: Continuous Delivery with a PaaS Application

Continuous Integration

Compile

Sonar Code Analysis

Run Unit Tests

Committer: jdoeStory:25

Commit ID: 113

Copyright © 2015 Accenture All rights reserved.

Page 7: Continuous Delivery with a PaaS Application

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.

Page 8: Continuous Delivery with a PaaS Application

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.

Page 9: Continuous Delivery with a PaaS Application

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.

Page 10: Continuous Delivery with a PaaS Application

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.

Page 11: Continuous Delivery with a PaaS Application

A solution using Cloud Foundry

11Copyright © 2015 Accenture All rights reserved.

Page 12: Continuous Delivery with a PaaS Application

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.

Page 13: Continuous Delivery with a PaaS Application

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.

Page 14: Continuous Delivery with a PaaS Application

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

Page 15: Continuous Delivery with a PaaS Application

Developing and releasing the Platform

15Copyright © 2015 Accenture All rights reserved.

Page 16: Continuous Delivery with a PaaS Application

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

Page 17: Continuous Delivery with a PaaS Application

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.

Page 18: Continuous Delivery with a PaaS Application

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.

Page 19: Continuous Delivery with a PaaS Application

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.

Page 20: Continuous Delivery with a PaaS Application

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.

Page 21: Continuous Delivery with a PaaS Application

Team Structure

21Copyright © 2015 Accenture All rights reserved.

Page 22: Continuous Delivery with a PaaS Application

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)

Page 23: Continuous Delivery with a PaaS Application

Questions?

[email protected]

@markosrendell

http://markosrendell.wordpress.com

Copyright © 2015 Accenture All rights reserved.