Continuous integration and continuous delivery/deployment (CI/CD) describes a set of practices for delivering applications and infrastructure using automation, continuous monitoring, and GitOps processes. CI/CD pipelines emerge when incremental code changes are made frequently and reliably, triggering various levels of automation, resulting in operational deployment.
CI/CD tools designed to work with containers, and Kubernetes will differ from the traditional virtual machine. The Kubernetes orchestration capabilities allow greater flexibility in how you deploy, scale, and manage your containerized applications. Your CI/CD tools need to understand your workflows and enable your pipeline growth.
Selecting the CI/CD tool is not easy, and understanding the tradeoffs is imperative. To help you along your journey, here is a list of some of the top CI/CD tools for Kubernetes environments you should know about, in no particular order.
Tekton
Tekton is a Kubernetes-native open source framework for creating continuous integration and delivery (CI/CD) systems. Tekton can be deployed and configured declaratively into your existing Kubernetes clusters. This Kubernetes-native architecture allows your CI/CD pipeline to be portable and function across multiple cloud providers and locations.
The declarative nature of Tekton and Kubernetes allows you to standardize, collaborate, and share your workflows across teams. Tekton is built for integration and will work well with existing CI/CD tools.
Pros:
- Standardization
- Portability and flexibility
- Kubernetes-native
- Built-in best practices
- Open source.
Cons
- Limited to Kubernetes
- Less developed feature set than existing solutions
Resources:
Argo
The Argo Project is a comprehensive group of tools to help you orchestrate all of your container-native workflows. Argo boasts four core solutions in its portfolio:
While each component plays a crucial role in your CI/CD workflow, Argo CD is the core component of this offering. Here is a breakdown of the four key applications of the Argo Project.
Argo Workflows is a workflow engine for orchestrating parallel jobs on Kubernetes. This could be unit or code tests as well as machine learning or big data workflows.
Argo CD is a GitOps continuous delivery tool for Kubernetes focusing on declarative and version-controlled application configurations.
Argo Rollouts is a Kubernetes controller providing advanced deployment capabilities such as blue-green, canary, automated rollbacks, and more. Argo Rollouts is a handy tool to tack onto Argo CD after you have structured automated deployments.
Argo Events is an event-based dependency manager allowing you to create schedules, streams, and triggers for other workflows and Kubernetes objects, giving you greater flexibility in the automation capabilities of the existing tools.
Pros
- Standardization
- Portability and flexibility
- Kubernetes-native
- Open source
- Git as a source of truth
Cons
- Git as a source of truth
- Longer implementation time
Resources:
GitHub Actions
GitHub Actions was first released in November 2019 and has become a handy tool for open source and enterprise applications. GitHub Actions has the flexibility to build complex workflows, and GitHub runners allow you to set up comprehensive, declarative, and parallel workflows for many different use cases. Its free use tier will enable users to combine Git principles with CI automation capabilities and is extremely useful for new users.
Pros
- Standardization
- Simpler GitOps
- Easy Setup
- Git as a source of truth
- Free tier
- GitHub marketplace for sharing workflows
Cons
- Missing more complex CD uses cases
- Users are limited to GitHub cloud service, although self-hosted runners are now available
Resources:
Jenkins X
Jenkins X automates the continuous delivery using Git as a source of truth and creates previews on pull requests to help you accelerate delivery. Jenkins X is built on the open source Tekton project, leveraging its framework for flexible, portable CI/CD systems.
Jenkins X brings support and a few extra features to the Tekton project, including a clean UI and built-in features. You do not need Jenkins to run Jenkins X, leading to increased adoption, especially for teams that work with a Git and Kubernetes stack.
Pros
- Git as a source of truth
- Based off Tekton pipelines
- Tekton with enterprise support and features
- Feedback on issues and pull requests
Cons
- Limited to Kubernetes
- It only works with GitHub for now
Resources:
OpenShift Pipelines
OpenShift Pipelines is a Kubernetes-native CI/CD solution based on Tekton. Tekton provides the open source framework, and OpenShift Pipelines adds enterprise features and support to the platform. It builds on Tekton to provide a CI/CD experience through tight integration with OpenShift and Red Hat developer tools.
Each step of the pipeline uses a container allowing for creator scalability and parallelization. OpenShift Pipelines is designed to take full advantage of Kubernetes architecture in your CI/CD process.
Pros
- Git as a source of truth
- Based off Tekton pipelines
- Tekton with enterprise support and features
- Uses OpenShift Operator for application management
Cons
- Limited to OpenShift platform
Resources:
Spinnaker
Spinnaker is an open source, multi-cloud continuous delivery platform that provides application management and deployment, enabling you to release software changes with high velocity and confidence. Developed internally at Netflix and released in 2015, Spinnaker is a true CD application and requires you to do some work beforehand.
Spinnaker integrates well with existing Git and CI toolings such as Jenkins, TravisCI, and others. Users will get the best leverage if they have existing CI processes in place and are looking for more fine-grained Kubernetes deployment controls. Spinnaker has built-in deployment strategies, integration monitoring, and configuration capabilities such as a manual judgment pipeline stage so you can differentiate between continuous delivery and continuous deployment.
Pros
- Fast and flexible deployments
- Out-of-the-box deployment strategies.
- More developed CD feature set than other solutions
- One-click deployment rollbacks
Cons
- CD specific tool
- Spinnaker requires multiple microservices and management can be time-consuming.
Resources:
Circle CI
CircleCI is an open source CI/CD tool built for integration into your version control system. CircleCI can be on-premise or cloud-hosted and you can use it for free for a limited time. It allows you all of the CI/CD features while staying away from the lock-in that you may get from alternatives.
Circle CI specializes in CI/CD leading to optimized jobs and faster builds. CircleCI can be configured to efficiently run complex pipelines with sophisticated caching, docker layer caching, resource classes for running on faster machines, and performance pricing.
Pros
- Simple integration with the provided YAML template
- Quick setup with Git Repositories
- Simplified hosted service
- Easy configuration via the Circle.yml file
Cons
- Exiting cloud tooling can cover most of the same use cases
- Complex configurations can be challenging with the Circle.yml file
Resources:
GitLab
GitLab touts itself as the all-in-one DevOps platform, and for good reason. GitLab has several different solutions available to the paying user. While their code is open source in the community edition, there are many extra features and support that you will need to pay for to get the most out of their tools. GitLab offers on-premises and cloud solutions, and their core CI/CD solutions are what sets it above the rest.
Pros
- Pipeline and CI setup using existing industry standards
- Source control for any cloud
- Declarative GitLab runners configured through YAML file
- GitLab Runners can be configured for continuous delivery and continuous deployment
Cons
- Open source is lacking all the top features
- It can be quite technical and challenging for people to learn
Resources:
What’s Next?
Adopting and implementing CI/CD tools and methodologies will limit unintended consequences and make code changes simpler and quicker. The automated pipelines create quick notifications and observability for your developers. Along with code and unit tests, CI/CD pipelines allow you to detect problems earlier. This presents you with a great opportunity to implement other tests into your workflows.
Your automated workflows create an excellent opportunity to shift your security left. By embedding security checks into your CI/CD pipelines, you will catch security incidents, such as high-severity vulnerabilities, before they are pushed into production environments where fixing them becomes exponentially more expensive. Known as DevSecOps, this approach also helps to build a more collaborative, trusting relationship between DevOps and Security teams.
Categories
Kubernetes, deployments, ci/cd, devops, devsecops, Red Hat Advanced Cluster Security for Kubernetes