This guide demonstrates how to use various traffic management capabilities of an Istio service mesh.
Deploying a microservice-based application in an Istio service mesh allows one to externally control service monitoring and tracing, request (version) routing, resiliency testing, security and policy enforcement, etc., in a consistent way across the services, for the application as a whole.
In this guide, we will use the Bookinfo sample application to show how operators can dynamically configure request routing and fault injection for a running application.
Before you begin
Install the Istio control plane by following the instructions corresponding to your platform installation guide.
Run the Bookinfo sample application by following the applicable application deployment instructions.
Request routing This task will first direct all incoming traffic for the Bookinfo application to the v1 version of the
reviewsservice. It will then send traffic only from a specific test user to version v2, leaving all other users unaffected.
Fault injection We will now use Istio to test the resiliency of the Bookinfo application by injecting an artificial delay in requests between the
ratingsservices. Observing the resulting behavior as the test user, we will notice that the v2 version of the
reviewsservice has a bug. Note that all other users are unaware of this testing against the live system.
Traffic Shifting Finally, we will use Istio to gradually migrate traffic for all users from to a v3 version of the
reviewsservice, one which includes the fix for the bug discovered in v2.
When you’re finished experimenting with the BookInfo sample, you can uninstall it by following the Bookinfo cleanup instructions corresponding to your environment.