platform as a service

Platform as a Service in Cloud Computing

PaaS – Platform as a Service

what is platform as a service

As per NIST’s definition of Cloud Computing, Cloud has 5 essential Characteristics, 4 deployment models and service models.

NIST's Architecture of Cloud Computing (Source: NIST)

NIST’s Architecture of Cloud Computing (Source: NIST)

What exactly Service models mean? In plain English, Models which provides “Services”. We get Electricity as a service in our daily routine and we pay for what we use right?

Similarly we get “Services” from the Cloud Service Providers in different forms.

Service models are also known as SPI Model:

Different business objectives and different requirements results into different service models as described in following Figure:

Everything as a Service - XaaS

Everything as a Service – XaaS

So, let’s talk about Platform as a Service, commonly known as PaaS in the Cloud World.

What you get?

What is Platform as a Service

What is Platform as a Service

A computing platform includes some sort of hardware architecture and a software framework (including application frameworks), where the combination allows software to run. Typical platforms include a computer’s architecture, operating system, programming languages and related user interface (run-time system libraries or graphical user interface).

A solution stack is a set of software subsystems or components needed to deliver a fully functional solution, e.g. a product or service.

For example, to develop a web application, the designer needs to use an operating system, web server, database, and programming language. Another version of a solution stack is operating system, middleware, database, and applications.

What can you do?

Develop-> Deploy->Test->Deploy…

Which are the components of PaaS Platform?

Benefits?

  • Simple deployment
  • Zero CapEx Model
  • Complete support to the life cycle of building and delivering web applications
  • Built in scalability and elasticity
  • Agility
  • Lower Risk
  • No to software upgrades
  • More flexibility than SaaS

Challenges:

  • Security
  • Lock-in
  • stiffness of offerings

Examples?

  • GAE is more popular with individual Java, Python developers.
PaaS - Google App Engine (Source: Google)

PaaS – Google App Engine (Source: Google)

http://www.dreamwarestech.com/images/Gapp.png

  • Microsoft Windows Azure is targeting its pool of enterprise class users. ASP.Net (C#, VB.Net) developers will find easy to adopt it.
  • Amazon has also moved one stack up to offer its PaaS – Beanstalk (one more option for Java developers)
PaaS - AWS Elastic Beanstalk (Source: Amazon)

PaaS – AWS Elastic Beanstalk (Source: Amazon)

http://cloudcomputing.info/en/files/2011/01/clip_image001.png

To deploy Java applications using Elastic Beanstalk, you simply:

1.      Create your application as you normally would using any editor or IDE (e.g. Eclipse).

2.      Package your deployable code into a standard Java Web Application Archive (WAR file).

3.      Upload your WAR file to Elastic Beanstalk using the AWS Management Console, the AWS Toolkit for Eclipse, the web service APIs, or the Command Line Tools.

4.      Deploy your application. Behind the scenes, Elastic Beanstalk handles the provisioning of a load balancer and the deployment of your WAR file to one or more EC2 instances running the Apache Tomcat application server.

5.      Within a few minutes you will be able to access your application at a customized URL (e.g. http://myapp.elasticbeanstalk.com/).

  • CloudBees offers the only Platform as a Service that spans the complete develop-to-deploy lifecycle of Java web applications in the cloud – no need to worry about servers or virtual machines. The CloudBees platform delivers reliable and elastic on-demand resources, unlimited scalability, and a seamless transition from development to production. Pay only for what you use… and many subscriptions are free!

http://www.cloudbees.com/sites/default/files/dev_run_arch.png

  • CloudSwing: CloudSwing is a solution that allows you to deploy any application on any technology stack to any cloud, creating a fully flexible PaaS (Platform-as-a-Service). CloudSwing includes pre-built open source technology stacks for Java, Ruby, JavaScript, PHP and other languages. However, you can then tailor or customize those stacks to include any components that you choose – including open source and proprietary software. CloudSwing also helps you manage and monitor all of your applications across multiple clouds.
OpenSource PaaS- CloudSwing

OpenSource PaaS- CloudSwing

  • Cloud Foundry: SpringSource Cloud Foundry is the first self-service, pay-as-you-go, public cloud deployment platform for full-feature Java web applications that unifies the entire build, run, and manage application lifecycle for Java. Cloud Foundry offers complete application lifecycle management for running Spring, Grails, and Java web applications by integrating the world’s most popular Java web application technologies into an enterprise Java cloud platform that takes full advantage of the power of elastic cloud computing.
Choice of Public and Private Cloud

Choice of Public and Private Cloud

http://edigitales.org/wp-content/uploads/2011/04/VMware-Cloud-Foundry-600×450.jpg

  • VMforce: The fastest way to build enterprise Java apps. Build and run your enterprise Java apps without worrying about provisioning, maintaining, or scaling hardware, app servers, or databases. VMforce makes everything fast and easy.

* Develop locally in the Eclipse-based Spring IDE

* Code with standard Java, including POJOs, JSPs, servlets, Spring, and JPA

* Drag-and-drop your project to deploy to VMforce

  • AppHarbor: AppHarbor is a .NET Platform-as-a-Service. Developers push code to AppHarbor using either Git or Mercurial. AppHarbor then builds the code and runs any unit tests. If everything checks out, the code is deployed to AppHarbor’s scalable cloud platform.
  • A few of the India based PaaS providers like OrangeScape and Wolf frameworks are making waves for their 5G visual PaaS. OrangeScape apps can run on all the major cloud platforms – Google App Engine, Microsoft Azure, IBM SmartCloud, Amazon EC2 or data center- without having to rewrite applications.
  • Engine Yard and Heroku are leading cloud PaaS for Ruby on Rails (RoR). Heroku (acquired by saleforce.com) is also a preferred PaaS for Facebook apps creation.
  • PHP developers can choose between PHP Fogand CloudControl.
  • For a multi-language application platform explore DotCloud.
  • India based Ozonetel Systems offers KooKoo PaaS for cloud telephony service.
  • Open Platform as a Service: Open Platform as a ServiceTM (Open PaaS) is the original and only Platform as a Service in the world that is open, letting you use any tool and environment you like to create and deliver your applications and systems. OPaaS is like older Platform as a Service, except that it is just that – OPEN. You no longer have to live in a walled-garden. You can use any programming language you want, put your code on any server you want, use any database, etc. By addressing the limitations of PaaS, you now have a better way to leverage your existing and new code to create and distribute Web-based applications.
Open Platform as a Service (Source-Open Platform as a Service )

Open Platform as a Service (Source-Open Platform as a Service )

Open Platform as a Service

Platform as a Service, (e.g., Force.com, Google App Engine, Amazon Web Services) are closed systems which don’t let you choose the programming language, development environment, server(s), database etc. Open Platform as a Service is just that – “OPEN” and therefore lets you use any programming language, any development tools, any server, any database, etc.

Demo?

http://clean-clouds.com/2011/10/25/cloudbees-java-platform-as-a-service-sample-application-deployment-process/

References:

http://www.techno-pulse.com/2011/06/cloud-service-models-saas-paas-iaas.html

http://aws.amazon.com/elasticbeanstalk/

http://www.cloudbees.com/

http://www.openlogic.com/cloud/about.php

http://searchcloudcomputing.techtarget.com/definition/Platform-as-a-Service-PaaS

http://www.openplatformasaservice.com/opaas-eco-system.htm