What is our primary use case?
It's a mobile phone application with a website written in Angular 8. It's a strategic microservices solution. There are a lot of containers and resources. The application is written in Java, and we are using Spring Boot, the second version. We are also using the application-gateway of Azure.
If you want to do the microservices strategy, you need to split the services to the smaller work. There must be containers in Docker. There are not that many good solutions for Docker. So right now, if you need to use Docker, you choose Kubernetes because they are number one for the container orchestration solution.
What is most valuable?
The auto-repair function in Kubernetes is perfect. When something breaks, the auto-repair function automatically repairs it. If you are running the content in Kubernetes, you have a good setup. You do not need to do anything for the management of this. So, the automation of Kubernetes is number one.
What needs improvement?
The Kubernetes dashboard can be improved. It is currently a mess. We were using Rancher earlier, and everyone was happy with the dashboard. Right now, we are using Kubernetes, and it's not working with Microsoft workstations. Aks is using mcr.microsoft.com/oss/kubernetes/dashboard:v2.0.0-rc7 for dashboard. It has problems with auth. It constantly deletes tokens in kube/config file. And auth with kube/config file is not working on mac. It does not work on chrome in windows 10. It is still laggy and slow. Auto refresh function is not working correctly and you need to refresh your browser. Older versions have similar problems. There is no restart function such as in rancher. There is no possible to restart or scale more deployments at the same time. You need to write script for that. Graphics design is out of date. After a while of not clicking anywhere it give you 401 and you need to login again.
For how long have I used the solution?
I have been using this solution for two to three years.
What do I think about the stability of the solution?
The stability is totally perfect because if something breaks, it gets auto-repaired. We had only one failure, but it was not the failure of Kubernetes, it was the failure of Azure machine.
What do I think about the scalability of the solution?
The scalability is great. You have scale sets, and every scale set has node tools. You have different types of refurbishing, and you have a node count. If I need more CPU or more information, I just change the node count, and everything is run in the cloud. It will automatically pull the new node to Kubernetes in the product label, and the load will run there.
I also used the downscale and upscale features. You can also automate the scaling, but I didn't try that. I would love to use that. I am using manual scaling. If I need a new installation, it takes two to ten minutes in a cluster. This can also be done by the junior admins in one click.
How are customer service and technical support?
Support is the only problem we face with this solution. I don't know which plan we have, but our software is stable. We are also a customer of a reseller, and we need to open tickets with the reseller. After that, we open a ticket in Microsoft Azure, but it takes two or three weeks to get an answer from the technical guy from Microsoft, which is terrible. It could be because we have the basic support.
Which solution did I use previously and why did I switch?
We were using Rancher 1.6 before, but it reached the end of life. Right now, the version is Rancher 2. In my opinion, I don't need to put another layer of Rancher 2 when I already have a good solution from Azure. So, I chose the Azure solution.
How was the initial setup?
The initial setup is more complex because you don't only set up Kubernetes. You also need to set up some CI/CD solution, and you need a setup to back up your workload to the Kubernetes. If you want to deploy the workload to Kubernetes and you want to do it efficiently, you need to have Helm. Helm is for catalog package for Kubernetes. So, you need to know how to work with Helm.
You need to create docket files or some DevOps scripts for deploying ability. The solution is complex. You definitely need to have an experienced DevOps person. If you have juniors in your company, they will not know how to set up the solution, which is not good. You need to have experience in tech DevOps.
For small setups, it doesn't matter. You run Kubernetes, put some containers, and you play with it. That's okay. However, if you want to run it in production with everything, it needs experienced DevOps staff. We have a team of up to 10 developers and DevOps members.
What about the implementation team?
Yes, I am a certified administrator. Deployment was very easy. I deployed the Kubernetes service alone to run some workload in Asia. There is an automation feature in this solution. You only open one page and fill some requirements, and everything goes out to the team. It was great.
I had everything scripted in the platform with code in 50 minutes, but this is only for Kubernetes, the infrastructure, and the network stuff. I had scripted everything again, but it was in the Ops script; not in the platform. I could deploy the complete workload within one hour.
What's my experience with pricing, setup cost, and licensing?
The management layer is free, which is perfect. You don't need to pay money for the management layer, but in AWS develop service, you need to pay. I think it is €75 per month for the management layer. It is free here, so you can have as many Kubernetes clusters as you need. You are paying just for the workload, that is, for the machine, CPU, memory, and everything.
Which other solutions did I evaluate?
I am still using the basic Docker Compose, which needs low care. I tried Rancher 2, but I don't have it in production. I also used Elastic Kubernetes Service (EKS), and I also tried the Google Cloud Platform.
I think Google Cloud Platform is the best one, but here in Slovakia, we don't have enough support for Google Cloud, which will become a problem. If I can choose from the integration, I think the Google integration is the best because we could get into the Google products, but here in Europe, we don't have the support for Google Cloud Platform.
What other advice do I have?
Kubernetes is a great product. I am currently also helping a customer with the implementation of AKS because they only have a private cloud, and they want to have a hybrid cloud. I highly recommend to use this feature, and not to install Kubernetes manually or use some third-party tools. The Azure community service is better implemented than AWS community service.
They are not good at planning the upgrades for Kubernetes. So, you really need to constantly upgrade the cost. The upgrade is automatic, but Azure changed the integration of load balancing, and I was forced to re-deploy all costs, which costed my company. We need two clusters at the same time from every environment. So, this was not good. I contacted the support, but there was no way to change the integration of the load balancer. I hope this will never happen again in the future.
I would rate Kubernetes an eight out of ten. The dashboard and support could be better.
Which deployment model are you using for this solution?