Your SlideShare is downloading. ×
0
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Opening opensource : The Jenkins Way
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Opening opensource : The Jenkins Way

7,237

Published on

Published in: Education
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
7,237
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
2
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Opening Opensourcethe Jenkins Way<br />BreizhCamp 17 juin 2011<br />©2011 Cloud Bees, Inc. All Rights Reserved<br />
  • 2. Nicolas De loof<br /><ul><li>Java-Boy
  • 3. New-Bee at
  • 4. (ex-)CommitterMaven
  • 5. JUG-Leader</li></ul>©2011 CloudBees, Inc. All Rights Reserved<br />
  • 6. Jenkins ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 7. de factocontinuousintegration Server in Java ecosystem(non exclusive)<br />Basis for Software Factory automation<br /><ul><li>Q&A Code inspection
  • 8. Release management
  • 9. Continuousdeployment
  • 10. Business Intelligence …</li></ul>©2011 CloudBees, Inc. All Rights Reserved<br />
  • 11. Hudson / Jenkins : the fork<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 12. ©2011 CloudBees, Inc. All Rights Reserved<br />User choosed Jenkins<br />13 000 downloads / week<br />1 500 member on jenkins-users<br />4 000 followers @jenkinsci<br />
  • 13. 900 members on jenkins-dev<br />48 active contributors, 94 publicized<br />170 Pull-requestsfromoccasionalcontributors<br />11,3 changes per release(6,7 before the fork)<br />… as Developersdid<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 14. OpenSource model<br />How to attract new contributors ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 15. Voice committer<br />Committer<br />Contributor<br />Supporting User<br />User<br />Standard OSS model « meritocratic »<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 16. Use the tool<br />Contribute to user-forum<br />Getfamiliarwith the code<br />Contribute to dev-forum<br />Fix bugs and post patches<br />Be nicewitheverybody<br />Do some lobbying<br />How to become a Committer …<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 17. Difficult to getinto the code<br />Difficult to getspare time<br />Difficult to fix bug or add new features<br />Laborious to create and maintain patches<br />Frustrating to wait for approval<br />How manytalentuousguys do weloosehere ?<br />In practice…<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 18. Mypersonalexperience<br />©2011 CloudBees, Inc. All Rights Reserved<br />Motivation<br />(# of contributions)<br />(neveroccurred)<br />
  • 19. Rule #1 : lower the contribution barrier<br />The Jenkins-way<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 20. Want to contribute ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />Ask for commit<br />
  • 21. « Withgreat power, comesgreatresponsibility »<br />Self-censoredcontributors<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 22. Discover a regression : revert<br />Test harness to the rescue(stillmuch to do there)<br />Possible if therewas few changes between releases !<br />Hey, thisis SCM roleafter all !<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 23. Rule #2 : Release often (even more)<br />The Jenkins-way<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 24. One release per week<br />Few changes between releases<br />Easy to rollbackwhensomethingisbroken<br />+ « stable but older » branch (3 month) withCritical bug fixes only<br />Jenkins releases<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 25. OpenSource model<br />How to merge contributions ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 26. Contributormayask for code review<br />Contribution mayrequire few changes beforebeeingapplied<br />Wedon’twant to discouragecontributors<br />WTF ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 27. Diff format isdefinitly not a sexy format for humans<br />> +@Deprecated<br />> +public class Base64<br />> +{<br />> + public Base64()<br />> + {<br />> + super();<br />Doesitreallyneed to call Object.super(). Can we not leaveitwith<br />the default constructor as Plexus' original has?<br />> + }<br />Diff format (SVN patch)<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 28. GitHub pull request<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 29. Rule #3 : Tools matter, use the right ones<br />The Jenkins-way<br />©2011 CloudBees, Inc. All Rights Reserved<br />patch<br />Pull request +<br />Commit pattern<br />
  • 30. Origin of the Hudson/Jenkins fork(java.netoutage)<br />200 forks on Jenkins GitHub repo !<br />170 pull requests<br />Jenkins atGitHub<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 31. Opensource model<br />Embrace new features<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 32. 250 plugins !(maven plugin is the only one in core)<br />Evengrowingecosystem<br />Contributorcan focus on some plugin thatbringthem value daily<br />Modular design<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 33. Extension point withruntimediscovery<br />Need to plugsomewhere in Jenkins ? add a new extension point<br />Someidea for a new plugin ?  add for a repo on github/jenkins-ci<br />Extensibility<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 34. Rule #6 : design for extensibility<br /> Multiple technical solutions (incl. @Inject)<br />The Jenkins way<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 35. OpenSource model<br />How to talk together ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 36. User forum<br />Dev forum<br />Private forum<br />(+ lobbying)<br />Multiple discussion levels<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 37. Need for private discussion whenitcouldhurtsomeone<br /><ul><li> invitation for new Committers</li></ul>… but wedon’t have to « filter » committersanymore<br />WTF ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 38. All discussions are public<br />On jenkins-dev<br />On irc #jenkinsci<br />Meeting bi-weekly on irc<br />Logged by irc-bot for lateravailabilityhttp://meetings.jenkins-ci.org/jenkins<br />transparency<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 39. Rule #4 : Makethings transparent<br />The Jenkins way<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 40. OpenSource model<br />Who’s the boss ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 41. Right, projectneedssome sort of lead… but not a despot !<br />« BenevolentDictator For Life »-syndrom<br />Lead<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 42. Highly active contributor<br />Good knowledge of projecthistory<br />Good technicalskills<br />Visionary<br />Newbie-compliant<br />Not egocentric<br />Lead must be …<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 43. Kohsuke Kawaguchi<br />Andrew Bayer<br />Dean Yu<br />(all from != companies)<br />And discuss in public !<br />Lead-commiteeissafer<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 44. Rule #5 : choose a good Lead model<br /> focus first on building a community<br />The Jenkins way<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 45. Opensource (x)or Business ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 46. (<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 47. CloudBees relation with Jenkins ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 48. Nectar : enhanced & supported Jenkins<br />DEV@Cloud : hosted software factory<br />RUN@Cloud : Java PaaS<br />Public : hosted by Amazon<br />Private : on yourownvirtualized infra<br />CloudBees in 5 words<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 49. KK is a CloudBeesemployee… but CloudBeesengaged to neverinterferewith Jenkins Lead committee<br />DEV@Cloudisawesomethanks to active opensourceecosystem !<br />CloudBees vs OpenSource<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 50. CloudBeescontributesbugfixes to OSS<br />CloudBees vs OpenSource<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 51. Q&A, stabilised + support (here I am!)<br />Some entreprise plugins<br /><ul><li>Security (RBAC)
  • 52. Virtualisation, auto-scaling, hypervisorintegration
  • 53. Jobs classification (folders)
  • 54. Advanced Backup
  • 55. …</li></ul>Nectar value for entreprises<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 56. Jenkins cluster<br />Multi-tenant masters<br />Pool of slaves<br />Automaticprovisionning<br />On phisical or virtual machines<br />Centralised management (plugins, upgrades, default config…)<br />DEV@CloudPrivate Edition<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 57. Thanks to flexible Jenkins model<br />Easiest maintenance<br />Easiest contributions to oss<br />All thosesfeatures are Plugins !<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 58. )<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 59. Does Jenkins model applyelsewhere ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 60. I’mtrying to for GWT-maven-plugin<br />Does Jenkins model applyelsewhere ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 61. #1 : lower the contribution barrierjustask to join the team !<br />#2 : release oftenone release per month<br />#3 : toolsmattermovedfromcodehaussvn to GitHub<br />#4 : makeit transparenteverythinghappens on googlegroups<br />#5 : choose a good lead-modelmyself + Olivier Lamy, may change …<br />#6 : design for extensibilitymore investigation requiredhere<br />Applyingrules<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 62. Future willsay…<br />Allready 3 contributors to join :<br /><ul><li>complaining about missingfeatures,
  • 63. encouraged to contribute,
  • 64. added to team,
  • 65. theyfixed issues by themself !</li></ul>Salvador Diaz to analyse Pull Request<br />Pierre-Yves Ricaucommitted 5 fixes<br />Doesitwork ?<br />©2011 CloudBees, Inc. All Rights Reserved<br />
  • 66. Q&A<br />Thankyou<br />©2011 CloudBees, Inc. All Rights Reserved<br />

×