Jenkins User Conference San Francisco, Oct 2 nd 2011 % 100 Jenkins State of Union 2011 Kohsuke...

65
Jenkins User Conference San Francisco, Oct 2 nd 2011 % 100 Jenkins State of Union 2011 Kohsuke Kawaguchi, CloudBees, Inc. Creator of Jenkins @kohsukekawa http://cloudbees.com/

Transcript of Jenkins User Conference San Francisco, Oct 2 nd 2011 % 100 Jenkins State of Union 2011 Kohsuke...

Jenkins User Conference San Francisco, Oct 2nd 2011

%

100

Jenkins State of Union 2011

Kohsuke Kawaguchi, CloudBees, Inc.Creator of Jenkins

@kohsukekawahttp://cloudbees.com/

Jenkins User Conference San Francisco, Oct 2nd 2011

Jenkins User Conference!

• 30 talk submissions• 380+ registration• 7 sponsors• Staff

Thank you!

Jenkins User Conference San Francisco, Oct 2nd 2011

2004 Summer

• I broke one too many builds

• Wouldn’t it be nice if …?

Jenkins User Conference San Francisco, Oct 2nd 2011

And so it began

• build.sh

• monitor.sh

• Run from cron

#!/bin/bash -exexec 2>&1cd /files/jaxb-ricvs updateant

#!/bin/bash -exbuild.sh > build.log || mail …

Jenkins User Conference San Francisco, Oct 2nd 2011

Then I wrote my version

Jenkins User Conference San Francisco, Oct 2nd 2011

By 1.15 (Feb ‘06)

Jenkins User Conference San Francisco, Oct 2nd 2011

The culture was established early on• Weekly release cycles• Extensibility via plugin• Lower barrier to entry• Backward compatibility matters

• And then we just kept on keeping on

Jenkins User Conference San Francisco, Oct 2nd 2011

Plugin Growth

Jan-07 Jan-08 Jan-09 Jan-10 Jan-110

50

100

150

200

250

300

350

400

450releasestotal plug-insnew plugins

627

94

223

313

470?

Jenkins User Conference San Francisco, Oct 2nd 2011

Ticket Activities

Jan-07 Jan-08 Jan-09 Jan-10 Jan-110

2000

4000

6000

8000

10000

12000

Total created

40950

2600

5000

8200

12000?

Jenkins User Conference San Francisco, Oct 2nd 2011

Jenkins User Conference San Francisco, Oct 2nd 2011

Usage All Around the World

Jenkins User Conference San Francisco, Oct 2nd 2011

2011 Jan: Divorce

• Oracle: “you do it our way or highway”

• Community chose highway: 214 to 14– That’s when we became Jenkins

Jenkins User Conference San Francisco, Oct 2nd 2011

8 months have passed.

Jenkins User Conference San Francisco, Oct 2nd 2011

Where are we now?

Jenkins User Conference San Francisco, Oct 2nd 2011

More Transparent/FormalGovernance

Jenkins User Conference San Francisco, Oct 2nd 2011

Legal Entity

• Jenkins now affiliated with Software in the Public Interest (SPI)– NPO to promote free and open software– Joined the likes of Debian, Drupal,

PostgreSQL

• Enables us to enter into contract, own assets, and live longer than individuals

Jenkins User Conference San Francisco, Oct 2nd 2011

Fundraising Drive

• Through SPI, so tax deductible• jenkins-ci.org/donate• Raising $5130 (the bandwidth

overage during summer)– Broad donation base is good for the

project, so your help would be appreciated

$3870 $1260

Jenkins User Conference San Francisco, Oct 2nd 2011

Interim Governance Board• Myself, from CloudBees• Andrew Bayer, from Cloudera• Dean Yu, from Yahoo

Jenkins User Conference San Francisco, Oct 2nd 2011

Project Meeting

• Bi-weekly meetings– Held in IRC– Agenda/participation open to anyone– Logs available online

Jenkins User Conference San Francisco, Oct 2nd 2011

Governance Document

• Today, we announce that we adopted an official governance document– Our implicit modus operandi, made

explicit– https://wiki.jenkins-ci.org/display/JENKINS/Governance+Document

Jenkins User Conference San Francisco, Oct 2nd 2011

Governance Document

