Jenkins creator Kohsuke Kawaguchi on applying his not-so-secret sauce to CloudBees
Newly installed CTO talks to JAXenter about the road ahead, the importance of elasticity, and some interesting applications of continuous integration.
Kohsuke Kawaguchi is perhaps best known for being the founder and current lead developer of the ever growing Jenkins continuous integration (CI) open source community. He’s also been a key member of the Cloudbees team since 2010 – first as an elite developer and architect, and, as of last month, the company’s first ever CTO.
This promotion, which puts Kawaguchi right at the helm of developing CloudBees’ technology strategy, is something Sacha Labourey, founder and CEO of the PaaS provider, attributes to the critical role he has played in, “guiding the development of the CloudBees platform to ensure it remains the leading continuous integration and continuous delivery platform on the market.” It’s this knack for tapping into the demands of a market increasingly geared towards continuous integration that Labourey hopes to capitalise on for future platform development and strategy.
Part of what makes CloudBees such an excellent fit for Kawaguchi, he says, is the way in which it “enriches the Jenkins ecosystem by bringing its weight.” By adding things like commercial support and additional enterprise functionalities, the reach of Jenkins has grown exponentially, and many enterprises now “feel more comfortable with using Jenkins.” As the creator of the platform, Kawaguchi is, “very grateful for this, and I’m excited at the doors that open when we go in.
It’s clear that this support means a lot to him – and he’s well aware of the need for increasing awareness of Jenkins. In a recent Zero Turnaround survey, Jenkins came out on top as the tool of choice for ‘rock star’ developers in terms of predictability and quality of software delivery – something Kawaguchi attributes to the fact that continuous integration is still a “relatively young practice, which means there are more use in the “rock star developers” category compared to the “all developers” category. So the project has more evangelism to do!”
He’s also a big fan of the flexibility that the CloudBees cloud-hosted Jenkins as a Service (DEV@cloud) and Platform bring to the table, explaining that the elastic environment brings a new level of productivity gain to software development, and, “being a part of the team that’s making this happen is a source of pride for me.”
Although he wasn’t able to disclose the full company roadmap for the year ahead, Kawaguchi was able to tell us that CloudBees will also be adding more features to Jenkins Enterprise in the next 12 months. On the cloud side, the company is working on new efficient technology to provision, house and isolate slave build machines, which he says will, “reduce the speed of builds considerably, as well as enable us to offer elastic OS X build machines.”
You hear a lot of terms like “elasticity” and “extensibility” bandied around by CloudBees folk – and it’s these concepts that Kawaguchi pinpoints as his “not-so-secret sauce” to the craft of software development. Or, as, he puts it, “ the idea that software should consist of individually reusable and composable pieces, and other developers should be able to pick up pieces and build on top of them, in ways that enable others to build further on top.”
This ideology has suited Jenkins very well, and he is keen to make more of an effort to implement it for the benefit of CloudBees, in the hopes that it would allow them to simplify or unify their engineering efforts.
On the Jenkins side, like any proud open-source creator, he’s delighted to see how critical mass continues to grow around the project. Although the nature of open-sourcing means that he often has “no idea” what the community is up to, from what he can tell, there’s currently a lot of “interesting attempts to deal with how to manage large numbers of inter-related jobs without manually creating them”, and he expects efforts in this space will continue.
He’s also currently seeing several significant new lower-level services/abstractions being added to the Jenkins core, such as abstracting away artifact handling, or a master-to-master communication mechanism, which he thinks will enable user-visible functionalities in plugins.
Around all that, Kawaguchi is also trying to, “rally the community around a single acceptance test harness that we’ve been building, so that the community could amass more test cases. We’d like to use those to provide more stability and better quality for Jenkins.”
Then there’s the atypical use cases – one person told Kawaguchi that he’s using Jenkins to take a picture with a webcam every second, then using an image processing application to track moving figures in the image. There are also a number of people using Jenkins to bring continuous integration to writing books.
Although he finds these projects entertaining, to him, the “awe-inspiring deployments of Jenkins” are those where people “build plugins on top of Jenkins to really create a tool that makes their dream of continuous delivery process a reality. I feel very proud that these people decided to build their dreams on top of Jenkins, and it’s even more awesome that these things happen totally on their own without me knowing anything about them until they show me.”
Alongside all of this, Kawaguchi keeps himself busy with a plethora of hobbies, ranging from an unusual passion for cross-stitching retro 2D pixel arts (you can check out his rather impressive gallery here), to a growing stack of open-source projects. The latest of these is “no more tears“, which uses a feature in Java7 for scripting languages to help cope with code evolution and backward compatibility.
He confesses to being “horrible” at prioritising, but refers to a lot of these off-shoots as “project of the day”, meaning that, “they tend to be single functionality library/tool projects. Sometimes it’s a reusable portion of a task I happen to be working on, and sometimes it’s just a cool idea that I wanted to show to others.”
Having been installed in the role for a less than a month, Kawaguchi is very much still bedding down into his new CTO title. Nonetheless, the year has already got off to a brisk start for him – when JAXenter tried to pin him down for this interview, his diary was already packed out.
Alongside these obligations, there’s the ongoing work on the Jenkins Operations Center. He tells us that there are “tons of things” that the company would like to add to it already – “things that will help people scale Jenkins even further.” It’s clear we can expect some exciting developments from the CloudBees hive in the year ahead – and apparently, after four CTO-less years, they’ve found just the right multitasker to help knock things up a gear.