How is the 'Click here to get the latest version' made for web apps?
I've noticed this in a couple of web apps recently, how is the production app updated live without disrupting users who are currently logged in / using the app?
EDIT: For anyone unable to click on the link, it basically consists of having two near identical environments and switching production and staging alternatively between them, by redirecting traffic according to which one should be production at any given time.
With desktop apps I'd presume this would be necessary only in cases where updating the backend would cause breaking changes and, in that case, using versioning APIs is probably more cost-effective.
If not, then the simplest approach would probably be refactoring the backend so that it can get requests from two different versions of the client.
Azure has got this great feature called Slots. You can define a slot on your web app off of your production environment, deploy the code to the slot, warm it up and verify, and then swap it into the main slot, which leaves you with a last known good in your staging slot.
Luis Orduz
Software Engineer
One strategy for accomplishing this is blue-green deployment, with extra-granularity to do it on a per-user basis for the situation you mention.
Here's an overview on it: martinfowler.com/bliki/BlueGreenDeployment.html
EDIT: For anyone unable to click on the link, it basically consists of having two near identical environments and switching production and staging alternatively between them, by redirecting traffic according to which one should be production at any given time.