On-Demand Enterprise Has Suspended Publication
On-Demand Enterprise

 

On-Demand Enterprise >> Features

Computation on Demand: The Promise of Dynamic Provisioning


Page:  1  of  2
1 | 2   All  »  

The concept of hardware virtualization -- essentially the decoupling of the execution environment from the hardware substrate on which it runs -- is not a new one. The term has been used to describe various such approaches since the 1960s. However, over the last couple of years, a particular flavor of virtualization has started to garner increased attention from progressive IT organizations.

This approach, known as server virtualization, refers to running multiple operating system instances on a single machine, without the need for a host operating system. This approach allows for performance of the virtual operating systems that is very close to the capabilities of the underlying hardware (i.e., virtualization overhead is very low). This removes what was a traditional objection to virtualization -- namely that it suffered from the poor performance inherent in software emulation.

Virtualization is one aspect of the increasing sophistication of computational models. Along with compute grids (distribution of computational burden) and data fabrics (the associated distribution of data) it represents an increasing level of abstraction of the computational process. In a sense, it is part of the same continuum that has moved development from register level to compiled programming, and from there to high-level languages built on top of their own virtual machines. In all cases, the drive is toward a more generic and powerful abstraction that is not limited by the intrinsic characteristics of the local environment.

In more pragmatic terms, server virtualization has seen most of its recent adoption driven by its value in addressing a few primary areas: server consolidation, high availability, reliability and testing. Server consolidation refers to the recognition that, in many cases, organizations dedicate specific hosts to running key services. In some cases, this is because the service requires a particular operating system version or configuration; in others, it is to avoid potential interference with critical services by other processes sharing operating system resources. Over time, this can lead to a proliferation of dedicated hardware, all of which is lightly loaded. The ability to consolidate this hardware, using virtualization to provide discrete operating system instances, has proven to be low-hanging fruit for many organizations.

Benefits of high availability and reliability are related. The ability to manage applications as an entire operating system instance that can be quickly restored in case of failure, and the fact that these instances exhibit complete logical isolation even when sharing the underlying host, allow for improved manageability and recovery time and decreased failures due to unexpected operating system-level interactions.

Testing is an obvious use case, and one that is not limited to server virtualization. Even virtualization solutions that use emulation to run the guest operating system on top of a host operating system are extremely useful for testing. The ability to pre-configure operating system instances that can have software installed on them for testing, and then readily discard and re-instantiate them, has been leveraged by testing organizations for several years.

What is lacking in many virtualization efforts, however, is a high-quality provisioning model. It is one thing to take a large number of existing servers and consolidate them through virtualization. It is quite another to leverage virtualization to achieve the promise of on-demand computing.

Last year, Amazon.com launched a new service called EC2, which stands for “Elastic Compute Cloud.” EC2 represents Amazon’s effort to bring server virtualization to mainstream developers -- and it is an impressive achievement. EC2 provides a complete model for on-demand computing on a broad basis. Users are able to boot pre-configured operating system images created by Amazon, other vendors or themselves. All instances have both public and internal IP addresses, and traffic over the internal network is both free and fast. The billing rate is per hour of instance uptime, based on public network traffic, and represents only a modest premium over what one would pay for a dedicated machine at a hosting vendor.

Amazon currently provides three logical instance types, evocatively named “Small,” “Large” and “Extra Large,” and ranging in power from the equivalent of a 32-bit 1.1GHz 2007 Xeon processor with 1.7GB of memory to the equivalent of  a 64-bit, quad-core 2.2Ghz machine with 15GB of memory, with cost more or less proportional to computational power. What is compelling, though, is how simple it is for users to scale this computational power dynamically. Once the environment is properly configured, a simple command line instruction can boot or shutdown an arbitrary number of hosts (typically limited to 20, but readily increasable to much higher numbers). For applications that are easily parallelizable -- and this includes the bulk of Web applications that scale linearly with their ability to respond to requests -- this provides an almost effortless model for managing computational capacity.

For developers working on distributed systems, the experience is even more compelling. No longer does the developer need to worry about provisioning physical hardware to create discrete hosts and to test the interaction between them. Instances can be booted in a matter of seconds, and Amazon provides a simple mechanism for providing configuration data to all instances via a predefined REST (REpresentational State Transfer) scheme. 

Page:  1  of  2
1 | 2   All  »  

Article Tools

  • Print This Page
  • Bookmark This Article

Share Options

(Digg, Technorati, more)


Subscribe

Discussion

There are 0 discussion items posted.