|
|
|
|
|
by dagss
718 days ago
|
|
For systems with many services that need 99.9..% uptime, the ways to do ANY change is things like expand-contract. In most such cases you have several instances of your backend running in parallel for scaling and redundancy and when making a release, instances of several versions run concurrently. So you don't have a "atomic upgrade" available With multiple services coordinating upgrade is even harder. Patterns like expand-contract helps you manage this..E.g. first add the new endpoint to server, then move clients over, then remove old endpoint. So..feature flags is just a way of dragging this process over longer time period, and roll over % of traffic. Instead of coupling changes to service releases you roll over using config. Used them a lot in backend to backend, backend to DB etc scenarios, has been hugely useful to us and would never work without it. But, of course depend on context what you are doing. |
|