To complete this series, I have written the current post to describe the "middle-layer" of cloud computing: PaaS.

Platform-as-a-service (PaaS) is a category of cloud computing services. From architectural view, it is situated between IaaS (lower layer) and Saas (higher layer). PaaS enables to cloud consumers the creation of software using tools and/or libraries, as well as, it guarantees the continuity of software building cycle with tools for testing and integration. In addition, PaaS providers provide the networks, servers, storage, and other services required to host applications.

The flexibility of PaaS packages helps to abstract the implementation and deployment of applications from the complexity of buying and managing the underlying hardware and software and provisioning hosting capabilities.

My first "cloud" project consisted in moving a legacy application to cloud. The purpose was to implement a Software-as-a-Service based on an existing java servlet application. The first step was to select the suitable Platform-as-a-Service which guarantees a soft migration of the web application. The multiple PaaSs existing in the market made the choice very difficult. Therefore, I decided to draw up a comparative table following predefined criteria. Each PaaS got a rate for every criteria between 0 and 5. +Cloud Foundry and +OpenShift were the best platforms that matches to my requirements because they gathered the important average which was calculated based on coefficient that indicates the importance level.

Pivotal Integrates natively ClearDb in the market place. Additiannaly, any other mysql service can be used

5

Lock-in Level

1,5

There is no lock-in with OpenShift. Customers can always choose to use the free open source upstream OpenShift Origin distribution if the choose. And OpenShift makes use of standard, unmodified application runtimes like JBoss, Apache, Tomcat, etc. so your apps can be easily migrated off of OpenShift if needed.

4,5

No lock-in

4

Hybrid PaaS

1,5

Red Hat supports both OpenShift Enterprise for Private PaaS and OpenShift Online for Public PaaS.

3

CloudFoundry can be public, private, hybrid and micro

4

Performance and Scalability

1,5

The OpenShift platform is proven to perform at scale, with hundreds of thousands of applications live and running in OpenShift Online Public PaaS and numerous enterprise customers deploying OpenShift Enterprise Private PaaS.

4

4,5

Community

1

Red Hat has built a huge developer community around OpenShift Online with tens of thousands of registered users and over a million apps deployed. See our Developer Spotlight here: https://www.openshift.com/developer-spotlight. OpenShift Origin (http://openshift.github.io/) is the upstream open source contributor community for OpenShift. See http://bit.ly/1m2Mky6 for details.

4

over 10x on total open source contributors to a PaaS project with 1,213 individuals

5

Private Cloud

1

OpenShift Enterprise can be deployed in a customer's Private Cloud environment or on-premise data center.

4,5

CloudFoundry can be installed in any server

4,5

Eclipse IDE Integration

1

Full Eclipse IDE integration via JBoss Developer Studio plugin

4

Natively Integrated with Spring Tool Suite IDE

4

Major Firmware Support/Partner

1

Red Hat

4

The Cloud Foundry open-source project looks set to become a standard piece of technology in the thriving distributed systems ecosystem: its main backer, Pivotal, has persuaded IBM, HP, SAP and Rackspace to join a new foundation dedicated to the tech.

Note: This comparative post was written following personal requirements. Certainly, non-mentioned criteria or questions would be better to use them to elaborate a more objective comparative (someone asked : your questions don't make it seem like this is about a PaaS; where is health management, logging services, ID management?). Same for the others PaaS. Indeed, in my case, the main issue was to move a legecy/existing java application to cloud.

When I decided to move to "cloud", I had a blurred view of cloud computing meaning. On the one side, I heard about the Amazon Cloud (AWS) which provides a large computing capacity much faster and cheaper than building a physical server farm. On the other side, many people cited gmail, google docs (google drive now) or drop box as major samples of cloud computing. As you see, there is large difference between those examples. The first one is showing a powerful technical platform that only high skilled people can manipulate it, while the second is dealing with scalable public online services.

After long research, I can summarize three major things that helped me to understand cloud computing:

Cloud Architecture

Cloud Patterns

Mechanisms

Cloud Architecture

The “cloud” in cloud computing can be defined as the set of hardware, networks, storage, services, and interfaces that combine to deliver aspects of computing as a service. Cloud services include the delivery of software, infrastructure, and storage over the Internet (either as separate components or a complete platform) based on user demand.

It is often described as a stack, as a response to the broad range of services built on top of one another. Three major layers compose this stack

Infrastructure-as-a-Service (IaaS) is the hardware and software that powers it all – servers, storage, networks, operating systems ...

Platform-as-a-Service (PaaS) is the set of tools and services designed to make coding and deploying those applications quick and efficient.

Software-as-a-Service (SaaS) applications are designed for end-users, delivered over the web

Cloud Patterns

Cloud Computing is composed by multiple patterns modeling the architecture from different sides, dynamic or static.

Cloud patterns summarize the different cloud components which verify the requirements of automated administration, rapid provisioning, shared resources … These patterns are using different technology mechanisms (newer and older) to build the cloud. Indeed, cloud patterns suggest flexible and scalable solution to the project requirements.

Software-as-a-Service is one of the compound patterns. It is composed by a set of complementary and interlinked cloud patterns. Following UML Components diagram that shows SaaS composition.

Mechanisms

Technology mechanisms represent computing models or ways to implement platforms. Cloud computing, specially cloud patterns, requires the establishment of a formal level of mechanisms to be able to explore how a given pattern can be applied differently via alternative combinations of mechanism implementations.