Quick viewing(Text Mode)

Platform As a Service (Paas) Demystified

Platform As a Service (Paas) Demystified

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 (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 implementation scenarios we came across IaaS (Infrastructure as a Solution) as the sole way of implementing cloud. In IaaS, the concept of very high , 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 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 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 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 .

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, 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 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 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, etc.) response to an increased load. In the latter scenario, the cloud and should be able to run applications created in different lan- because of its elastic nature expands and adds more resources to guages ( Java, .Net, C++ etc.). meet the increased demand. This requires the PaaS to auto scale the applications in the newly added computing resources.

PaaS — Bare Bones The requirements discussed in the above section comprise both essential and useful to have features. Organizations can choose to have a partial implementation of these mandatory features to meet their requirements of PaaS. This is because each organization might have varying needs with respect to scaling, availability and reliability.. Let’s examine what constitutes the bare bones of a home grown PaaS platform, by revisiting each of the requirements mentioned above, while trying to figure out which of these would have to be necessarily implemented and to what extent:

High Scalability & On Demand Provisioning: This is one of the most cloud) reliability. basic requirements of PaaS for implementation. However, the scope of scalability could be adjusted to suit the application need under cloud. Optimal Usage: This implementation could be confined to load Provisioning of applications has to be on-demand and without human balancing to give the cloud advantage, it has to be granular and should intervention. Without implementing these two aspects, deploying PaaS be able to load balance individual services rather than the runtimes that would become futile. these services run on.

