Open Source in the Cloud

Both open source software ( OSS) and cloud computing continue to experience strong interest and growth despite the economic downturn. Clearly, both provide the promise of reduced operating and software licensing costs. For instance, corporations looking to reduce the cost incurred by Microsoft Office licensing are looking more closely at the open source OpenOffice alternative, or at Google's online application suite, Google Apps. There's understandable resistance to moving from the rich experience offered by Microsoft to these lower-cost alternatives, but resistance has a way of disappearing in the face of financial imperatives.

Cloud computing is often organized into three main segments. Software as a Service (SaaS), such as Google Apps or, provides fully functional applications over the Internet, with cloud-based storage and computing. Platform as a Service (PaaS) provides a ready-made, often language-specific application deployment environment. Microsoft's Azure and Google's App Engine are examples of PaaS. Infrastructure as a Service (IaaS) provides virtual computing services-hosts, storage and raw computing power-across the Internet. Amazon's AWS cloud is by far the most significant IaaS available today. While PaaS and SaaS represent largely proprietary environments, the IaaS world is demonstrating strong synergy between open source and cloud computing.

The software stacks deployed in Amazon and other IaaS implementations are heavily biased towards open source stacks such as LAMP (Linux-Apache-MySql-PHP/Perl/Python) and Ruby on Rails. Furthermore, there are several interesting and significant open source cloud software projects.

The Eucalyptus project (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) emulates the Amazon Web Services APIs and facilities. The Eucalyptus software can be implemented using Linux-based virtual machine clusters. Software solutions built on Eucalyptus can be redeployed in the Amazon cloud with a minimum of change and can leverage Amazon-oriented third party frameworks such as RightScale.

Canonical, creator of the popular Ubuntu Linux distribution, has announced that its 9.10 version (code named Karmic Koala) will incorporate the Eucalyptus software. Ubuntu has had most success as a desktop implementation of Linux, but has ambitions to become a significant server distribution as well. The ability to set up Ubuntu-based server farms exposed through a Eucalyptus-powered cloud is intriguing. The Amazon AWS compatibility provides the potential for moving seamlessly between a private Eucalyptus cloud and the public Amazon cloud.

The Enomaly Elastic Computing Platform is a commercially developed open source platform for creating "private clouds" that are dynamically scalable, virtual server farms running on your own hardware. Enomaly doesn't replicate the defacto standard Amazon AWS interfaces. Indeed, Enomaly is one of the key players-along with Google, IBM and Sun- formulating the "Open Cloud Manifesto." This manifesto calls for open standards for cloud computing allowing applications to be free to deploy on clouds, regardless of the underlying hardware or proprietary software layers.

Although Hadoop is not strictly a cloud computing platform, it deserves an honorable mention. The Apache Hadoop project provides a distributed file system and processing environment inspired by Google's MapReduce and Google File System (GFS) implementations. Hadoop provides much of the scalability, elasticity and fault tolerance offered by cloud computing environments, and is commonly used in conjunction with services such as Amazon AWS.

Cloud computing is one of the fastest-moving application technologies. As usual, some of the most interesting innovations are occurring in the open source software space. Many of these innovations will undoubtedly fall by the wayside; however, for all we know, some may become critical elements in our next generation computing environments.