Canary deployment

I am following rolling traffic to multiple version as per this link - https://istio.io/docs/concepts/traffic-management/#routing-versions

This works as advertised and very nice. Just for curiosity if someone please can shed light on this.

The example shows reviews service which is after the main edge service - which is the entry point fo the application.

Please correct me if my interpretation is not correct.

I can try to relate that Pilot might be pushing the config to the envoy and this L7 load balancing might be done by the upstream service of reviews of the bookinfo application.

What if, the new version of edge service (the first microservice) is rolled out, which is called by the client and we need 90% of traffic to the production release and 10% to the new one.

How Envoy will work in this case and how it does this load balancing of 90 and 10 for the edge service.

The Focussed Canary Testing link https://istio.io/blog/2017/0.1-canary/#focused-canary-testing example only shows 50% and 50% - which is just the round robin that Kubernetes will do it in any way.

Just curious as how this works internally or which Envoy of a microservice can do this. How will Envoy of each HelloWorld microservice coordinate that one needs to get only 90% and other 10%.

Thanks for some one to explain it.