ma forge++ : @cloud
DESCRIPTION
Follow-up for my 2010 JugSummerCamp session : hosting software factory on the cloud. Bonus : my opinion on the current state of Apache (?) MavenTRANSCRIPT
©2011 CloudBees, Inc. All Rights Reserved
Software factory … on the Cloud
Nicolas De Loof
2
#{me /}
Nicolas De loof
• Java-Boy • Senior Engineer at • (ex)Committer Maven (GWT)
• JUG-Leader
©2011 CloudBees, Inc. All Rights Reserved
What’s a Software Factory ?
©2011 CloudBees, Inc. All Rights Reserved
@see JugSummerCamp 2010
©2011 CloudBees, Inc. All Rights Reserved
5
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
©2011 CloudBees, Inc. All Rights Reserved
6
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
©2011 CloudBees, Inc. All Rights Reserved
7
Deployment
Build tool
SCM
Developer (IDE)
Tests
U.I Tests
Project Management
C.I.
Requirements
Feature branches
QA
Static analysis
History
Release process
Demo
Production
Test Coverage
Dashboard
*DD
Maintenance
DevOps
Bug Tracker
BugFixBranches
Distribution
©2011 CloudBees, Inc. All Rights Reserved
8
Deployment
Build tool
SCM
Developer (IDE)
Tests
U.I Tests
Project Management
C.I.
Requirements
Feature branches
QA
Static analysis
History
Release process
Demo
Production
Test Coverage
Dashboard
*DD
Maintenance
DevOps
Bug Tracker
BugFixBranches
Distribution
©2011 CloudBees, Inc. All Rights Reserved
9
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
11©2011 CloudBees, Inc. All Rights Reserved
Git !
What else ?
©2011 CloudBees, Inc. All Rights Reserved
Choose your Build tool
13©2011 CloudBees, Inc. All Rights Reserved
• Maven 2 : no more developments• Maven3, what’s new ? … :-/
Maven ?
14©2011 CloudBees, Inc. All Rights Reserved
Maven 3 – Still Apache ?
Sisu (sonatype / EPL)
Plexus (sonatype/ASL/obsolete)
Aether (sonatype / EPL)« Central » (sonatype / Prop.)
Maven-core (ASF)
15©2011 CloudBees, Inc. All Rights Reserved
Mostly opensource M2eclipse integration Hudson integration OSGi & P2 support (tycho) New features (-> maven 3.0.4)
Sonatype Maven
16©2011 CloudBees, Inc. All Rights Reserved
Sonatype-less PMC Learn Eclipse Aether internals Re-implement Plexus-utils Maintain plugins … find more contributors :-/ ?
Apache Maven
17©2011 CloudBees, Inc. All Rights Reserved
Why ?
IP
18©2011 CloudBees, Inc. All Rights Reserved
• Ensure you wont claim IP on contributed code
• Ok, what’s the license for, then ?• No garantee !
Did you sign the CLA ?
19©2011 CloudBees, Inc. All Rights Reserved
Maven future @ ASF ?
20©2011 CloudBees, Inc. All Rights Reserved
• Community first but invitation based• Meritocratic (how to evaluate « merit » ?)• Don’t encourage small contributions
• All self-hosted Late Jira support Still no Git support
• PMC discutions on private list• Rules on doing business with oss ?
Something wrong with Apache / Maven ?
21©2011 CloudBees, Inc. All Rights Reserved
What else ?
?
©2011 CloudBees, Inc. All Rights Reserved
Choose your Automation tool
23©2011 CloudBees, Inc. All Rights Reserved
• 250+ plugins• Still growing dev community• Support all* build tools• More than continuous integration
Jenkins !
24©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 Eclipse FoundationHudson
25©2011 CloudBees, Inc. All Rights Reserved
• Open to everybody (just ask)• Management != Technical lead• Highly modularized• Embrace small contributions
(thanks to GitHub pull requests)• « Release early, release often »• Don’t bother (too much) with legals :
no CLA for plugins, no license requirements
Jenkins « community first »
©2011 CloudBees, Inc. All Rights Reserved
Let’s do it
©2011 CloudBees, Inc. All Rights Reserved
27
• 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
28©2011 CloudBees, Inc. All Rights Reserved
Option 1 : clone
Upgrades ?Maintenance ?
29©2011 CloudBees, Inc. All Rights Reserved
Option 2 : script
©2011 CloudBees, Inc. All Rights Reserved
30
• Get a « big enough » server• Run scripts• Configure Jobs
Your (revised) Monday morning TODO-list
©2011 CloudBees, Inc. All Rights Reserved
… on the Cloud
32©2011 CloudBees, Inc. All Rights Reserved
• Self service• Rapid elasticity• Pooled resources• Pay per usage
Cloud
33©2011 CloudBees, Inc. All Rights Reserved
• Jenkins « as a Service » hosted on AWS
• Multi level subscription• On demand executors
(Cloud Extension Point)• All plugins available (on demand)• Monitoring & Support
CloudBees DEV@Cloud
34©2011 CloudBees, Inc. All Rights Reserved
Want more ?
35©2011 CloudBees, Inc. All Rights Reserved
• Plug new functionalities to your SF• Centralized authentication & billing
ecosystem
36©2011 CloudBees, Inc. All Rights Reserved
• Test on running application• Demo• Perfs / stress Tests• Production
Platform(s)
©2011 CloudBees, Inc. All Rights Reserved
Choose your platform
38©2011 CloudBees, Inc. All Rights Reserved
• Available on demand• Cheap• Scriptable (DevOps)• Resizable• Simple (from a developer PoV)• Integrated
Requirements
39©2011 CloudBees, Inc. All Rights Reserved
• Available on demand• Cheap• ~ Scriptable • Resizable• Simple (from developer PoV)• Integrated
« Legacy » Java EE platforms
40©2011 CloudBees, Inc. All Rights Reserved
• Available on demand• Cheap• Scriptable • Resizable• ? Simple (from developer PoV)• Integrated
« Modern » Java EE platforms
41©2011 CloudBees, Inc. All Rights Reserved
• On demand• Elastic• Pay per usage• Monitored and Managed• Simplified technical view ?• Integration ?
Use a PaaS !
42©2011 CloudBees, Inc. All Rights Reserved
• Multi-tenant Tomcat 6 on Cloud(JavaEE 6 Web Profile to come soon)
• Monitored High Availability, Autoscale, Clustering, Automated backup, …
in one click
Cloudbees RUN@Cloud
43©2011 CloudBees, Inc. All Rights Reserved
From code to production
CloudBees vision o a PaaS : integration
More to be anounced …
44©2011 CloudBees, Inc. All Rights Reserved
« Shit happens »
45©2011 CloudBees, Inc. All Rights Reserved
• DEV/RUN@Cloud Private Edition
Run Cloudbees service on your own infra
• DEV@Cloud Jenkins migration plugin
Internet as « single point of failure »
46©2011 CloudBees, Inc. All Rights Reserved
Demo
47©2011 CloudBees, Inc. All Rights Reserved
@Cloud
48©2011 CloudBees, Inc. All Rights Reserved
Q@A