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.