This dream will unfold slowly because it threatens to commoditize the hardware vendors. Sun (N1), HP (Utility Data Center), IBM (eLiza, sourcing), and Compaq (Adaptive Infrastructure) have all introduced their own utility programs and provisioning management software. Although they pay lip service to heterogeneous environments, and in some cases support multiple flavors of Unix or Linux, these grid, clustering, pay-per-processor, and dynamic provisioning offerings are clearly optimized around their own platforms and tied closely to their existing management products. There's real value here if you're a big, single-vendor shop, but the rest of us will have to settle for half a loaf.
Enter startups such as Terraspring, Ejasent, and Jareva, and MSPs such as Loudcloud and Exodus, which are building virtualization software to support dynamically scalable, heterogeneous computing utilities. "It's a huge technology problem," says Ashar Aziz, Terraspring's CTO, who says that the company's 1 million lines of code include "the moral equivalent of a device driver" for every hardware platform, and SAN-based boot control leveraging SCSI infrastructure, to avoid having to get inside a kernel or any specific operating environment. Aside from basic standards such as SNMP for basic management, and XML for storing topologies, these vendors don't have much foundation to build on. Whether or not such offerings can thrive will depend on how much benefit enterprises can derive from the partial solutions of the larger vendors.
Reality #3: Utility works better for some applications than others
In theory, utility computing should support the scaling of almost any kind of application, using dynamically allocated resources. But in practice, there are some thorny problems involved in divvying up computing tasks among dynamic resources -- problems that application vendors will need to step in to help solve.
Today's business applications often run on dedicated (and therefore underutilized) infrastructure, one app per machine. The utility computing model requires technology for "problem division," or figuring out how to efficiently run apps using cycles from multiple CPUs and hardware platforms. In the case of vertical scaling (on a single box), this technology has been around a long time in the form of logical partitions such as IBM's LPAR or Sun's Dynamic System Domains.
In the case of horizontal scaling, however, not all apps are created equal. Technical computing applications such as DNA sequencing can be easily divvied up and farmed out to multiple machines. Likewise, Web and app serving in an n-tier architecture, or other apps where all the instances are alike, such as e-mail, are conducive to problem division as long as demand is load-balanced among instances to ensure consistent performance. But core back-office and custom applications are harder to scale horizontally, and therefore won't fit as well into a utility model.
"You can't problem-divide Oracle," says Rajeev Bharadhwaj, Ejasent's CTO, who adds that apps with huge amounts of application logic, multiple data stores, and complex algorithms are also problematic. Most enterprise applications, unlike the scientific apps that have been run on grids in the academic community, simply aren't designed to be run in resource-sharing environments. "I can't go and slice up a [BEA] WebLogic server among five customers because I wouldn't know how to meter and bill it," says In Sik Rhee, Loudcloud's co-founder. "The standards just aren't there."
Reality #4: Utility security is a work in progress