• Clarifies how we work– Should make onboarding easier

• License policies• Project roles• Name usage• Check list for

pull requests

Jenkins User Conference San Francisco, Oct 2nd 2011

Contributor License Agreement

• As a part of governance document, the project approved of collecting CLA for core– Based on CLA used by Apache– Further clarifies the rights associated

with contributions– Protect users and projects from potential

legal disputes

Jenkins User Conference San Francisco, Oct 2nd 2011

Infrastructures andReleases

http://www.flickr.com/photos/acmace/4410650624/

Jenkins User Conference San Francisco, Oct 2nd 2011

Diversity is good for project• We rely on diverse entities to run

jenkins-ci.org

• Thanks to

Jenkins User Conference San Francisco, Oct 2nd 2011

Server donation

• cucumber.jenkins-ci.org– Runs jenkins-ci.org and other critical

infrastructure services– Purchased by Tyler, Andrew, and myself– $2000 worth of the equipment

• Today we announce that we are donating this to SPI

Jenkins User Conference San Francisco, Oct 2nd 2011

Our mirrors around the world• Thanks!• 7 mirrors around the world– Nurnberg, Germany– Yokohama, Japan– Salt Lake City, Utah– Taipei, Taiwan–Madison, Wisconsin

Jenkins User Conference San Francisco, Oct 2nd 2011

More Open Infrastructure• For longest time, infra work was

behind the closed door–We can’t just hand out system access to

everyone

• But now Tyler is pushing Puppet to work– http://github.com/jenkinsci/infra-puppet– “Open-sourcing” server setup– Send in pull requests to make changes–# of trusted admins is less of a

bottleneck

Jenkins User Conference San Francisco, Oct 2nd 2011

Releases

• Main line continues weekly releases–With same emphasis to compatibility

“Peter created his plugin against Hudson 1.129 … got it running on Jenkins 1.397 without recompiling”

--- Stephen Connolly

Jenkins User Conference San Francisco, Oct 2nd 2011

But with a lot of new features• Lazy loading HTML fragments in config page to speed it up• DWR-like JavaScript reverse proxy• View in Groovy and Ruby• Uniform macro expansion mechanism• JavaSE 7 support• Custom view properties• Systematic XSS prevention• Solaris packages, Mac OS X packages• Memory monitoring and auto restart on Mac OS X• Rebuilding matrix project subset• API token for REST API• SSH public key authentication for CLI• Syntax highlighted Groovy console• JRebel support in plugin/core development• More robust master/slave communication

1600 tickets resolved

Jenkins User Conference San Francisco, Oct 2nd 2011

Long-Term Support Releases

Main release line

LTS release line

Pick good main release

Backport proven fixes from main releases

June 20111.409.1

Sep 20111.409.2

Jenkins User Conference San Francisco, Oct 2nd 2011

LTS Gets Extra Testing & Eyeballs

Jenkins User Conference San Francisco, Oct 2nd 2011

LTS - Even Hudson user likes it!

“Jenkins has introduced a Long Term Support release, with less new features but more stability. Copying Jenkins is maybe politically complicated, but it could be a good way to smooth the transition.”

--- in Hudson users list

Jenkins User Conference San Francisco, Oct 2nd 2011

Jenkins is now in Ubuntu

Jenkins User Conference San Francisco, Oct 2nd 2011

5 more native packages

• Mac OS X and Solaris, especiallynew

Jenkins User Conference San Francisco, Oct 2nd 2011

Ecosystem Expansion

http://www.flickr.com/photos/husein/2077933931/

Jenkins User Conference San Francisco, Oct 2nd 2011

Book

• Nicely complements Wiki

Jenkins User Conference San Francisco, Oct 2nd 2011

Book

• From the guy behind Jenkins-php.org

• Another one in Japanese coming this year

Jenkins User Conference San Francisco, Oct 2nd 2011

CloudBees

Jenkins User Conference San Francisco, Oct 2nd 2011

Shining Panda

Jenkins User Conference San Francisco, Oct 2nd 2011

Tasktop - Mylyn Jenkins Connector

Jenkins User Conference San Francisco, Oct 2nd 2011

WANdisco - UberSVN

Jenkins User Conference San Francisco, Oct 2nd 2011

CollabNet

