Orchestrating the Continuous Delivery Process @SachaLabourey CEO and Founder, CloudBees

Orchestrating the Continuous Delivery
Process
@SachaLabourey
CEO and Founder, CloudBees
©2014 CloudBees, Inc. All Rights Reserved
1
Continuous Delivery Overview
Feedback Loop
App Lifecycle
BUILD
TEST
Continuous Integration
Managed by…
…Enterprise
…SMB
Deploy
Run
Continuous Delivery
Process
Sub-Processes
STAGE
Deployment
Development Teams
Development Teams
Release / Ops Teams
DevOps
©2014 CloudBees, Inc. All Rights Reserved
2
Continuous Delivery Defined
• For the business person:
– Continuous delivery is a methodology that allows you to deliver new
software and update existing software faster, with lower risk
• For the technical person:
– Continuous delivery encompasses the set of activities you use to
ensure you are ready to deploy code and configuration changes into
production at all times
• In relation to Continuous Integration:
– CD extends CI to include the concept of deployment and testing for
production readiness
©2014 CloudBees, Inc. All Rights Reserved
3
3
©2014 CloudBees, Inc. All Rights Reserved
4
Do I really need that? Let’s see…
©2014 CloudBees, Inc. All Rights Reserved
5
HP LaserJet FutureSmart Firmware (10M+ LOC)
-
Development costs growing 2.5x from 2004-2008
Up to 10 different branches (driven by each product release)
80-90% of resources just porting existing FW to new products
Unable to add new products to the plans due to lack of FW
resources
- 6 weeks + to get through a complete testing cycle (mainly
manual)
- Ongoing customer issues with consistency and lack of features
- Marketing had essentially given up asking for FW innovations
©2014 CloudBees, Inc. All Rights Reserved
6
HP LaserJet FutureSmart Firmware (10M+ LOC)
Code Integration
10%
Detailed Planning
20%
From 2008…
Continuous Integration
2%
Agile Planning
5%
Porting Code
25%
One Main Branch
15%
Current Product Support
25%
One Branch CPE
10%
Manual Testing
15%
Most Testing Automated
5%
Capacity for Innovation
~5%
… to 2011
Capacity for Innovation
~40%
7
©2014 CloudBees, Inc. All Rights Reserved © Mike Young, HP, 2011, http://bit.ly/1qyJWSM
Automation Everywhere!
8
©2014 CloudBees, Inc. All Rights Reserved © Mike Young, HP, 2011, http://bit.ly/1qyJWSM
It all started with developers: CI
Dev
Code
Config
Tests
Build
Build
System
Packager
Packages
Artifacts & underlying systems
Data
Source
Repo
CI Server
Artifact
Repo
Toolchain
Push code change  Kick off build, tests, more tests
 Archive artifacts (library, .war file)
