Mike Riley is a Dr. Dobb's contributing editor. Follow Mike on Twitter @mriley.
As web-centric software projects bloom from in-house concept to live external prototype, the need to build up and tear down secure containers to house and serve such applications often requires a relationship with a service provider that allows targeted hosting of the frameworks and dependencies your project requires. However, finding such a provider can be more time consuming than the prototypical application you are trying to demonstrate. And consider what happens when your project hits the proverbial accelerator when clients and business partners are infused with excitement in what they see and want to promptly graduate the project to production status.
To address this amorphous requirement, numerous virtual hosting solution providers have cropped up to resolve some of the pain experienced when constructing such dynamic sandboxes with exacting middleware and software component pieces. Nearly all of these solutions are based on Linux due to the licensing costs associated with other operating system platforms. Perhaps the most well known of these is Amazon's Elastic Compute Cloud (EC2), offering metered rates of usage. However, if your project's monetary funding is not prepared to afford unpredictable spikes in usage, budgeting for such successful utilization may simply lead to an exercise in futility. Another complaint often cited with Amazon's service is the less flexible pre-built server configurations or the somewhat cumbersome and sparse management interface. Recognizing these limitations with various virtual machine service providers, Linode (short for "Linux Node") has created a solution that exceeds these limitations. I've seen numerous so-called virtual machine hosting services and none of them match the flexibility, configurability, intuitive ease-of-use and, most importantly, pricing model that Linode supplies.
Optimal VPS Features
Having focused on the creation and maintenance of Xen-managed virtual machines, Linode has built an impressive collection of web-based management dashboards to manage the VPS lifecycle end-to-end. It took me less than two minutes to configure and create a 64-bit version of Ubuntu v9.0.4 server, log into the running instance via Linode's remarkable AJAX-driven terminal application, generate an API key and interrogate its status via the API Python shell.py script.
A quick review of other configuration options include managed, fully customizable DNS settings, flexible disk and boot management (single user mode, initrd, and custom root kernel parameter passing) options, a Shutdown Watchdog that will auto-reboot your VM's in case of an unexpected system halt, quick VPS cloning, multiple IP address provisioning and high availability configuration, a recovery distribution called "Finnix" that helps restore valuable VPS installations after a catastrophic event and plenty of graphs ranging from CPU and network utilization to disk I/O and storage consumption. Many of these features of demonstrated in Linode's introductory screencast.
Linode has also created a nifty "out of band" console called Lish ("Linode Shell") to ensure access to your VPS instances even if they can't be accessed via the normal means (i.e., hosed network settings within the virtual machine, etc.). See this in action via Linode's Lish screencast.
Another aspect I really appreciated was Linode's data center transparency, showing both the location, current capacity and operational status of the four distributed centers operating Linode hosts. This report can be accessed at any time.