What is Rolling Update deployment strategy?
In rolling update, you don’t switch off all earlier versions of application instances and bring up new version, but you do it 1 by 1. What I mean is, consider, you have 3 instances of your old version running in environment, so during deployment you will switch off 1 old version instance and switch on 1 new version instance and so on till all the new version instances are running.
What are the key benefits of rolling update deployment strategy?
Here they are:
- No downtime.
- Reduced deployment risk: When you rollout updated version instances 1 by 1, and consider there is an issue with new version of your application. Because of this issue only certain port of your users will be impacted not all. And once you find the issue, you can rollback the instances which are deployed.
What are important points to consider when using rolling update deployment strategy?
Here they are:
- Slow rollback: If the new rollout is unstable, you can terminate the new replicas and redeploy the old version. However, like a rollout, a rollback is a gradual, incremental process.
- Backward compatibility: Because new code and old code live side by side, users might be routed to either one of the versions arbitrarily. Therefore, ensure that the new deployment is backward compatible; that is, the new application version can read and handle data that the old version stores. This data can include data stored on disk, in a database, or as part of a user’s browser session.
- Session availability: If the application requires session persistence, you as an application owner should have: either load balancer that supports stickiness and connection draining. Or you should have support for session sharing between application servers through session replication or using a datastore.
- This way no matter which application server will receive a request, they will have your session available with it.