Here’s a list and short description of the most popular open source cloud options in IaaS, PaaS and SaaS.
One of the key areas in which open source has contributed to flexibility and cost savings, along with greater community support, is in cloud computing. Several projects launched in recent years have influenced the three basic building blocks of the cloud, which are infrastructure, the platform and the applications. This article lists out the most popular open source cloud options in Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS).
Infrastructure as a Service
OpenStack: OpenStack is a leading, widely used open source cloud infrastructure solution. NASA and Rackspace jointly started it with a few components and now it has grown into a mammoth project. With number of contributors increasing everyday, OpenStack is completely community driven project with support from developers as well as many industries.
Its major components include the Sahara project for data processing capabilities, Nova (which is responsible for computing), Neutron for networking, Swift for providing object storage, and Cinder, which takes care of providing block storage to virtual instances. Other components include Keystone, which ensures identity authentication; Glance, which provides storage space to hold images and VM templates; Horizon to provide a decent dashboard to manage all resources for admins and users; Ceilometer to provide the resource utilisation stats, which is, in turn, used for billing; Heat for automation/ orchestration; and Trove for database services. Do refer to http://www.openstack.org/ and code can be found in GitHub: https://github.com/openstack/
Eucalyptus: Eucalyptus is another open source project that provides cloud infrastructure as a service. It was started as a research project at the computer science department in the University of California, Santa Barbara. Though this product was eventually commercialised, an open source version is still maintained. The current release is Eucalyptus 4.0. It is the ideal choice for hosting Infrastructure as a Service due to its ease of use and AWS API compatibility. Eucalyptus consists of six distinct components that are grouped into three separate levels, i.e., the Cloud Level, Cluster Level and Node Level. All these components interact with each other using SOAP messaging with WS-security.
CloudStack: CloudStack is open source software designed to deploy and manage large networks of virtual machines, as a highly available and scalable Infrastructure as a Service cloud computing platform. CloudStack development was started by Cloud.com. Later, in 2010, Cloud.com released most of CloudStack as free software under GNU GPLv3. Citrix purchased Cloud.com in 2011 and later donated CloudStack to the Apache Software Foundation (ASF). CloudStack supports most of the hypervisors: VMware ESXi, KVM, XenServer, Oracle VM and Hyper-V. It provides a rich, intuitive, Web-based user interface, command line utilities and a full-featured RESTful API for managing the compute, networking, storage and software entities in the cloud. The current stable release, Apache CloudStack 4.4.2, allows users to build feature-rich public and private cloud environments.
Platform as a Service
Cloud Foundry: Cloud Foundry is high on the list when it comes to choosing an open source PaaS in the industry. The project was developed by VMware and is now owned by Pivotal Software, which is a joint venture between EMC, VMware and General Electric. A huge community of Ruby developers and users supports the Cloud Foundry project. Some of the popular hosted services it offers are MySQL DB, VFabric Postgres, MongoDB, Redis and RabbitMQ. Cloud Foundry enables services that range from deploying applications to designing apps for the cloud, and comes with command line tools, an Eclipse plug-in and a built-in integration tool.
OpenShift: The Openshift PaaS offering is from Red Hat. The software that runs this service is open-sourced under the name OpenShift Origin and is available at GitHub (https://github.com/openshift/origin). It is a community-driven cloud PaaS. It provides a variety of languages, runtime and data layers including Java EE6, Ruby, PHP, Python, Perl, MongoDB, MySQL and PostgreSQL. More information can be found at https://www.openshift.com/products/origin.
Google App Engine: Google App Engine or App Engine provides a platform for developing and hosting applications in Google-managed data centres. A variation to App Engine is AppScale, which implements the Google App Engine API (https://github.com/AppScale/appscale/wiki). It executes over Amazon EC2, Rackspace, Google Compute Engine, Eucalyptus, OpenStack, CloudStack, KVM and VirtualBox. Applications can be written in most programming languages like Python, Java and PHP by using frameworks like Django, Flask, Spring and WebApp2. More information can be found at https://cloud.google.com/appengine/.
Software as a Service
MongoDB: MongoDB is the fastest growing database for start-ups as well as small to big enterprises. It allows users to create and scale databases on-demand on all the major cloud providers like Google Cloud Platforms, Amazon EC2, Rackspace Cloud, Windows Azure, VMware Cloud Foundry and Red Hat OpenShift. More information on cloud platform support and configuration details can be found at http://docs.mongodb.org/ecosystem/platforms/google-compute-engine/.
SugarCRM: This provides the Web application, Sugar, a customer relationship management system that is available in both open source and as commercial applications. Its functionality includes sales force automation, marketing campaigns, customer support, collaboration, mobile/social CRM solutions, etc. It can be hosted on major public cloud providers like Amazon Web Services, Windows Azure, Rackspace Cloud, etc.