PaaS services users are primarily application developers. To help developers build applications, we would consider the following design principles :
- Flexible: PaaS users' use case varies a lot. Therefore, being flexible to accommodate different architecture designs is essential. Users should be able to integrate the services with other services quickly. API management is needed for users to access te services from the applications. The flexibility also means the self-contained pricing and administration.
- Easy to Manage: PaaS users's focus is on the applications. Therefore, operations like keeping the service up and running, handling the back-end upgrades and maintaining the security should be simplified. A PaaS service would provide a robust system which is highly available, performs well and is cost effective. The service would hide the operation complexity, while providing a controlled operational access. Self healing capability is normally included, which means you have some redundancy in the service to avoid any single point of failure.
Some technologies are useful for building PaaS servcies:
- Container and Microservices: The container and microservices are used extensively used in PaaS to keep PaaS services flexible and portable. The microservices is used to build PaaS processes. The container is used to run applications. In the cloud, the container can be identified, configure and orchestrated to deliver results.
- Network: secure and low latency network drives the quality of the application created on top of PaaS.
- Resource management: cloud computing means to share resources. Resource management is needed to provide the resources, and ensure sharing of the resources without losing the performance.
Microservices describes a design approach for building the application itself, dividing the application into a series of separate processes, deployed independently and connected via service interfaces .
A Container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings .
- Practical Guide to Platform-as-a-Service Version 1.0, September 2015
- The Cost of DIY PaaS, January 26, 2016
- What is a Container, docker.com
- Design principles for Azure applications