Jenkins vs. BuildMaster: Why It's a Faulty Comparison
by Olivia Glenn-Han, on Jan 19, 2017 10:30:00 AM
As a vendor of an Application Release Automation solution, we get asked this question all the time: “Well, can’t I just use [insert CI tool] for my deployments?” Take for instance Jenkins, we often have evaluators compare Jenkins to BuildMaster, which is more like comparing apples to oranges.
Jenkins and BuildMaster are different products that solve different problems, and both are commonly used together as part of a modern DevOps Toolchain. A side-by-side comparison would be a bit like comparing Word and Excel: Both can be used to create forms that you'll print out, but if that's the only thing your business uses Microsoft Office for, you're certainly not doing it right.
Moreover, it’s important to understand that using the right tool for the job can lead to an efficient, cost-effective DevOps solution.
The Swiss Army Knife Approach
Although CI and ARA are two distinct separate processes that address two distinct problems, some seek a single, multi-purpose tool to do it all. Obviously, no such tool exists, but many will attempt to shoehorn Jenkins for this purpose, because according to its makers, “Jenkins is the Swiss army knife in the software delivery toolchain.”
Just as a Swiss army knife is no replacement for a toolbox, Jenkins alone is simply not suitable for implementing a modern DevOps process.
Jenkins Pipelines = Legacy Deployment Pipelines
A build/release pipeline facilitates the process of deploying both large and mission-critical changes and unscheduled emergency deployments of an application.
In Jenkins, a pipeline is a special type of job that’s implemented through a plugin originally called workflows. Essentially, a pipeline job is a sequence of steps grouped into stages and may run on a particular node. Like a job, a step could “do anything,” but it’s designed for a single, discrete task and is generally used to run other jobs. There are a handful of built-in steps for things such as running scripts and sending emails.
Jenkins pipelines are very similar to BuildMaster’s Legacy Deployment Plans: Actions are like Steps, Action Groups are like Stages, and both Actions and Action Groups had a Node-like context.
However, neither are suitable on their own for release automation. A layer on top is needed for process orchestration, such as approval gates, manual intervention, security, and so on.
Jenkins with BuildMaster
Although Jenkins is a poor choice for release automation, it’s definitely a proven Continuous Integration tool. This is exactly why BuildMaster has a tight integration with it: With the Jenkins extension, you can import build artifacts into BuildMaster, apply the necessary approvals, additional testing, and deploy to production.
Alternatively, you can use ProGet to host all your packages, binaries, and Jenkins Build Artifacts. This tutorial shows the steps needed to set this up.
CI and ARA tools are just two of the many tools that are often implemented as part of a DevOps toolchain. Check out the DevOps Toolchain Wikipedia page to learn more about the seven important aspects of a highly evolved toolchain.