Service Mesh in Plain Words for Non-Technicals
What is Service Mesh?
Everyday we receive emails, filter them, deciding which ones to respond and which ones to skip, read them, write replies and sometimes forward them, all these tasks are time consuming to the point that the whole thing can be delegated to an admin, if you get the chance.
What if I can provide you with a system that can assign a dedicated admin to every employee, so employees can focus on the work that they are intended to do and the admin can just focus on the incoming and outgoing mails, and from time to time you can send instructions to this admin about your priorities, whom do you expect mails from, who do you want to send mails to etc.
Application components “Services” suffer from the same problem we humans suffer from and the way of handling incoming and outgoing requests takes effort from the application and takes a lot of time from the developers to write code to handle these scenarios.
Building on the analogy above, Service Mesh allows every service "small piece of the application" to be assigned a dedicated admin or a helper that can be easily configured. As long as your service is a member of the mesh, a small helper service will be running next to the original service, called "proxy", this proxy will interfere and read all incoming data and based on your, or the mesh admin, configuration. It understands what to do and as good admins do, they only deliver the messages that are intended to reach the main service for processing.
What is the benefit of Service Mesh?
Service Mesh allows the main application to focus on it's main purpose without the need to manage all other functions that the admin or the proxy can be configured to do. From an organization perspective the developers who write the program can free more of their time to work on better application features than writing basic features that can be provided when their application is part of a service mesh.
Those features provided by the mesh are used to identify users or other pieces of the applications that want to interact with the application and confirm their identity. After checking the identity it makes sure that it is eligible to interact with the application, like whether this user is eligible to read this data or not. The admin or the proxy can forward incoming requests to other applications, and if it's receiving a lot of incoming requests, it can reply that the main application is busy right now.
Being part of the mesh can guarantee you with more features that enhance your business, than just acting on the incoming requests. Being part of the mesh can give you a complete visibility to all the services interaction, incoming and outgoing. You can see graphically which service is connected to which and you can modify this connection in case undesired behaviour is happening. Also being part of the mesh, you can get more details for each incoming request and how each service has interacted with the request. Such as .. did it process it correctly?, did it fail? did it forward it to another application ? and how long each step has taken for each request?
In summary, using service mesh is like having a membership that can give you a lot of services for just accepting to be a member. You can assign a dedicated admin, receive detailed reports and dashboards based on the need and you will end up with ease of mind and more time to focus on what you should do, knowing that the rest is taken care of.