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.
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
reviews service. 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
ratings services. Observing the resulting behavior
as the test user, we will notice that the v2 version of the
reviews service 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
reviews service, 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.