Friday, April 11, 2008

The PaaS Spectrum

There is not going to be one form that this Platform-as-a-Service wave is going to take. If you look at the current trio of offerings from Amazon, Google and Salesforce they seem to fall along a spectrum of "full-serviceness" or restrictiveness, depending on your perspective.

On the one end is Amazon, who provides a very loosely coupled collection of services and the API to access them. Use what you want, leave the rest. They provide documentation, but it is up to the developer how to wire things together, what languages and tools to develop in, etc. EC2 makes no assumptions about what you are doing, other than that your VMs can be packaged as an AMI.

On the other end of the spectrum is Google and Salesforce. Both restrict applications to a particular language and development stack that are more or less proprietary. Google is saying that their sandboxed Python implementation is only the first of presumably many language options but we'll have to wait and see. Salesforce has their own Java-like Apex language and SQL subset.

It's actually a more complicated comparison that that. Google doesn't provide a relational database but their own persistence abstraction. Amazon's SimpleDB is a similar approach, but you don't have to use SimpleDB, of course. There is nothing stopping you from installing and running your own RDBMS on EC2 instances, but that freedom comes at a cost. Not drinking the Amazon kool-aid means that you are taking on the ops responsibility of setting up and managing that database; responsibility that you were trying to get rid of by going with a PaaS in the first place, right?

The particulars of Amazon's platform, such as the lack of truly persistent storage outside of S3 make the task of running a database even more challenging. There are third parties attempting to pick up the slack, like these guys. That's another differentiator among PaaS offerings, the degree to which the provider obstructs or encourages an economy surrounding their technology but outside their direct control. Amazon has shown this to be their desired direction I think. They could have created JungleDisk but instead consciously limited themselves to infrastructure over customer-facing applications. It is yet to be determined where Google and Salesforce fall on that.

As the PaaS offerings of the current crop of competitors develop and gain wider acceptance we'll see the direction that ends up being the most successful. I'm of the opinion that there is no "correct" approach. I like the flexibility of Amazon's offerings but see the value in a more limited stack for applications that fit the requirements that the given platform is trying to service.

As more competitors enter this space the field will surely get more nuanced. Hopefully the variability of options will just drive everyone to producing better platforms all around.

No comments: