DEV Community

Yoshio Terada for Microsoft Azure

Posted on

Please don't move from Monolithic Application to Monolithic Kubernetes Cluster?

This is my proposal message from experience.

I recommend you to not create the huge size of node on one Kubernetes Cluster.

According to the following document, If you use the Azure Kubernetes Service(AKS), the number of max node is 100.
Quotas, virtual machine size restrictions, and region availability in Azure Kubernetes Service (AKS)

However, I don't recommend you to create the cluster with max node size.
Because it is same as creating a new Monolith in Container Environment(Kubernetes) again.

As you can imagine, if you created it, you may face the following issue.

  1. Increase in Impact
    If you created 150 microservices on 100 nodes and there are system failures or other performance impacts, all 150 services may be affected.
    The scope of this impact compared to a monolithic application(10-20 services) is a much worse situation with a monolithic kubernetes cluster(150 services).

  2. Increased time to upgrade
    There is a kubernetes release every 3-4 months.
    And AKS(Kubernetes) has an end of life policy that requires updating or reinstalling the kubernetes cluster approximately every 1 or 2 year at minimum.
    Exam: Azure Kubernetes Service: Kubernetes 1.9 end-of-life notice
    In order to update or create the new Kubernetes Cluster very quickly, the number of node size is very important.For example, if you created 100 nodes of cluster, it will take a long time than 30 nodes create.

  3. Difficult to maintain
    I would recommend you to create very simple structure and configuration (simple is the Best!!).
    If you created the simple structure and configuration, it is easy for you to create the same environment.However if you created the complex structure, sometimes it may be difficult to create the same environment even though you created the Infrastructure as Code.
    I recommend that you should be easy to create or destroy the environment at any time.

Finaly
I recommend you to create the Kubernetes Cluster for Mini Service level like 20-30 node. However, in fact, sizing depends on your system. For example, you need create a chunk of relevant microservices and deploy it to the the cluster.

Top comments (0)