– Next major release will ship Jenkins pre-bundled

– Jenkins plugin to use lab management as cloud

Jenkins User Conference San Francisco, Oct 2nd 2011

Adoption Statistics

http://www.flickr.com/photos/st3f4n/2865510059/

Jenkins User Conference San Francisco, Oct 2nd 2011

Conversion rate tracking

• In the last Hudson release we posted, we put up a sign post– Let the user chose between Hudson and

Jenkins

Jenkins User Conference San Francisco, Oct 2nd 2011

Converging to about 85%

0

500

1000

1500

2000

2500

3000

3500

jenkinshudson

• Eclipse move isn’t making any difference

• Upgrades still happening

• Only ~10% upgraded this way

Cumulative stack area chartY: # of conversions

Jenkins User Conference San Francisco, Oct 2nd 2011

Update Center Hits/wk

Jul-1

0

Sep-

10

Oct-1

0

Dec-1

0

Jan-

11

Mar

-11

May

-11

Jun-

11

Aug-

110

50,000

100,000

150,000

200,000

250,000

300,000

350,000

400,000

450,000

500,000 old hudsonjenkins

• Counted UC data retrieval

• Hudson Labs is where we used to run UC

• Showing very rapid conversion to Jenkins– 90% at this point

Cumulative stack area chartY: # of successful GET reqs

Jenkins User Conference San Francisco, Oct 2nd 2011

Anonymous Usage Statistics

Jul-1

0

Sep-

10

Oct-1

0

Nov-1

0

Jan-

11

Feb-

11

Apr-1

1

May

-11

Jul-1

1

Aug-

110

5000

10000

15000

20000

25000

30000

35000Estimated Oracle

Jenkins

Old Hudson

• Based on anonymous usage data collection

• One-off instances are filtered out

• ~75% conversion from legacy to Jenkins

• Adoption regaining momentum

Cumulative stack area chartY: # of unique installation IDs

Jenkins User Conference San Francisco, Oct 2nd 2011

Ticket activity: Jenkins vs Hudson

Dec-1

0

Jan-

11

Feb-

11

Feb-

11

Mar

-11

Mar

-11

Apr-1

1

May

-11

May

-11

Jun-

11

Jun-

11

Jul-1

1

Aug-1

1

Aug-1

1

Sep-

118000

8500

9000

9500

10000

10500

11000

JenkinsHudson

• Counting # of filed tickets

• Eclipse move isn’t making any dents

• About 2300 vs 300 new tickets since split

Jenkins User Conference San Francisco, Oct 2nd 2011

Different stat, same story

Jan-

2011

Jan-

2011

Jan-

2011

Feb-

2011

Feb-

2011

Mar

-201

1

Mar

-201

1

Mar

-201

1

Apr-2

011

Apr-2

011

May

-201

1

May

-201

1

May

-201

1

Jun-

2011

Jun-

2011

Jul-2

011

Jul-2

011

Jul-2

011

Aug-

2011

Aug-

2011

Sep-

2011

0

100

200

300

400

500

600JenkinsHudson

# of commits in plugins/week

Avg 280

Avg 16

Area chart. Not stacked.

Jenkins User Conference San Francisco, Oct 2nd 2011

Different stat, same story

Jan-

2011

Jan-

2011

Jan-

2011

Feb-

2011

Feb-

2011

Mar

-201

1

Mar

-201

1

Mar

-201

1

Apr-2

011

Apr-2

011

May

-201

1

May

-201

1

May

-201

1

Jun-

2011

Jun-

2011

Jul-2

011

Jul-2

011

Jul-2

011

Aug-

2011

Aug-

2011

Sep-

2011

Sep-

2011

0

100

200

300

400

500

600

JenkinsHudson

GitHub Repositories 586

38

Jenkins User Conference San Francisco, Oct 2nd 2011

Different stat, same story

2011/1

2011/2

2011/3

2011/4

2011/5

2011/6

2011/7

2011/8

2011/9

0200400600800

1,0001,2001,4001,6001,8002,000

JenkinsHudson

Mailing List Traffic (user+dev) 1295/movs

299/mo

Jenkins User Conference San Francisco, Oct 2nd 2011

Different stat, same story

2/1/

2011

2/12

/201

1

2/23

/201

1

3/6/

2011