High Availability: This prerequisite is also imperative but depending on Self -Service Portal: Instead of full-fledged dashboard, one could the concerned organization’s needs, one could end up with finite points provide a simple portal that provides UI to request for cloud resources of failure. This means, if the custom PaaS components that provide including applications/services deployed in the PaaS. availability are finite and if they all fail, there is a possibility of failure to accept request. The rest of the prerequisites may or may not be implemented in a custom PaaS and would depend on the specific needs of the user High Reliability: This precondition too can be exposed to finite points organization. of failure rather than infinite controllers providing infinite (scope entire

Reference Architecture for Applications in Custom PaaS

The diagram shown below depicts a typical logical reference architecture for a custom PaaS solution. The components and constituents of the PaaS platform depicted above represent the implementation of the minimal needs discussed in the previous section. There are two major groups of components and services that form the building blocks of a basic custom PaaS model.

These are the Communication Layer and Management Layer. The Communication Layer is responsible for meeting the availability, reliability and optimization needs of the applications running on cloud. The Management Layer comprises components and services that provide provisioning and management capabilities, thereby catering to scalability, on-demand and reporting requirements of the custom PaaS. The scale of deployment of these components across the cloud can decide the extent of failover provided by this architecture. This means that if these components are finite in number, one will get finite scalability.

Let’s have a closer look at each of these layers in the custom PaaS platform: Communication Layer PaaS Components This consists of components/ services that manage Cloud Hosted Applications/Services communication between the requests Configurator coming from the Virtual Image Application Runtime ( Java/.Net/C++) outer world to the business services/ components deployed in the cloud runtime. Alert &

These components/ Monitoring Load Balancer services ensure the Cloud Service Orchestration applications are Management Layer failure-resistant Cloud Service Interaction

and optimize Caching Security the execution of Messaging Monitoring & Management Service Portal these applications Provisioning Virtual Machine Management initiated through these requests. The following are the key components of this Private Cloud Infrastructure layer: Virtualized Infrastructure

PaaS Constituents

Load Balancer: This component keeps track of all application services • A configurable pool of services with settings for threshold and number of requests being serviced by each of them. This component • A service creator that creates services on increase in demand keeping handles availability, reliability and optimal usage aspect of the services. threshold in check Some of the key features to be implemented are: • Redundant instances to avoid failure due to unavailability of this • An http/https listener that can handle any http/https request component entering the cloud • Configurable rules to specify rules-related to routing of web requests Cloud Service Orchestration: One of the application service usage sce- to application service instances. For example, a rule which says route narios is where multiple services have to be invoked to complete a busi- the request to a service that has least CPU utilization ness process. As discussed in the above sections on requirements of PaaS, • Synchronization across various instances of load balancers under the optimal usage of resources is one of the key needs. Hence, under the cloud to ensure non duplication of execution and availability through cloud service orchestration, each execution is conserved and reused later redundancy of instances when the process has to be restarted in the event of failure. Here are the • A registry of currently running services and log/trace of each key features required to build this component: execution • Temporary to store intermediate state of a business • A way of registering services with the load balancer to ensure process availability and reliability of individual services. • A way to define a workflow/process • A pool of choreographers with ability to take over each other’s responsibility in the event of a failure Cloud Service interaction: Services deployed in the cloud do not have a permanent address as they might move from one VM to Caching: This simply said, is a common cache for the entire cloud. The another. This calls for a component in PaaS that knows at a given only difference from a traditional cache is that it may not reside on a point of time where all these service instances are running. Cloud single virtual machine and could be redundant to ensure maximum reli- Service interaction component ensures the interaction with these ability of the cache. The key features for its implementation are: services do not fail, thereby guaranteeing availability. The Load • Ability to cache objects in multiple locations balancer discussed above always interrogates the cloud service • Ability to update all cache locations interaction component to get a list of addresses of services deployed • Ability to configure number of cache locations in the cloud. Following are the key features to be implemented for • Use reliable messaging to synchronize cache across the cloud this component: • A reliable central registry of services and their end-points/addresses Messaging: This is a reliable messaging component. It is able to oper- • A poller that ensures the validity of each address ate from multiple virtual machines. It ensures there is no single point of failure and services can easily communicate with each other even if one Security: Depending on the security policy of the organization, this of these VMs fails. Here are the key features that need to be considered could be a federation service that talks to an on premise identity ser- when implementing this component: vice or could be an identity service on its own exclusively for the cloud. • Redundant queues and queue manager with synchronization across Following are the key features to be implemented for this component: all line ups to eliminate duplicate queues without compromising on • A federation engine that creates security token based on identity reliability service interaction • Ability to broadcast messages across the cloud • A cloud storage to store identity information in case of identity service inside cloud Virtual Machine Management: This component forms the media- • A UI to create identities in case of identity service inside cloud tion between the underlying solution and the application services. A usage example of this component is that, the load balancer could use it to query a virtual machine for its CPU utilization. Following are the key features to be implemented for this component: • Ability to interface with multiple (at least a couple) virtualization engines

Management Layer This layer provides monitoring and management capabilities to the PaaS. Most of the components used have an overlap with IaaS implemented for the cloud.

Provisioning: This component provisions application services based can define standard virtual machine images for the cloud. However, in a upon on-demand request made through the portal. This provisioning pure IaaS implementation these images would have no correspondence engine may be coupled with the VM provisioning engine to facilitate the to application services. The key features for its implementation are: creation of an integrated provisioning component. The key features of its • A reliable cloud store that allows storage of application images as implementation are: blobs • Ability to deploy application services on provisioned VMs • Provision to create new images and map them to VM profiles • Use of a cloud store to get application images to be deployed on VMs Management & Monitoring Service Portal: consists of a dashboard for monitoring application services and UI to provision new services. Alerts & Monitoring: This component specifically monitors the execu- Following are the key features to be deployed for this component: tion of the application services and alerts the stakeholders of any failures. • Simple intuitive user interface with different menus and screens for This again can be part of the organizational monitoring tool for the different roles cloud. Following are the key features to be implemented for this compo- • Application provisioning request screen nent: • Application event and health check screens for admin • Ability to send e-mail alerts and online messages to dashboard in the • Reporting capabilities related to execution of application services in event of failure of application services cloud • Monitor health (CPU Usage, inactivity etc.) of individual services All these components and services can be built by using open source through well defined interfaces technologies which provide avenues of customization related to • Monitor process execution and provide ways to intervene in the cloud. A classic example is tc Server, an offering from VMWare and execution of the process SpringSource, which is built by customizing tomcat, which is a Java based open source servlet-engine. RabbitMQ and MemCache being Image Configuration: This should ideally be part of the IaaS where one examples for messaging and cache respectively.

Commercial Off-the-Shelf Software (COTS) Implementations of PaaS With cloud adoption gaining momentum, it has led to many new providers entering the business of PaaS in recent times. Some of these providers are big players like , , and VMware and there are some small ones like Gridgain, Appistry etc. Some of these platforms are closed offerings where these PaaS platforms are only available on the providers datacenters like for example, . Some of these are available to be deployed in one’s private cloud infrastructure or any other infrastructure. Most of the PaaS vendors today concentrate mainly on providing deployment and application provisioning services. Let’s take a look at some of these providers:

• Windows® Azure: It’s a cloud services operating system that serves XML, and PHP as the development, service hosting and service management • Provides Windows Azure Table storage, which is a non relational environment for the Windows Azure Platform. These are some of scalable data storage alternative for applications hosted in Azure the important features of this platform: • Provides SQL Azure, which is the scaled out version of SQL • Provides on-demand computation and storage to host, scale, and Server for people who prefer to use RDBMS for data storage with manages web applications on the Internet through Microsoft® data size not exceeding 50 GB data centers • Supports applications developed using .Net, Java etc. Currently, the Windows® Azure platform is only available in Microsoft • Supports popular standards and protocols including SOAP, REST, Data Centers as part of their public cloud offering. In addition, applications deployed in Azure get locked into the platform – thereby Like the earlier two PaaS platforms discussed above, this one is also a rendering their porting to any other platform difficult. closed platform and not portable easily • : Google App Engine makes it easy to build an application that runs reliably, even under heavy load and with large • : It is an open source PaaS offering from VMware amounts of data. App Engine includes the following features: allowing easy deployment of cloud applications using Spring for • Dynamic web serving, with full support for common web Java developers, Rails and Sinatra for Ruby developers, Node.js and technologies other JVM frameworks including Grails. The following are features • Persistent storage with queries, sorting and transactions of Cloud Foundry: • Automatic scaling and load balancing • It includes a self-service application execution engine, an • APIs for authenticating users and sending email using Google automation engine for application deployment and lifecycle Accounts management • A fully featured local development environment that simulates • It includes a scriptable command line interface (CLI) Google App Engine on your computer • Provides integration with development tools to ease development • Task queues for performing work outside of the scope of a web and deployment processes request • Provides an open architecture for quick development framework • Scheduled tasks for triggering events at specified times and integration; application services interface and cloud provider regular intervals interface • No vendor lock for deployment on any cloud (both public and Applications deployed in Google App Engine run in a secure sandbox private) environment that provides limited access to the underlying operating • Provides a micro cloud version deployable on single desktop/ system. Just as Azure, the Google App Engine is available only through laptop for development Google data centers. There are also portability concerns relating to moving away from App engine because of the various proprietary/closed • Appistry: It comprises three products: Appistry Cloud IQ Engine, APIs of app engine, especially the data store. Appistry Cloud IQ Manager and Appistry Cloud IQ Storage. • Force.com: It is a cloud computing PaaS system from Salesforce. Together these three products bring together the capabilities of com, that developers use to build multi-tenant applications hosted PaaS. Some of the salient features of this platform are: on their servers as a service. This is the platform on which the • Ability to scale application across the cloud, synchronizing Salesforce.com CRM SaaS application runs. The same platform has versions throughout without any downtime, using the Appistry been extended for use to other cloud applications. Developers do not Cloud IQ Manager. provision CPU time, disk, or instances of running operating systems. • High reliability and availability of applications guaranteed by Instead, Force.com provides a custom application platform centered Appistry Cloud IQ Engine. on the relational database. Listed are some important features of • Reliability and availability of file system on the cloud by using the Force.com: Appistry Cloud IQ Storage product • Provides users a cloud-based environment for the rapid • Supports Java and .Net based applications development of web applications and web sites • Can be deployed in both public and private cloud infrastructure • Provides Apex and VisualForce languages for implementation of • Provides proprietary APIs for service interaction, but also offers applications’ business logic and user interface respectively means to avoid vendor lock-in using Spring framework. • Provides SOQL for querying the relational database. • Prebuilt application services, which can be directly included into It currently does not support any web protocol for deployment of web the application services directly inside its cloud fabric.

Conclusion PaaS can have varying implementations. There are many implementations available and one has to carefully analyze the target deployment (public or private), and the specific organizational needs before confirming the selection of PaaS platform.

In a simple scenario, a custom PaaS implementation would be best suited, whereas in more complex scenarios, a COTS product would be a better option. The general requirement to be fulfilled by all PaaS platforms is to provide a runtime that is more available, reliable, scalable and optimized as compared to a traditional application runtime environment. Also, the concept of a cloud runtime for applications is the primary or key requirement and all other things are secondary. Any PaaS that does not offer this is not a true PaaS. References

1. http://en.wikipedia.org/wiki/Platform_as_a_service 2. http://www.forceprepare.com/forcedotcom.html 3. http://en.wikipedia.org/wiki/Google_App_Engine 4. http://www.springsource.com/products/cloud 5. http://www.neovise.com/paas-providers about Us

Atos Syntel is a leading global provider of integrated information technology and knowledge process services. Atos Syntel helps global enterprises evolve the core by leveraging automation, scaled agile and cloud platforms to build efficient application development and management, testing and infrastructure solutions. Our digital services enable companies to engage customers, discover new insights through analytics, and create a more connected enterprise through the . Our "Customer for Life" philosophy builds collaborative partnerships and creates long-term client value by investing in IP, solutions and industry-focused delivery teams with deep domain About the Author knowledge.

Siddharth Jaiswar is Principal Architect with To learn more, visit us at www.atos-syntel.net Atos Syntel's Cloud Computing Center of Excellence. He is a Sun Certified Enterprise Architect (SCEA) and has extensive experience in design-ing and architecting Java/J2EE solutions.

Siddarth leads Atos Syntel's Private Cloud Center of Excellence, using vFabric, Appistry and other best-of-breed private cloud platforms to architect private cloud solutions for Atos Syntel clients. He also leads Atos Syntel's Cloud Consulting practice.

For more information, visit us at www.atos-syntel.net