Wednesday, 4 November 2015

The Rise of the Jenkins CI Butler - by Jonathan McAllister

Author of Mastering Jenkins [Packt Publishing] []

Kohsuke Kowaguchi designed and developed the Hudson automation system from the ground up while he was working at Oracle in 2006.  Primitive inceptions of the Jenkins platform (then known as Hudson) simply aimed to support continuous integration practices and offer a viable replacement for CruiseControl, which was the popular CI solution at the time. The Hudson platform was initially very Java centric with tight coupling to Maven and Java development paradigms. Little did Kohsuke know that his internal Hudson tool would catapult in notoriety, change names (into Jenkins), spin off to become CloudBees and eventually become the most popular modern Continuous Integration and automation orchestration platform in use in modern history.

The current Jenkins platform provides an easily consumable unified user interface coupled with a highly scalable distributed automation solution that can build, test, and automate across diverse technologies. Its vast plugin ecosystem allows it to be extended to integrate tightly with other technologies and dynamically expand based on user needs and developer creativity. But this was not always the case. During it's early years the Hudson user interface was not the cleanest and the tool was heavily Java focused. Aside from the Java features the original iterations of Hudson were sub par in comparison to CruiseControl. The major positive feature it did have was a unique extension paradigm.