Progressive delivery is a term used to describe incremental rollout of changes to your system that optimizes for reducing risk and limiting “blast radius” of any negative outcomes of your changes. When we make a change to our system (code change or configuration change) we first expose this change to the smallest subset of users and analyze the impact of this change. If we find that the change has negligible or positive impact, we can continue to increase the subset of users that see this change.
If we find that it has a negative impact, we can reduce the subset of users affected. We can measure this impact, in part, by analyzing our telemetry, logging, and tracing data. To do this in a microservices architecture, you need some way of controlling and routing the traffic as well as collecting network metrics.
Envoy Proxy is a powerful mediator that can be used to do this. At the same time you are unrolling new changes and need to control the traffic, you must also keep a stable interface or API. If you’re changing implementation details in the backing services, you want your clients and consumer services to not feel the impact of these changes if backend APIs change.
For this reason, you may choose an API Gateway, specifically one built on Envoy. Gloo Gateway is a great fit for this.