What is our primary use case?
We have two primary use cases of this solution. One, we deploy microservices for our customers using the Kubernetes cluster. For example, we have deployed Kafka on Kubernetes as well as Azure functions, which uses the same Kubernetes cluster.
The other use case is for our internal usage. We only have microservices and Azure Functions, we don't have elastic or data. We do have a tight integration between Azure services and Kubernetes. The concept is called KEDA, or Kubernetes event-driven autoscaling. This means that if there are no services messaging you, Kubernetes usage will be zero. However, if there is a burst of traffic for my services, Kubernetes will create accordingly.
What is most valuable?
The most valuable feature of AKS is that when I am sitting at the cluster, I can ensure compliance. Compliance is easy right out-of-the-box with integration to Azure Security, Azure Active Directory, and Azure Policies. The entire cluster is secure by design and not added as an afterthought.
The other feature I like about AKS is that because of ransomware attacks, Microsoft has released specific guidance on threat matters. AKS is based on framework. This framework uses the proper guidance architect to tell you how the cluster should be designed.
Another valuable feature is that AKS tells you exactly what you should do with each threat. It will guide you to improve the cluster, deploy something on the cluster, operate the cluster, and when you are trying to heal the cluster. It is very actionable.
What needs improvement?
Unfortunately, when a microservice fails, Azure can take up to 60 seconds to broadcast an alert to the monitoring agents. For a lot of the microservices, this is too late, particularly for serious failures.
Microsoft would benefit by offering enhanced learning and certification. Kubernetes is now mainstream and becoming more and more integral. Creating an Azure Kubernetes certification would ensure there are specialists in the market that could adapt best practices in a more structured fashion.
For how long have I used the solution?
I have been using Azure Kubernetes Service for three years.
What do I think about the stability of the solution?
The solution is stable. In the past three years, I have never experienced any serious problems.
We have internally two people to maintain AKS and for our customers, we have multiple people. There are a couple of DevOps resources who are trained in Terraform and are Azure DevOps certified who operate the cluster.
We rely upon monitoring and alert mechanisms. Basically, we do not need to be on the server with a dedicated resource. We only need to look at the alerts, as the solution is self-healing.
What do I think about the scalability of the solution?
Scalability depends on how the architect designs the cluster. Once a Kubernetes cluster is up and running, the auto-scaling works according to the basic design. If I need a different node pool, then I need to create a design cluster. If this is done correctly, scalability by design or architecture is not an issue. It is up to the individual architects to be disciplined in considering future needs and build in flexibility.
How was the initial setup?
The initial setup of AKS is a breeze. Straight out of the box, with experience, it takes only 30 minutes. Setting up a secure cluster takes only 30 minutes. I use Terraform extensively, so it is pretty easy to set up. I would rate the initial setup a five out of five for ease of setup.
What about the implementation team?
I did the deployment of AKS myself with two other people. One from networking with an infrastructure point of view to handle the set-up of the V-Net by controlling the IP address range. The other person is the one who manages Azure Active Directory.
What was our ROI?
There is an initial infrastructure cost, however, the more services you deploy, the cost per service comes down drastically because you are leveraging the underlying infrastructure. As you scale your operations, AKS becomes more cost-effective.
What's my experience with pricing, setup cost, and licensing?
The cost of AKS is humongous, it is very expensive. You are charged based on the nodes, the networking, and the storage. Multi-clusters are another consideration, especially if you need to add firewalls.
It is important to keep in mind that the cost is not just the licensing, but also the human resource cost. Every organization should have some idea about what they should be putting into Kubernetes together with the type of people, and types of resources required to monitor, alert, and operate the solution.
Which other solutions did I evaluate?
Compared to Amazon Elastic Kubernetes Service and OpenShift, Microsoft Azure has very specific guidance on how to secure an entire cluster with multiple inputs. This is really phenomenal. This guidance is missing in the other products.
What other advice do I have?
Anyone considering AKS as a solution should be sure they consider the design carefully and give a lot of focus to the initial setup.
I also recommend that the organization is clear on what its end goal is, otherwise they will incur too many additional costs.
Lastly, keep in mind that it is difficult for the executive level to understand what Kubernetes is and that it is not the answer to everything.
Overall, I would rate Azure Kubernetes Service a seven out of ten.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Microsoft Azure
Disclosure: My company has a business relationship with this vendor other than being a customer. Gold Partners