Kuma : Service Mesh | Understanding and getting started ๐Ÿš€

Kuma : Service Mesh | Understanding and getting started ๐Ÿš€

ยท

3 min read

Basic Know Before Getting Started -

(Note: You can skip directly to the Kuma part if the basics are clear)

  • Monolithic Application

  • Microservices

Monolithic Applications :

In simpler terms, It is an application that is packed inside a box along with its dependencies. That's it! Understand it more with its advantages and disadvantages.

Advantages:

  • Simple to manage (No hesitation, everything is in front of the eyes)

  • Easy Development

  • Flexible of changes

Disadvantages:

  • Harder to scale

  • Complexity (Lots of things are together, makes it hard to keep up)

  • No fault-tolerance (If one required feature drops, everything is down ๐Ÿคฏ)

and many more.

Hence we needed something that could help us manage those modules separately (yes as a separate application!) That could help us minimize inter-dependencies of such modules that ultimately minimize downtime of your application!

Microservices:

In simpler terms, Consider Modules, which are required to run the main application, are running as independent applications. Thats it!

Let's understand by example!

Consider a food delivery app, from the user side it's just an interface where the user is selecting an item and placing the order. But from the production side, you know what it is ๐Ÿ˜ด. We have a backend, frontend, payment gateway, delivery-partner services and many other things.

In Microservices we just pack those things independently as an independent application. So we would have the frontend application running, the backend application running, the payment gateway application running, etc. This application does NOT require other applications to run! And That's the best part about microservices ๐Ÿ”ฅ


Before getting started -

If microservices are already there, then what are these service mesh things?

Well, All modules are running as an independent application, and how will they interact with each other? If a user place order from the frontend then the backend should know! hence the concept of service mesh comes into the picture, which allows these independent applications to interact with each other!

Kuma - Service mesh ๐Ÿป

Kuma is service mesh which is,

  • Open Sourced

  • Envoy-based (i. Envoy is just a side-car application connected with every service allowing communication between microservices)

Well if Envoy already supports communication then why service mesh?

Envoy provides communication while service mesh provides more control over this communication, such as security, monitoring this communication, routing etc. It's that easy!

Here's the difference with and without service mesh:

Terminologies before getting started:

KUMA-CP
Kuma CP is Kuma Control Plane. It's like the main head of the classroom. Responsible for managing these services to make sure everything is working and more! It controls the Data-Plane of the Kuma service mesh!
KUMA-DP
Kuma DP is a Kuma Data Plane. It's where All the communication of services are flowing.

The simple architecture of ๐Ÿป:

How to get started with Kuma?

Kuma supports multiple platforms to run. such as,

  • Kubernetes

  • Universal

To get started on both platforms you can Learn more here.

Other Service-meshes:

Just like Kuma, there are many other service meshes available:

  • Istio

  • Linkerd

  • OpenShift Service Mesh

  • AWS App Mesh, etc.

Conclusion:

Kuma ๐Ÿป is a simple, powerful and flexible service mesh that can be used to improve the performance, reliability, and security of microservices architectures. It is easy to deploy and manage, and it can be used with a variety of Kubernetes distributions.

Did you find this article valuable?

Support Mustkim Khatik by becoming a sponsor. Any amount is appreciated!

ย