App A is a Php application, service B is elasticsearch.
A is deployed via istio, with canary pattern.
A'canary and A'current use the same B service.
If B is getting slow or down, A'canary and A'current will throw same errors, what happen at this moment?
- A'canary is disabled and 100% of traffic go to A'current
- istio can detect the trouble is not app related, and still route some traffic to canary
Istio offers canary versions for deployments as a percentage-based traffic splitting. Afaik istio will keep routing traffic as usual by default.
For simple summary and example of canary deployment check this guide.
If you wish to have more sophisticated and dynamic management of canary deployments that relies on heath checks and metrics You should consider using something like Flagger which is compatible with istio.