Unlocking the Power of Continuous Integration and Continuous Deployment
The software industry has witnessed a remarkable surge in innovation in the continuous integration and continuous deployment (CI/CD) space. With numerous tools and services emerging to provide key components of the CI/CD pipeline, only a few organizations have successfully developed full-fledged CI/CD systems, establishing themselves as industry standards. Among these, CircleCI and Travis CI stand out as purpose-driven tools, while Microsoft, Google, and Amazon offer their own CI/CD systems as part of their cloud service provider (CSP) offerings.
Purpose-Driven Tools: CircleCI and Travis CI
CircleCI and Travis CI are heavyweights in the CI/CD arena, catering to different audiences with unique capabilities. CircleCI offers a hosted tool, CircleCI Cloud, and a self-hosted tool, CircleCI Server, both allowing builds using various languages and runtimes on Linux. CircleCI Cloud supports Windows or Mac builds, whereas CircleCI Server drops support for.NET, Swift, and Objective-C builds. Both tools enable specification of a container for builds and feature “workflows” that wire together multiple build jobs with a visual representation. CircleCI Cloud supports adding “Orbs” to a workflow, which are prepackaged, reusable build steps.
Travis CI also offers a hosted tool and a self-hosted tool, Travis CI Enterprise. Both tools allow builds using various languages and runtimes on Linux, Windows, or macOS. Travis CI’s build matrix feature enables running builds multiple times in parallel against different versions of languages, runtimes, environments, and/or package versions.
CSP Tools: Azure Pipelines, Google Cloud Build, and AWS CodePipeline
The CSP tools are tightly integrated into their respective cloud platforms. Azure Pipelines is a complete CI/CD system that can build anything and deploy anywhere. It offers deep integration with the larger Azure DevOps platform and a marketplace with extensions that can add new integrations to your pipeline. Azure Pipelines is extremely flexible, allowing builds to run on different build agents running different operating systems, with support for various languages and runtimes.
Google Cloud Build focuses primarily on building containerized applications. Builds run within a “cloud builder,” which is essentially a container. There are several officially supported cloud builders that run Linux and support various languages and runtimes. Unfortunately, there are no Windows or macOS cloud builders.
AWS CodePipeline is one of several Amazon tools that are tightly integrated together and necessary to build a CI/CD pipeline. CodeBuild and CodeDeploy are the two other tools that you will most likely want to set up. AWS CodePipeline offers a large number of third-party integrations to other CI/CD tools, including CircleCI, Travis CI, GitHub Enterprise, and more.
Comparing Purpose-Driven Tools to CSP Tools
When comparing the pipeline setup experience, CircleCI wins with its nice YAML configuration generator, while Azure Pipelines offers a thorough, developer-friendly pipeline setup process. In terms of scalability, Azure DevOps wins with its virtually limitless capacity, pipeline concurrency, and ability to host build agents directly in Azure or on-premises.
When it comes to cost, the usage-based pricing models offered by AWS CodePipeline and Google Cloud Build could be cheaper for your organization. However, given the unpredictable nature of your development team size and the number of pipelines, the per-user pricing models used by Azure Pipelines, CircleCI, and Travis CI allow for more predictable spend.
In terms of flexibility and extensibility, Azure Pipelines wins due to its extension marketplace, splitting and sharing of configuration across pipelines, and robust REST API.
Vendor Lock-In Concerns
While using a CSP tool may make you feel more locked in, some tools definitely make you feel a little less tied down. If you are using CircleCI or Travis CI but also want to take advantage of capabilities in one of the CSP platforms, you could always move to a self-hosted version of either, host it directly on your CSP’s infrastructure, and have full control over your pipelines.
Why Choose CSP Tools?
You might want to use CSP tools over purpose-driven tools because of the level of documentation and support you will get from setting up a CI/CD pipeline with a CSP if you already deploy your applications to that same provider’s cloud. Additionally, if your organization doesn’t want to manage its own CI/CD infrastructure but has requirements for running your builds and storing your code in specific regions, then Azure Pipelines and AWS CodePipeline are the best choices.
Final Thoughts
CircleCI and Travis CI have highly capable, easy-to-use hosted and self-hosted tools that work well for individual users, small to large organizations, and open-source communities. The big cloud service providers are starting to produce attractive CI/CD tools that are surely capable of stealing a slice of the market share. Out of all these tools, Azure Pipelines (and Azure DevOps) is poised to grow quickly and expand its integrations with third-party tools.