CircleCI was founded in 2011 to help organizations get to market faster, with improved engineering team productivity and product quality. Boasting 1 million application builds a day, CircleCI enables engineering teams with automation for their software builds, tests, and deployments. Though, as many more solutions flourish in the software delivery ecosystem, so too does the need to ensure proper tooling and culture are in place for success. This post will evaluate CircleCI as a Continuous Integration and Continuous Delivery platform and provide insights into other CI/CD platforms for your DevOps teams and organizations.
The CircleCI API is a RESTful API allowing users to input, control, and trigger all actions in CircleCI. The entire CI and deployment process is defined by a config.yml file. Users can specify their CI/CD pipeline components (such as workflows, jobs, steps, etc.) through this file. Here is an example Java application’s config.yml file:
To reuse particular parts of a pipeline configuration, CircleCI has a resource known as Orbs. Users can visit the Orbs Registry to leverage or register custom and repeated configurations. Users can also define user groups and type to enforce basic role-based access controls on their CircleCI projects, workflows, pipelines, and other resources within the CircleCI platform.
In summary, CircleCI, similar to other CI/CD platforms, allows you to develop, build, test, deploy, verify, and manage your delivery. CircleCI provides built-in support for modern workloads and workflows, providing built-in Docker support, SSH debugging, FedRAMP certified compliance, robust version control system (GitHub, Bitbucket, etc) support, and mac os support.
In this post, we want to share four other CI/CD platforms to bring to light the features, design choices, and capabilities that allow organizations to succeed with their software delivery. Remember, there are many methods for evaluating CI/CD platforms. If you are looking to solve a particular software delivery challenge or are just looking for solutions that address your team’s needs, consider reading our comprehensive buyer’s guide to CI/CD solutions.
This post will address how some CI/CD platforms overcome the challenges users find when using CircleCI.
Jenkins is a widely popular open source automation tool. Its extensive community support and contribution have made it the most popular open-source CI/CD tool. Similar to CircleCI, is it capable of managing CI and CD functionality.
Jenkins can also be expanded through its extensive library of plugins, making it flexible and configurable, allowing for complex pipelines to be more easily built. These plugins are developed by companies and various community contributors, offering Jenkins the ability to integrate with almost any tool in the software development life cycle (SDLC). These plugins can also provide additional security capabilities that are important for delivering software, and also offer more in terms of visibility.
Builds in Jenkins can be configured through the Jenkins user interface. Similar to CircleCI, deployments are configured through syntax. Jenkins uses pipeline-as-code groovy syntax to accomplish this. However, configurations can be difficult to share across projects or applications as there is no version control integration for storing the configuration files.
Lastly, Jenkins is self-hosted. Therefore, organizations will have full ownership to control, configure, secure, utilize, and maintain their Jenkins setup. This can be beneficial for organizations or teams requiring on-premises or self-hosted CI/CD solutions over cloud or SaaS-based solutions. This is also great in terms of stability and reliability. Organizations can avoid broken pushed releases, slowness, and other unpredictable failures associated with cloud-based instances.
Jenkins, at a decade old, is a decent option as a purely open-source solution for CI/CD, if you are looking to support cloud-native workloads, however you may want to look elsewhere as more open source solutions exist to support GitOps and Kubernetes native applications.
GitLab CI/CD is a tool built into GitLab for software delivery. In Gitlab, this process works with the use of runners, agents that run your CI/CD jobs. Similar to CircleCI, a YAML configuration file provides specific instructions for GitLab CI/CD.
One significant benefit of using GitLab is its end-to-end SDLC capabilities and support within the GitLab ecosystem. If you are using GitLab for issue tracking, source code management, or project planning, already this may be a big benefit as GitLab CI/CD offers native support for the GitLab ecosystem.
GitLab also boasts security dashboarding, built-in Kubernetes deployment and monitoring, and fully integrated CD capabilities (no 3rd party plugins or tools needed), which can be beneficial for those looking for a fuller CD experience. It also supports a hybrid model where the GitLab server can orchestrate the on-prem instances of the GitLab runner.
GitLab offers a free version/free plan, which can be enough for personal projects and very small businesses. They also recommend the linux package installation, so support for linux based operating systems are preferred for GitLab instances.
Harness is a software delivery platform offering a number of modules for Continuous Integration, Continuous Delivery, and Cloud Cost Management, with additional modules coming soon for deployment verification and feature flag management. Its CD capabilities allow for organizations to utilize any CI solution, including Harness CI, to quickly deliver applications to any target environment, including Kubernetes, WebSphere, AWS, Microsoft Azure, etc.
The Harness platform has two components: the Harness Manager and the Harness Delegate. The Harness Manager contains all the deployment configurations and managed pipelines. It also connects to the Harness Delegates within your environments to perform your tasks. The Harness Manager is available as SaaS (running in the cloud) or as on-prem (running in your infrastructure).
Of all the alternatives shared here, Harness has the greatest number of out-of-the-box integrations with SDLC resources like cloud platforms and repositories, and for tools like Jenkins, Jira, ServiceNow, APMs, logging aggregators, Slack, and so on.
You can set up your deployments in the Harness Manager UI or use the code editor and sync it with your git repo. All your deployment resources are tracked, providing insights into who, what, when, and where deployments occurred.
Harness has a 24/7 Service Guard feature that monitors your microservices post-deployment, using Harness automated machine learning. It also has custom dashboards that provide a toolbox for building your own visual interface, reporting on key DevOps metrics (like deployment frequency, lead time, change failure rate, and mean time to restore), and additional modules to support continuous (and complete) software delivery.
Lastly, Harness has various plan options, including a freemium version.
This blog post presented several CI/CD platform alternatives to CircleCI. If you enjoyed this post and found it insightful, you can find more in-depth breakdowns of CI/CD solutions on our DevOps Comparison Tools page. Best of luck evaluating solutions!
Enjoyed reading this blog post or have questions or feedback?
Share your thoughts by creating a new topic in the Harness community forum.