Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Jenkins State of union 2013

1,873 views

Published on

Current state of the Jenkins project

Published in: Technology, Art & Photos
  • Be the first to comment

Jenkins State of union 2013

  1. 1. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Jenkins: State of Union #jenkinsci Kohsuke Kawaguchi Jenkins Creator kk@kohsuke.org / @kohsukekawa
  2. 2. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci
  3. 3. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 1 new release comes out Gets downloaded 48,000 times
  4. 4. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci That fills up 513 DVDs
  5. 5. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 3.5 Brand-new Plugins Released
  6. 6. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 25 New Versions of Plugins Released Gets downloaded 500,000 times
  7. 7. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 80 Tickets Filed
  8. 8. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 50 Tickets Solved
  9. 9. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 145 Commits Are Made
  10. 10. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 400 Jenkins Installations Pops Up
  11. 11. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 1200 New Slaves Are Added
  12. 12. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci 19,000 New Jobs Are Added
  13. 13. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci # of plugins 0 100 200 300 400 500 600 700 800 Jan-07 Jan-08 Jan-09 Jan-10 Jan-11 Jan-12 Jan-13 767 # of unique plugins releases/week new plugins/week
  14. 14. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Ticket Activities 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 Jan-07 Jan-08 Jan-09 Jan-10 Jan-11 Jan-12 Jan-13 17500 Total tickets Resolved tickets
  15. 15. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Tracked Installations (conservative) 0 10000 20000 30000 40000 50000 60000 Jan-07 Jan-08 Jan-09 Jan-10 Jan-11 Jan-12 Jan-13 64000 # of masters
  16. 16. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci
  17. 17. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci http://www.flickr.com/photos/randar/3879926596/
  18. 18. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Lazy loading of build records • Jenkins slow to start up? – It was loading build records upon boot • This is finally fixed, including fallouts – Loaded on demand – In weak references • Now on LTS: 1.509.1
  19. 19. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Master/slave performance • Better sustained data transfer rate – Copy large files, test reports, etc – Now on par with scp • Classloading improvements – Local cache & prefetching – Will help ephemeral/elastic slaves & maven jobs
  20. 20. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Performance/Scalability Improvements • Lock strength reduction • Fingerprint scalability improvements • Better caching of images & scripts in UI • The “people” page • Handling large test result
  21. 21. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Testing Improvements • Previous testing scheme – Embedded Jetty in Maven – Code from ~/.m2/repository and resources from war – The setup was different from how you run it
  22. 22. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci New Blackbox Acceptance Test • Tests the final deliverables – jenkins.war, .deb, .rpm, etc – With Tomcat, JBoss, or “java -jar jenkins.war” • In different OSes – In VirtualBox (via vagrant) – Hopefully with EC2 (upcoming) • Tests via Selenium – Capybara + Cucumber – Sauce OnDemand to test different browsers
  23. 23. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Database Plugin • For other plugins, not for users – But large data set in RDBMS should result in tangible benefits for users • Provides unified database connectivity – UI for admin to select the backend – Expose DataSource for other plugins – JPA support, per-job database • Looking for plugins to start using this
  24. 24. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Plugins that generate jobs • Job DSL plugin – Groovy DSL for describing job definitions – DSL can be evaluated from within Jenkins – E.g., automatically generate new jobs for new branches • Job Generator plugin – Create a new ste of jobs from “template jobs” by eagerly evaluating some build parameters
  25. 25. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Build Flow Plugin • Groovy DSL for kicking builds – High-level primitives – Ability to define abstractions b = build(“acme-build”) guard { parallel ( { build(“acme-test1”, param1:b.number) }, { build(“acme-test2”, param1:b.number) } ) } rescue { build(“acme-teardown”) }
  26. 26. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Jenkow Plugin • Embed BPMN workflow engine in Jenkins – Timeout, fork, join, … • Workflow is version controlled in Git – Push to Jenkins to load them up
  27. 27. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Recipe Plugin • Sharing a set of jobs and other settings in Jenkins with the community • Convenient for… – Sample setup / quick start for plugins – Show cases • Simplify the first “getting started” phase
  28. 28. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Parallel Test Executor Plugin • Split tests N-way, run them in parallel • Create even splits by using timing information Test Group #1 Test Group #2 Test Group #3
  29. 29. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci
  30. 30. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci
  31. 31. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Future Direction: Which Way? http://www.flickr.com/photos/quinnanya/3500158343/
  32. 32. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Make Complex Things Doable • Running big, complex deployment should be easier – Master-to-master communication channel – Per-job database storage, open for plugins • More automatic slave managements – Better diagnostics • Access control for running builds
  33. 33. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Make Complex Things Doable • Better Workflow/pipeline support – Already a lot going on in plugins! – Slice up build histories – Shared context between related builds • Modeling external systems – Databases, test environments, … – Remembering who’s using what – Remember what was done to them
  34. 34. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Make Simple Things Simpler • More spying, less asking – E.g., “where are unit test reports?” • Simpler project creation ala BuildHive – Only needs to be 70% accurate – Sharable archetypes, repository sniffing • Encourage sharing of recipes
  35. 35. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Help You Find Plugins You Need • Revisit bundled plugins – Why Git plugin isn’t in there? • Plugin packs (aka iTunes playlist) – Follow the lead of the Jenkins PHP website • Recommendation based on what you have • Reviews, feedbacks
  36. 36. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci More UI Improvements • FOSDEM-driven on-going effort • TODO in this round: – Hunt on stale data in HTML – Performance on loading config page – More compact UI controls
  37. 37. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Improving Plugin Development Experience • More extension points • Better Plugin Development Environment – More Wiki articles/samples? – Training course? • Better development mode – Skeleton generation – Checking common pitfalls in the dev mode • Tell us what you need!
  38. 38. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci Conclusions • A lot has been done, not just in code – And a lot more to come! • Please help the project • Please enjoy the day!
  39. 39. Jenkins User Conference Shefayim, Jun 2013 #jenkinsci

×