CI/CD Enablement: CircleCI vs Jenkins

At Fairwinds, whenever we start work with a new company, we recommend CircleCI for its CI/CD pipeline. There are two main reasons:

  1. Our customers choose to work with us to cut through Kubernetes complexity and gain expertise so they can focus on their core business technologies. For that same reason, we recommend CircleCI.

  2. CircleCI is a polished tool built on the foundation of years of trial and error by its predecessors such as Jenkins.

Polished tool, an Evolution

tl;dr Jenkins is powerful, but high maintenance. CircleCI has a better UX and no maintenance.

Jenkins is a popular open source tool for CI/CD. It is actually a fork of Hudson after an Oracle dispute. Jenkins is designed around a plugin system that allows third party extensions to add functionality. This, however, is a double edged sword. On one hand, it allows the users to create very unique functionality and even experiment with ideas. On the other hand, this extra functionality makes the configuration and maintenance harder as well as creating a fractured user experience (UX). This can be seen in the project Blue Ocean that is reinventing the user experience of Jenkins. With Jenkins, companies spend a lot of time maintaining the tool itself and plugins taking time and resource away from core business technologies.

Enter CircleCI. It was created in 2011, and as a result, built on the experience of seeing what worked and what didn’t in the initial CI/CD use cases. It draws ideas not only from Jenkins but also from other CI/CD tools that predated it. All the core CI/CD functionality that a tool like Jenkins delegates to plugins is built into CircleCI enabling cleaner configuration and a better UX. However it doesn’t stop there, for plugin like capabilities, CircleCI provides integrations with many services such as GitHub, AWS, GCP and Kubernetes. Also, CircleCI has orbs which are “shareable packages of CircleCI configuration you use in your builds”. At Fairwinds we provide an orb called rok8s-scripts 😉 With CircleCI, users spend less time maintaining, more time on their business.

Less Complexity to Maintain

tl;dr Jenkins needs to be installed and maintained. That means that the ops team will have extra work. CircleCI can run in the cloud requiring little maintenance.

To use Jenkins first you need to install it somewhere. That means you’d need to provision a server or install it in your Kubernetes cluster. Either way, it means that you’ll need to take extra steps to make sure the installation is production ready and then maintain it. However, it doesn’t stop here, after the installation you need to configure Jenkins to meet your needs. Plugins will need to be installed, configured and maintained as well. Finally, after all this, Jenkins is ready for creating pipelines.

With CircleCI, all it takes is a signup to start creating pipelines. The installation and management is handled by CircleCI. Additionally, if the use case requires CircleCI to be hosted on a company’s own infrastructure that can be done. Running hosted CircleCI will require maintenance, of course, but the setup is still more simple and you’d still benefit from a better UX.

CI/CD Enablement

Our team at Fairwinds focuses on Kubernetes enablement. That is the help users need to cut through complexity and implement Kubernetes best practices. It helps users avoid trial and error helping to save time, offers production-grade Kubernetes infrastructure so users can focus on their applications and delivers immediate access to highly skilled SREs.

As part of our commitment to Kubernetes enablement, we are also committed to suggest best-of-breed tooling. That by far means CI/CD enablement with CircleCI.

Free Download: Kubernetes Best Practices Whitepaper