How to handle high I/O workloads in the cloud — or Voxel offers SSD cloud servers!
The concept of scale-out hosting deployments for web applications is something we’re super excited about here at Voxel. Our VoxCLOUD compute product is helping Voxel customers scale their applications effortless by using tight integration with our Hosting API (hAPI) or through the use of our graphical Adobe AIR desktop infrastructure manager. However, not all application loads lend themselves well to traditional cloud solutions (horizontal scaling) — and unfortunately this means that for some, moving to the cloud can actually result in decreased performance and surprisingly large cost increases.
Often, unfortunately, overcoming the limitations preventing purely horizontal scalability result in spending substantial time and money – even if the blocker from getting into the cloud is a relatively small piece of your overall deployment. One of the unique aspects of Voxel’s cloud approach is that we’re agnostic on the actual platform in use.
We consider the major benefit of cloud hosting to be the service delivery model: incremental (hourly, or based on consumed unit) billing, instant deployment and API-based control of your infrastructure. Over the years, however, cloud has also come to mean virtualization. At Voxel, we look at virtualized cores and racks of servers as largely one and the same (it’s just logical unit size!), so offering physical hardware, with its unique benefits for “vertical scaling” (which is to say utilizing bigger rather than more servers – specifically for applications where it’s either very difficult, or near impossible to reap benefits from parallelization) just makes sense to us.
Which is why Voxel offers 3 physical server configurations available as part of our cloud portal, APIs and hourly billing model – and the hardware is available in minutes, just as you would expect from a cloud based VM. As many people have discovered through various trials and tribulations, bare metal is still the fastest, cheapest, and simplest way to answer vertical scaling issues of the more “traditional” applications, and in our world, that shouldn’t preclude you from “going Cloud”.
The flexibility gained in mixing and matching physical and virtual platforms is being exploited by some of our more savvy customers. What we’re seeing is that the “high I/O” crowd realized it was cheaper and faster to just deploy hourly servers with local, fast disk access to run both their most I/O intensive applications, or applications that are the most difficult to scale horizontally, such as Apache Solr where latency is king or write-heavy traditional databases (MySQL, PostgreSQL). For many, the trade-off for waiting to hop into the cloud was far more detrimental than going into it without being perfectly horizontally scalable (the oft-rumored holy grail).
These customers have been attracted to our powerful Type 3 configuration, a physical 2U server with Dual Quad Core Xeon CPUs and 8 x 15K SAS Hard Drives worth of blistering I/O in a proper RAID array. The question then becomes, when you’re simply pushing these boxes to their limit – and don’t need more storage, what’s next?
Introduction of SSD Cloud Servers
Traditionally, getting more I/O from your server meant having more spindles (disks) with fast RPMs. This means a lot of wasted storage, power, datacenter space just to get more spinning platters, and net out more usable IOps (Input/Output Operations per Second). It also means even more specialized hardware – which is not ideal from many perspectives and makes having “interchangeable parts” even more difficult. Enter the Solid State Disk (or SSD). SSDs are non-volatile (your data stays around even if there’s no power – unlike, RAM) storage devices with no moving parts.
Without moving parts, the disk latency – the amount of time it takes for the disk to be able to start reading the piece of data you want – is reduced dramatically (from about ~5.5ms on a typical 450GB 15K SAS hard drive, to ~0.1ms on an SSD drive) this translates to much higher IOps – and much better random I/O performance. This means, of course, a better user experience (not just that you can handle more concurrent users, but that your pageloads and interactions will complete much faster for each user of your site).
Internally, Voxel engineers have been including SSD drives in dedicated deployments for nearly a year and have seen typical increases in I/O performance of 8-10x over SAS alternatives. Recently, a Voxel client with a popular Facebook application had a single MySQL server with 4x SSDs and 32GB of RAM outperforming 7 servers with 4x 15K SAS drives and 16GB of RAM each, and still had performance to spare. Quite simply, SSDs are a fantastic way to get cheaper scalability and fantastic performance improvements for relatively small data sets with extraordinary performance requirements for I/O and latency – and Voxel wants to bring these advantages into our Cloud.
Starting next Friday, our clients will be able to turn-up hourly servers with four CPU cores, 8GB of RAM, and an 80GB Intel SSD for just $0.37/hour – and that SSD is capable of ~6,000 I/O operations per second, or ~15,600,000,000 (15.6billion) I/O operations per month. Just the I/O alone would be $2.16/hour or $1,560 for the whole month at another provider. Think about it – then sign up here to see what a difference an SSD makes!