Compare Conducto to CircleCI
By: Jonathan Marcus
CI/CD pipelines are instructions about how to build, test, and deploy your applications. Non-trivial pipelines need the power of a real programming language. A pipeline built of reusable parts is both less fragile and easier to upgrade.
CircleCI has a custom pipeline language written in YAML where tasks are YAML dictionaries. For code reuse, it has a templating ability that does parameter substitutions and some light conditional logic. A CircleCI config file is a long list of every step in the pipeline with no hierarchy. It inevitably has a lot of copy/paste, leading to subtle bugs and inconsistencies as you iterate.
The more that pipelines do, the more complex and fragile they become. The CI/CD tool should reduce complexity, not be a source of it.
CircleCI is a DAG-based tool, and DAGs get messy once your pipelines get bigger than a few nodes. A medium-sized CI/CD pipeline can include nodes that deploy cloud infrastructure, run unit tests, spin up microservices, and run integration tests on the new environment. If you've ever traced a node's dependencies in such a CircleCI project, you know how frustrating it is to search through a 2000-line YAML file.
We've written about the problems with DAGs and why Conducto's trees are much better at handling complexity. As your application grows and your deployment becomes more sophisticated, your Conducto pipeline stays simple.
Not all users have a large budget for CI/CD tools. Does the service offer a genuinely useful free mode, or is it hampered to force you to upgrade?
Conducto lets you run CI/CD pipelines on your own machine for free, with no limit on the number of users on your team. You can and your teammates can run pipelines on your laptops all month long at no charge. It's only fair – you supply the compute power, so you shouldn't pay anything. When you need more scale you can run hundreds of tasks simultaneously in the Conducto cloud.
CircleCI does not offer a free local mode. They give your team 500 CPU-minutes of cloud compute per week. That's the equivalent of 2 hours on a 4-core laptop.
Note from the team: as we built Conducto, we switched from using CircleCI to using Conducto for our own CI/CD. We developed and deployed a lot of very serious infrastructure using Conducto's local mode. It's great.
A CI/CD tool is only as useful as the commands it can run.
Conducto and CircleCI both use Docker containers for running commands that integrate with third-party services. CircleCI maintains a fleet of Docker images for various programming languages and databases; these are hosted on Docker Hub and are available to users of both Conducto and CircleCI.
For any services without a dedicated container, both tools offer the flexibility to use those services' APIs in a programming language of your choice.
The debug cycle - finding errors, writing a fix, and getting the fix into the pipeline – is a major bottleneck for CI/CD. It may be the most critical and often overlooked factor for improving the productivity of pipeline writers and users.
Find errors: Conducto's UI lets you understand the state of entire pipeline at a glance, and dig down quickly to diagnose any errors. Understanding the context around an error is often as important as seeing the logs from the error itself.
Write a fix: Live Debug lets you interactively dive into a single node. It reproduces the runtime environment exactly while using the code in your normal editor and workspace. Don't waste any more time trying to reproduce a problem in order to debug it.
Update the pipeline: The Conducto UI makes it easy to fix errors while the pipeline is still running. The video's example is for a short CI/CD run, but some deployments take an hour or more. This functionality is absolutely crucial when you have a long pipeline that encounters a problem near the end.
No other pipeline tool matches a single one of these features. Together they make for an unparalleled debugging experience.
The video also shows Conducto's collaborative debugging features, which make it easy for developers, DevOps, and release engineers to solve bugs together.
CircleCI's interface does not make it easy to find errors in context. CircleCI allows you to SSH into a node, though it is awkward to set up and you do not have your normal editor and toolchain. Testing a fix requires pushing a minor Git commit and restarting your CI/CD pipeline from the beginning. The CircleCI debug cycle is slow, often up to 30 minutes or more.