3/17

/201

1

3/28

/201

1

4/8/

2011

4/19

/201

1

4/30

/201

1

5/11

/201

1

5/22

/201

1

6/2/

2011

6/13

/201

1

6/24

/201

1

7/5/

2011

7/16

/201

1

7/27

/201

1

8/7/

2011

8/18

/201

1

8/29

/201

1

9/9/

2011

9/20

/201

10

200

400

600

800

1000

1200

JenkinsHudson

Dev list subscribers

Jenkins User Conference San Francisco, Oct 2nd 2011

Different stat, same story

2/1/

2011

2/12

/201

1

2/23

/201

1

3/6/

2011

3/17

/201

1

3/28

/201

1

4/8/

2011

4/19

/201

1

4/30

/201

1

5/11

/201

1

5/22

/201

1

6/2/

2011

6/13

/201

1

6/24

/201

1

7/5/

2011

7/16

/201

1

7/27

/201

1

8/7/

2011

8/18

/201

1

8/29

/201

1

9/9/

2011

9/20

/201

10

500

1000

1500

2000

JenkinsHudson

Users list subscribers

Jenkins User Conference San Francisco, Oct 2nd 2011

Different stat, same story

Twitter

Jenkins User Conference San Francisco, Oct 2nd 2011

Different stat, same story

2/1/

2011

2/12

/201

1

2/23

/201

1

3/6/

2011

3/17

/201

1

3/28

/201

1

4/8/

2011

4/19

/201

1

4/30

/201

1

5/11

/201

1

5/22

/201

1

6/2/

2011

6/13

/201

1

6/24

/201

1

7/5/

2011

7/16

/201

1

7/27

/201

1

8/7/

2011

8/18

/201

1

8/29

/201

1

9/9/

2011

9/20

/201

10

500100015002000250030003500400045005000 Jenkins

Hudson

Twitter followers

Jenkins User Conference San Francisco, Oct 2nd 2011

Upcoming Features

Jenkins User Conference San Francisco, Oct 2nd 2011

Core Internal Improvements• Guice integration– Using IoC to discover/inject components

• JUnit4 test harness–More extensibility– Better performance– Better mocking

Jenkins User Conference San Francisco, Oct 2nd 2011

Core Improvements

• Moving Core Java features into plugins– Done: Ant, javadoc–Maven, JUnit

• More flexibility in Maven plugins– Adding build steps before/after

Jenkins User Conference San Francisco, Oct 2nd 2011

What I’d like to work on

• Easier test parallelization– By taking advantages of slaves

• Distributed execution assistance– Use Jenkins slaves as general-purpose

computing grid

• Adding new plugins without restart

Jenkins User Conference San Francisco, Oct 2nd 2011

Other Cool Projects

• Jekins plugin development in Ruby–More about this from Charles later

• Running slave agents on Android

Jenkins User Conference San Francisco, Oct 2nd 2011

Conclusions

• Lots of progresses, in terms of– Governance– Adoption– Competition– Ecosystem

• And lots more progress to come

• Enjoy the rest of the day!

Jenkins User Conference San Francisco, Oct 2nd 2011

Thank You To Our SponsorsPlatinumSponsor

GoldSponsor

SilverSponsor

BronzeSponsors

Coming Soon: The CloudBees Newsletter for Jenkins

Please complete the Jenkins survey to help us better serve the community

(bonus: a chance to win an Apple TV!)

Jenkins User Conference San Francisco, Oct 2nd 2011

BACKUP

Jenkins User Conference San Francisco, Oct 2nd 2011

Update Center Hits/wk

Jul-1

0

Aug-

10

Aug-

10

Sep-

10

Oct-1

0

Nov-1

0

Dec-1

0

Dec-1

0

Jan-

11

Feb-

11

Mar

-11

Apr-1

1

Apr-1

1

May

-11

Jun-

11

Jul-1

1

Aug-

11

Aug-

110

100,000

200,000

300,000

400,000

500,000

600,000 oracle (estimated)old Hudsonjenkins

Jenkins User Conference San Francisco, Oct 2nd 2011

Then it just gradually took on• 2008 Update center implemented

200901062009012420090211200903012009031920090406200904240

2000

4000

6000

8000

10000

12000

14000

unique instal-lation IDs