Continuous integration and continuous delivery (CI/CD) are best practices for software development. Together, they provide a set of automated tasks to ensure the reliable deployment of software projects.
Continuous integration (CI) is the practice of automating the integration of code changes from multiple contributors into a single software project. It’s a DevOps best practice, allowing developers to frequently merge code changes into a central repository where builds and tests run.
Continuous delivery (CD) is the automation of steps to facilitate changes into production safely. This focuses on the release and release strategy, while continuous deployment focuses on actual deployment.
This guide will focus specifically on the 15 continuous delivery tools every DevOps engineer should be familiar with today. Along the way, I’ll point to some of their distinguishing features and use cases, but if I missed one of your favorites, let me hear about it. Find me on Twitter or leave a comment below.
Pretty much all the tools in this list will improve your development workflow. I think every good CD tool should be:
Without further adieu, here are the top tools developers and DevOps professionals should know:
Travis CI is one of the best CD tools for testing your code, verifying all the build steps, and making sure that your application is ready to be deployed. It’s also an excellent tool for CD beginners because of its quick setup time. It allows the user to sign up, link their repository, build, and test their apps, using plain yaml
files to configure pipelines. Its simplicity allows you to quickly get a sense of how all the stages of your deployment process are configured.
Travis CI integrates easily with common cloud repositories like GitHub and Bitbucket. Its server is hosted in the cloud, which cuts out the need for a dedicated server. Travis CI is free for open-source projects. For commercial projects, you need to purchase an enterprise plan.
Features:
Jenkins is another popular CD tool, featuring a wide array of customization options. However, Jenkins isn’t the best choice for those new to CD. Jenkins’s popularity is due to the fact that it’s open source and quite flexible. With Jenkins, you can easily automate your entire software delivery process on any platform.
With hundreds of plugins available, Jenkins supports building, deploying, and automating for software development projects.
Features:
GitHub Actions is another accessible CD tool that’s highly beginner-friendly. If you have a GitHub account, you’re ready to start using GitHub Actions.
GitHub Actions can perform all of the standard CD stuff (testing and QA, rollbacks, verification, etc.), but it goes one step further. GitHub Actions can automate your task outside of that context. For example, you can automate triaging, manage releases, and automate collaborations with your user base.
GitHub Actions supports Node.js, Python, Java, Ruby, PHP, Go, Rust, .NET, and more. You can test and deploy applications in your language of choice.
Features:
CircleCI is a lightweight cloud-based continuous integration and delivery platform that automates testing and deployment processes. It supports Ruby on Rails, Sinatra, Node, Python, PHP, Java, and Clojure.
CircleCI has an easily readable YAML configuration, is painless to set up, and doesn’t require a dedicated server to run. It’s suitable for small projects that need to get off the ground quickly.
Linux plans start with the option to run one job without parallelism at no charge. Open-source projects get three additional containers for free.
Features:
Bamboo is one of the most popular CI tools on the market today. Written in Java, it’s used to build and test software projects, making it easier for developers to integrate changes in a project. It also aims to continuously deliver software by integrating a large number of testing and deployment software.
Bamboo pricing tiers are based on agents rather than users. The more agents, the more processes it can run concurrently—either in the same build or different ones.
Features:
TeamCity promises “powerful continuous integration out of the box.” But don't doubt their CD abilities. This promise speaks to what it offers beyond free tools like Jenkins: out of the box usability with excellent deployment history and source control integration.
TeamCity runs in a Java environment, usually on an Apache Tomcat server, but it can be installed on Windows and Linux servers, too. It offers equal support for .NET and OpenStack projects, integrating into Visual Studio and IDEs like Eclipse. TeamCity is a commercial tool, with both free and proprietary licenses.
Features:
If your focus is on continuous delivery, you should be using GoCD. A solid Jenkins alternative, GoCD is suitable for anyone building deployment pipelines, no matter your experience level.
Unsurprisingly, GoCD was built on the principles of continuous delivery. It’s free and open source.
Features:
GitLab CI/CD is the newest choice when it comes to CI/CD tools. Built into GitLab, it’s a free CI/CD tool that can be self-hosted. GitLab has a community edition that provides Git repository management, issue tracking, code reviews, wikis, and activity feeds.
GitLab offers hosting for SaaS on GitLab, or on your on-premises instance and/or on the cloud.
Features:
As soon as you push your commits, Integrity builds your code, runs your tests, and makes sure everything works just fine. It reports the build status back to you and your team so problems can be fixed immediately.
Features:
Semaphore is the fastest CI/CD platform on the market, powering the world’s best engineering teams.
Traditional CD services are limited by your plan’s capacity. Semaphore scales according to your team’s actual needs, so if you’re not using the tool you don’t have to pay.
Features:
Buddy is a web-based and self-hosted CI/CD software for Git developers. It can build, test, and deploy websites and applications with code from GitHub, Bitbucket, and GitLab. Buddy is a free commercial tool.
Features:
Wercker is a SaaS CD platform that uses Docker containers to manage, build, and test code for errors before deploying it to the cloud. It was acquired by Oracle in 2017.
Features:
Nevercode is a cloud-based CI/CD for mobile applications, specifically iOS, Android, Apache Cordova, Ionic, and React Native. Nevercode facilitates the release of defect-free mobile apps by removing manual error.
Features:
Azure DevOps provides unlimited private Git hosting, cloud build for continuous deployment, Agile planning, and release management for CD to the cloud and on-premises. It also includes broad IDE support.
Features:
Introduced by Amazon in 2015, AWS CodePipeline allows the user to configure a CD workflow or pipeline within the AWS ecosystem. CodePipeline builds, tests, and deploys your code every time there is a code change, based on the release process models you define.
AWS CodePipeline also allows you to immediately begin modelling your software release process—there are no servers to provision or set up. CodePipeline connects smoothly to your existing tools and systems.
Features:
Modern-day DevOps practices involve continuous development, testing, integration, deployment, and monitoring of software applications throughout a development life cycle. And while most modern-day projects use a solid CI/CD pipeline, they don’t all use the same one. Your specific project will determine the best tools for your specific use case.
Have a tool I should look into? Shoot me an email or find me on Twitter to continue the conversation.