Healthcare Technology Featured Article

January 25, 2023

Service Mesh in the Health Industry: What You Should Know




What Is a Service Mesh?

A service mesh introduces an infrastructure layer that provides observability, reliability, and security features. It is usually implemented as scalable network proxies deployed alongside the application code, a pattern often called a sidecar. These proxies are responsible for the following:

  • Handling the communication between microservices.
  • Acting as a point for introducing service mesh features.

Service mesh proxies comprise the data plane and are controlled by the mesh’s control plane.

A service mesh solves key pain points in managing cloud native applications. These applications often consist of hundreds of services, each running thousands of instances. These instances are dynamically scheduled by an orchestrator like Kubernetes, meaning each instance can be in a constantly-changing state.

Service-to-service communication in cloud native applications is incredibly complex, but it’s also a fundamental part of the application’s runtime behavior. Properly managing it ensures end-to-end performance, security, and reliability. Service meshes help achieve this objective.

Service mesh including both open source projects, such as Istio and Linkerd, and cloud-hosted services from AWS, Azure and Google.

Why Is Service Mesh Important in the Health Industry?

A service mesh is a networking layer that helps manage communication between microservices. In the healthcare industry, where there are often many different microservices working together to provide patient care, a service mesh can be particularly useful for managing the complexity of these interactions.

One benefit of using a service mesh in the healthcare industry is that it can help ensure the reliability and availability of critical systems. For example, if one microservice goes down, the service mesh can route traffic to a different instance of that microservice, helping to minimize disruption to patient care. This is especially important in the healthcare industry, where even a short disruption in service can have serious consequences.

In addition to improving reliability, a service mesh can also help with security in the healthcare industry. It can be used to enforce policies that control how microservices communicate with each other, helping to prevent unauthorized access to sensitive patient data. This is especially important given the strict regulations that the healthcare industry must adhere to when it comes to protecting patient privacy.

Another way that a service mesh can improve security is by implementing it on top of a container orchestration platform like Kubernetes. When used together, a service mesh can provide Kubernetes security benefits, for example by providing detailed visibility into the communication between microservices. This can be useful for identifying potential security vulnerabilities and for debugging issues that may arise.

A service mesh can also help with observability in a healthcare setting. It can provide detailed visibility into the communication between microservices, which can be helpful for debugging issues and identifying potential problems before they impact patient care. This can be especially useful in a complex healthcare environment where there may be many different microservices interacting with each other.

How a Service Mesh Works

A service mesh consists of various services and proxies that run as sidecars, a data plane, and a control plane. Requests to or from a service must pass through two proxies within the service mesh—the proxy designated for the calling service and the one designated for the receiving service.

The service mesh architecture abstracts any function unrelated to the business logic from services and service developers by assigning these responsibilities to the control planes. The data plane is responsible for managing proxies and services, and the control plane is responsible for providing policy and configuration to the data plane.

Here are the main areas of responsibilities of the control plane:

  • Service registry: Maintain a list of available services and endpoints, making it accessible to proxies. Compiling this registry requires querying an underlying infrastructure scheduling system, such as Kubernetes, to receive a list of currently available services.
  • Sidecar proxy configuration: The control plane provides proxies with policies and mesh-wide configurations required to perform their functions appropriately.

Here are the main functions the service mesh control plane enables the proxies to perform:

  • Service discovery: An instance that attempts to interact with a different service must find (discover) a healthy and available instance. The instance achieves this by performing a DNS lookup.
  • Load balancing: Unlike orchestration frameworks that provide Layer 4 load balancing, a service mesh provides Layer 7 load balancing. It employs richer algorithms and provides more advanced traffic management. It also allows modifying load balancing parameters via API to orchestrate canary or blue-green deployments.
  • Authentication and authorization: A service mesh can authorize and authenticate requests from within the application and externally. It sends only verified requests to instances.
  • Observability: Service meshes can provide insights into the health and behavior of services. For example, the control plane can help assess service health by collecting and aggregating telemetry data from component interactions, such as traffic and latency.  

Service Mesh Deployment Models

There are several different ways to deploy a service mesh, including the following:

  • Per-host deployment: In this model, a sidecar proxy is deployed on every host running a service instance. This approach provides the highest level of isolation and security, but it also requires the most resources and may be more complex to set up and manage.
  • Per-namespace deployment: In this model, a sidecar proxy is deployed in each namespace within a cluster. This approach is less resource-intensive than per-host deployment and provides a good balance of isolation and security.
  • Per-service deployment: In this model, a sidecar proxy is deployed for each service. This approach is the least resource-intensive, but it also provides the least isolation and security.
  • Hybrid deployment: In this model, a combination of the above three models is used. For example, you might use per-host deployment for critical services and per-namespace deployment for less critical services.

The choice of deployment model will depend on the specific needs and requirements of the microservices architecture. Factors to consider include the level of isolation and security required, the available resources, and the complexity of the setup and management.

It's worth noting that the most common and popular service mesh implementation Istio uses per-namespace deployment model as a default, but gives the flexibility to use any of the above models.

Conclusion

In conclusion, service mesh is a powerful tool for managing service-to-service communication in a microservices architecture. It provides features such as traffic management, service discovery, load balancing, and security, which can help improve the reliability, scalability, and security of microservices-based applications. In the health industry, where data security and compliance are of the utmost importance, service mesh can provide an additional layer of security and control over service-to-service communication.

Author Bio: Gilad David Maayan

Gilad David Maayan is a technology writer who has worked with over 150 technology companies including SAP, Imperva, Samsung NEXT, NetApp and Check Point, producing technical and thought leadership content that elucidates technical solutions for developers and IT leadership. Today he heads Agile SEO, the leading marketing agency in the technology industry.

LinkedIn: https://www.linkedin.com/in/giladdavidmaayan/









FREE eNewsletter

Click here to receive your targeted Healthcare Technology Community eNewsletter.
[Subscribe Now]