Question

I am considering a solution for a high traffic website (millions of visits / day) where some content is served directly from the Windows Azure Blob Storage to visitors. The content to be served from the Blob Storage is pre-computed personalized blogs; that is, not usual static content shared over many users. My goal is to serve this content with a low latency.

The audience of the website is tightly related to a single country in Europe. Thus, the first logical move consists of choosing a geo-location for the storage account that happens to be geographically close to the target country.

Then, I am wondering if, in this context, the use of the CDN feature would further improve the latency? In particular, would it still improve the latency for the first retrieval of the content?

Was it helpful?

Solution

In the scenario you describe, it will likely be slower. This is because (as @Jaxidian points out) that the caching does not happen until the content is requested.

Without CDN: user requests content from data center where blobs live (there are 8 data center options today). The content is returned directly.

With CDN: user pulls from "closest" (closest in networking sense) data center (there are 24 CDN points of presence today). The local CDN cache is checked. If the data is not in the cache, the content is requested from the source data center and the cache is populated. Then the content is returned to the user. For first retrieval request, this obviously hurts latency.

However, with a blog, there may be some fairly static content (stylesheets, javascript, logos, other "blog-wide" content) common either across pages on a single user's blog - and some other content common to all users on the platform - that would be more valuable to serve up via CDN for repeated access.

Note that there is no way (today) with Windows Azure CDN to force any CDN node to load data (only external requests do this) and no way to bump an item from the CDN (only HTTP cache headers are used for this), so you need to be careful about how long you cache things for in the CDN (consider when a published blog post is modified).

OTHER TIPS

Not sure this is a fact. It might happen that network connectivity from client to the server is slow, while connectivity from client to CDN proxy -> target server is better/faster. So you cannot be certain but I agree the overall improvement should not be significant.

You can test the loading of you website from various locations in the world with the site WebPageTest : http://www.webpagetest.org/

The report is really clear and complete. I've also deployed a website by using Azure Blob and yes indeed the first calls are slower, however if you expect a lot of worldwide traffic on each resource, it is a good idea.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top