Wednesday, March 18, 2009

What Is Platform as a Service (PaaS)?

There are a number of companies offering Platform as a Service (PaaS), but little agreement about what PaaS is or how to compare various PaaS offerings from companies ranging from SalesForce to WaveMaker. Even the Wikipedia entry on PaaS starts with a stern warning that the entry is full of buzzwords and lacking in concrete examples.

Definition of PaaS

PaaS solutions are development platforms for which the development tool itself is hosted in the cloud and accessed through a browser. With PaaS, developers can build web applications without installing any tools on their computer and then deploy those applications without any specialized systems administration skills.

McKinsey & Company, in their 2008 report "Emerging Platform Wars," defined Platform as a service as "cloud based IDEs that not only incorporate traditional programming languages but include tools for mashup-based development."

What Makes PaaS Different?

The alternative to PaaS is to develop web applications using desktop development tools like Eclipse or Microsoft Access, then manually deploy those applications to a cloud hosting provider such as Amazon EC2.

PaaS platforms also have functional differences from traditional development platforms. These include:
  • Multi-tenant development tool: traditional development tools are single user - a cloud-based studio must support multiple users, each with multiple active projects.
  • Multi-tenant deployment architecture: scalability is often not a concern of the initial development effort and is left instead for the sys admins to deal with when the project deploys. In PaaS, scalability of the application and data tiers must be built-in (e.g., load balancing, failover need to be basic elements of the dev platform itself).
  • Integrated management: traditional development solution usually do not concern themselves with runtime monitoring , but in PaaS, the monitoring ability needs to be baked into the development platform.
  • Integrated billing: PaaS offerings require mechanisms for billing based on usage that are unique to the SaaS world.

Faux PaaS - 4 Ways To Tell If It's *Really* PaaS

At a minimum, a PaaS solution should include the following elements:
  1. Browser-based development studio - if you have to install something on your computer to develop applications, that's not PaaS!
  2. Seamless deployment to hosted runtime environment - ideally, a developer should be able to deploy a PaaS application with one click. If you have to talk to a person to get your app deployed, that's not PaaS!
  3. Management and monitoring tools - while cloud-based solutions are very cost effective, they can be tricky to manage and scale without good tools. If you have to bolt on DIY monitoring to scale your cloud app, that's not PaaS!
  4. Pay as you go billing - avoiding upfront costs has made PaaS popular. If you can't pay with your credit card based on usage, that's not PaaS!

Benefits of PaaS

The benefits of PaaS lie in greatly increasing the number of people who can develop, maintain and deploy web applications. In short, PaaS offers to democratize development of web applications much the same way that Microsoft Access democratized development of client/server applica

Today, building web applications requires expert developer with three, highly specialized skill sets:
  1. Back end server development (e.g., Java/J2EE)
  2. Front end client development (e.g., Javascript/Dojo)
  3. Web site administration.
PaaS offers the potential for general developers to build web applications without needing specialized expertise. This allows an entire generation of MS Access, Lotus Notes and PowerBuilder developers to start building web applications without the huge learning curve.

PaaS Resources


Examples of PaaS solutions today include:
  • AppEngine from Google: based on Python and Django
  • Force.com from SalesForce: based on the SalesForce SaaS infrastructure and Apex language
  • Bungee Connect: visual development studio based on Java
  • LongJump: based on Java/Eclipse
  • WaveMaker: visual development studio based on Java and hosted on Amazon EC2
Other definitions for Paas are offered by Bungee, Salesforce and ZDNet.

12 comments:

Kantanu Kundu said...
This comment has been removed by the author.
Anonymous said...

a2zapps.com - Asia's First True Busines SaaS Platform- provides any kind of business solutions to bsuinesses of all sizes. Visit at www.a2zapps.com. For sample apps, visit at blogs.a2zapps.com

Peter Martin said...

Chris,
a very informative and succinct article. It really does put the power in the developer's hands.

ahodges said...

Chris - I enjoyed this post. I completely agree that PaaS offerings must be extremely scalable -we've spent a good bit of time outlining these same requirements. You might be interested to see how we compare ourselves among some of the others you've listed: http://www.workxpress.com/partners/it-professionals

You've made some really great points here. And because of that, I'd love to hear your thoughts on a blog our President and CEO, Treff LaPlante, posted earlier today. He asks what this all should mean to Channel Partners, how can we make this easier for everybody and "if you build it, will *they* [really] come?" http://www.workxpress.com/content/channel-partners-cloud-manifesto

I'd appreciate your feedback and further conversation on these subjects. Thanks! ~A

/follow me @WorkXpress

Christopher Keene said...

@ Peter, @ ahodges - yes, PaaS offers a great deal of power, but there are a number of barriers too, such as who owns the data and how the PaaS vendor can overcome security and business continuity concerns. In short, PaaS is very much a work in process!

Philipp Strube said...

Good post. I agree with you on your checklist point 2-4. But I wouldn't include the first one. Actually you don't really do so too, because as your first example you mention Google App Engine which has no browser based IDE.

A browser based IDE might be a good optional feature. I wouldn't force it on any developer though since I believe in the power of choice.

Because of that I wouldn't include it as a must have into the definition of PaaS.

Anonymous said...

Great insights! Good to see others pushing to make it better like http://www.force.com and http://www.openplatformasaservice.com

Wayne Byrne said...

PaaS and SaaS have been really hard to summarize and easily explain. All the way from complete cloud services like the Google app engine to codeless development platforms like www.GetIceberg.com

cobiacomm said...

PaaS has evolved over the last three years. An evaluation framework can help architects evaluate and select PaaS offerings. The evaluation framework can be used to shortlist PaaS providers, build questions posed in the Request for Proposal document, or generate use case scenarios. What are your thoughts about the 7 categories and 80+ evaluation criterion found within the Selecting a Cloud Platform white paper found at
http://wso2.com/casestudies/selecting-a-cloud-platform/

chaddad said...

Chris, i have been impressed by the original Wavemaker vision and your execution. The PaaS space has evolved significantly since 2009. A more current view of what is Platform as a Service can be found in my blog post

Ben Alvord said...

This post does a great job of summarizing PaaS, which is a tricky technology to describe. Many more providers have come onto the scene since this was originally posted in 2009, including Microsoft Azure and Mendix.

Katherine@RingCentral said...

Browser based tools and pay as you go billing. What more could any entrepreneur in the software development industry need?

Personally, I don't like using any tool that I am compelled to download. I think there should be options. I like browser based products because I can use them form anywhere, on any device.

If I start working on an application on one device, I can go somewhere and continue working when I have a free hour. Entrepreneurs want the ability to send and work with documents, or build applications from wherever they are and software like this allows them to do that.