-
Notifications
You must be signed in to change notification settings - Fork 1
Milestone 3, Part 1
Currently, though our application is deployed on a Kubernetes cluster, which provides in-built capabilities to handle load balancing, we do experience unexpected failures. While developing our microservice architecture and debugging relevant issues we observed that the majority of our time was spent localizing or understanding a problem rather than actually fixing it. Plain Vanilla cluster implementation makes it difficult to troubleshoot Slow/No response and of Services which drove us to dive deeper into Service Mesh implementation on top of Kubernetes.
To address our concerns, Service Mesh comes to the rescue. It handles this complexity by dividing the application into Control Plane and Data Plane. Instead building the necessary functionalities like logging, routing, configuration etc. into every microservice, we centralize it in a component - ‘service proxy’
-
A service mesh can systematically track and correlate communication. Depending on which service mesh serves our purpose the most, we pick one (Istio, Linkerd) since each have their own capabilities. Our pick would be the one that can systematically track and correlate communications between various services in a way that they can be tracked and charted.
-
Istio provides a built-in feature for visualizing request flows so you can zero in on performance bottlenecks, and quickly narrow down where to look when something is not performing well.
-
For testing it is important to test not only the performance in terms of requests per second but also against an increasing number of concurrent connections, since in the real world, high throughput traffic comes from multiple clients.
Blueprint plan of global service topology.Analysis of different service mesh technologies like Istio, Linkerd, Consul and picking one that is best suited for our application. Implementation of the selected service mesh technology on top of Kubernetes.
Implementation of audit log of application releases with Service Mesh with Prometheus/Grafana.Incorporate security with the help of various Authorization features of the Service Mesh.
Integration and performance testing like A/B testing, and staged roll-outs with percentage-based traffic splits. Additionally, performing load testing to check for bottlenecks.
https://markmail.org/message/maqdga563r3pq2lh
https://github.com/istio/tools/blob/3ac7ab40db8a0d595b71f47b8ba246763ecd6213/perf/README.md https://istio.io/blog/2019/performance-best-practices/ https://www.socallinuxexpo.org/sites/default/files/presentations/%5Bdraft%20submission%5D%20What%20is%20a%20Service%20Mesh.pdf https://devopscon.io/blog/service-mesh-vs-framework-resilience-in-distributed-systems-with-istio-or-hystrix/