February 13, 2019 | Written by: Zvi Cahana and Alexey Roytman
Categorized: DevOps | How-tos
Share this post:
GitOps and multicloud may be two of the trendiest cloud-native technologies (or buzzwords) for 2019. But, did you know that you can combine the two concepts? You can now use IBM Multicloud Manager 3.1.2 with Argo CD as a technical preview to achieve declarative and automated deployment of applications to multiple Kubernetes clusters.
What is GitOps?
The term GitOps was coined by Weaveworks at 2017 (although the concept has started to emerge a bit earlier), borrowing and combining elements from continuous delivery, infrastructure as code, and Kubernetes’ natural affinity for declarative infrastructure. At its core, GitOps refers to a set of practices and tooling that puts Git at the center of the DevOps toolchain and makes it the source of truth for what should be deployed on the cluster. With GitOps, developers and operators use familiar Git workflows to define, review, approve, and audit changes to their infrastructure and applications, whereas automated tools take care of synchronizing the live state of their cluster with the desired state described in Git.
What is Argo CD?
Argo CD is a GitOps-style continuous delivery tool for Kubernetes and is part of the larger Argo family of open source projects, primarily supported by Intuit. Despite being only recently launched, Argo CD is arguably one of the best open-source GitOps tools to date due to its extensive feature-set, stability, robust and scalable implementation, effective documentation, and open and active community.
These are some notable features of Argo CD, and many of these are unique among GitOps tools:
- Multiple Git repositories and cluster destinations
- Multiple manifests template formats (e.g., Helm, Ksonnet, Kustomize) or plain YAML manifests
- Git branch tracking or tag/commit pinning
- Automated or manual synchronization
- Pruning of deleted resources
- Declarative management of its own configuration
- Continuous monitoring of deployed applications
- Audit trail and history for application events and API calls
- Health assessment statuses on all components of the application
- Web console, CLI, and gRPC/REST API
- SSO Integration (OIDC, LDAP, SAML 2.0, and others)
- Role-based access control
- Webhook integration (GitHub, GitLab, BitBucket)
- PreSync, Sync, PostSync hooks for complex application rollouts (e.g., canary upgrades, blue/green)
Combining Argo CD with IBM Multicloud Manager
IBM Multicloud Manager is a recently launched product from IBM, offering three primary value-adds for organizations running a multicloud strategy:
- Visibility across clouds
- Automated application deployment across clouds
- Compliance policies management and enforcement across clouds
IBM Multicloud Manager’s management components run on top of an IBM Cloud Private Kubernetes cluster (dubbed the hub-cluster) which manages and controls a fleet of managed-clusters running the IBM Multicloud Manager Klusterlet agent. Developers and operators can then interact with the hub-cluster to create template resources that describe applications and compliance policies to be deployed and enforced in the managed-clusters. While the Klusterlet agent works best with IBM Cloud Private clusters, it can also be installed in the following public cloud Kubernetes platforms:
IBM Multicloud Manager 3.1.2 bundles Argo CD as a technology preview feature. Argo CD’s GitOps capabilities complement IBM Multicloud Manager’s automated deployment and enforcement capabilities by allowing users to manage their applications and compliance configuration resources in a centralized Git repository and achieve end-to-end automated deployment and enforcement from their Git repository, down to the last of their managed clusters.
See Argo CD documentation and IBM Multicloud Manager Knowledge Center to learn more about these two products.
You’ll want to check out our follow-up blog post, where we’ll go in-depth with a hands-on example on how to apply GitOps practices and deploy a multicloud application using IBM Multicloud Manager 3.1.2 and Argo CD.