5

I'm running an image-heavy website hosted on Windows Azure. Back-end performance is great but response times for image thumbnails, which make the bulk of page sizes, are quite volatile. I'm using the Azure CDN for serving all images but their response times vary by orders of magnitude and I haven't found any pattern in the fast (~150 milliseconds) vs slow (3-4 seconds) requests yet. This also doesn't seem to be a local phenomenon since I've tested the load times from different locations/continents. My conclusion so far is that the Azure CDN is simply not that good after all and I started looking for other ways to improve the load times of static assets.

Now that the context is clear, here is my actual question: does anyone have experience with services like Cloudflare and Incapsula for improving the performance of websites hosted on cloud infrastructure like Windows Azure? These services promise reduced server load among other things, but I'm more interested if they are actually effective in reducing response times for static files, as well as any negative impact on dynamic page content. I'd greatly appreciate any answers based on practical experience and/or advice for alternative solutions.

UPDATE: Here are the response headers for one of the images on the CDN:

HTTP/1.1 200 OK
Cache-Control: public, max-age:31536000
Content-Length: 4245
Content-Type: image/jpeg
Last-Modified: Sat, 21 Jan 2012 12:14:33 GMT
ETag: 0x8CEA64D5EC55FB6
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: d7a1ef38-6c99-4b38-a9f5-987419df5d24
x-ms-version: 2009-09-19
x-ms-lease-status: unlocked
x-ms-blob-type: BlockBlob
Date: Sun, 05 Feb 2012 12:56:12 GMT
Connection: keep-alive
tishon
  • 650
  • 6
  • 14
  • Did you consider opening a support ticket with Microsoft? This is odd behavior that should not be there. I have seen sites both with and without Azure Traffic Manager not showing the behavior you are describing. In general, the Azure support staff is quite efficient. – tijmenvdk Feb 04 '12 at 16:24
  • I agree that it would be good to see some details of the responses from the CDN. Can you please provide some mroe info? 1. What is the origin? Blob storage or a Web role? 2. Can you post the response including full headers? Use the IE Developer tools or Firebug. 3. Can you post a response direct from the origin server with full headers too. I suspect that the issue is stuff being expired early from the cache and therefore hitting the origin on every request. The Azure CDN is a top notch CDN with a crap load of edge nodes; it should be all that you need in this regard so let's debug that first. – Chris J.T. Auld Feb 05 '12 at 08:08
  • @tijmenvdk I've gone through the official support channel before, but it took several days and an escalation to the product team engineers, so I thought I'd first check if someone in the SO community hasn't had the same problem. – tishon Feb 05 '12 at 13:18
  • @Chris J.T. Auld: I updated the question to include sample response headers. The thumbnails origin is blob storage and the cache control header seems properly set. You can check here: http://www.humanrecord.com/search – tishon Feb 05 '12 at 13:27

2 Answers2

1

Incapsula has two caching modes: 1) Basic - this mode caches static content according to directives in the http headers (in the same way a browser would or a commercial caching proxy would behave). This typically provides 30%-50% improvement 2) Advanced - this mode also caches static content that was not specified in the http headers and dynamic content by using advanced learning capabilities to determine what content is cache-able and when to expire the cache. These methods are optimized for striking the right balance between utmost caching and serving fresh/up to date content. This mode typically adds an additional 20%-30% improvement.

  • Thanks for the info, Marc. Do you have any data specifically on improvements over resources on the Azure CDN? – tishon Feb 05 '12 at 13:43
0

"These services promise reduced server load among other things, but I'm more interested if they are actually effective in reducing response times for static files, as well as any negative impact on dynamic page content. I'd greatly appreciate any answers based on practical experience and/or advice for alternative solutions."

We actually wouldn't impact your dynamic content, so everything should be good to go there.

We do cache static content. Most users see about a 50-60% improvement in performance overall, so you should definitely seen an improvement with static resources that are on your server.

  • Hi Damon! I'll ask the same question I asked Marc: do you have any data specifically on improvements over resources on the Azure CDN? – tishon Feb 05 '12 at 13:44