Enterprise PaaS Reference Architecture
Cloud is a realistic and game changing opportunity for all industries.
Cloud Adoption Trends : Industry Wise
PaaS Building Blocks
The following diagram depicts the PaaS building blocks
PaaS Reference Architecture
PaaS Cloud delivery model exclusively focuses on application development & delivery. PaaS advocates a new kind of development based on native support for concepts like agile development, unit testing, continuous integration, automatic scaling, while providing a range of middleware capabilities. Applications developed on these can be deployed as services and managed across thousands of application instances, which are referred as Nodes.
Fig : Paas Reference Architecture
The description of significant PaaS architecture components is described below,
Application Layer: Reusable components for the reconstruction of Native components in the Cloud
Resilience: The circuit breaker pattern is commonly used to ensure that when there is failure that a failed service does not adversely affect the entire system. A circuit breaker is an always-live system keeping watch over dependency invocations. In case of a high failure rate, the circuit breaker stops the calls from going through for a small amount of time.
Service Discovery: In a modern, cloud-based microservices application, service instances have dynamically assigned network locations. Moreover, service instances change dynamically because of auto-scaling, failures, and upgrades. Consequently, client code needs to use a more elaborate service discovery mechanism to identify the available instance
Configuration: Externalizes application configuration to centralized repository across all the environments. Decouples the configuration from the implementation and possible to update the configuration without impacting any of applications. Each update on the configuration files in the repository is automatically propagated to the running application instances.
Processes & Integration: transversal solutions which facilitate the implementation of business processes, and integration between the various services making up the system.
Messaging: Provides stable communication patterns that scale across multiple network topologies. It supports communication via point to point or pub sub model. Applications are likely to be written in multiple programming languages, it is necessary that communication be “polyglot” and therefore “data centric”. Provides maintainability, scalability, efficiency, robustness for applications.
Logging & Metrics: System for aggregating and streaming logs and metrics from all applications. Metrics are important to measure and monitor an application/service health and performance. Few critical metrics to be captured are, Service/System availability, Reliability, Response Time, Throughput/Bandwidth, Capacity, Scalability, Latency etc. Also, logs from all the applications will be aggregated and can be used or archived by third party applications for further analysis.
Recommended by LinkedIn
Security: Responsible for authentication and securing the service endpoints. Other aspects like access control, encryption types used are also covered
Application Framework: Provides various platform runtimes for cloud native applications to execute. Provides visual assembly capability to assemble an application on cloud
Data Layer: Flexible, scalable information storage, together with the tools necessary to exploit and obtain the maximum value from data.
IaaS: providing self-service for infrastructure elements which sustain the application components.
Containers as a Service: it allows to have a massively scalable and easily automated and replicated execution environment.
Zero Downtime Deployments: Is about frequently deploying a new version of service without impacting the availability of the service. Multiple configurations required to be done in PaaS to achieve zero downtime deployments.
Failover & Recovery: Deals with Failover and disaster recovery strategies and configurations to be implemented.
Scaling: Responsible for scaling the application(s) when required. Deals with scaling strategies and configurations
Security Patching: Responsible for applying security patches to various components of the platform
Platform Upgrades: Responsible for applying product upgrade patches as required
Cloud Services: Any external dependency that the cloud native application has is a backing service. Cloud service will be plugged to the cloud native application using the PaaS application framework. User defined services can also be plugged to the cloud native application as Cloud service. This might depend on the PaaS platform in question. The categories of Cloud services are database, Analytics, big data, object stores etc.
Operation: assuring that the system can be monitored and managed in a simple way by the operations team.
Key Considerations of Choosing PaaS
Summary
In summary, PaaS is a computing platform that enables quick and easy creation of web applications without the necessity of buying and maintaining the software and infrastructure underneath it.
From the industry adoption statistics (shown above), we can clearly make out that PaaS adoption is picking up very rapidly. Enterprises envisage the benefits PaaS provides in terms of relieving from Capex and Opex to deliver business services. PaaS enables the enterprise application to be ‘kind of cloud’ agnostic and can enable applications to be run on any cloud platform whether public or private. This means that a PaaS application developed on Amazon AWS can easily be ported to Microsoft Azure to VMWare vSphere to Red Hat RHEV etc.
PaaS is useful when multiple developers are working on a development project or when other external users need to collaborate with the development process. i.e. it is best suited for agile software development, because it eases the difficulties around rapid development and iteration of software.
Enterprise Cloud Portfolio Manager at DuPont
3yDetailed and Informative!! Thanks Dr. Gopala Krishna Behara