Industrial Internet Application Development
上QQ阅读APP看书,第一时间看更新

Platform as a Service (PaaS) 

Developing applications using microservices is very complex since microservices are numerous, polyglot (having many different technologies) and distributed in nature. To successfully develop, deploy and run at scale a choice of good Platform-as-a-service (PaaS) is essential. 

 PaaS provides core application infrastructures, such as application runtimes, persistent stores and messaging services in such a way that microservices developers can focus on the core application aspects rather than worrying about the infrastructure operational burdens. A robust PaaS also eliminates all manual actions and increases the quality of service (reliability, availability, scalability, and performance). The key characteristics of a typical PaaS environment are automatic deployment, provisioning, and support for full-stack microservices. PaaS, in its core, provides many tools to support various aspects of application infrastructure, such as service registries, metadata services, discovery services, logging services, monitoring services, service gateways, and routers for load balancing. In addition, PaaS also provides a robust security infrastructure to support authentication and authorization for microservices to connect with each other. The following example shows a typical PaaS infrastructure, along with an ecosystem of microservices interaction to form an IoT application:

PaaS infrastructure along with an ecosystem of microservices' interaction to form an IoT application

PaaS fits perfect with any microservices applications in which a typical application is made up of many small microservices, and uses service composition to connect different microservices' endpoints, and realize a fully functional application. Microservices leverages PaaS infrastructure in various ways, such as registering service endpoints for seamless discovery, adding security to the endpoints, handling failures using circuit breakers, and offloading the scaling and load balance to the PaaS infrastructure.