PaaS can most dramatically improve the IT experience in four areas:
- Hosting/operations efficiency
- Application-centric management
- Development productivity
To do so, there are technical characteristics that PaaS frameworks should eventually exhibit. These are not technical characteristics of a given PaaS container, they are shared characteristics that go across all container types, no matter what the operational capabilities of the containers are.
Here is a rough and unorganized list of the desirable characteristics (meta-capabilities) of PaaS Cloud containers:
- An application component model that supports deployment/configuration across all PaaS container types.
- Explicit interactions/invocations between application components (resilient connections between component: infrastructure-level retry/reroute)
- Uniform and consistent request tracking across all components. Ability to intercept component-to-component communication.
- Short-term (or externally persisted) state so that all instances can be quickly redirected out of any one node.
- Subset of platform management interface exposed to consumer, along with out of the box application management. Application metrics consolidated at application level rather than node level.
- Consistent, model-based application management interface across all container types. Hooks for component code to provide its manageability in the same framework.
- Minimal footprint of any container node for limited patching requirements.
- Assistance for debugging platform-hosted code (see this entry).
- No encroachment of container technology on application contract (e.g. no forced URL structure).
- Application uniformly scalable to the limit of the underlying hardware (no imposed partitioning).
- Shared authentication / authorization / auditing across containers.
- Minimum contract/interface exposed by each container.
- Governance of application services, aligned (in model/protocols) with the container management interfaces.
- [UPDATE: need to add metering+billing as William Louth pointed out in a comment]
This applies across the board to public, private and hybrid PaaS. The distinctions between these delivery models are real but at a different level. The important thing is that the PaaS administrator is different from the application administrator in all cases. On the other hand, most of these technical characteristics are not achievable for lower-level Cloud resources (like virtual hosts and low-level storage) which is why the IaaS form of Cloud leaves the Cloud promise only partially fulfilled.