• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Jenkins User Meetup - eXo usages of Jenkins
 

Jenkins User Meetup - eXo usages of Jenkins

on

  • 1,663 views

2011 May 27th @ Paris

2011 May 27th @ Paris
A really quick overview of usages of Jenkins at eXo Platform.

Statistics

Views

Total Views
1,663
Views on SlideShare
1,662
Embed Views
1

Actions

Likes
2
Downloads
28
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Jenkins User Meetup - eXo usages of Jenkins Jenkins User Meetup - eXo usages of Jenkins Presentation Transcript

    • Jenkins User MeetupMay 27th, 2011 @ ParisJenkins at eXoFrom development to Quality Insurance
    • Arnaud Héritier•  Jenkins •  eXo - Software Factory »  Used in various contexts for many Manager years »  In charge of tools and methods »  Helped a little bit @olamy on the •  Apache Maven : Maven 3 integration »  Committer since 2004 and member »  Few patches of the Project Management Committee •  Coauthor of « Apache Maven » »  published by Pearson (in French) •  Contact me : »  http://aheritier.net »  Twitter : @aheritier »  Skype : aheritier 2
    • Schedule•  Context•  Usages•  Feedbacks 3
    • JenkinseXo Context 4
    • eXo France: (~20) Ukraine: (~30) Tunisia: (~30) USA: (~10) Vietnam: (~70)•  Independent Software Vendor•  ~160 employees worldwide•  A large proportion of developments are OSS•  Historically JEE/Portal provider now merged with JBoss GateIn 5
    • eXo platform product •  Build on the top of several opensource projects » Collaboration » Knowledge » Social » GateIn » JCR » … •  A lot of integration tasks 6
    • JenkinseXo Usages 7
    • Infrastructure•  One main server »  Processor Intel Xeon i7 W3520 4x 2x 2.66+ GHz hosting Jenkins and (with hyper-threading) 8 Nexus (  ) Mo L2 - QPI 4.8 GT/sec – Virtualization: Instructions » Continuous VT - Turbo Boost integration and Technology @ 2.93GHz packaging »  Architecture 64 bits »  Memory 12 Go DDR3•  8 dedicated servers »  Storage 2x 1500 Go - for performances and SATA2 various QA tests »  RAID 0/1 »  NIC GigaEthernet / 1 Gbps 8
    • Integration•  Build, Test and Deploy ASAP » Using Maven 2/3 » From sources in SVN or GIT •  googlecode, jboss, exo, github repos » To Maven repositories•  ~100 jobs 9
    • Packaging•  Generate the full packaging of our products » Ready for demo or tests•  Use upstream constraints and a large quiet period to not launch them to often•  Use priority sorter plugin with a reduced priority•  ~20 jobs 10
    • Quality management•  Sonar reports everyday if the code had changed (polling) » ~90 jobs•  Continuous deployment and integration or performances tests » Jmeter » Selenium » JMXTrans / Graphite / OpenNMS for monitoring 11
    • Performances tests process 12
    • Performances tests process 13
    • Performances tests process 14
    • Performances tests process 15
    • Performances tests process 16
    • Reporting and dashboards•  Jenkins  Teams » Emails (email-ext plugin)•  Teams  Jenkins » Dashboard views » Radiator views 17
    • Dashboards 18
    • Unstable Build Notification 19
    • Build Failure Notification 20
    • Radiator views 21
    • JenkinseXo Feedbacks 22
    • From our experience•  Try to keep up-to-date your server and its plugins » Cost of automation to update is low •  swfjenkins-install-tomcat VERSION •  swfjenkins-install-jenkins VERSION » Reduced cost if regular (every X weeks) » Setup a validation environment to test the upgrade •  Invest a little bit to have a configurable build to manage various env (don’t deploy in prod or send mails when you are testing a new version J ) 23
    • From our experience•  Forge architecture tuning » Try to have powerful servers » Take care of IOs » Scaling with Multi-CPU only if you build in // and you enough have memory (and you don’t overload IOs) » Try to reduce network Ops •  Jenkins and Nexus are on the same server (not a perfect solution but it helps) •  Local SVN rsynced from our master.•   Take care of your repo manager : » bottleneck 24
    • From our experience•  Jobs tuning » When to launch them •  Not to often to not overload the server •  Enough often to validate integrations •  Take care of triggers, especially using SNAPSHOTs •  Use build constraints (upstream/downstream) » The history to keep •  Do you need so much history ? •  Do you need to archive binaries ? •  It greatly increases the startup time 25
    • From our experience•  Jobs tuning » WIP : Split jobs and create a chain with various steps : •  Build + unit tests (keep it quick) •  Integration tests •  Continuous/Regular deployment on an acceptance environment •  Quality reports (Sonar or similar …) 26
    • From our experience•  Do not deploy it on the cloud if you don’t have a real distributed architecture » Cloud (AWS) servers aren’t enough powerful to host a big server. » If you want to deploy it on the cloud use agents deployed on a set of nodes … or use CloudBees  27
    • Our expectations for the future•  Reduce the start-up time » Implement a lazy-loading of builds history ?•  A better groovy console » Syntax coloration » Code validation » Auto-completion (we can dream  ) » Live console output » Simplify jobs edition APIs (add setters …) 28
    • Our expectations for the future•  More batch edition capabilities » A la “slicing configuration” to avoid the usage of the groovy console•  More features to export/import backup/restore jobs•  And I’ll be happy to contribute » See you tomorrow !! 29
    • JenkinsQuestions ?… and perhaps some answers … 30
    • Licence et copyrights•  Photos and logos belong to their respective authors/owners•  Content under Creative Commons 3.0 » Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). » Noncommercial — You may not use this work for commercial purposes. » Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.•  http://creativecommons.org/licenses/by-nc-sa/3.0/us/ 31