The New New
Great post and interesting discussion by all.
Eric Schmidt used to say in reference to Java: "in software we often solve problems by creating a new layer of abstraction which then allows for innovation both above and below the line." In Java, this was the JVM. We are seeing this happening in cloud computing, and get to ask the question - for cloud-based application development, what's the platform?
It's clear that building on cloud services for compute, storage, networking, etc. accelerates application development, since we don't have to worry about building to the underlying infrastructure. Whether to build to a virtual machine, container, or PaaS model, however isn't quite so clear cut. Coming from Sun, I saw many of the advantages of Solaris containers and then was somewhat surprised to see the the success of the virtual machine model at AWS.
Lesson learned: sometimes having a familiar environment, even if it means bringing your own OS, may involve more work, but it's at least the work that you know. Now that containers are coming back, our choices in cloud computing are expanding again. Both models, including PaaS will survive, as they address somewhat different problems.
The interesting shift will come as we continue to see the emergence of new models, platforms, and services to address the development and operational needs of large scale cloud-native web apps.