At its OpenWorld conference two years ago, Oracle president Charles Phillips unexpectedly called me into an impromptu briefing to make sure I fully understood the vendor's stance on SaaS and multi-tenancy. Ever since launching Business Online (now known as Oracle On Demand) in 1998, Oracle has been a serious on-demand player. In last week's earnings announcement, the company revealed that its annual revenues for on-demand offerings are around $750 million, which CEO Larry Ellison says makes it number two after SaaS poster-child Salesforce.com's $1 billion-plus in annual sales.
But is Oracle's variety of on-demand the right stuff? As Phillips explained to me back in 2007, Oracle rejects the homogenous shared-instance approach of multi-tenant purists, preferring instead to tailor instances to the specific needs of individual customers or groups of customers. These instances are deployed to clusters of servers that Oracle calls 'pods':
"The pods that serve smaller customers may be one-to-many, multi-tenant instances. Others are dedicated to one-to-one to a single customer. Some are many-to-one, for example a cluster of pods each serving the separate businesses of GE. There are different types of pods, too. Some are tailored to the needs of specific timezones, others have specific performance or function profiles, or they're tailored to specific classes of customer or business. Others are deployed to customer premises, but managed remotely by Oracle."
Oracle argues that this approach is more suited to what its customers demand than a more purist stance would allow, but can pod-scale computing really deliver the full potential of the on-demand model? Not according to Google, whose engineers recently published a 100-page paper setting out the principles of what it calls 'warehouse-scale' computing, which treats an entire data center of thousands of machines as a single platform for running multiple cloud services:
"The name is meant to call attention to the most distinguishing feature of these machines," the paper explains: "the massive scale of their software infrastructure, data repositories, and hardware platform."
In a panel discussion at last Friday's Structure09 conference, Google senior manager of engineering and architecture Vijay Gill explained why operating across data centers at what some have called 'web scale' is so much more efficient than running on smaller, more tailored units:
"[We are] virtualizing the entire fabric so you get maximum utilization and speed on a global basis as opposed to local fixes," he said. "You want to figure out how you want to distribute that across the entire system so you get it as horizontal as needed, which is essentially the definition of cloud computing."
His comments, which contrasted Google's approach to Microsoft, pinpoint the weakness of a pod-scale approach, as The Register's report explains:
"While Microsoft is struggling to separately hone performance for each and every application, Google can uniformly juice speed across its entire portfolio. The secret to Google's success, Gill said, is not in the company's mystery data centers, but in its software infrastructure, including GFS, its distributed file system; BigTable, its distributed database; and MapReduce, its distributed number-crunching platform."
The benefit of running services on top of a single homogenized set of primitives is that every service immediately benefits from any improvements to the underlying layer, said Gill:
"Pretty much every service runs on GFS as a baseline system. If we make a minor change to, say, disk storage to get a three per cent gain, and we roll that out to the GFS library, suddenly the entire base of applications stored on GFS sees that gain."
But it takes tremendous discipline to persuade developers to work within such confines, he added: "you need a large force of will to get people to do that." Which perhaps explains why vendors like Oracle and Microsoft aren't willing to adopt the model.