Comparative Study of Various Platform As a Service Frameworks

Comparative Study of Various Platform As a Service Frameworks

International Journal on Cloud Computing: Services and Architecture (IJCCSA) Vol. 6, No. 1, February 2016 COMPARATIVE STUDY OF VARIOUS PLATFORM AS A SERVICE FRAMEWORKS Mohan Krishna Varma and Eunmi Choi* DISC Lab, Graduate School of Business IT, Kookmin University, Seoul, South Korea *Corresponding Author, School of Business IT, Kookmin University, Seoul, Korea ABSTRACT Cloud computing is an emerging paradigm with three basic service models such as Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). This paper focuses on different kinds of PaaS frameworks. PaaS model provides choice of cloud, developer framework and application service. In this paper, detailed study of four open PaaS frameworks like AppScale, Cloud Foundry, Cloudify, and OpenShift are explained with the architectural components. We also explained more PaaS packages like Stratos, mOSAIC, BlueMix, Heroku, Amazon Elastic Beanstalk, Microsoft Azure, Google App Engine and Stakato briefly. In this paper we present the comparative study of PaaS frameworks. KEYWORDS Cloud Computing, AppScale, Cloud Foundry, Cloudify, OpenShift, Stratos, BlueMix, Heroku & Stackato 1. INTRODUCTION Cloud computing [2] is a widely used technology in which computers are networked to provide storage and compute services using virtualization technology. Cloud computing must satisfy five essential characteristics. They are on demand service, access network, resource pooling, elasticity and measured services. To achieve these five essential characteristics, cloud computing provides three kinds of service models: Software as a Service (SaaS), Platform as a Service (PaaS) [8] and Infrastructure as a Service (IaaS) [9]. Cloud computing service models are shown in Figure 1. Customer Relationship Management (CRM) applications are widely used services in the SaaS. Application platform delivered as a service is described as PaaS and it is used to deploy the user code. AppScale [3], Cloud Foundry, Cloudify and OpenShift open-source environments can be used as PaaS. IaaS is used to build their private infrastructure, which reduces the setup cost. IaaS can provide virtualized resources such as computation, storage and communication. Eucalyptus [1], open stack and cloud stack open-sources can be used to provide IaaS. Figure 1. Cloud computing service models DOI : 10.5121/ijccsa.2016.6103 23 International Journal on Cloud Computing: Services and Architecture (IJCCSA) Vol. 6, No. 1, February 2016 This paper will focus on the PaaS service model. It is easy to deploy, run and scale application using PaaS. Some of the PaaS have limited language and framework support. They do not deliver key application services needed for cloud applications. They sometime restrict deployment to a single cloud. Whereas open PaaS provides choice of cloud like private, public or hybrid, choice of developer framework like spring, ruby, or java and application services like mongoDB, MySQL, or PostgreSQL for running the applications. This paper deals with the architectural components of major open PaaS frameworks like AppScale, Cloud Foundry, Cloudify and OpenShift. And also given some explanation about PaaS frameworks such as Stratos, mOSAIC, BlueMix, Heroku, Amazon Elastic Beanstalk, Microsoft Azure, Google App Engine and Stakato. The paper is organized as follows. Section 2 introduces AppScale and its components, Cloud Foundry architecture and component explanation given in Section 3, Cloudify open PaaS is explained in Section 4, Section 5 deals with OpenShift, other PaaS frameworks are introduced in Section 6, comparison of PaaS frameworks are given in Section 7 and finally Section 8 concludes the paper. 2. APPSCALE AppScale [4] is a scalable, distributed, and fault-tolerant cloud runtime system that executes over cluster resources. It can be deployed on Xen [5], Kernel-based Virtual Machine (KVM), Amazon EC2 or Eucalyptus. AppScale initial design utilizes the standard three-tier web deployment model in the design. In the later design cycles more components are added to the AppScale. Table 1 shows the AppScale components, language used to design the component and their functionality. Table 1. AppScale Components Component Language Functionality AppController Ruby Executes on every node and starts automatically when the guest virtual machine boots AppLoadBalancer Ruby on Rails Processes arriving requests from users and forwards them to the application server AppServer Python Running through a number of distant hosts to support automated execut ion of applications Database Master Python Offers persistent storage for applications, processes protocol buffers from apps and makes requests on its behalf to read and write data to the data store Database Slave Python Facilitate distributed, scalable, and fault tolerant data management AppScale Tools Ruby Starts an AppScale system, deploys and tear down applications, queries the state and performance of AppScale deployment or application, and manipulates AppScale configuration and state 3. CLOUD FOUNDRY Cloud Foundry [13] is an open PaaS, which provides choice of clouds, developer frameworks and application services. Cloud Foundry makes application development faster and easier. We can build, test, deploy and scale applications with help of Cloud Foundry. It is an open-source project available through a variety of private cloud distributions and public cloud instances. Cloud Foundry started as a platform to deploy Java Spring applications on Amazon Web Services. VMware acquired the Cloud Foundry and made it into an open-source, multi-language and multi- framework PaaS. Cloud Foundry supports multiple languages and multiple runtimes such as Java, 24 International Journal on Cloud Computing: Services and Architecture (IJCCSA) Vol. 6, No. 1, February 2016 Ruby, Scala, spring and Node.js. Cloud Foundry can run on anything like laptop, desktop, micro cloud, private cloud or public cloud. So, it is called as open PaaS as shown in Figure 2. Cloud Foundry has three dimensions to the platform: choice of frameworks, choice of application services and the deployment choice. Cloud Foundry supports spring for Java, Rails and Sinatra for Ruby, Node.js and JVM languages like Groovy, Grails and Scala. It also supports Microsoft .NET Framework and became the first non-Microsoft platform to support .NET. Figure 2. Cloud Foundry as Open PaaS Cloud Foundry supports RabbitMQ for messaging, MongoDB and Redis for NoSQL, relational databases MySQL and PostgreSQL. Cloud Foundry can be deployed on notebooks through Micro Cloud Foundry. It is the complete version of Cloud Foundry designed to run in a virtual machine. It can also be deployed on Private Cloud or Public Cloud. These features made Cloud Foundry as a flexible PaaS. Cloud Foundry components perform routing, authentication, messaging, logging, application storage and execution, provide services and take care of application life cycle. The router routes incoming traffic to the appropriate component, usually the Cloud Controller or a running application on a DEA (Droplet Execution Agent) node. The User Account and Authentication (UAA) server work with Login Server to provide identity and authentication management. OAuth2 Server is uses as the user account and authentication server. Cloud controller and health manager components take care of the application lifecycle in the cloud foundry. Cloud controller is responsible for managing the lifecycle of applications. When a developer pushes an application to cloud foundry, application is targeting the cloud controller. Cloud controller then stores the raw application bits, creates a record to track the application metadata, and directs a DEA node to stage and run the application. Health manager monitor applications to determine their state, version, and number of instances. Applications state may be running, stopped, or crashed. Health manager determine applications expected state, version, and number of instances. It reconciles the actual state of applications with their expected state. Health manager directs the cloud controller to take action to correct any discrepancies in the state of applications. The Droplet Execution Agent manages application instances, tracks, started instances, and broadcasts state messages. 25 International Journal on Cloud Computing: Services and Architecture (IJCCSA) Vol. 6, No. 1, February 2016 Application instances live inside warden containers. Containerization ensures that application instances run in isolation, get their fair share of resources, and are protected from noisy neighbours. Blob Store holds the application code, build packs, and droplets. Applications typically depend on services like databases or third-party SaaS providers. When a developer provisions and binds a service to an application, the service broker for that service is responsible for providing the service instance. Cloud Foundry uses a lightweight publish-subscribe and distributed queueing messaging system for internal communication between components. This internal communication performed via message bus. The metrics collector gathers metrics from the components. Operators can use this information to monitor an instance of Cloud Foundry. The application logging aggregator streams the application logs to the corresponding developers. Cloud Foundry components are shown in Figure 3. Figure 3. Cloud foundry components 4. CLOUDIFY Cloudify [14] is another open PaaS cloud application manager. It automates common processes needed to perform and to manage

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    12 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us