What is ramped deployment strategy?
This consists of rollout of a new version of a service /application by replacing it’s instances one after the another until all the instances are rolled out. It is often needed to make sure that no services become unavailable.
Why use ramped deployment strategy?
- It is easy to setup
- Gives zero downtime
When to use ramped deployment strategy?
- Useful in case of stateful applications that can handle data rebalancing
When not to use ramped deployment strategy?
- Whenever you have to save time and user experience is not a worry because users generally have a fixed time usage.
- Rollbacks in this case are costly both in terms of time and effort
- When there are too many apis
How to use ramped deployment strategy?
Let’s understand it via an image:
When a new service is ready, one instance of the new service a is made and one instance of old service is removed after the underlying traffic to it is redirected new deployed service. One by one the old instances of service are removed and new services take over.
Please note here we have taken migration of single service instance at a time. Generally the batchsize is configurable.