Our original comparison in 2018 came at the request of many customers who use/used Jenkins and wanted to provide a write-up for their internal discussions. Harness was a new player in the space, and naturally, we were going to be compared to the most popular tools. At the time, we were CD-focused. We never minced words in saying CI and CD are distinct processes and should be treated as such. Jenkins was a CI tool, Harness was a CD tool, and there was little overlap between the core competencies of the two products in 2018.
Fast forward several years, and we have moved into the CI space by acquiring Drone.io as well as launching Harness CI Enterprise. We moved all our operations from Jenkins to our own product.
This is Harness vs. Jenkins, 2021 edition!
Getting Up and Running
For most, DevOps is a means to an end. Getting your software into the hands of your users is the goal. Outside of a short list of very experienced Jenkins practitioners, it takes anywhere from 30 minutes to several hours to get your first builds up and running, assuming you have the infrastructure in place to begin with. There’s a long list of plugins to add, settings to adjust, and finally infrastructure to incorporate before you can simply run a ‘hello world’ build.
In contrast, after signing up for an account in Harness, you can start running pipelines in less than 15 minutes. Sign up, add your target infrastructure, and artifact server to start building and deploying in minutes. There’s a whole section in our documentation dedicated to quickstarts on various infrastructure types, zero plugins required.
CI vs. CD
This is one we will shout from the mountaintops until the end of time. Much of what has been called CD over the years has been CI tools with scripts piled atop. Jenkins is, by far, the leader in this category. While plugins and solutions have been added after the fact to reduce the need for scripting, it is still a CI tool at heart. For common/conventional use cases, Jenkins can in fact achieve CD. However, it all ultimately falls on your DevOps staff to stand up and maintain your Jenkins infrastructure, update plugins, and troubleshoot when things go wrong.
Harness CD was purpose-built to solve the specific challenges involved in delivering software to a wide variety of infrastructure while maintaining a high level of configurability. Harness has 150+ integrations for every aspect of CD, from connecting to your infrastructure to integrating with change management. Ultimately, it ensures a closed loop by tying in APM/logging tools to proactively detect issues with releases. All these integrations require no maintenance or upkeep by our customers. Moreover, security and governance are first-class citizens in Harness CD. In the world of deployments, poorly-configured access or lack of auditability can result in fines, or worse yet, headlines.
Two paragraphs hardly do this point justice, so I will point you to the below four articles for more. Suffice to say, Harness has enabled customer after customer to level up their CD game.
One of the most common problems we hear from our customers when it comes to Jenkins is maintenance. Regardless of how well their setup works, very few view it as sustainable and scalable due to the time and effort it takes to maintain. These challenges include maintaining and updating the underlying infrastructure, plugins, various scripts, security updates, etc. And that’s before they deal with downstream effects of making those changes.
In the end, Jenkins itself becomes an internal software product that has to be maintained, versioned, and tested. The maintenance work is one challenge, but finding the people to do the work adds a layer on top. Software is taking over the world and the job market is expanding faster than the pool of developers. Throwing more bodies at a problem like maintenance is a solution that does not scale. Furthermore, every developer working on delivery is not working on delighting your customers.
In contrast, Harness CI/CD is lightweight for maintenance (a story told by our customers Luma, intelliflo, BetterCloud – ok I’ll stop, you get the point), allows for self-service while maintaining strong guardrails, and avoids the pitfalls of plugin sprawl that range from developer overhead, to security, to performance hits. The infrastructure footprint for Harness is also considerably smaller, requiring minimal upkeep.
Once upon a time, merely centralizing scripts and coordinating workers was a game changer. Then, declarative pipelines came along, and an adjustment was made. Then came containerized builds. Then test optimization.
As with most software solutions that start their life in one place and evolve with the times, and be everything to everyone, there is a tendency for bloat and brittle.
A shortlist for a modern approach to CI includes:
- Declarative pipelines
- Containerized steps
- Test optimization
- AI/ML to increase efficiency
- Tight integration to source control
Harness’ CI solution was built from the ground up, accounting for the needs of modern software development. We started with a container-based build system to stave off dependency hell and add extensibility. After, we added test optimization using machine learning to reduce test cycles. Additionally, we implemented a managed Git experience for pipeline development. Finally, we wrapped everything up in enterprise-grade security and governance, like secrets management, audit trails, and RBAC. Sounds interesting? Amazing perhaps? Read the details on Harness CI Enterprise.
Give the Butler his due here, Jenkins is endlessly flexible. There’s a plugin for everything, there are ways to script around every use case, and there are many different configurations you can deploy in. There are legitimate concerns about scaling this approach, but with the right DevOps engineers and a good design, this can work – and has worked for many organizations.
Harness integrates out-of-the-box with several different constructs that allow for customization for unique use cases. In Harness CD, the template library, shell steps, and custom deployment types make nearly any use case possible. Harness CIE provides a container-based plugin system for a lightweight way to fulfill any use case you can dream up.
Jenkins is a very useful tool, and it does many things well. There’s a reason we used it for a long time at Harness. But ultimately, as you scale up, you start seeing the limitations of the approach of building anything on top of Jenkins in the form of maintenance, toil, and outages.
When we discuss Jenkins, the most important thing we want to highlight is return on investment and total cost of ownership. If you’re a small company with a handful of services, Jenkins can be a great return on investment. When you start scaling up use cases, services, developers, and more, your return on each hour invested tends to decrease at an exponential rate.
Finally, consider how much the solution actually costs when you do all the math. Previously mentioned here were a number of cases where our customers saved considerable sums of money moving off a “free” solution like Jenkins. When you consider all the costs for infrastructure and developers, the word “free” absolutely belongs in quotes.
What’s next? You can read more about our technical journey in Migrating From Jenkins To Harness CIE: A Journey, why we felt CI needed a fresh approach… and of course, you can get hands-on and try the tech for yourself!