Wednesday, March 24, 2021

Service Mesh Concept

Service Mesh Concept

Before going to understand ServiceMesh concept lets try to understand few of the concept of MicroService.
As you know in MicroService we bifurcate/divide our monolithic application into a small part so that this small unit adhere to microservice principle i.e.
https://shdhumale.wordpress.com/2018/03/08/microservice-concept/

But when we divide our application into pieces for better performance and availability, but it injects more work on the developer side.
i.e. We now need to handle following functionality on all the microservice instance which we were doing in single monolithic application
1- configuration
2- Loggin
3- Deployment
4- Circuit break
5- Retry policy
6- Security
7- Observability of all the service
8- documentation
9- Authorization
10- CORPS issues
11- API Gate way
12- Discovery server.

Maintaining above all aspect is not easy. It takes a huge time and efforts from the developer point of views.
So it is a mandate for the organization and team who wants to move to microservice architecture to adhere and accept this risk before you go for it.
So there are many possible approaches to move your monolithic application into microservice.
1- Nuclear way :- In this we completely move/transfer our monolithic application into microservice in one go. I personally believe this is not the right way to go.
2- Ice cream scoop policy :- in this we take one by one functionality from the monolithic application and transfer them in to microservice and inject it in to our application.

Now as stated above in microservice we do all the above things using concept like

1- configuration – Springboot configuration server.
2- Logging – using zipkin and sluth
4- Circuit break- Using Hystrix
5- Retry policy-
6- Security – by adding spring security and https
7- Observability of all the service – using Eureka server
8- documentation – using swagger
9- Authorization- using Oauth2 or JWT token.
11-Api gateway – Using zuul server
12- Discovery server – Using Eureka Server

But if you see above in Microservice the developer should be more concentration on writing business logic but here it seems he is more in writing the code that is needed by the network. To over come this we need service mesh concept.

Mesh :- it means group of network or we can say it is like fish net and service mesh means group or network of service.

So as shown above in microservice all other except business logic are of networking using developer time in it is not wise.
Service mesh concept is used in it. Wherein developer only concentrate on business logic and all other things are taken care by Service mesh.
Many service mesh concept implementer are available best of it is ISTIO. In coming lecture we will try to setup and implement ISTIO on our machine and will see how it implements Service mesh concept.

No comments: