Intelligent Routing
This example demonstrates how to use various traffic management capabilities of an Istio service mesh.
Overview
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 example, 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.
Tasks
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
reviews:v2
andratings
services. Observing the resulting behavior as the test user, we will notice that the v2 version of thereviews
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 the
reviews
service, one which includes the fix for the bug discovered in v2.
Cleanup
When you're finished experimenting with the Bookinfo sample, you can uninstall it by following the Bookinfo cleanup instructions corresponding to your environment.
See also
This task shows you how to configure dynamic request routing to multiple versions of a microservice.
Deploy a custom ingress gateway using cert-manager
Describes how to deploy a custom ingress gateway using cert-manager manually.
Incremental Istio Part 1, Traffic Management
How to use Istio for traffic management without deploying sidecar proxies.
Introducing the Istio v1alpha3 routing API
Introduction, motivation and design principles for the Istio v1alpha3 routing API.
Configuring Istio Ingress with AWS NLB
Describes how to configure Istio ingress with a network load balancer on AWS.
Traffic Mirroring with Istio for Testing in Production
An introduction to safer, lower-risk deployments and release to production.