An open source Platform as a Service (PaaS) allows developers and users to contribute and share source code and extensions. The PaaS is either vendor-driven or standard-based.
A vendor-driven open source PaaS locks the developers and users to a vendor. The developers have limited controls over transferring applications from a vendor-driven open source platform to another one.
The standard-based open platform is vendor-agnostic and is more flexible; it aims to standardize the orchestration of automatic processes of life cycle management. Developers can transfer applications across the cloud.
Let’s take a look at five popular open source platforms. Note: Not all of these platforms work with OpenStack.
Vendor-driven open source PaaSs
Cloud Foundry (originally developed by VMware) gets source code from Ruby developers and users. This open source PaaS allows deployment of information systems to OpenStack, Amazon Web Services (AWS), vSphere, vCloud Air, and vCloud Director. The hosted services Cloud Foundry provides include MySQL (that can be used to develop SaaS applications), MongoDB (a NoSQL database) and RabbitMQ (a message broker to connect applications asynchronously). To make their job easier, PaaS developers get tools such as the command line tool, an Eclipse Plugin, a build integration tool, and an application scale tool. Competing with Cloud Foundry are AppScale, Heroku, OpenShift, and Google App Engine. Note: On December 9, 2014, the Cloud Foundry Foundation announced it will be managed as a Linux Foundation Collaborative Project.
Stackato (ActiveState) is a Cloud Foundry-based PaaS. Instead of contributing source code, you can choose open source projects from Stackato’s App Store. You can browse a number of open source projects written in a variety of languages and frameworks. For fast deployment, all you have to do is click a project.
If you’re curious, you can look at a project’s source code to find out how it is set up. You can decide whether to customize the project or use your own applications.
Three editions of Stackato are available:
- Stackato Micro Cloud: You want to deploy applications to a desktop virtual machine or try Micro Cloud on an Amazon EC2 Sandbox. You are limited to 4 GB memory, a single node, and community-based support.
- Stackato Cluster: You are a leader of a small team or a startup and want to build a small cluster to deploy your applications on your own infrastructure or public cloud. You are limited to 20 GB memory and community-based support. You can have as many nodes as you need.
- Stackato Enterprise: Your organization wants to deploy applications on a hypervisor or Infrastructure as a Service (IaaS) while taking advantage of auto-scaling. It offers configuration and production support with Service Level Agreements (SLAs).
You can use Stackato with OpenStack, vSphere, CloudStack, XenServer, KVM, HP Cloud Services, and AWS.
Apache Stratos (donated by WSO2) was donated to Apache as an open source PaaS in June 2013. It works with many application servers, databases, languages, and even legacy systems. You can set up partitions to control IaaS resources. WSO2 App Factory is available to help you accelerate life cycle iterations on the PaaS.
Contributors to this platform include developers from SUSE, Cisco, Citrix, NASA Jet Propulsion Laboratory (JPL), Sungard, and Engine Yard. You can use Stratos with AWS, OpenStack, and vCloud.
Standard-based open source PaaS
Cloudify (GigaSpaces) is based on the draft version of OASIS TOSCA (Topology and Orchestration Specifications for Cloud Applications). The technical committee for this vendor-agnostic standard was formed in 2012. Sponsors of the standard include CA Technologies, Huawei, IBM, NetApp, Red Hat, and SAP.
The standard doesn’t rely on any vendor’s technologies (e.g., hypervisor virtualization) to run the open source PaaS; it describes applications topologies as the foundation for workflows, which in turn serves as the building block for policies.
The standard addresses the issues of costly mistakes developers make when they manually:
- Set up monitoring alerts;
- Execute deployment policy;
- Collect and analyze logs; and
- Measure performance against service availability guarantees in SLAs.
To remove human intervention efforts, the standard aims to help PaaS developers automate the life cycle of deploying, scaling, patching, monitoring, and remediation across the cloud. Automation can be achieved by creating and using a library of cloud service templates that developers can use.
You can use the PaaS to test how well automation and orchestration processes are performing. Cloudify can automate deployment with OpenStack, AWS, CloudStack, Microsoft Azure, and VMware.
If you want to contribute and share source code, go for an open source PaaS. Be sure to check to see if it can cost effectively work with OpenStack or other IaaS clouds.
Note: The section about OpenShift was updated on December 12, 2014. The Cloud Foundry and Apache Stratos sections were updated on December 14, 2014. The Cloudify section was updated on December 15, 2014.