5 CI/CD Platforms and How They Leverage Docker Container Technology
As containers have exploded onto the IT landscape over the last few years, more and more companies are turning to Docker to provide a quick and effective means to release software at a faster pace.
This shift has caused many Continuous Integration and Continuous Delivery (CI/CD) tools and companies to strategically create and weave new container native solutions into their platforms.
In this blog we’ll take a look at some of the top CI/CD players in the game and the shifts they’ve made to support their users in this brave new world of containers.
Cloudbees’ open source Jenkins CI/CD platform is arguably the most popular CI/CD platform available in 2019. Originally created in the early 2000’s (as part of the Hudson project) Jenkins now has wide adoption across various types of organizations helping teams to automate any task that would otherwise put a time-consuming strain on your software team. Some of the most common uses for jenkins include building projects, running tests, bug detection, code analysis, and project deployment.
Jenkins can be easily integrated with a Docker workflow where it manages the entire development pipeline of containerized applications.
In addition, with one of the largest open source communities among CI/CD providers, Jenkins has a wide variety of container related plugins available to delivers solutions for source code management to security.
**Bonus: With the Anchore plugin for Jenkins, users can quickly and easily scan Docker images in a Jenkins pipeline. Check it out here: https://plugins.jenkins.io/anchore-container-scanner
CircleCI is one of the most nimble and well integrated of the CI platforms. Founded in 2011 CircleCI provides a state of the art platform for integration and delivery, which has helped hundreds of thousands of teams across the globe to release their code through build automation, test automation, and a comprehensive deployment process.
CircleCI can be conveniently configured to deploy code to a number of environments including AWS EC2, AWS CodeDeploy, AWS S3, and Google Container Engine (GKE).
CircleCI natively supports the ability to build, test, or run as many Docker containers as you’d like. Users can run any Docker commands as well as access public and private containers registries for full control over your build environment. For convenience, CircleCI also maintains several Docker images. These images are typically extensions of official Docker images and include tools especially useful for CI/CD.
Like Jenkins, CircleCI has a robust set of integrations that cater to container users. You can find more information here: https://circleci.com/integrations/
Codeship is a CI/CD tool recently acquired by CloudBees that offers efficiency, simplicity, and speed all at the same time.
Teams can use Codeship to build, test, and deploy directly from a Bitbucket or GitHub project and it’s concise set of features combines integration with delivery so that your code is deployed accordingly once test automation has cleared.
With Codeship Pro, the build pipeline runs in Docker containers. This enables users to take advantage of features like easy migration through the ability to use large parts of your docker-compose file to set up Codeship and updates whenever the latest stable Docker version is available.
You can learn more about how Codeship works in a containerized environment here: https://codeship.com/features/pro
GitLab is a rapidly growing code management platform that offers both open source and enterprise solutions for issue management, code views, as well as continuous integration and deployment, all within a single dashboard. While the main Gitlab offering is a web-based Git repository manager with features such as issue tracking, analytics, and a Wiki, Gitlab also offers a CI/CD component that allows you to trigger builds, run tests, and deploy code with each commit or push. You can run build jobs in a virtual machine, Docker container, or on another server.
Of all CI/CD platforms Gitlab has shown a particularly strong focus on containers, even creating GitLab Container Registry, which makes it easy to store and share container images.
By building a number of toolsets that integrate seamlessly together and focusing on a growing base of container native users, Gitlab is definitely worth a look if containers are top of mind for your company
Checkout their docs to learn how to utilize Docker images within the gitlab suite of tools: https://docs.gitlab.com/ee/ci/docker/using_docker_images.html
Codefresh is another CI/CD platform that has placed a heavy focused on it’s container first user base, offering Docker-in-Docker as a service for building CI/CD pipelines with each step of a pipeline running in it’s own container.
The Codefresh user interface is clear, smart, and easy to understand. You can launch a project and check its working condition as soon as the project is built and the image is created. You can also choose from a number of templates to smoothen the movement of your current project to containers.
Codefresh puts a big focus k8s, and in has some neat helm features too. Anchore’s helm chart is listed in the codefresh ui.
With Codefresh’s suite of tools, users can easily build, test, push, and deploy images, utilize a built-in Kubernetes dashboard, Docker registry, as well as release management making it much easier for container users to get work done quickly and efficiently.
Learn more about how codefresh works with containers in their documentation here: https://codefresh.io/docker-tutorial/
With the a growing move to containers in 2019, we can only expect to CI/CD tools place an even heavier focus on building solutions to support container.
This shift to a container friendly ecosystem has and will help thousands of companies continue to see a decrease in their build time, test time, time to release.