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:- Browser-based development studio - if you have to install something on your computer to develop applications, that's not PaaS!
- 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!
- 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!
- 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 applicaToday, building web applications requires expert developer with three, highly specialized skill sets:
- Back end server development (e.g., Java/J2EE)
- Front end client development (e.g., Javascript/Dojo)
- Web site administration.
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