Jacob Elder

#devops #ruby #startups

3 Problems AWS Needs to Address

A few days ago, in a fit of pre-launch, late-night frustration, I issued the following 140-character missive.

To my surprise, this actually got a response. Someone monitoring the @awscloud account opened a trouble ticket to my email address asking for clarification. The exchange was friendly and hopefully, and I think it’s worth sharing here.

Moving on from LocaModa

In the eyes of those lovers of perfection, a work is never finished—a word that for them has no sense—but abandoned; and this abandonment, whether to the flames or to the public (and which is the result of weariness or an obligation to deliver) is a kind of an accident to them, like the breaking off of a reflection, which fatigue, irritation, or something similar has made worthless.

Paul Valery Charmes. Le Cimetière Marin

What’s the right amount of time to stay at a startup? My first startup (Livewire Mobile, née Groove Mobile) was the fastest and most eye-opening 18 months of my life. Before that was six years of running IT for The Real Estate Company, which was at the time the largest independently owned real estate agency in southeastern Massachusetts. That company was founded the year I was born and is still operating today. In my memory, Groove and T.R.E.C. occupy about the same amount of space.

Ultimately my four years at LocaModa was just the right amount of time. I am immensely proud of what I built while there. Some of it is open source (on my github account, with more to be released later on theirs). In a later post I may write about some of the cool work we did with Solr, Chef, ActiveMQ, Varnish, HAProxy, and Nagios. There’s a lot to be excited about happening over there, but that will be for others to ship, not me.

About migrating from Blogger to Octopress

Another way Octopress (and Jekyll) differs from Blogger is that we now have each post in its own directory. I can’t say I fully understand this, though it does look cleaner. It would make sense if there were also an easy way to have images for each post live in that same directory. Regardlss, this breaks all inbound links. Here’s the 404 page I created to solve this problem. If the original URL ended with .html, it suggests a link to the possible new URL.

Try it out here.

To complete the picture, you must also structure your permalinks like Blogger does.

_config.yml
1
permalink: /:year/:month/:title/

Octopress and Amazon CloudFront

As it turns out, getting your Octopress-hosted blog up and running on CloudFront is pretty easy. The only problem I ran into is that Octopress wants every post and page to be a directory with an index.html, but CloudFront only recognizes default objects at the root, not for subdirectories. The solution to that is to create a CloudFront distribution using a Custom Origin, which points to the example.s3-website-us-east-1.amazonaws.com URL rather than the S3 bucket itself. This way you end up using S3’s much more functional default object support. As of this writing, this blog is served by CloudFront.

I’m still looking for the right way to get Cache-control and Expire headers from s3cmd sync. Without that, the best YSlow score you can get on a default Octopress blog is about a C (76). CloudFront doesn’t do any transparent compression for you (no Accept-Encoding support) so that’s a no-go as well. It would also be nice if Amazon would acknowledge that initcwnd of 2 is nonsensical on today’s Internet. Nearly all other CDNs use something higher, with Akamai using up to 6, and Google using 10.

See Initcwnd settings of major CDN providers for a comparison.