Istio – An Open Platform Service Mesh

Istio – An Open Platform Service Mesh

16 December 2020

Before understanding what Istio is, let us start with the problem statement understanding. Why Istio?

Let’s go to the era of monoliths where all the business logic is organized under one chunk of code defined in a particular language. It is easily manageable and deployable if the app is a micro-level application. But, when it comes to scaling the application and adding certain capabilities within that code-base, it becomes challenging, as everyone is working on the same codebase. In such an application, deploying the changes on the production is backbreaking as the complete application needs to be pushed, even for a small change.

This issue was resolved by using the microservices as it helps the developer to focus on a specific set of business logic. Now, the developer can pick the language for that specific set. Eg. Ruby or Python to write the frontend and C++ for the backend. In this case, the scalability of the application is trouble-free and deployment of these microservices can be done independently. Each service of an application relies on another service for data as all the services in the application are connected in a mesh. In order to execute its function, one service may need to request data from several services.

Let’s assume an example where service A needs the data from service B, and service B needs to provide the data service A, C, and D once it receives the data from Service X. In such cases, there are possibilities of overloading of requests on some services, leading to performance impact and increase in application downtime.

This is where Service Mesh comes to the rescue. The service mesh actually provides a way how different parts of the application will communicate with each other by building a dedicated infrastructure layer. Service mesh uses the mechanism where one request is routed to another to keep all the application components working. In service mesh, the requests are actually routed to microservice by proxies.

Istio is an open platform service mesh providing you a way to manage the sharing of data between microservices. It lowers the complexity of securing, connecting, and monitoring the microservice deployment.

How does Istio work?

Istio_An_Open_Platform_Service_Mesh_01

Istio deploys a sidecar proxy in the application that catches all network communication between microservices. The central control plane distributes the rules and configurations to the envoy proxy.

The control plane has 3 main components – Pilot, Mixer, and Citadel

  • Pilot – Pilot stores all the rules for the different services in the application and how they will communicate and will store all the communication running information.
  • Mixer – Mixer collects the telemetry on how your app is performing as a whole or sets global limits on how certain services are being used.
  • Citadel – Citadel is a key manager that manages all the keys and certificates necessary for a modern microservices deployment.

Istio Benefits:

Let’s have a look at the benefits of Istio:

  1. Istio understands the network interaction between the services
  2. It acts as a traffic inspector between the services
  3. It implements Granular policies – percentage-based routing
  4. Istio is all about automation. It automates the policies across 1000s of services
  5. It decouples the network from the application code

search
Blog Categories
Request a quote