Vertical or Horizontal Virtualization?

See how Joyent is advocating vertical virtualization as opposed to Amazon’s horizontal virtualization…courtesy of The 451 Group:

Joyent has been in business for five years, offering cloud-computing services before there was cloud computing. Its idea was to take ‘big’ infrastructure (like 64GB of RAM, 16 CPU servers, 10Gbps networking), virtualize the entire vertical stack, go to people who normally buy some servers, some switches and some storage, and sell them complete architectures – this is Joyent Accelerators, its public infrastructure-as-a-service (IaaS) cloud. With a claimed 25,000 customers, Joyent must rank among the top half-dozen cloud providers out there today. Joyent has taken no outside investment, and claims to be profitable. It doesn’t disclose revenue, but our Tier1 Research colleagues have estimated revenue to be about $60m.

Joyent is best known for its public cloud, using Joyent Accelerators (virtualized servers, network and storage). And while most of its 25,000 customers are on the public cloud, many of its large customers that have been running test and development or disaster recovery on it are now considering proof-of-concepts for using Accelerators internally. Joyent is, for example, working with Dell to deliver pre-built racks for running Accelerators. The range of use cases among its user base is extensive: pubic cloud, public cloud-legacy datacenter; private cloud and private-public cloud. The Joyent product portfolio now encompasses Cloud Components (Joyent Accelerator), Cloud Management (Joyent Cloud Control – for managing architectures and IT and accessible from an API) and Cloud Services (Joyent Smart Platform development platform with auto-scaling, metrics and monitoring). Accelerators were previously known as Grid Containers, because when Joyent came to market in 2004, grids were the great white hope.

Unlike most cloud providers that use some flavor of hardware simulation using a hypervisor, Joyent’s IaaS service uses OpenSolaris Zones/BSD Jails (Containers) hardware partitioning with its own Joyent OS layer above. This means it has a single kernel and an operating system with multiple virtual machines, similar to Virtuozzo from Parallels Inc. Joyent claims the use of Zones/Jails gives it 10x or better utility over other approaches, which is key to its margin model: the difference between the cost at which it can build infrastructure and the price it sells service at – from $45 per month for 256MB RAM, 5GB storage and 1/16 CPU core guaranteed, burstable to eight. It says it gets up to 70% utilization on its infrastructure compared to much smaller rates with hypervisor approaches. It claims it can achieve 256 VMs per 32GB versus 16 VMs per 32GB for other VM delivery mechanisms. All pricing includes 10TB of data transfer per month per customer. Joyent now also offers the Zeus Accelerator for $3,000 (or $250 per month), a virtual appliance that combines Accelerators with Zeus Technology’s ZXTM application delivery controller. Overall, pricing is pegged with Amazon, but without the bandwidth charges for getting data in and out of the cloud. Other Joyent product lines such as StrongSpace and BingoDisk storage and Connectors Web apps were essentially experiments. They are no longer actively sold (the company’s website doesn’t reflect this fact), even though a small amount of revenue is attached to them.

Note that Joyent Accelerators are now called Joyent SmartMachines. A SmartMachine gives you root access to a dedicated hosting system that you can easily scale in CPU, RAM, disk space, and bandwidth, all without having to migrate your application or site to a new system. You have guaranteed minimum access to your CPU/RAM resources with the ability to burst to the full capacity of the box as it is available. You have access to network based, hardware redundant storage that can be upgraded at any time. Since you have root access to the system, you can set up and tune your container specifically for your application. Root access also means that you will need the sysadmin skills to set up and maintain your system.

In a traditional network, developers managed the entire server environment, including the hardware (e.g., memory, CPU, storage) and the operating system. For a system to scale horizontally, the operator procured additional hardware. Networks achieved vertical scale through over-provisioning (i.e., operators installed enough hardware to accommodate worst-case, high-traffic scenarios with the excess hardware resources sitting idle during normal traffic periods); multiple machines, wasted resources, and complex management were the result.

Virtual machines, by contrast, allow the abstraction of the hardware and sharing of its resources. If managed correctly, virtual machines can ensure a higher utilization of hardware resources. However, virtual machines cannot provide instantaneous vertical scaling because the hardware resources are still provided in fixed sizes and the developer must still manage multiple machine instances with over-provisioning to achieve horizontal scaling. One of the complicating factors in the horizontal scaling of virtual machines is the time required to boot up an operating system may be on the order of minutes – driving predictive over-provision to maintain performance under unexpected loads. Another disadvantage of virtual machine administration is that developers must also manage the operating system, creating another layer of complexity in application production and stability.

The Joyent SmartMachine differs from traditional and virtual machine architectures primarily in that it goes further in the abstraction of the hardware by presenting the hosted application with access to a pool of resources rather than control of a fixed resource. The SmartMachine has been designed to be very transparent to the underlying operating system, Joyent SmartOS. SmartOS uses this visibility into the SmartMachine to provide all SmartMachines with as-needed access to a large pool of available resources while still providing each SmartMachine with minimum guaranteed access to resources based on a pre-established fair share schedule. This transparency allows SmartOS to identify under-utilized resources and use them to provide enhanced performance. In normal operating conditions, all CPU and memory resources are either directly used by applications or are being used by SmartOS to optimize disk I/O and provide other performance enhancements to the SmartMachines.

The SmartMachine’s light-weight virtualization reduces the need for the developer to manage multiple operating system images. When using a SmartMachine, the developer codes the application and only manages the application logic to enable horizontal scaling. This simplifies traditional hardware or virtual machine based architectures, where the developer must also create and manage multiple abstractions of physical servers loaded with an operating system and other software. Pooled hardware allows for easy and dynamic vertical scaling as well. As a result, developers may concentrate on application production rather than abstraction layers, operating systems, or virtual machine resources.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s