Platform As a Service (Paas) Demystified
Total Page:16
File Type:pdf, Size:1020Kb
APPLICATIONS A WHITE PAPER SERIES IN THE FOLLOWING PAGES, WE WILL DISCUSS THE VARIOUS IMPLEMENTATIONS OF PAAS AND HOW THE RIGHT OPTION WILL ENSURE PAAS SUCCESS. WE WILL ALSO DISCUSS THE BENEFITS AND DRAWBACKS OF EACH OPTION. Platform as a Service (PaaS) Demystified SIDDARTH JAISWAR ATOS SYNTEL TABLE OF CONTENTS 1 EXECUTIVE SUMMARY 2 PAAS DEFINED 3 REQUIREMENTS OF AN IDEAL PAAS PLATFORM 4 CUSTOM PAAS 5 REFERENCE ARCHITECTURE FOR APPLICATIONS IN CUSTOM PAAS 6 COTS IMPLEMENTATIONS OF PAAS 7 CONCLUSION 8 REFERENCES Executive Summary In most private cloud implementation scenarios we came across IaaS (Infrastructure as a Solution) as the sole way of implementing cloud. In IaaS, the concept of very high scalability, reliability, availability and on demand provisioning is limited to hardware/virtual machines. Though implementing IaaS qualifies an organization to call itself “cloud-enabled,” there needs to be a PaaS (Platform as a Service) that augments the cloud efficiency to maximize return on investment and propel the organization further into the cloud maturity index. The goal of this paper is to enable organizations make an informed choice of PaaS that meets their requirements. On the following pages, we will discuss various strategies to ensure PaaS implementation success, as well as the benefits and drawbacks of each option. ©2018 SYNTEL, INC. PaaS Defined Cloud computing has widened its scope to include platforms for developing and implementing custom applications, a term called “Platform as a Service” (PaaS). PaaS applications are also suggested as on-demand, web-based or Software as a Service (SaaS) option. However the most comprehensive definition is provided by Wikipedia, which says: Platform as a Service (PaaS) is the delivery of a computing platform and solution stack as a service. PaaS offerings facilitate deployment of applications without the cost and complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities, providing all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely available on the Internet. PaaS offerings may include facilities for application design, application development, testing, deployment and hosting. This includes the scope of application services such as team collaboration, web service integration and marshalling, database integration, security, scalability, storage, and developer community facilitation among others. These services may be provisioned as an integrated solution offering over the web. In simple terms, PaaS provides a runtime environment for cloud applications. It refers to the almost negligible need to buy software, hardware and all related services since these are available on the Internet in a more “public cloud” manner. In a private cloud setting, one would still need to buy hardware and software to build the infrastructure, but PaaS will help manage and utilize it in a manner that meets cloud standards. In the next section, we will discuss the cloud standards that any PaaS platform must implement. Additionally, in private cloud scenarios, these services might be available through Intranet or other means. After looking at the PaaS platforms available today, it appears that most true PaaS platforms are provide a runtime environment for applications developed for cloud. However, some PaaS providers target the development environment and provide an entire solution stack that can be used to build, test, deploy and manage code in the cloud. Those providing development and testing services look more like SaaS — offering development or testing tools on the cloud. Although this is still a topic of debate, for the purposes of this paper we consider PaaS to be a runtime environment for cloud applications, and we will discuss the requirements and architecture of a PaaS platform. Requirements of a PaaS Platform As stated above, the main objective of PaaS is to improve the efficiency of the cloud and maximize its benefits. Keeping this objective in mind, below are the requirements of an ideal PaaS platform: • High Scalability and On Demand Provisioning provides only availability. In this scenario, whenever there is a request Infrastructure as a Service (IaaS) provides scaling and on-demand for tax calculation the cloud will ensure that some service is always hardware provisioning. In terms of cloud, this scaling is possible up and running to receive this request. However, other processes until the last hardware resource is available in cloud. Likewise, PaaS running on the same computing environment could cause the service is expected to scale applications across the hardware and the extent to take a long time to respond and the request to time out. In this of scaling can be stretched to include the last hardware resource case, the request initiator would see an error page. available for deployment. This provides users of PaaS a feeling of Now, had the cloud been reliable, it would have sensed that the infinite scalability. In addition, the application provisioning should service was not responding within the specified time and would be an automated task that needs no IT intervention for deployment have tried to execute it in another computing environment. In this and delivery. case, the user would have received a response and not an error. A successful PaaS platform should provide this reliability to all services/ • High Availability components deployed and running under them. PaaS platforms should provide a runtime environment for applications that features failover and load balancing capabilities. The • Optimal Usage important question is “how is it different from a traditional clustered, One of the core requirements of any cloud computing platform load-balanced environment?” is optimal usage of resources. In the case of PaaS, optimization The answer is that failover and load balancing capabilities should specifically applies to resources utilized for executing applications. be scoped across the cloud rather than a few dedicated machines, To apply resource optimization, the PaaS platform should have as is the case in a traditional environment. This is over and above components that monitor application execution and usage. Another the hardware availability provided by IaaS. Thus, by deploying a purpose of monitoring is to provide chargeback to the users. The PaaS platform, application availability is guaranteed in the event of second reason is undecided about being required across all scenarios application runtime breakdown and not infrastructure breakdown. but the former is certainly needed. Let us see how this requirement differs from its applicability to a • High Reliability traditional deployment. In traditional deployments, applications are Reliability is often used interchangeably with availability. Though load balanced using traditional hardware and software load balancers the motive of both is to provide a failover, there is a fine line that that monitor a few application servers and distribute the load using distinguishes one from the other. This difference can be made clear various load balancing strategies such as “round robin” or “least by means of an example: recently used.” In the PaaS context, since PaaS is the runtime for In the case of a business service that calculates an individual’s federal the individual services of an application, load balancing should be and state taxes, let’s first assume it is deployed in a cloud which more granular. Here PaaS should monitor each service/component within the application based on different parameters (number of • Admin /Management Console and Reports requests being serviced, CPU usage of the VM running the machine, PaaS platforms should include some form of a user interface etc.) and then decide on the best candidate to service the incoming through which all application components/services can be tracked request. and monitored. In case of private cloud this UI may be integrated with the IaaS monitoring/tracking tool. Also this UI should have a PaaS is spread across the cloud, so this load balancing should not be provision for requesting for additional deployments of applications/ limited to a few machines, but to the entire cloud where the PaaS services along with access control for the same. PaaS platforms exists. The other optimization scenario where PaaS distinguishes should also have reporting capabilities to provide statistics related to itself from a traditional deployment is that of a service orchestration. Wherever services are executed in a workflow or process based application usage, execution and provisioning. If Reporting capabil- manner, PaaS should keep track of the current state of the workflow ities are not present in the form of UI then at least there should be or process to ensure that work completed during execution of a APIs or web service interfaces that users of PaaS can use to build process is not wasted if the process fails — rather than starting the their own reports out of PaaS. process all over. This has the potential tosalvage the computing loss due to failure and improve the efficiency of the cloud. • Multi OS and Multi Language Support An organization might have different OS and applications writ- • Auto-Scaling ten using different languages. PaaS platforms should enable The on-demand scenario could be based on a user request or in runtimes which can run on multiple OS (Windows, Linux etc.) response to an increased load. In the latter scenario, the cloud and should be able to