The New GitOps Extension on AKS and Azure Arc Enables Trusted Delivery and Control
GitOps is now an extension to Microsoft Azure Kubernetes Service (AKS) and Azure Arc-enabled Kubernetes to govern and control hybrid and multi-cloud environments. Learn more about the latest integration with Microsoft in this blog.
Azure Kubernetes Service (AKS) and Azure Arc-enabled Kubernetes for Hybrid and Multicloud Environments
When it comes to enterprise platforms, Microsoft has a long history of providing solutions to the complex environment of the global and fast changing enterprise landscape. Azure Kubernetes Service (AKS), with its tight integration with Azure Active Directory (Azure AD) and Azure Policy, is a managed Kubernetes offering focused on satisfying those needs.
However, as customers started to look to deploy workloads outside of the Azure Cloud, Microsoft was confronted with the challenge of extending the features of its managed Kubernetes offering to Kubernetes clusters running everywhere, from other public clouds, to private clouds, bare metal and the edge.
This is how Azure Arc enabled Kubernetes came to be, a managed service with which you can attach and operate Kubernetes clusters running anywhere using Azure tooling and integrated with the Azure Arc environment.
Regardless of the where the Azure Arc enabled clusters are running, operators are able to see them as resources in the Azure portal, assign tags to them the same way one would any other Azure resources, apply policy using Azure Policy for Kubernetes and monitor workloads using Azure Monitor for containers, among others capabilities made available by this remarkable service.
But What About Application Deployment and Configuration Management?
As the architecture becomes hybrid and the number of clusters grows, finding ways to effectively manage and operate cluster configuration, as well as the applications that are being deployed onto those clusters, becomes a critical necessity.
GitOps has proven itself as the optimal operating model for consistently managing configuration and application delivery to Kubernetes at scale It comes as no surprise that Microsoft would look for Weaveworks help in integrating revolutionary GitOps capabilities into AKS and Arc Enabled Kubernetes clusters using Weave GitOps Flux v2, a secure and reliable toolkit for managing and deploying declarative configuration to your clusters, that strictly adheres to the OpenGitOps principles.
Through our collaboration, Microsoft was able to provide managed GitOps Capabilities using Weave GitOps Flux v2, while providing a user experience consistent with the Azure cloud, and using Azure native tooling, such as the Azure Portal and the az CLI.
Removing Complexity and Guaranteeing Reliability
A key benefit of GitOps is abstracting away complexity. The use of declarative configuration and agent driven deployment processes enables teams to describe at scale without the effort of managing the “actions'' required to reach a desired state on their own. This abstraction is particularly relevant in hybrid environments, where differences in the underlying cluster provider exist, for example with networking or storage, that can introduce varying sets of actions for clusters to reach a common state.
Integrating GitOps as a managed offering is an additional step in abstracting complexity away! GitOps in the form of Flux v2 (the foundation for Weave GitOps) is now integrated with AKS and Arc enabled Kubernetes. It is available as an addon that will be installed and managed by Azure, eliminating the need to manage the lifecycle of the GitOps tool itself.
Not only does GitOps abstract complexity but it also ensures that all environments are consistent. This means every cluster provides the same developer experience, and it’s easy to deploy an application into multiple clusters. Using the guarantee of consistency through the principle of continuous reconciliation is a critical principle if operating complex, hybrid architectures at scale.
The Journey to Integration
The process of integrating GitOps (Flux v2) into AKS and Arc Managed Kubernetes was a phenomenal exercise in collaboration between Microsoft and Weaveworks, with a joint goal of providing a robust, secure and user-friendly solution to a complex problem.
It became clear that new high level concepts would have to be defined, in order to enable the streamlined workflow that Microsoft envisioned for its managed GitOps service. One that would fully automate the installation and management of GitOps into any cluster.
To do this we created the Flux Configuration Resource, an Azure high level abstraction that integrates sources (whether Git repos, object containers or Helm Repositories) and workloads (both Helm releases as well as Kustomizations) into a single object that can be created and in turn produce the various underlying Flux CRs.
Another great advantage for the user is that the Flux installation and configuration will be handled automatically through the installation of Flux v2 into the cluster and enabling the Kubernetes configuration add-on.
Creating these resources is simple, using the familiar az CLI. There is no need to install the flux CLI to be able to operate Flux Configurations in your AKS or Arc Managed Kubernetes Cluster, it is all done through the official Azure tooling.
And naturally, no integration would be complete without proper visibility into these resources across your various clusters. The Azure team did a phenomenal job in enabling visibility into Flux Configurations from the familiar Azure Portal.
Managed GitOps in an Azure Native ecosystem
The options are endless when you consider the combination of managed GitOps in an Azure native ecosystem. Teams can now continuously deliver compliance through GitOps deployed Azure Policy Add-On. And advanced CI/CD workflows can be enabled using Azure DevOps and Managed Flux together.
Aside from the obvious technical advantages for DevOps teams, Microsoft and Weaveworks committed to support the growth and evolution of GitOps in the Azure landscape. GitOps is the key to secure, accelerated delivery at scale for the ever-increasing complexity of today’s enterprise.
If you want to find out more about the integration, please consult the Microsoft docs or read the Azure TechCommunity Blog.