Skip to content

Assignment 3 Proposal

Rishabh Gajra edited this page Apr 11, 2020 · 5 revisions

Project Proposal

In software architecture, a service mesh is a dedicated infrastructure layer for facilitating service-to-service communications between microservices, often using a sidecar proxy.

Problem Statement

Places, where the current implementation can do better, are inter-service communication, service authorization, security, load balancing, and improved monitoring. By integrating the Service mesh layer above the existing Kubernetes architecture, this can be easily achieved.

Our current distributed weather modeling platform does basic communication among the services using Kubernetes. This leads to aspects. like the system does not scale with load dynamically.

Proposed solution

Having such a dedicated communication layer can provide a number of benefits, such as providing observability into communications, providing secure connections, or automating retries and backoff for failed requests. The solution includes finding a service mesh product to implement. Desired improvements:

  • Load Balancing - With just Kubernetes, the load balancing is done in a round-robin fashion. The other way to do is choosing pods at random. There are much better ways to balance the loads and by integrating our current architecture with Service mesh, we can distribute the load using multiple options such as Random, Weighted, Fewer requests, etc.
  • Service Authorization & Authentication - Using service mesh, inter-service communication restrictions can be imposed.
  • Monitoring - Using a service mesh, one can collect and provide various system/network metrics.
  • Sidecar Proxy - The inter-service communication is done through a side-car. Since their job is to communicate with other microservices, the burden on the microservice can be reduced.
  • Encryption - Using service mesh, secure inter-service communication can be implemented. This is done using encryption through a service mesh.

Clone this wiki locally