CircleCI is a leading CI/CD platform offering robust features like the Insights Dashboard, clean environments, and reusable configurations called Orbs. It supports various infrastructures and simplifies DevOps practices, though its complex pricing model may be a challenge for users.
In this review, we go over what continuous integrations is, what CircleCI is, pros and cons, use cases, and how it compares to Harness CI. It is less well-known though, that CircleCI can do continuous deployments. They have only been offering this capability since the acquisition of a small company in that space called Vamp.
What is CircleCI? CircleCI is both a company and a product. The product is a continuous integration system hosted by the company. It was founded in San Francisco, CA in 2011. Since then, it has raised several hundred million dollars in financing and has consolidated as a leading player in the CI space. CircleCI was built in Clojure, which at the time was one of the newest programming languages. It has two fundamental types of setups: Cloud and Server. Their Cloud offering is a hosted solution: everything runs on CircleCI’s premises. Their clients just log on to that hosted platform and run all their builds, tests and pipelines there. Their On-Premise offering is the opposite: their clients install and maintain CircleCI on their own infrastructure.
How does CircleCI work? CircleCI is served as a SaaS and on prem. It builds, tests and deploys applications. CircleCI targets several different environments and architectures like Linux, macOS, Windows, ARM, and Android to name a few. CircleCI hence is a CI CD platform that automates builds, testing and deployment of software applications. Their solution is proprietary and it connects to a number of services to consume their artifacts. For example, they connect to several Git services to listen to events that trigger pipelines or consume source code that is used for builds and tests.
What is continuous integration? Continuous Integration is a set of software development best practices where members of a team integrate their work frequently, ideally several times a day. Each integration is verified by an automated build (including the complete test suite or the incremental portion of it) to detect integration errors as quickly as possible. The benefits of continuous integration leads to significant reductions in integration conflicts and allows teams to develop cohesive, quality software more rapidly.
CircleCI helps with the adoption of these best practices by providing speed, ease of use, and security to their build pipelines. It claims to do so by simplifying some parts of the DevOps process. These benefits are achieved through several features.
Also if you want to learn about CI/CD, check out: What is CI/CD?
Insights Dashboard – This is the main interface to interact with CircleCI. This is the place to monitor all CI CD pipelines. In it you can find workflow status, duration, and consumption data. It will allow users to:
Clean Environments – This feature allows you to run clean images and provision them.
Workflows – This feature allows users to define and orchestrate job executions.
Orbs – An orb is a reusable CircleCI configuration. You have three kinds of configuration you can re-use:
CircleCI is mostly used for CI projects rather than continuous delivery. It can deploy software, of course, but its architecture was designed with developers in mind. Those build and test source code rather than deploy it.
CircleCI’s pricing can get a bit complicated. Simply put, CircleCI is popular for providing fairly fat bills to its users, mostly their hosted plan user seats. Presumably, this has something to do with how the pricing model is based on credits, not only on prices per user or seat. This adds a layer of complexity that makes it unnecessarily obscure for users to figure out or plan for their upcoming bills.
Customers pay $15 as soon as a Pull Request is performed (an event that triggers any pipeline). On top of that, they are charged based on the compute resources they use. Credits are bundled in credit packages and their value per unit of time depends on the compute instance that is chosen to run the client's jobs.
In other words, CircleCI offers multiple types of compute (Linux, Windows, macOS, Docker, and others), and each type of compute costs a given number of credits per minute. For example, the medium Docker compute resource (the default for Docker) costs 10 credits ($0.006) per minute, so a job running for 3 minutes on a medium Docker resource costs 30 credits ($0.018). You can check all the different credit package options depending on the infrastructure they are run on here.
For the average CircleCI user to plan ahead, consulting and calculating for their persistent data egress and ingress is vital to keep their invoices in shape. This involves forecasting for consumption from caching dependencies or artifact consumption/delivery. Workspace optimization that will feed their jobs data. And, eventually, network and storage use. I don’t find it clear at all in the Pricing page how to figure out their network transfer and network storage prices.
This makes CircleCI’s insistence on pitching their performance now so obvious. It seems then that their pricing is designed to incentivize high performant usage regardless of customer needs, not so much based on efficiency, elastic scale and cost management.
Usability ⭐⭐⭐
Likeness to Renew ⭐⭐
Onboarding ⭐⭐⭐
Performance ⭐⭐⭐
Verifications ⭐⭐
Integrations ⭐⭐⭐⭐
Support ⭐⭐
CI CD Integration ⭐⭐⭐⭐
Scalability ⭐⭐
There are plenty of alternatives in the CI space. From the legacy systems such as Jenkins, TeamCity, or Bamboo to the more modern ones like GitLab CI or Drone, which was founded in 2012 and is now part of the Harness platform. Drone is the free and open source version of Harness CI module.
Harness CI is an enterprise ready, cloud-native CI product. Developers can build at speed with self-service, cloud native pipelines that scale elastically. Easy templating, RBAC, and governance done programmatically, as code or through our GUI, ensures any code meeting all quality and security standards.