I'm looking for ideas as to how to deploy a web application and seamlessly siphon off a certain percentage of users to the new application while still sending the rest of the users to the old application. What I'm looking for is similar to how Google, for instance, rolls out changes to gmail - not all users instantly get the new version; instead, the user base starts small and then slowly grows.

Any ideas are appreciated. I've got some ideas of my own, but don't want to inappropriately influence the responses.

2 Answers 2


You could compute a partition cookie pt based on some characteristic of a user such as a guid. For example, you could convert a guid into integer and then compute mod N where N is the number of servers, then set that value to pt cookie. At the load balancer level, analyze the partition pt cookie and direct to the appropriate server. Many load balancers (such as Zeus ZXTM) allow this type of smart routing to be implemented in load balancer scripts.

Alternatively, you could actually build the A/B split functionality into your codebase rather than doing it at the load-balancer.


Well, there are a number of ways to answer this question... and 99.9% of it depends greatly on your web application. There are http load balancers that can do unequal loads which can (for example) put 5% of the load on one server... and the remaining 95% on your normal servers... and the load balancer can keep track of the sessions so a limited set of users will constantly get a specific server... but this isn't how google operates.

What you're looking for isn't simply a matter of load balancing, but rather account management. What Google does for upgrading users, is simply upgrade the data (if needed) behind the scenes and then adjust the user account associated with the newly upgraded account to the new application. It's no different than simply associating an entirely new feature with the user account, and then deleting another feature... except that the "features" might be "gmail version 1" and "gmail version 2". The authentication servers are responsible for "redirecting" the user to the appropriate application within their framework. They simply do it very cleanly. They have scripts on the back-end that make the whole process very seamless. (i.e. install app version 2... both accounts run in parallel... and then remove app version 1)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.