How to Deploy Web Application in an A/B Testing Mode

deploymentweb-applications

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.

Best Answer

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.

Related Topic