Objectif : CloudNicolas De Loof
©2012 CloudBees, Inc. All Rights Reserved
2
<Me>
©2011 CloudBees, Inc. All Rights Reserved
@ndeloof
@ndeloof
3
• JUG-Leader and founder
• jDuchess France (support) member
• Conferenre organizer (as Dictator)
In Java community
©2011 CloudBees, Inc. All Rights Reserved
4
• (ex) Apache committer
• contributor
• and few others…
In OSS
©2011 CloudBees, Inc. All Rights Reserved
Fonzie
5
Senior Engineer at
Customer support Conferences and Evangelisation Sales tech-assistance DEV contributor
At work …
©2011 CloudBees, Inc. All Rights Reserved
6
</me>
©2011 CloudBees, Inc. All Rights Reserved
©2011 CloudBees, Inc. All Rights Reserved
What’s a Software Factory ?
8©2011 CloudBees, Inc. All Rights Reserved
Deployment
Build tool
SCM
Developer (IDE)
C.I.
Project Management
Requirements
Feature branches
Release process
Demo
Production
QA
Static analysis
History
Test Coverage
Dashboard
Tests
U.I Tests
TDD
BDD
FDD
Maintenance
DevOps
Bug Tracker
BugFixBranches
Distribution
9©2011 CloudBees, Inc. All Rights Reserved
Deployment
Build tool
SCM
Developer (IDE)
Tests
U.I Tests
Project Management
C.I.
Requirements
Feature branches TDD
QA
Static analysis
History
Release process
Demo
Production
Test CoverageDashboard
BDD
FDD
Maintenance
DevOps
Bug Tracker
BugFixBranches
Distribution
10©2011 CloudBees, Inc. All Rights Reserved
Deployment
Build
SCM
Developer (IDE)
Tests
U.I Tests
Project Management
C.I.
Requirements
Feature branches
QA
Static analysis
History
Release processDemo
Production
Test Coverage
Dashboard
*DD
Maintenance
DevOps
Bug Tracker
BugFixBranches
Distribution
11©2011 CloudBees, Inc. All Rights Reserved
Deployment
Build tool
SCM
Developer (IDE)
Tests
U.I Tests
Project Management
CI
Requirements
Feature branches
QA
Static analysis
History
Release process
Demo
Production
Test Coverage
Dashboard
*DD
Maintenance
DevOps
Bug Tracker
BugFixBranches
Distribution
12©2011 CloudBees, Inc. All Rights Reserved
Deployment
Build tool
SCM
Developer (IDE)
Tests
U.I Tests
Project Management
C.I.
Requirements
Feature branches
TDD
QA
Static analysis
History
Release process
Demo
Production
Test Coverage
DashboardBDD
FDD
Maintenance
DevOps
Bug Tracker
BugFixBranches
Distribution
©2011 CloudBees, Inc. All Rights Reserved
Choose your SCM
14©2011 CloudBees, Inc. All Rights Reserved
Git !
What else ?
©2011 CloudBees, Inc. All Rights Reserved
Choose your Build tool
16©2011 CloudBees, Inc. All Rights Reserved
Standardized project layoutDependency management and
repositoryStandardized commands and
lifecycle
✗Ugly file format✗Close-minded lifecycle and project
model✗Damaged community
Maven ?
17©2011 CloudBees, Inc. All Rights Reserved
What else ?
©2011 CloudBees, Inc. All Rights Reserved
Choose your Automation tool
19©2011 CloudBees, Inc. All Rights Reserved
• 400+ plugins• Still growing dev community
Ruby, Python• Support all* build tools• More than continuous integration
DevOps
Jenkins !
20©2011 CloudBees, Inc. All Rights Reserved
Hudson / Jenkins : the fork
KK create Hudson as a Hobby
Hudson is adopted world wide
Oracle aquire SUN
Oracle register « Hudson » trademark
Issues with java.net infrastructure
Oracle uses trademark as a weapon
Vote to rename the project and move to GitHub
Jenkins defines it’s own process
Here we are
Sonatype join Oracle Hudson
Jenkins
moved to GitHub and proposed to EclipseHudson
©2011 CloudBees, Inc. All Rights Reserved
Choose your platform
22©2011 CloudBees, Inc. All Rights Reserved
• Available on demand ?• Cheap ?• Elastic ?• Simple (from a developer PoV) ?• Integrated with build tools ?
On-premises containers
23©2011 CloudBees, Inc. All Rights Reserved
Use a PaaS !
24©2011 CloudBees, Inc. All Rights Reserved
Paas ?
25©2011 CloudBees, Inc. All Rights Reserved
Cloud ?
me
26©2011 CloudBees, Inc. All Rights Reserved
Just some new Buzz-words ?
Let’s decrypt …
©2011 CloudBees, Inc. All Rights Reserved
Sample : my Software FactoryThe way I did it for 10 years …
©2011 CloudBees, Inc. All Rights Reserved
28
• Get a « big enough » server
• Install OS• Install JDK• Install SCM • Install Build tools• Install Jenkins• Install plugins• Setup security
• Install DataBase• Install Sonar• Configure repositories• Install repo manager• Configure proxies• Configure Jobs• Configure Sonar rules• Provision Demo server• …
Your Monday morning TODO-list
29©2011 CloudBees, Inc. All Rights Reserved
Option 1 : virtual machines + clone
Upgrades ?Maintenance ?
30©2011 CloudBees, Inc. All Rights Reserved
Option 2 : script-it
©2011 CloudBees, Inc. All Rights Reserved
31
• Get a « big enough » server• Run scripts• Configure Jobs
Your (revised) Monday morning TODO-list
©2011 CloudBees, Inc. All Rights Reserved
Elasticity
©2011 CloudBees, Inc. All Rights Reserved
33
What you would need
What you have(and pay for)
What you consume
©2011 CloudBees, Inc. All Rights Reserved
34
Project start Team
workingPublic
Hollidays Team working Release
!Bug fix Maintenance
What you would need
What you consume
35©2011 CloudBees, Inc. All Rights Reserved
In most cases, your CI looks like that :
Platform as a Service(not just the buzz)
©2011 CloudBees, Inc. All Rights Reserved
37
Traditional Software Stack
Servers
OS
VM
App Server
JVM
LB
User App
Install
Monitor
Patch
Upgrade
Validate Stack
YOU
©2011 CloudBees, Inc. All Rights Reserved
@Cloud
39
@Cloud
©2011 CloudBees, Inc. All Rights Reserved
On demand
Self Service
Broad Network Access
Rapid Elasticity
Measured Service
Resource pooling
RUN@Cloud
©2011 CloudBees, Inc. All Rights Reserved
41©2011 CloudBees, Inc. All Rights Reserved
Your application
…
Platform core services
IaaS Provider
42©2011 CloudBees, Inc. All Rights Reserved
43©2011 CloudBees, Inc. All Rights Reserved
Load balancer
Round robin Sticky session
44©2011 CloudBees, Inc. All Rights Reserved
Sessionreplicatio
n
45©2011 CloudBees, Inc. All Rights Reserved
Auto-scale
Why not simply use an IaaS ?
©2011 CloudBees, Inc. All Rights Reserved
47©2011 CloudBees, Inc. All Rights Reserved
« simply » you said ?
Why not use a SaaS ?
©2011 CloudBees, Inc. All Rights Reserved
49©2011 CloudBees, Inc. All Rights Reserved
50
Does it fit well ?
©2011 CloudBees, Inc. All Rights Reserved
51©2011 CloudBees, Inc. All Rights Reserved
Competitors
…
Ecosystem
©2011 CloudBees, Inc. All Rights Reserved
53©2011 CloudBees, Inc. All Rights ReservedPlugable services on demand
54©2011 CloudBees, Inc. All Rights ReservedPlugable services on demand
couchDB mongoDB
55©2011 CloudBees, Inc. All Rights ReservedPlugable services on demand
56©2011 CloudBees, Inc. All Rights ReservedPlugable services on demand
57©2011 CloudBees, Inc. All Rights ReservedPlugable monitoring on demand
58©2011 CloudBees, Inc. All Rights ReservedPlugable monitoring on demand
Killer Feature : DEV@CloudFull-lifecycle « platform » for Java Developers
©2011 CloudBees, Inc. All Rights Reserved
60©2011 CloudBees, Inc. All Rights Reserved
DEV@Cloud
61©2011 CloudBees, Inc. All Rights Reserved
62©2011 CloudBees, Inc. All Rights Reserved
Elasticity
63©2011 CloudBees, Inc. All Rights Reserved
64©2011 CloudBees, Inc. All Rights Reserved
65©2011 CloudBees, Inc. All Rights Reserved
66©2011 CloudBees, Inc. All Rights Reserved
67©2011 CloudBees, Inc. All Rights Reserved
Continuous Delivery !
68
Your Code Your Application
Full platform for Java developer
©2011 CloudBees, Inc. All Rights Reserved
…
PaaS
69
Higher vision of PaaS :
©2011 CloudBees, Inc. All Rights Reserved
applicationcode PaaS
70
@Cloud
©2011 CloudBees, Inc. All Rights Reserved
@Cloud
71
Stop with slides, let’s do it …
©2011 CloudBees, Inc. All Rights Reserved
72©2011 CloudBees, Inc. All Rights Reserved
Q&A
Thank you