In a recent Paul Maritz talk at GigaOm Structure conference, he referred to PaaS as "a cloaking layer for clouds." This is an elegant definition for a rapidly expanding market of add-on cloud services.
If Cloud 1.0 is a set of servers in the sky (think Amazon EC2), then Cloud 2.0 is a layer of services that hide the complexity of developing, deploying and managing applications in the cloud (think CloudFoundry).
The API for Cloud 1.0 is the virtual machine/OS. The API for Cloud 2.0 is the application container itself - services like CloudFoundry, Elastic Beanstalk from Amazon and Heroku allow a developer to hand over an application to the application container without having to know anything about what operating system that application is running on or how it communicates with other services like load balancing, failover and database.
Here are several examples of PaaS cloaking to simplify cloud development:
- Dev/test environment: WaveMaker pioneered the market for cloud-based development of standard Java applications. In addition, simply virtualizing the provisioning of servers has huge value for development and testing purposes. Today, this is a major driver for developer adoption of cloud in general and PaaS in particular. I have talked to CIOs who claim that over 30% of their resources for new projects goes into provisiong and managing the dev/test environment.
- Scalable application deployment: Amazon EC2 has made its mark by providing a highly scalable data center in the sky. Zynga uses Amazon as a safety net when it has no idea how popular one of its games will be. Once Zynga has a handle on demand, they move the game over to their own data center. Just a year ago, getting this kind of scaling required detailed understanding of cloud architecture and a whole lotta scripting. Now it's as easy as "vmc push --instances 8"!
- Resilient application deployment: infinite scaling is great, but what happens when a network configuration error brings down in your infinitely scalable data center? In that case, having a PaaS service that automatically mirrors applications across multiple data centers makes a critical difference.