Argo is perhaps the most popular continuous delivery open-source project in the Cloud Native Computing Foundation (CNCF) landscape. Recently Argo has reached the Graduation stage of the CNCF project lifecycle. Graduation is the highest level of maturity attained when open-source software has fewer critical vulnerabilities and is fit for production usage directly. The graduation label also highlights that the Argo project has been adopted by a few hundred organizations and has a healthy rate of contributions from multiple organizations. You can find out all the best practices an open-source software has to follow to be graduated here.
This article will explain why any DevOps or platform engineering team should consider Argo CD in 2023.
Argo: Kubernetes Native Software Delivery using GitOps style
Enterprises have been adopting Kubernetes in droves, but one of the key challenges has been deploying and updating applications seamlessly. As microservices architecture becomes the norm, applications need constant updates to support continuous innovation. The ability to release code safely and predictably is critical.
Argo meets these needs with four Kubernetes-native sub-projects: Argo Workflows, Argo Events, Argo CD, and Argo Rollouts. Argo CD, an essential product of the Argo project, helps developers to deploy their applications into Kubernetes with GitOps-style. Argo Rollouts is used for sophisticated out-of-the-box progressive deployments to reduce the blast radius of new releases. Argo Workflows allows enterprises to define complex parallel workflows for complete CI/CD orchestration along with Argo Events.
Let us discuss the most powerful open-source product for GitOps-style deployment- Argo CD.
Overcoming challenges of CI/CD pipeline with Argo GitOps
CI/CD pipelines using tools like Jenkins and Spinnaker are suitable for serializing the broken software delivery process. With pipelines, organizations increase the pace of development and deployment process. But there was one drawback in the CI/CD pipelines- any changes to an application’s configurations still had to be handled manually across Kubernetes clusters and all environments. The DevOps team and developers would apply the changes to each Kubeconfig file for each cluster by manually calling pipelines. There are mechanisms where triggers can be written to initiate a pipeline automatically using webhooks, but there are a lot of configurations a DevOps engineer has to do.
And this problem can be overcome by using GitOps methodology and Argo CD software. Argo CD is a declarative tool to deploy the application into Kubernetes using GitOps style; the DevOps team can easily create and manage Kubernetes clusters. If any changes are made to any K8s configuration (any manifest files) in Git, Argo CD will notify users to sync (refer Fig A) with the desired state.
Benefits realized by Argo CD are:
- Automated deployments of apps to different clusters from Git- a single source of truth
- Changes to any YAML files, such as Deployment, Configmap, Secret, Service, and Istio, are noticed by Argo CD immediately and can be synced quickly.
- If there is a drift in the configuration of production systems, Argo recognizes the changes and brings it back to the desired state as defined in Git.
- Application migration from one cluster to another cluster can happen quickly by changing the target cluster from the Argo UI.
- Instead of creating pipelines to deploy configurations and manually running them, the DevOps team can make changes in Git, and Argo will automatically take care of it. This process is beneficial for situations where the number of pod replicas has to be increased or decreased.
Features of Argo CD you cannot miss
A few features make Argo CD a very competitive product in the continuous delivery landscape. Although its deployment capabilities are limited to Kubernetes, it is a trendy choice among developers and DevOps teams. The list below is some of the features provided by Argo.
- Automatic deployment: One can use Argo CD to automate the application deployment into Kubernetes. Using Argo CD, developers can deploy their apps into multiple Kubernetes clusters hosted on a public or private cloud.
- GitOps style deployment: This is perhaps the best feature of Argo CD; DevOps engineers can use Git to declare a desired state of an application or any infrastructure resources, and Argo CD will automatically synchronize the target application configuration with the currently declared state.
- Deployment strategies: In case of deployment failures in production, SREs or DevOps team can quickly roll back an application to its previous versions in Git. One can implement deployment strategies such as Canary and Blue-Green with Argo CD and Argo Rollouts.
- SSO authentication: Argo CD provides built-in integrations for SSO providers such as OIDC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, Microsoft, and LinkedIn. The ops team can provide developers access to Argo CD quickly.
- RBAC and multitenancy: Since app deployments can directly impact the end-users, it is crucial to allow the least privileges to various users based on the requirements. Argo CD provides role-based access controls (RBAC) to authorize teams to specific Argo services and Kubernetes clusters. E.g., the developers can have access to the dev cluster for deploying their code while the project manager can access reporting and deployment dashboards.
- Open Source Community Support: Argo CD provides out-of-the-box adapters for source code management software such as GitLab, GitHub, and BitBucket. It also supports config management and templating tools such as plain YAML, Helm charts, Jsonnet, and Kustomize. The large and growing open-source community of Argo is already making faster progress in supporting more tools in the CI/CD process for faster adoption of Argo CD.
Argo adoption is on rise.
Since Argo is a lightweight software for GitOps deployment, it is one of the fastest-adopted open-source products built for cloud-native applications. Currently, Argo is actively used by over 350 organizations – a 250% increase since joining the CNCF Incubator in 2020 – including Adobe, Blackrock, Capital One, Google, Intuit, PagerDuty, Peloton, Snyk, Swisscom, Tesla, and Volvo. The chart below from a recent survey conducted by OpsMx shows the adoption of the Argo sub-projects, with Argo CD being the most popular.
Getting started with GitOps using Argo in 2023
With a lot of potential and value to offer for cloud native applications, the Argo project is getting adopted faster. If you are a platform engineer or DevOps engineer, and want to transform your software delivery with GitOps methodology, then you can start with installing and implementing Argo CD using HELM charts. For any help for product-grade implementation you can reach out to the community or Argo 24*7 support lines for free.
Founded with the vision of “delivering software without human intervention,” OpsMx enables customers to transform and automate their software delivery processes. OpsMx builds on open-source Spinnaker and Argo with services and software that helps DevOps teams SHIP BETTER SOFTWARE FASTER.