Imagine that you want to build a software product where you upload content to Azure Storage from all over the world. The goal is to give users the best possible upload speeds. But the goal is to balance this performance goal with keeping costs low. The more data centers that are chosen, the more likely you will incur data transfer costs if users are sharing content.
Figure 1: Data access from the Phillipines
But there is also the issue of compliance. This is a complex topic. How would you go about makubg sure that you adhere to compliance laws regarding your data storage and transfer?
Figure 2: What you need to consider
You need to consider the trade-offs. There is the cost of data transfer out of a data center. If you are sharing content among users and you have more data centers, then you have a higher chance of spending more on data transfer. Why? Because you get charged when data leaves the data center.
But then data transfer speed is an issue as well. Fewer data centers means that the average user will need to go to a farther data center to have access to a data center.
So the classic trade off of expense and speed is something that needs to be optimized.
Well, read below for some guidelines.
Use web analytics to identify the countries where your most important customers or most customers reside
Use a map (see figure 1) to identify the countries with the closest major data centers.
You need to test end-users as realistically as possible. Identify some customers to perform some tests.
The challenge is that different users may be using different Internet providers, so you end up comparing apples and oranges. You also need to separate upload and download speeds and measuring them seprately. How big are the files being uploaded on average? Is the upload mechanism using multithreaded techniques, breaking up a large files into several smaller uploads to be uploaded in parallel?
Wikipedia lists the Internet providers and major countries here:
The top three cable providers for Internet connectivity in the Philippines are:
Here are some links and tools to help analyze bandwidth and performance of data transfer.
It may become important to also incorporate automated testing tools, making sure you find patterns and can make safe conclusions about connectivity performance among countries.
The Microsoft Research eXtreme Computing Group cloud-research engagement team supports researchers in the field who use Windows Azure to conduct their research. As part of this effort, we have built a desktop utility that measures the upload and download throughput achievable from your on-premise client machine to Azure cloud storage (blobs, tables and queue). The download contains the desktop utility and an accompanying user guide. You simply install this tool on your on-premise machine, select a data center for the evaluation, and enter the account details of any storage service created within it. The utility will perform a series of data-upload and -download tests using sample data and collect measurements of throughput, which are displayed at the end of the test, along with other statistics.
Measures the latency from your web browser to the Blob Storage Service in each of the Microsoft Azure Data Centers.
Worldwide data centers as of 8/1/2014
Hopefully you now have some ways to think about the placement of Azure Storage Accounts in the various global data centers. I provided some guidelines about how to measure and what to consider when choosing a location to host data. You need to consider expense as well as performance. I also provided some guidelines about compliance. I can also follow up with you if you have specific compliance questions.