0

After reviewing and experimenting with service mesh offerings, isn't Service Mesh a monolithic (ironic) solution for a microservice universe?

Nathan Aw
  • 545
  • 5
  • 18
  • 2
    The point of service meshes is proxy servers in front of each service; handling common tasks. Proxies should be responsible for finding/load-balancing peers, encrypting between them, handling authentication/authorization. An edge proxy should be responsible for making it all look like one big web site to the clients. (i work on one such service mesh 'greymatter', which is built on top of Envoy). – Rob Feb 05 '20 at 02:12

2 Answers2

4

Actually, I think they are a logical side effect of a microservice universe. One of the largest drivers for moving to microservice architectures is to separate concerns such that individual services implement very specific functionality very well.

For example, a translation service should take input text in one language and convert it to output text in another language. The team writing that service should consist of generalized developers and specialized linguists. Yet, in many cases we force the developers of this business logic to concern themselves with other things (e.g., transport layer security, access control, metrics collection, announcement and discovery).

The point of a service mesh it to treat the networking of microservices as almost another microservice. It's a specialized concern that, when treated that way, allows others to focus on doing what generates revenue or solves problems.

There is a reason much of the push on microservices is coming out of companies and organizations who are pretty deep in the microservice universe at very high scale. It should also be noted that most service mesh control planes are implemented via microservices, not monoliths.

0

For some aspects yes, they are. Service mesh clients usually run on containers which handle (possibly) authN, authZ, aggregate logging and load balancing.

On the other side, when we move out from a monolith, we should theoretically duplicate all the business logic and authorization mechanisms. This would introduce replication and increase the maintenance effort.

Service mesh are useful because they extract these concerns out from the dev team.

jackops
  • 776
  • 5
  • 15