I went to the Jenkins Users Conference, hosted at the very nice Hyatt Regency SFO in Burlingame, Calif. There were about 600 attendees.
There were 3 talk tracks, plus a misc. track. The talks were not technically difficult, but then using Jenkins is mostly about organizational process and installing plugins.
Kohsuke Kawaguchi, Jenkins Creator
- X1K project to handle 1,000 build slaves (should be enough for any single corporation)
- NIO for a few threads to manage humdreds of slaves
- Puppet Enterprise consulting donated a week to setup puppet, vagrant and docker infra to replace ad hocness
- 3D print your own Jenkins mascot.
Automation, Innovation and Continuous Delivery
Mario Cruz, Choose Digital @MarioCruz
- private branded digital entertainment downloads for hotels and megacorps (Marriot, petro-canada, airlines)
- moved from on-prem to aws
- outsource everything that doesn’t make money
- feature flags are great for syncing app with apple app store approvals
- builds are automatically deployed to either prod or stage env using one Jenkins hosted by cloudbees
- motivation for CD is to have 2-week vacations
- manager guesses can only be trumped by data
- programmers are on-call. Write better tests if you don’t want to get called
- devs get 45 minutes to either fix or rollback a release, ends up being 30% rollback, 70% fix with frequent releases. Easy if a feature flag can be disabled.
- QA has 45 min to look at stage before live in prod for consumer brands. API just goes out.
- Slack is better than JIRA, but $6 more per developer
- Hipchat, New Relic, Asana, Cloudbees, JIRA
- Archaius from Netflix OSS
- DBA is the real gate for Continuous Deployment. Buy him some lunches and explain what’s in it for him.
Advanced Workflows for Multi-Platform Mobile Development
Emanuele Zattin, Realm Inc. (Italy) @emanuelez
- Nokia before, deployed Jenkins globally to replace custom build scripts
- even if you’re a mobile library, you still have to provide sample apps, so resolution, UI, stores
- make, Xcode, etc., valgrind!
- Tip #1: don’t waste developer time and focus with a context switch. Don’t waste qa time.
- build, test, coverage, todo length, artifact size growth
- Extreme Feedback http://gitgear.com/xfd lamp, gamifies multiple teams!
- Tip #2: fingerprint and store artifacts. You will need them later!
- Tip #4: version control your build scripts, be careful with release scripts
- mobile devices are connected to slaves
- gradle is helpful for Android builds
- custom interface for Apple iOS devices
- Mac Pro with VMware, RAM disks crash
- Ansible to provision slaves
- Docker for Android builds
- gcc and clang have valgrind-type address sanitizer option now that’s very fast, just run valgrind nightly
- sandwiches, but nice mini subs with pasta
About a dozen booths.
- metrics down to the end-user
- awesome frog toy
- database tracks artifacts, proxy reduces bandwidth, licence manager tracks usage
- push button deploy after Jenkins builds
- graphical UI for those who need that
- Zend server
- hosted Jenkins
- migrating from powerful but internally-developed build and release tools to popular Open Source tools
- cloud management software that actually works, including a product similar to Ubuntu Juju .
Unmasking the Jenkins DSL
Matt Moore, Google
- ex-compiler optimization guy
- works with Jenkins at Google now
- jobs plugin is crap. Needs knowledge of other 1,000 plugins to work, so far has 7, so 20 years behind already
- hence structured form submission
- YAML project type
- !by-name shell
- create a job, view yaml template
- !kind matrix
- “git flow” by Victor Driessen
- config in code with latest git plugin
- features.yaml, releases.yaml, master.yaml multi-branch
- intended for git and mercurial, others unknown
- Jenkins does most validation in form, so yaml-project doesn’t do much yet
- there is also the autojobs plugin
Operating Jenkins at Scale
Ryan Campbell & Robert Sandell, Cloudbees, Inc.
- congratulations, if you’re here, you own a large Jenkins installation! 🙂
- health, perf, business value
- collectd, graphite, nagios
- Jenkins Metrics Plugin DropWizard
- Jenkins Operations Center (JOC) plugin. Uses ElasticSearch and Kibana
- custom kibana tiles
- who’s responsible?
- how are backups, disk space, sameness, upgrades done?
- choose plugins carefully
- more masters: depts, plugin testing, etc.
- bulk operations plugin for JOC
Using Jenkins to Build Apache vhosts for Github Pull Requests on PHP Apps
Sam Moffatt, Account Bouncer
- previously at ebay, Sears
- pull requests build an environment for developer or qa engineer
- bind9 with mod_vhost_alias, comment out default vhost to avoid conflict
- http://pr1.test, http://pr2.test, …
- ensure if using Github Enterprise and custom SSL they are added to GE
- ensure API setup correct
- beware multiple pulls at same time, can cause confusing errors.
- USAA mobile app check scan, share feature awesome
- emulators suck – false sense of confidence
- 7 requirements
- managing a device lab is hard – try 65 devices, different versions, can’t roll back
- MobileCloud – Open and Integrated, real devices connected via USB (no jailbreaks)
- will work on shake testing if there’s market demand
Lightning Talk #1: FIFA Gameplay Automated Testing with Jenkins
Stuart Rowe, Electronic Arts
- old system was scripts with manual emails notifying developers, about 8 hours of busywork per week by an engineer
- new system uses Jenkins
- performance testing done on real devices.
Lightning Talk #2: Supercharged Configuration as Code – Using Jenkins to Control Mass Updates of JOB DSL
Alan Beale, Chicago Trading Company
- bulk updating of 100 jobs?
- Jenkins backup master. Master is just a directory, so copy files?
- Advanced Track with more programming, like Google’s YAML-project talk
- community bulletin board in hallway.
Interesting phone charger tree with Post Office box-style, with combo locks: