Microsoft’s Practical Approach to Kubernetes Management
When it comes to cloud native technologies like containers, Kubernetes, microservices, serverless functions and API-centric design, Microsoft is taking a practical approach — leading with Azure and allowing customers to have their own way.
For instance, the cloud software and services giant recently noted that at the end of July it would deliver a version of its Azure SQL database-as-service that is empowered by the company’s Azure Arc multicloud portability service, such that the database can run on competing clouds, including Amazon Web Services and Google Cloud Platform, as well as in users’ own datacenters.
This Azure Arc-enabled Azure SQL offering will run on any Kubernetes cluster and managed from the Azure portal, the company said.
Microsoft’s strategy with containers in general, and Kubernetes specifically, “has been sober, practical and results-oriented,” said Andrew Brust, founder and CEO of Blue Badge Insights, a New York-based IT consulting firm.
Indeed, Microsoft works to enhance Kubernetes rather than compete with it, prioritizes Linux as the container deployment target of choice, and supports customers who want to pursue multi- and hybrid-cloud strategies with a minimum of complexity and fuss, Brust told The New Stack.
“Whether it be SQL Server on Linux and containers, Azure Arc, Azure Kubernetes Service (AKS) or the simpler Azure Container Instances (ACI), Microsoft has recognized containerization as the de facto industry-wide platform shift that it is,” he said.
Microsoft is intent on providing enterprises with first-class development and management services for their cloud native workloads in Azure and in their on-premises environments, edge locations and on other clouds. In that regard, the company has provided enhanced capabilities in Azure app services to run on Kubernetes and the other aforementioned environments.
Any Cloud Native Computing Foundation (CNCF) conformant Kubernetes cluster connected through Azure Arc is now a supported deployment target for Azure application services, said Gabe Monroy, vice president of Azure Developer Experience at Microsoft.
This Microsoft move, delivered in preview at Microsoft’s Build conference, is aimed at development teams that want to avoid struggling with some of the arcane Kubernetes concepts and APIs that could impact productivity.
Azure application services like App Service, Functions, Logic Apps, API Management and Event Grid can now run on Kubernetes clusters anywhere. And developers do not need to choose between the productivity of a PaaS and the control of Kubernetes, because the same application services can run with either model, Monroy said.
“Developers can save time building hybrid applications using the portable application services enabled by Azure Arc,” Monroy wrote in a blog post. “When combined with the use of Arc-enabled data services like Azure PostgreSQL and Azure SQL, applications and their data can now run anywhere using fully managed cloud services — an industry first.”
Microsoft customers in verticals such as retail, manufacturing, travel and financial services have sought a way to combine Azure application and data services and run them anywhere, Monroy said in an interview, noting that several enterprise customers have already tapped into the preview.
“We’re currently evaluating whether Azure Arc can help us bring our customer-facing workloads in industrial, research and medical [groups] to other clouds or on the edge — as customer preference or regulations require,” said Kai Walter, a distinguished technology advisor and individual contributor in the corporate IT unit at Carl Zeiss AG in Oberkochen, Germany. “As Kubernetes is the key, we’re matching Azure Arc against what it would cost us to achieve the same with custom-made infrastructure/deployment scripting on top of the K8s ecosystem.”
Jeffrey Hammond, an analyst at Forrester Research, said the Microsoft strategy with Kubernetes is just another example of the company’s pragmatism.
“First it was Linux, then Java, now K8s… any workload that spins the Azure dials seems welcome these days in Redmond,” he said. “We’re a long, long way from the ‘open source is a cancer’ days. Anyone ever still remember that besides me?”
However, this move is a bit different in that to embrace Kubernetes, Microsoft must invest in portability and in hybrid cloud.
“That’s not necessarily a bad thing, as there’s a lot of Windows running in data centers, but I’m guessing a lot of the off-Azure K8s workloads are running on Linux, so getting the dials to spin for Microsoft turns into a longer game,” Hammond said.
That “game” would revolve around Microsoft making Azure Arc the “one pane of glass” to manage all deployments, he noted. As dev teams scale Kubernetes infrastructure in a hybrid environment that quickly reaches the point where they need to decide where they need a “management center of gravity,” Microsoft would be able to provide the solution.
“For Microsoft to move up the stack in enterprise K8s, they need to grab the management workloads as they shift,” Hammond said. “As they start to manage workloads and scale them, the next goal is to make it as easy as possible for developers to use the platform/infrastructure. I think almost everyone agrees that K8s is currently not at a high enough level of abstraction for most enterprise developers. They want to write code to solve business problems not spent hours mucking around with YAML to configure control, networking and data planes. That’s where App Service, Azure Functions and things like Dapr come in. Microsoft is slowly rolling out a more abstract programming model on top of K8s. You could call it a new wave of K8s-based PaaS — but I won’t, yet.”
However, Hammond continued, explaining that he believes if Microsoft gets a foothold in Kubernetes management and the development, then the company can focus on making it as easy and inexpensive to deploy on AKS or other Azure services as possible.
“This is where they have shone in the past, making the development and deployment experiences as simple as possible — DLL hell notwithstanding,” he said. “Done correctly, the long-term play becomes ‘give me a credible/cost reason to not just deploy to AKS’ for shops.”
Components of the Azure application services portfolio include Azure App Service, which is a platform for building and managing web apps and APIs, Azure Functions for event-driven programming, and Azure Logic Apps to create automated workflows for integrating apps, data, services, and backend systems with a library of more than 400 connectors. In addition, there is Azure Event Grid, which simplifies event-based applications with a single service for managing routing of events from any source to any destination, and Azure API Management to deliver a unified management experience and observability across all internal and external APIs, Monroy said.
“We want to make it super easy for every developer to publish apps anywhere using Azure Arc and our application services,” said Jeff Hollan, director of product management for the Azure Application Platform, as he demonstrated how to build a React-based web app and serve it from a Kubernetes cluster using Azure Arc and the Azure app services.
“We’ve made it simple for developers,” Monroy told The New Stack. “When they go to target a region, to select the region from the region drop down, they can actually target a Kubernetes cluster instead of a normal cloud region like ‘West U.S.’ Instead of West U.S., they can target, you know, my Kubernetes cluster. And other than that, the experience for the developer is identical to the experience that they would get normally using a public Azure region.”