Google Apps Engine as CDN Service

Hey guys,

Has anyone tried this technique as their CDN:

http://www.digitalistic.com/2008/06/09/10-easy-steps-to-use-google-app-engine-as-your-own-cdn/

I am looking more into this now but I am just curious as to if anyone has went this route for their cdn.

Sincerely,
Travis Walters

I ran a couple of tests and it does look like the initial connect times are being distributed but the TTFB/response times vary quite widely. It’s hard to say for sure but my guess is that it doesn’t actually work like a CDN and they don’t distribute your content to all of the edge locations (don’t even cache it - I ran 5 tests from each location and they all performed similarly).

My guess is that the app has a “home”, much like Amazon’s S3 (which is why they have the cloudfront CDN offering on top of S3).

Also looks like quite a hassle to update. I much prefer just paying for a real CDN (they’re cheap enough these days) and using an origin pull so I don’t have to think about uploading the files.

Hey Patrick,

I found a few links that you might be interested in. View one and you get the idea for all of them.

http://cdn-cloud.appspot.com/
http://attachmedia.cdn-cloud.appspot.com/
http://zikamp3.cdn-cloud.appspot.com/
http://filex.cdn-cloud.appspot.com/
http://armm.cdn-cloud.appspot.com/

So I can take some sort of static resource and do this:

http://cdn-cloud.appspot.com/a/google/logo.gif?url=http://www.green-watch.org/inc/style.cfm

I took one of my dynamic webpages, viewed the source, copied all the source code, and then made two static versions of the file. One version was using the technique and the other was not. Your webpagetest.org test runs showed that the technique is coming through as a CDN. The initial connection times and DNS lookup times were almost instantaneous.

The downside I am seeing is I do not know who owns these CDN websites. I do not know if there would be downtimes, etc.

Just curious as to what your thoughts are?

Sincerely,
Travis Walters

Be careful putting too much faith in my CDN detection - I flag google.com (including CNAME records) a CDN check because they are largely but there may be cases where they do not.

How did the overall performance for your test sites compare? If you PM me I can set up a pull zone in my MaxCDN account to test them and compare the Google results to a known CDN (though it would be more telling if the Asia pop’s were live for MaxCDN).

I’d be a little hesitant to trust anything I cared about to any of these services. Not knowing that there is a real company behind them or if Google is going to terminate their offering for violating TOS at some random point (not saying they are but that would seem to be a grey area). There’s also the question of what happens when app engine comes out of beta or they start charging (though hopefully in that case you’ll get more warning time to migrate).

If you decide to go this route I’d recommend taking their underlying python app (shouldn’t be hard to recreate if they don’t make it available) and run it in your own app engine instance. You’ll get more control over the domain and url for the resources and more importantly, you’ll get contacted by Google if they are concerned about your usage.

Hey Patrick,

I think I got excited and jumped the gun when I saw the results the first time around. The reason the initial connection and dsn lookup were so small was because the connection was being reused for all static objects. On my website, I have been using multiple subdomains such as images1.green-watch.org, images2.green-watch.org, etc to serve multiple static objects in parallel. I was use to seeing a lot of DNS lookups and initial connection times so when these disappeared I was happy temporarily. The results took longer because everything was pointing towards one of the CDN links I listed above and it could not serve more than a few static objects in parallel. I tried using a few different URLs to serve the static objects then. Overall, my results did not vary enough to make a different in performance so I was a bit disappointed. From that article I read it looks like that Google App Engine is suppose to be able to keep up with other CDN services so I am a bit surprised I did not see any difference in my test results. So right now I am looking into other CDN alternatives and also maxCDN. I have been waiting on their support for about 24 hours. Maybe they do not work on Sundays. I am excited to see how my website would perform with their CDN services.

More about Google - I did register for one of their Google App Engines. It looks like they have quotas set that send errors if bandwidth is exceeded. They have an option there to pay for more. The prices seem pretty competitive. However, if the data is not being cached at edge locations, I do not see any benefit in using their service. If anyone ever learns more about their app engine, please share your results with me. I do not know anything about Python and its been years since I have worked with Java. However, I do bowl with someone that knows Java.

Sincerely,
Travis Walters

Sincerely,
Travis Walters

Travis,
AppEngine is much much more than just a file serving platform, thats what makes it complex and unstable (atleast as compared to conventional CDNs)

Ive been using Appengine for some time now… but for nothing mission critical… as in my site does not reflect any outage even if whole of App Engine does down…

their most recent outage that I recall : https://groups.google.com/group/google-appengine/browse_thread/thread/a7640a2743922dcf

I doubt if any proper CDN can afford to be down for > 3 hours.

PS: You dont need to know python or java to serve static files… just walk thro the python hello world example then see http://code.google.com/appengine/docs/python/gettingstarted/staticfiles.html