At CloudBees we have some on-prem products we sell called Jenkins Operations Center , and Jenkins Enterprise . The latter, as you can guess, is a supported version of Jenkins with extra plugins and features, Operations Center is a means to manage a bunch of different Jenkins installations from a single place, monitor and more. There are also good things like failover and such.
The challenge we had was that there was a fair bit involved in showing all this working together - as the whole point is this is for advanced users who are getting deep into continuous delivery. An example setup would look something like this:
So we need a setup that involves HA proxy (to route and failover web requests, and give us one entry point to the whole system) - and then several other servers: Jenkins controllers, Operations Center itself, some agents and so on.
Now there is an excellent tutorial to take you through setting up a lot of this - but if you want to kick the tyres or demo something - it takes a while to setup. Our Solution Architects wanted a way to quickly show people the core concepts, demo them, and give them something they can try themselves without spending a whole lot of time setting it up.
So - we picked Docker!
Docker let us set up all these moving parts - a cluster in a box, quite easily. Furthermore, it has been set up to be kept up to date (via continuous delivery on our own dogfood jenkins). As Jenkins data is stored in the jenkins_home directory - any time the contents of that demo workspace changes by a product manager (eg we want to demo a new feature) - we just update the workspace in our own repo and it triggers a build/test/deploy of the docker image to the docker hub:
to run this, all you need to do is:
docker run -p 80:80 -it -h jockey.local cloudbees/joc-trial
(ensure that jockey.local points do your docker hosts IP) - obviously once you have docker installed - boot2docker is recommended.
This only needs you to have docker running - and the rest is done for you (make sure you have a chunk of memory as this is a little cluster setup!).
We also deploy a private version of this repo for internal use (with build in licences and such) - but it is based on the same data and image - all hosted out of the docker hub.
This is a mini distributed system - we need all this to show off some of the core features that users would want to try:
Operations Center controller
Client controller in a highly available mode with a backup controller
Shared agents (agents can be used from any controller)
agents local to client controller
Folders/Folders plus: ties agents to a particular folder
Role Based Access Control (and with single sign on)
RBAC with a secret project
Read on for the details of what you can do with this trial/demo of Operations Center. There is quite a lot to it.
Some extra reading:
Stay up to date
We'll never share your email address and you can opt out at any time, we promise.