Using a CDN with S3

I’ve started shopping for a content delivery network for SlideShare. It’s a market with pretty opaque pricing: if you’re making the jump to using a CDN for the first time it’s not easy to get a real sense of what monthly costs will be.
Conceptually, integration between a CDN and Amazon S3 is pretty straightforward. Here’s the basic steps:
1) Dedicate a subdomain (say static.slideshare.net) to serving up all the content you want to serve via the delivery network.
2) Make a cname entry in your DNS to tell traffic going to that subdomain to go to your CDN instead
3) Tell the CDN which bucket on amazon S3 you’re saving your static content on.
The CDN receives the request for content at a geographically local server (so Europeans hit a node in Europe, Asians hit a node in Asia, etc). The node will first look in it’s own (in-memory) cache. If it doesn’t find the content that is requested, it will fetch it from S3 and save it so that will have it cached for next time. How long they cache it for is typically configurable, and APIs are typically provided that allow you to flush the cache.
In my investigations so far the following companies have turned up as potential vendors:
Akamai (the biggest company in the space)
Limelight is another big contender (famously used by Youtube and other Web 2.0 video companies)
Panther express is smaller contender. I’ve had the most conversations with these guys.
Level 3 is interesting in that they’ve recently announced that they’ll be selling CDN bandwidth at normal bandwidth rates. I haven’t talked to them yet, but I probably should. ;->
CDNetworks
Internap
Peer1
EdgeCast
If anyone has any other recommendations for vendors I should check out, feel free to reply on this post! Frankly I really wish Amazon would just provide this as a service on top of S3: that way we wouldn’t have to change any of our code at all! Unfortunately, it doesn’t seem like this going to happen in the near future.

MediaWiki SlideShare extension

Sergey Chernyshev just released a much-needed piece of code last week: an extension that makes it easy to embed slideshare slideshows into MediaWiki, the open-source wiki software that powers wikipedia.
This is pretty huge: for an organization trying to build a knowledge repository, easy integration between wiki content and social document sharing is a really important. A good example of how this can be used can be found on Sergey’s site TechPresentations.org , which archives presentations from all tech conferences worldwide.
A company that wanted to run a private mediawiki could even upload slideshows to slideshare, not share them publicly, and embed them into their corporate wiki. This would provide a wiki that supported embedded office documents, which would be a killer knowledge-management tool.
Just like Chris Hellman’s slidehare ego widget, this mashup does it’s work without using our API. I’m reminded that RSS and embed codes are powerful integration points with any system. It’s easy to forget that a lot of the time, a formal REST API isn’t even necessary in order to build a mashup!

Server problems with SlideShare

Hey peeps! We’re having some difficult-to-troubleshoot problems with our server cluster right now. The primary problem seems to be with file uploads: I’ve taken the site down into maintenance mode while we scramble to fix this. Will keep y’all updated via this blog, blog.slideshare.net, getsatisfaction.com, email, and carrier pigeon as we work to fix this.

Chris Heilman’s awesome multiple slideshow widget

Chris Heilman published an article where he described how to make a slideshow widget that has ALL your slideshows from slideshare in it. The article was recently profiled in the Ajaxian.
The result looks totally bad-ass. In fact, we’ve been working on a similar widget, but this one totally blows ours out of the water. The only downside is that his current solution required server-side scripting (with php). We’ll definitely take inspiration from this design and try to put something out in the near future that does something like this from a simple embed.
It’s interesting that Chris chose NOT to use our APIs for doing this, relying instead on our RSS feeds and embed codes to get the information he needed. Chris writes:
I had a look at the API of slideshare but I am always a bit bored with having to go through a developer ID and then do everything on the server. That’s why I put on my “ethical hacker” hat and took a look at the RSS feed of my slides and found everything I need there!
Sounds like making our read-only API calls usable without a login would have helped here. What else would make our API more accessible or useful to developers?