Anytime and every time I would be always in favor of opting a managed service from the cloud provider (PaaS => Platform as a Service) rather then me doing a baby sitting of servers and managing hardware on my own (IaaS => Infrastructure as a Service). Recently I was asked why I prefer Azure Kubernetes Service rather than any other cloud competitor for that matter not even Google cloud, who are actually inventor of Kubernetes. Before you read further, just a disclaimer from me that this blog post is not about ranting other cloud service providers who provides managed K8’s service. I’ve worked with most of them and I personally was more satisfied with AKS. There can be always be a difference of opinion.
Why Managed Service
Kubernetes is a great platform to manage your containers environment.You can do this yourselves and manually install Kubernetes master node and a bunch of Kubernetes worker nodes. If you’re deploying this in production, then you also must take care of its high availability, patching, maintaining, adding more nodes if your application requires more compute resources. Doing a deployment of a Kubernetes cluster manually and then making sure that it’s highly available, well, that’s a lot of work. All we want is to take advantage of the amazing Kubernetes platform without going to the unnecessary underlying plumbing to get Kubernetes up and running.
Azure Kubernetes Service (AKS)
Microsoft Azure offers Azure Kubernetes Service that simplifies deployment, management, and operations of Kubernetes. It eliminates the burden of ongoing operations and maintenance by provisioning, upgrading, and scaling resources on demand without taking your applications offline. In other words, just like as Azure App Services abstracts you from the underlying virtual machines used to host your web or API apps, AKS abstracts the complex infrastructure of a Kubernetes cluster using Azure virtual machines as Kubernetes worker nodes. Note that you don’t have to babysit or take care of. In fact, so good is AKS that you don’t even see or have to worry about the master node. That is completely managed by Azure. Trust me, this is indeed a winner. Because if you ever speak to a system administrator whose job is to maintain the high availability of the Kubernetes master node, he will cringe on how daunting that entire process can be. By using AKS, you can take advantage of the enterprise-grade features of Microsoft Azure while still maintaining the application portability through Kubernetes and through Docker. AKS reduces the complexity and operational overhead of managing a Kubernetes cluster by offloading much of the responsibility to Microsoft. As a hosted Kubernetes service, Azure handles the critical tasks such as health monitoring and maintenance for you. In addition, you only pay for the agent nodes within your clusters, not for the masters. Now how cool is that? The goal of Azure Kubernetes Service is to provide a container hosting environment by using open-source tools and technologies that are popular among customers today. With AKS, you can use familiar tools like kubectl to manage and interact with your Kubernetes environment. In fact, you don’t even have to install kubectl. If you use the Azure Cloud Shell, then kubectl is a part of that. Let’s take a look at the key benefits that Azure Kubernetes Service offers. With AKS, you get automated Kubernetes version upgrades and patching, so you don’t have to worry about upgrading to a new version of Kubernetes once it’s released. Microsoft takes care of performing version upgrades and patching so that you can concentrate on your applications and not on the infrastructure. Easy cluster scaling. Do you want to scale your cluster from 1 to 10 worker nodes? Well, that’s easy as a pie with AKS. You can use the Azure CLI or the SDKs to make a simple API call, and, boom, your cluster gets scaled. Self-healing hosted control plane, or masters. As I said earlier, you don’t even see the master nodes, so one less thing to worry about. Cost savings. You only have to pay for the running agent pool nodes. Azure Kubernetes Service, you get the benefits of a managed Kubernetes platform plus the entire portfolio of Azure service offerings. Microsoft has its own microservices orchestration tool call Service Fabric. And also Azure Container Instance (ACI) for containers based deployments.Next, Azure Container Registry. For containers, we obviously need a storage layer to house our Docker images. Well, that’s where Azure Container Registry comes in. Azure Container Registry, or ACR, allows you to store images for all types of container deployments including DC/OS, Docker Swarm, Kubernetes, and Azure services such as the App Service, Batch, Service Fabric, and others. Your DevOps team can manage the configuration of apps isolated from the configuration of the hosting environment.Azure Container Registry, is compatible with open-source Docker Registry version 2 APIs, so you can use the same open-source Docker CLI tools you already are aware of.If you’re like me, I’m pretty sure you must be sold on Azure Kubernetes Service.