Channel 9 has gone global!

Description

Before we launched the most recent version of Channel 9 we did a lot of work to make sure site performance was acceptable for our users. This involves data collection to try to determine what aspects of the site are slow, and then work to make it all better. At some point though, we run into problems that just can’t be solved.

One of those issues occurs naturally when you have a web site being served from a single location, in our case the United States, to people located all around the world. For some folks the site will be slower than for others, and it seems like there is very little that could be done about this problem. We could move our site hosting to a new location, but that would just move the problem… now different people would have a good connection and others would have a poor one.

Turns out, if you are hosted in Azure, there is a better solution; multiple web servers located in different geographic regions around the world. This is a concept that is used by many large web sites already, but it requires specialized DNS services and (until now) wasn’t something that a ‘regular’ site could take advantage of. Now, using the Windows Azure Traffic Manager (WATM), it is possible to add this functionality to any Windows Azure hosted site by:

  • Creating multiple instances of your site (placed in different geographic regions),
  • Creating a ‘performance’ based traffic manager policy,
  • Adding all of your production instances into this policy, and
  • Modifying the DNS entry of your site (in our case the entry for channel9.msdn.com) to point at the special DNS name associated with your new WATM policy.

A ‘performance’ based policy, like we are using, sends traffic to the fastest performing active instance in the policy, based on network performance. This is not a real time indicator, but instead is based on aggregate performance data, and so the policy will generally always send a given user to the same location.

You can start out with only a single production instance in the policy (which wouldn’t actually do anything at this point, since all the traffic would be going to that single instance) and then add additional production instances around the world as you wish. In our case we started with three instances:

  • Our original production site in the North Central US,
  • A new site in East Asia, and
  • A new site in Northern Europe

While the exact location of these servers isn’t something that is publically discussed, they correspond to three of the six Windows Azure data centers as shown in this picture.

Windows Azure Data Centers

Recently you may have noticed a new icon along the top of the site

image

Hovering over this icon will show you the data center you are currently hitting. Hopefully this will be the best data center for you, but if it isn’t there are a few possibilities. One is that the data center you are hitting is truly the fastest option for you (sometimes network performance does not correspond to the real world distances between you and a data center), and the other is that you seem to be coming from a different location than you really should be. One issue to be aware of is that some large shared DNS services can cause this issue, because they can make it seem like you are physically located wherever their DNS servers are sitting… which could be quite far from your actual location. This article discusses the issue with services such as Google’s DNS service and OpenDNS briefly for those of you that are interested.

For more information on the Windows Azure Traffic Manager, check out this episode of Cloud Cover!