This content is part of the Essential Guide: Developing cloud applications in the new IT era
Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Evaluating OpenShift vs. Cloud Foundry for open source PaaS

OpenShift and Cloud Foundry are two popular options for open source PaaS. Here's how to tell which one is right for your development needs.

It's difficult to change open source cloud development tools after integration is complete. Developers and IT staff must be comfortable using and supporting the tool -- and ready to commit to it long term. This requires extensive research of open source tools, as well as copious evaluation testing.

Cloud development platforms accomplish similar goals, but you still need to choose the right one for your unique business and development needs. Two of the most common open source platform as a service (PaaS) tools are OpenShift by Red Hat Inc., and Cloud Foundry by Pivotal Software Inc. To determine which is right for you, it's important to evaluate three key characteristics of each tool: the programming languages they support, their architecture and how they integrate with third-party tools.

OpenShift vs. Cloud Foundry: language support and features

You want to choose an open source PaaS tool that will support your current and future language preferences. OpenShift uses modules -- called cartridges -- that support versions of Java, PHP, Python, Perl, Node.js and database languages for MySQL, MongoDB and PostgreSQL. In addition, OpenShift supports tools such as Jenkins and Cron, as well as services including Oracle Business Process Management Suite and Red Hat JBoss Business Rules Management System.

By comparison, Cloud Foundry supports languages in the form of buildpacks, or scripts for compiling applications for the platform. These buildpacks include Java, Node.js, Ruby, binary, Go, PHP, Python and others. Users can also choose to write their own buildpacks.

Next, consider the essential features and capabilities you need in an open source PaaS tool. Remember, there could be open source and commercial versions of each tool, as well as hosted and local variations. For example, Red Hat offers OpenShift Online, and OpenShift Enterprise, which is hosted in the user's data center. Both provide a self-service development platform, multilanguage support, automation, collaboration, container portability and support for different cloud infrastructures.

Cloud Foundry offers features for security, monitoring and management, container portability, hybrid cloud support, automatic updates, as well as service integration for databases, analytics and other middleware.

Architecture and integration also key

Open source PaaS offerings are usually composed of multiple modules or components, so IT decision-makers should review each platform's architecture. For example, Cloud Foundry includes a router, authentication server, application lifecycle manager, application execution engine, service brokers, messaging, and metrics and logging elements.

OpenShift uses a radically different architecture. It's composed of individual nodes to hold application code and services, along with a series of individual brokers to manage the nodes and provision services. In addition, OpenShift's architecture includes a messaging system to tie the nodes and brokers together, and uses RESTful APIs to integrate with outside tools.

Open source development platforms often need to integrate with other tools to offer a complete feature set. For example, Cloud Foundry integrates with the following platforms and tools:

  • Diego runtime environment: this offers shared memory, workload scheduling and different container formats.
  • Lattice: a Pivotal tool for running containerized workloads in a cloud cluster. Lattice provides router, health, execution, storage and logging capabilities for Cloud Foundry.
  • Bosh: an open source tool for version control, deployment and lifecycle management of cloud services.

By comparison, OpenShift integrates with and relies on several tools, including RHC client tools to create, deploy and manage applications and JBoss Developer Studio to create web-based applications.

In addition to the open source tools mentioned above, organizations should also consider public cloud development tools from Amazon Web Services, Google App Engine and Microsoft Azure. But when evaluating any open source development platform, it's important to recognize the constituent tools involved -- especially if those constituent tools are third-party products.

About the author:
Stephen J. Bigelow is the senior technology editor of the Data Center and Virtualization Media Group. He can be reached at 
[email protected].

Next Steps

Three questions to ask your open source cloud vendor

Watch out for the open source cloud hidden costs

Test your open source cloud computing skills

New Cloud Foundry foundation sparks debate about fate of OpenStack PaaS

Dig Deeper on PaaS and other cloud development platforms