May 06, 2011 - by badnima
From time to time, I run across experiential blog posts from developers and system admins who have suffered some particularly hairy problem in the cloud. I love these stories because they are about real people with real frustrations. Their honesty provides an invaluable perspective for providers like Joyent because we can see through their eyes how the cloud failed to meet their expectations, and therefore learn from their experience.
This week, Alexey Kovyrin's post on his frustrations caught my attention. In particular, the following two paragraphs just made me cringe:
First, we’ve got [cloud provider that shall remain nameless] to admit that their “dedicated” cores are actually Intel Hyper-Threading threads (1/2 of a cpu core). This made us realize that the cloud wasn’t actually cheap comparing to the new hardware available on the market. Second, our account manager and a few guys from the systems team in clear text asked us to leave their cloud because they could not support our I/O requirements anymore.
Thanks for opening up about the things that have caused you pain, Alexey. First, I want to refer you to Brendan's videos detailing how to use mpstat for performance analysis on multi-processor systems. In particular, pay attention to the part where he refers to how to measure physical versus logical CPU cores. Great stuff.
Second, I couldn't agree more that distributed local storage is much better than attached SAN solutions which Alexey found so frustrating. Our VP of Engineering Bryan Cantrill penned a very enlightening post "Network Storage in the Cloud: Delicious but Deadly" which chronicled in part Joyent's own unsuccessful flirtation with block storage solutions (yes, we went back to the more reliable and better performing distributed local storage on ZFS and have never looked back). Joyent CTO Mark Mayo shed a bit more light on the matter with his own blog post that covered the limitations of storage abstractions.
Third, the growing number of connected devices (web, mobile, tablet, etc) and the increasing average object sizes means that cloud solutions will have to re-factor their systems to support high I/O services. With over 5 years of experience supporting high throughput casual-social games, we're acutely aware of this requirement and have concordantly built a system that routinely bests the likes of Amazon AWS anywhere from 3x to 14x in performance benchmarks.
While I'm disappointed to hear Alexey's experience was less than optimal, I'm still excited about the promise of the cloud and the flexibility it can and should provide. The ultimate lesson is that not all cloud architectures are equal and finding the right solution is as much about finding the right provider to partner with who understands your technical and business needs and can work with you as it is about comparing features, benchmarks and prices.
So if your provider has let you down, before you consider leaving the cloud entirely, get in touch with Joyent Cloud instead. Together maybe we can help you steer clear of the storms clouds on the horizon long before lightning strikes.
Photo by Flickr user chascar.