Skip to content

Assignment 3 Proposal

Gopi kiran edited this page May 4, 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 not scaling with the 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.

Implementation Plan

# Phase 1

Understanding the working of service mesh on Kubernetes. Working on the sample application and getting into the details of a service mesh with that sample application

# Phase 2

Implementing the service mesh into our project (Hogwarts Rejects). Troubleshooting the problems that we face during our implementation

# Phase 3

Setting up of different dashboards and demonstrating the working of a service mesh with the above-mentioned improvements. We will also plan to evaluate the capacity of the cluster and service mesh using the load test.

Clone this wiki locally