Speaking about cloud computing at TIECon today

I’m on a panel today at TIECon in Santa Clara called Is Cloud Computing the Right Approach For Your Business. The other panalists are Don MacAskill from photo-sharing site smugmug, James Lindenbaum from web-based ruby IDE Heroku, Kirill Sheynkman from cloud computing services provider elastra, and Sebastian Stadil from Intalio and the well-named silicon valley AWS users groups (AWEsome).
Here’s the description:
Our session theme for the Cloud Computing Luncheon is “Is Cloud Computing the right approach for scaling your business?”. Whether you’re launching a consumer internet startup or building an enterprise software-as-a-service application, making sure your application performs great and scales to the exponential growth that your business will see after launch is absolutely critical. No one wants TechCrunch to call them out for outages or a big customer to cancel an order because of slow performance. In addition, building the IT expertise and infrastructure to scale your application can be costly and complex. Enter the Internet giants – Amazon and Google today and potentially Microsoft and others in the future. Their business is all about large-scale infrastructure. Should you trust the lifeblood of your company to them or should you do-it-yourself in a traditional hosted or managed fashion? In this exclusive session, startup CTOs will present case studies on their experiences with cloud-based approaches versus traditional hosting. We’ll follow that up with interactive round-table discussions on various cloud offerings (storage, computing, database, etc.).

SF Javascript Meetup on June 5 @ SlideShare

The SF Javascript meetup is a brand-new institution … only on it’s second meeting. But BOY has it started with a bang! Last time Douglas freakin’ Crockford (inventor of json and jslint) presented!
Now it’s time for the second meeting, and I’m proud to say that SlideShare will be hosting the event.
If you are a Javascript nerd and based in SF, then you should totally go to this, since the last one was totally awesome. But sign up fast … it was posted today and is already over half full.

SlideShare gets funded

The techcrunch article lays out the details. We are really happy with how things worked out! Many thanks to everybody out there who played a part in making it happen.
We could have made a press release, of course, but press releases are kinda boring. So we made a meet henry style presentation instead.

“Meet Henry” is a presentation style that evolved on slideshare, and is a great way to describe the value of any good or service (through a simple, predictable narrative arc). In our case, we used Dave McClure (who’s an angel AND an advisor) as our “Henry”.
We’re really grateful to our community for taking us this far. We love you guys and all the cool stuff you do, and can’t wait to see what you upload next! We promise to work really hard to make the SlideShare experience as useful and pleasurable as possible.

Hooking a CDN up to S3

As I wrote in my last post, we’ve been going through the process of adding a content delivery network (PantherExpress) to SlideShare. Since there isn’t a lot of information on the net about how to use a CDN to accelerate content that is hosted on S3, I thought I’d publish it here.
The way you integrate with any CDN is pretty much the same.
1) Create a subdomain (e.g. static.slideshare.net) for your domain.
2) Point that subdomain to your CDN (e.g. 132.pantherexpress.com) using a CNAME entry in your DNS.
3) Configure the CDN to know that the “origin server” they should use is your amazon S3 bucket.
4) When the CDN gets a live request for a piece of content, it serves the content if it has it in it’s cache. Otherwise, it fetches the content from the origin server and then serves it.
This is great if you’re starting out. But what if you’ve already launched? You NEED to be able to try out your CDN integration, and then quickly back it out if it isn’t working. There’s two ways to go here.
1) If you’ve thought ahead, you’ve named your s3 bucket after your subdomain (e.g. static.slideshare.net) then you can point your CNAME entry to to bucket. To switch to your CDN, change the CNAME entry. If there’re a problem, switch back. The switch will take however long your “time to live” is set to in DNS.
2) OTOH, you probably WEREN’T forward thinking enough to name your s3 bucket after your subdomain. In this case (the normal case), you have to make sure your webapp is written so that you can quickly change the location where it expects to find external content. We didn’t do that (we had hard-coded the s3 bucket url into the code), so we had to externalize that into a property file that could be easily edited.
So far we’ve accelerated our thumbnails, our javascript / css / navigation images, and all our content players. Still to come is the actual content (the slides themselves). Measured page load time for page loads on media-heavy pages have dropped from 10 seconds to 4 seconds. I’m hopeful that we can use the CDN to accelerate our slides as well.

Panther Express and S3

One thing I’ve been working on in the last month is accelerating the serving of SlideShare content using a “content delivery network” (or CDN). You use a CDN so your content can be cached in RAM, in a place that is geographically near your customers, instead of on disk, in a place that is far away from your customer. This makes a BIG difference in terms of page load time. There isn’t much on the net about hooking a CDN up to Amazon S3, so here’s what I learned:
Frankly, the process of shopping for a CDN vendor is *really* annoying, especially for someone who has become used to buying these cloud-based services like S3 that are priced openly and on the basis of usage. The process is very “enterprise procurement”: lots of high-pressure salesmen trying to get you to sign two-year contracts, and with no price transparency. One way to win is to get them to bid against each other. But the whole thing feels like an unnecessary amount of work.
Fortunately, we found a company that had transparent pricing that seemed fair to us, and that wasn’t about locking us into a long-term contract: PantherExpress! Their pricing is standardized, is per-gigabyte, and gets cheaper the more you use it. Given that Amazon doesn’t provide a CDN, this is the next best thing for serving up content fast. It costs $.28/GB for the first 8 TB/month, $.24/GB for the next 8 TB, and so on. More expensive by Amazon, but a decent price for global content delivery.
Hooking PantherExpress up to S3 was pretty easy, and I imagine the same procedure would work with other CDNs. I’ll cover that in my next post.