2008年5月28日水曜日

Platform As A Serviceの種類

PaaSはForce.comに代表されるようにISVに対して、SaaSへの移行パスを提供するプラットホームである一方、最近は各社からPaaSソリューションが発表され、それぞれに特徴がある。  本記事はさまざまなPaaSソリューションをいくつかのキーワードで分類し、整理したもの。

A plethora of PaaS options

About that show of hands. I didn't expect my straw poll at last week's SaaS Summit would produce only two hesitant supporters for Salesforce.com's Force.com platform-as-a-service model out of a room full of two or three hundred ISVs. But this was a conference organized by specialist SaaS hoster OpSource, and even though the OpSource team does a great job of making this an event of interest to the entire industry, you'd still have to expect the attendees would skew towards favoring OpSource's managed hosting model. A similar straw poll at a Force.com event would probably skew in the exact opposite direction in favor of Salesforce.com's more packaged platform. To arrive at any other conclusion is mischievous at best. [Disclosure: Salesforce.com and OpSource are both clients, OpSource funded my travel costs to be at the event.]

What's more, I'd argue that the cloud computing and hosting choices available to people — whether they're ISVs, enterprise developers or business users — are still poorly understood. There's been a veritable explosion of platform-as-a-service choices coming onto the market in the past month or two, and the pace of introductions is accelerating rather than slowing. It'll all settle down eventually, because at the end of the day people tend to coalesce around just one or two dominant providers, or a handful at most. But ISVs perhaps want different choices than enterprises and indeed solution providers. So I think there may be several different categories of platform where we'll see those clusters of long-term dominant players getting established. I'd divide the options into five layers, as set out below. There's also a poll at the end where you can express your preference, and perhaps arrive at a better-sampled (though just as statistically invalid) result than that show of hands …

Do-it-yourself. The first option is the one that's always been there: you buy your own servers and software (or download open-source code), build your application along with all the infrastructure needed to support it, and run it yourself. This is what Microsoft, Oracle, IBM, Sun, IBM, Progress Software and a number of other established platform software vendors continue to encourage you to do, and it's still what most of the market chooses. But the tide is turning, such that more and more developers are looking at other options.

Managed hosting. This is a bit like the first option, except that someone else runs the infrastructure for you to a greater or lesser extent. You still choose which infrastructure to use, but you get to share the operational burden. At the high end you get offerings like OpSource, which provides a lot of SaaS-specific services around the core hosting, including an integration bus, which the company announced at last week's conference. But you're still in charge in the sense that it's entirely up to you what components you choose to deploy.

Cloud computing. This is a utility computing variation on the previous option. The canonical example of this is Amazon EC2 but other examples are emerging, such as Mosso, the Rackspace venture I recently wrote about, and Joyent. In cloud computing, the provider builds a virtualized infrastructure and you get to install and run your applications on it for a pay-as-you-go price that is directly proportional to the resources your applications use. The provider automatically scales your implementation up and down according to the resources you need at any given time. The main distinction from managed hosting is that some of the choices are made by the provider rather than the customer. They choose how to do the scaling and load balancing, for example, rather than allowing you to specify how it's done. But you still take responsibility for higher-level application infrastructure such as performance tuning, user provisioning and access rights, framing APIs, and so on. I'm giving this option a lot of focus at the moment, and the interplay between virtualization and SaaS forms the topic of a presentation I'll be delivering at ComputerWorld's SaaScon conference in Santa Clara at the end this month.

Cloud IDEs. This layer provides a much more comprehensive application development and deployment environment, with the provider making most of the choices that determine how the application infrastructure operates. The canonical example is Salesforce.com's Force.com platform, but another strong contender that just entered public beta is Bungee Labs, who I'll be writing more about separately. At this layer, you build your application using the platform provider's own on-demand tools and collaborative development environment. The type of application you build isn't constrained, but the infrastructure choices have already been made, so you don't have to worry about them. The trade-off you make is that you're tied to their platform, with no easy way of transferring your application elsewhere if things don't work out.

Cloud application builders. This layer is similar to the previous layer but it's targeted at business-level power users and designers rather than developers. A lot more of the application infrastructure is already provided, the trade-off for which is that it constrains your choices into certain application types. There are dozens of such platforms emerging. Some are web-facing application builders such as Coghead, which this week introduced utility-style pay-as-you-go pricing, and newcomer Rollbase, which debuted last week at the SaaS Summit. Others are online database platforms such as Intuit QuickBase (which I wrote about recently), DabbleDB and DataWeb. Some platforms focus on specific categories of business functionality, such as NetSuite's Business Operating System, which was announced last week, or Daptiv's flexible project management platform.

Each of these layers has its own pluses and minuses. For rapid results, especially when automating business processes and workflow rather than simple data processing, the cloud IDEs and application builders win through. For highly tuned performance that depends on diving deep into the technology stack, you're better off working with one of the lower levels. But don't just take my word for it — express your own opinion and see what other ZDNet readers feel by taking the poll.