Q: Split testing an entire website

..Bit of Background. We're not actually looking to 'test' a website A Vs B but have developed a brand new website that we'd like to send ~20-30% of traffic to initially to ensure it works as expected.

I've seen multiple sites do this where you are served a 'beta' and can opt out, however I have no idea how best to implement it.

In short I need to:

  • Send a % of all traffic to 'version 1' and the remainder to 'version 2'

  • Remember which user has been served which version so that they have a consistent experience if they re-visit

  • Allow the user to 'go back to the original site' (and be served that experience going forward)

  • The experience needs to be as seamless as possible (i.e. not being served a page and THEN redirected if possible)

Help me UX, you're my only hope.