Argo CD is an open-source Continuous Deployment solution that provides Kubernetes-first support. It follows Git-based workflows to automate the deployment of services within Kubernetes. As a Kubernetes controller, it ensures your resources’ current state matches the desired or specified target state of your resources. It can be found on GitHub under argoproj.
Argo CD leverages what’s called the Argo GitOps Engine, an open-source library that implements core GitOps features, allowing you to manage, automate, audit, and understand your deployment lifecycle. In a past post, we discussed the origins and features of Argo CD, providing an in-depth and competitive look at its capabilities. This blog post will present some Argo CD alternatives to consider in your Continuous Delivery (CD) search.
What is GitOps and Why Does It Matter in Continuous Delivery?
Of all the practices and ways of working, GitOps has gained much adoption and traction for organizations implementing Continuous Delivery. GitOps leverages a Git repository that contains declarative descriptions of infrastructure to manage and define production environments in an automated fashion. In this model, the Git repository is the “single source of truth.”
If you want to deploy a new application or update an existing one, you only need to update the repository – the automated process handles everything else. This is beneficial because it allows teams to deploy faster, more often, recover from errors, manage credentials, and track deployments.
If you’d like to learn more about GitOps, I recommend gitops.tech.
Our Evaluation Methodology
We evaluated these tools based on the many capabilities and features of importance to organizations considering CD tools. With this in mind, we’re considering the following criteria:
- Kubernetes-Native, Out-of-the-Box Support
- GitOps Capabilities & Support
Continuous Delivery Alternatives
The GitOps Alternative: Flux
Flux, like Argo CD, is also an open-source Continuous Deployment tool that supports GitOps within Kubernetes. While plans in 2019 meant that the Flux project would integrate with the Argo GitOps Engine, the latest version of Flux uses what’s called the GitOps Toolkit, “to better serve their vision of GitOps.” The Flux project defines GitOps with the following descriptions:
- You declaratively describe the entire desired state of your system in Git. This includes the apps, config, dashboards, monitoring, and everything else.
- What can be described can be automated. Use YAML to enforce conformance of the system. You don’t need to run kubectl, all changes go through Git. Use diff tools to detect divergence between observed and desired state and get notifications.
- You push code, not containers. Everything is controlled through pull requests. There is no learning curve for new devs, they just use your standard Git PR process. The history in Git allows you to recover from any snapshot as you have a sequence of transactions. It is much more transparent to make operational changes by pull request, e.g. fix a production issue via a pull request instead of making changes to the running system.
The Flux project in its entirety is a Cloud Native Computing Foundation (CNCF) incubating project offering an open and extensible delivery solution for Kubernetes. Learn more about Flux.
The Open-Source CD Platform Alternative: Jenkins X
Jenkins X is a CI/CD platform for Kubernetes and cloud-native developers. It is an open-source solution that supports on-premise, self-managed installation. The ecosystem provides over a thousand plugins that allow you to integrate and extend your Jenkins X instance. Jenkins X provides support for your deployment and security needs.
It provides support for GitOps and configuration as code. Through its CLI tool, jq, you can use Jenkins X to manage your Kubernetes deployments. Using custom and scripted pipeline templates, you can control how you want to trigger your deployment pipelines. You also get full support for role-based access control, allowing you to define user groups and control access to specific CI/CD resources.
Jenkins X also has integrations with Slack and HipChat for deployment auto-ticketing, approvals, and notifications. Audit trails keep a catalog of all user events and support for custom secrets management for the sensitive data within your CI/CD pipelines.
Lastly, Jenkins X is free to try and use.
The “GitOps, But More” Alternative: GitLab CI/CD
GitLab is a DevOps platform providing solutions from development planning and source code management to CI/CD and monitoring.
If you are considering GitOps capabilities and support, the GitLab Kubernetes agent uses the Argo GitOps Engine to provide additional workflows for managing your Kubernetes deployments. Therefore, it shares and wraps up GitOps capabilities that belong to Argo CD. If you agree or are already familiar with how Argo CD works and democratizes GitOps, this could be a great option for implementing a complete deployment experience.
GitLab, like many other CI solutions such as Jenkins, can be extended with scripting to provide CD capabilities. For example, GitLab users implement Blue/Green or Canary deployment release strategies by defining scripts to manipulate traffic to their target environments.
Change management approvals and auto-ticketing are also available through the native GitLab platform, allowing you to have an all-in-one platform for your software delivery. GitLab ecosystem revolves around replacing and unifying all DevOps tools into their single end-to-end platform. Therefore, GitLab today does not provide third-party integration with Atlassian Jira or ServiceNow.
GitLab also excels in the following areas:
- Source Code Management: allow engineers to version control their source code.
- Continuous Integration: allow engineers to take code to artifact (build and test) through cloud-native CI.
- Application Security Testing (AST): allow engineers to scan for vulnerabilities.
- Issue Tracking & Planning: allow engineers to document and track tasks and requirements.
Lastly, GitLab supports both self-managed and SaaS models, with premium and ultimate plans billed per user. See their pricing for more details.
The All-in-One Alternative: Harness CD
Harness is a software delivery platform. Harness CD allows engineers to deploy on-demand and into production using a UI pipeline builder. Alternatively, users can also include their scripts within their pipelines and leverage Harness’ out-of-the-box support for popular third-party secret management (tools like HashiCorp Vault, CyberArk, and AWS KMS), deployment verification (tools like New Relic, DataDog, Splunk, Prometheus, etc), and ticketing solutions (tools like Jira and ServiceNow).
Harness also has extensive GitOps capabilities so teams can reference one or more Git repositories and branches. Full bidirectional sync exists with conflict resolution, alongside diff visualization for engineers to track changes. Harness also has the ability to trigger pipelines based on Git events like ‘on commit’ and ‘new artifact version’ detected in the repository or custom webhooks. Finally, it supports cloud-native and traditional workloads involving containers, Helm, Kubernetes, ECS, Serverless, and web server stacks like WebLogic or WebSphere.
The key strengths that differentiate Harness from other solutions include:
- Ease of use,
- AI/ML intelligence,
- A single platform for software delivery that includes CI/CD, cloud cost management, and feature flags.
Lastly, Harness supports both self-managed and SaaS models, with plans billed per service instance. See the pricing for more details.
Evaluate Harness With the Top DevOps Tools
This blog post shared some alternatives to Argo CD and included open source, Kubernetes-native, and GitOps-capable options. If you’d like more in-depth comparisons between solutions like Harness and other CI/CD providers, take a look at our DevOps Comparison Tools pages.