I'll try to answer the pros & cons of PaaS with following perspectives:
1. General Overview
I used to explain SaaS/PaaS/IaaS with the analogy below.
(1) IaaS: Provide virtual hardware (server/storage/network); Virtual hardware in the cloud.
(2) PaaS: Provide Dev & Op platform without worrying about underlying infrastructure; Middleware in the cloud.
(3) SaaS: On-demand software delivered over the web; Application in the cloud.
As you can see, PaaS provides you a complete operational and development environment for the deployment of your applications/services. You are somehow stuck with vendor's specific development platform, program model, and services, but the vendor takes care of all provisioning, scaling details for you.
IaaS provides full control of you own VM, they are basically assuming you know exactly what you are doing when it comes to all aspects of the virtual machines, including networking, security, patching, and installation, etc. That's all before you have even managed to get your application/service uploaded on their environments. On the other hand, PaaS provides intelligent deployment mechanisms, as they tightly control the offered environments. The classic staging and production deployment scenarios are made easy for PaaS. If memory serves, MSFT Azure provides best zero downtime feature (In-place Upgrade) in this regard.
3. Developer Experience
The programming languages and model/middleware would be quite different. For IaaS, it's generally the same with the past experience. However, there is generally no local development or sandbox where you can develop and test your code locally. PaaS providers (GAE & Azure) have done this well by taking the full development life cycle into account. Both of them provide a local simulation environment to let you develop and test your program locally over most of their available services. Azure is the best choice if you are developing with MSFT tools/technologies, and Microsoft is trying hard to support non-Windows guys. In short, PaaS (GAE & Azure) focuses on making development easy, but somehow limit your options. IaaS (AWS) focuses on making development flexible, but complicates the development process. In the past, I had to choose IaaS over PaaS in a project due to no "long-polling" mechanism supported in PaaS, and I can achieve that with IaaS.
4. Target Segment
The target segment of your application/service should be taken into consideration. Vendor lock-in issue of PaaS is always an concern for some business. If you are developing for enterprise scenarios, how serious the PaaS providers played in this game is also a factor.
My apologies, but the question is not clear to me. There are over a dozen PaaS software vendors and cloud providers that have offerings in this space. Is the question to compare them all, or a subset? The real answer in any case would be quite lengthy. Docker is the latest entry and is getting a significant amount of press at the moment, so a pro and con comparison between Docker and, say, CloudFoundry or OpenShift might be a more appropriate question. Just sayin.
Assuming that you have the requirements for the applications you will use well defined then it comes down to the business case. I recently built a service and with the SLA requirements and projected usage, I had to opt to build out the service in our own data center. In the end, via refining the business case, we chose to build it using OpenNebula which brought our internal costs down.
Main cons could be that when you have a solution build for you, it's probably not going to work. Also the IOPS could be a problem, since there is a limitation on that part, but a good Cloud Architect knows this.
Main Pro's is that you can test it, without any worries and that resources are huge.
What I see from own experience is that many companies don't (want to) see the option in the public cloud, even though a lot is possible in SaaS. If SaaS doesn't work the best way is to go to PaaS, IaaS and eventually to On Premise.
Hope this answer ansers the question.
The Cloud Expo in New York City was this week. The conference was dominated by private and hybrid cloud topics. There were several private Platform as a Service (PaaS) vendors attending whom I spent a great deal of time talking to as I walked the floor. It seems these days that many enterprises default to private and hybrid clouds and therefore insist on private PaaS as well. It is critical that consumers of PaaS services understand the pros and cons of both public and private PaaS before making a commitment to a PaaS deployment model.
Between AWS and Azure, what is your platform of choice? What makes it your preferred platform?