©2014 CloudBees, Inc. All Rights Reserved
9
9
Continuous Delivery Emerges for Testing
Build
Stage
Dev
Code
Config
Tests
Build
System
Packager
Packages
Provisioning
System
Config
Automation
Artifact
Repo
Ops
Console
Resource
Model
Data
Source
Repo
CI Server
Infra
Manager
Deploy artifacts to staging area  Connect to needed
systems/services  Run functional and system tests
©2014 CloudBees, Inc. All Rights Reserved
10
10
Ops Has Different Needs Than Dev
Dev
Code
Config
Tests
Build
Build
System
Stage
Packager
Packages
Provisioning
System
Config
Automation
Artifact
Repo
Ops
Console
Resource
Model
Provisioning
System
Config
Automation
Data
Source
Repo
CI Server
Ops
Environment
Specification
Tests
Infra
Manager
Packages
Build
System
Packager
“Treating Configuration
as Code”
Build
Images
©2014 CloudBees, Inc. All Rights Reserved
Deploy
11
11
But the Toolchains Intersect for Dev and Ops
Stage
Dev
Build
CI Server
Artifact
Repo
Ops
Console
Resource
Model
Infra
Manager
Ops
Source
Repo
Build
Deploy
Inspired by: http://www.infoq.com/presentations/devops-patterns
©2014 CloudBees, Inc. All Rights Reserved
12
12
Why the Difference in Toolchain Choices?
• Dev
– Speed, coding, functionality, quality
– Favor local optimization on process, pet tools, fast feedback
• Ops
–
–
–
–
Auditing, security, compliance, availability, risk avoidance
Favor central control, reproducibility, traceability, process
Much larger set of constraints, rules, surrounding systems
Legacy issues
Jenkins is common ground
©2014 CloudBees, Inc. All Rights Reserved
13
13
Continuous Integration
Source Code
Unit Tests
Quality Analysis
Binaries
©2014 CloudBees, Inc. All Rights Reserved
14
Continuous Delivery Process
Source Code
DEV
Unit Tests
Continuous Delivery
Quality Analysis
QA
Binaries
Perfs Environment
Func Test Environment
UAT Environment
DEV
Release!
Staging Environment
OPS
Production Environment
GO LIVE!
©2014 CloudBees, Inc. All Rights Reserved
15
Jenkins Orchestrates the Toolchain
BUILD
TEST
STAGE
DEPLOY
©2014 CloudBees, Inc. All Rights Reserved
Tool
Tool
Tool
Tool
Tool
Tool
Tool
Tool
Tool
Tool
Tool
Continuous Delivery with Jenkins
RUN
16
CloudBees Continuous Delivery Platform
©2014 CloudBees, Inc. All Rights Reserved
17
CloudBees Continuous Delivery Platform
Continuous Delivery
CloudBees Network
Management
Monitoring
DevOps
SOLUTIONS
Mobile
…
OPERATIONS
Operations
AT SCALE
Jenkins Operations Center
(JOC)
CORE
JE
JE
JE
JE
Provisioning
Hybrid Infrastructure Support
Upgrade
HYBRID INFRASTRUCTURE SUPPORT
RAW
VMW
Pivotal
…
©2014 CloudBees, Inc. All Rights Reserved
18
Flexible, manageable & reliable @ scale
Hybrid deployments,
abstraction layer
JOC
JE
JE
JE
JE
JE
Cloud
deployments
Static
Linux
Deployments
IaaS
benefit from
elasticity/ondemand cloud
Customer Private
attributes
Data Center
JE
JE
JE
JE
JE
AWS
CloudBees Managed
Masters and Elastic
Slaves
Customer AWS VPC
CloudBees AWS Account
Pivotal
©2014 CloudBees, Inc. All Rights Reserved
19
Public Cloud
BUILD
TEST
STAGE
DEPLOY
RUN
Build
Commit
Test
Deploy
Stage
Code
CloudBees Continuous Delivery Platform
BUILD
TEST
STAGE
DEPLOY
RUN
On-Premise/Private Cloud
©2014 CloudBees, Inc. All Rights Reserved
20
Improving Continuous Delivery Workflow
Issues
•
•
•
•
Requires many plugins
Workflow definition distributed
across many jobs
Failures cause big problems!
Limited re-usability
Build Pipeline View
Many
Build Jobs
21
21
©2014 CloudBees, Inc. All Rights Reserved
Ref: http://www.infoq.com/articles/orch-pipelines-jenkins
Jenkins Workflow – A Big Deal for CD (coming soon!)
With Workflow
•
•
•
•
•
New job type
Single place for definition
Retry-able and restartable
Reusable workflows
Text-based DSL
Build Pipeline View
One
Workflow
Job
New visualizations coming!
©2014 CloudBees, Inc. All Rights Reserved
22
22
Conclusions
• The Dev and Ops automation tool chains to support
continuous delivery are different, but intersect at
Jenkins
• CloudBees offers a continuous delivery platform based
on Jenkins that runs on-prem, in the cloud, or bridges
those worlds simply and securely
• New features being surfaced in Jenkins are extending
its reach even further to support continuous delivery
©2014 CloudBees, Inc. All Rights Reserved
23
23