Cloud Zone is brought to you in partnership with:

Christopher Keene is an entrepreneur, executive and educator. He is the VP of Cloud Computing Solutions at VMWare. Chris is a DZone MVB and is not an employee of DZone and has posted 38 posts at DZone. You can read more from them at their website. View Full User Profile

What Is Platform as a Service (PaaS)?

  • submit to reddit

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
  • 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
Published at DZone with permission of Chris Keene, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Ray Walker replied on Thu, 2009/03/26 - 12:19pm

I'm not sure how Google AppEngine fits the definition since it starts with a toolkit you download, install and then develop and test with.

Thierry Lefort replied on Fri, 2009/03/27 - 3:31am

GoogleAppsEngine propose GoogleSite which combined with GoogleDocs fits to this PaaS definition. But GoogleAppsEngine also provides a Python development toolkit which does not enter this definition.

Ray Walker replied on Fri, 2009/03/27 - 9:50am in response to: Thierry Lefort

Thank you

Rodrigo Coutinho replied on Wed, 2011/02/23 - 8:51am

I don't agree that to have PaaS you need a development environment in the browser... One example is Heroku, a RoR PaaS provider. And even with its integration with GoogleSite and GoogleDocs, I would also say that GoogleAppsEngine does not provide a browser based development environment.

As for the benefits you mention for PaaS, I think you're highlighting more the benefits of MDD and SDLs. You can have PaaS and still need to do low level development (just see the "Hello World" example for GoogleAppEngine...)

I would say the main advantages of PaaS are:
  • Cost reduction: Since the platform is shared with other businesses, so is the cost.
  • Flexibility: Grow your platform's capacity as needed (billing is usually per user or CPU)
  • Accessibility: Because it's in the cloud, you can access your platform from everywhere, including mobile devices. Great for geographically distributed development.
  • Centralized and managed development: Although you can distribute development, you get to centralize control. Great for a Federated IT model.

On a side note, here's a blog post I wrote a while on some things you need to consider when picking a cloud-ready platform.

Sirikant Noori replied on Fri, 2012/03/30 - 12:48pm

Platform as a Service (PaaS) is a way to rent hardware, operating systems, storage and network capacity over the Internet. The service delivery model allows the customer to rent virtualized servers and associated services for running existing applications or developing and testing new ones.

Happy writing :)

Java Exam

Joay Sim replied on Sun, 2013/02/17 - 5:29am in response to: Ray Walker

 It proved to be Very helpful to me and I am sure to all the commentators here!

  Discover Moonba

Ron Sim replied on Wed, 2013/02/27 - 8:01am in response to: Ray Walker

 Absolutely fantastic posting! Lots of useful information and inspiration, both of which we all need!Relay appreciate your work.

           tooth implants uk

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.