Book Image

Bootstrapping Service Mesh Implementations with Istio

By : Anand Rai
4 (1)
Book Image

Bootstrapping Service Mesh Implementations with Istio

4 (1)
By: Anand Rai

Overview of this book

Istio is a game-changer in managing connectivity and operational efficiency of microservices, but implementing and using it in applications can be challenging. This book will help you overcome these challenges and gain insights into Istio's features and functionality layer by layer with the help of easy-to-follow examples. It will let you focus on implementing and deploying Istio on the cloud and in production environments instead of dealing with the complexity of demo apps.  You'll learn the installation, architecture, and components of Istio Service Mesh, perform multi-cluster installation, and integrate legacy workloads deployed on virtual machines. As you advance, you'll understand how to secure microservices from threats, perform multi-cluster deployments on Kubernetes, use load balancing, monitor application traffic, implement service discovery and management, and much more. You’ll also explore other Service Mesh technologies such as Linkerd, Consul, Kuma, and Gloo Mesh. In addition to observing and operating Istio using Kiali, Prometheus, Grafana and Jaeger, you'll perform zero-trust security and reliable communication between distributed applications. After reading this book, you'll be equipped with the practical knowledge and skills needed to use and operate Istio effectively.
Table of Contents (19 chapters)
Part 1: The Fundamentals
Part 2: Istio in Practice
Part 3: Scaling, Extending,and Optimizing

Application resiliency using fault injection

Fault injections are used for testing the recovery capability of applications in case of any kind of failure. In principle, every microservice should be designed with in-built resiliency for internal and external failures but often, that is not the case. The most complex and difficult work of building resiliency is usually at design and test time.

During design time, you must identify all known and unknown scenarios to which you need to cater. For example, you must address the following:

  • What kind of known and unknown errors might happen inside and outside of the microservice?
  • How should each of those errors be handled by the application code?

During test time, you should be able to simulate these scenarios to validate the contingencies built into the application code:

  • Mimic in real-time different failure scenarios in the behavior of other upstream services to test the overall application behavior
  • Mimic...