Friday, May 11, 2012

Cloud Software Stacks

The whole cloud software area is starting to take shape and looks like the future of the data centre. Data Centers will gradually evolve from physical machines to virtualized servers through to cloud architectures.
 Potentially Cloud software Stacks could become a one-stop software-bundle for the data centre, including hypervisers, virtualized operating systems and applications, management tools and APIs, monitoring, backup etc etc.
 So instead of sourcing different products from multiple vendors to build a data centre customers could "like microsoft office" get a complete data centre software bundle. No wonder vendors are keen to get into this product segment! But with so many products you have to try and pick a vendor that will survive.

Many cloud management products are still works in progress but common features are taking shape:
 - Support the major virtualization technologies (Xen, KVM, VMware)
 - Support or planning to support Public Cloud APIs (Amazon EC2/S3 vCloud)
 - Support for major linux distributions and some support Windows Servers.
 - Support SANs. (EMC etc)
 - Monitoring, metering & billing
 - Authentication (with support for LDAP and Active Directory).
 - Often have open source and enterprise editions.
 - Support for extending into a public cloud ("Cloudbursting")
 - One management tool for private and public clouds.
 - Migration of Machine Images between clouds.

It appears the Cloud Software Stacks are forming into three camps:

1. Amazon AWS Compatible clouds

Eucalyptus - Provides an Amazon AWS compatible cloud.
- Consists of Open Source and Enterprise Editions.
- The Open Source version targets Linux systems that use Xen (versions 3.*) and KVM for virtualization.
- The Enterprise version adds support for Windows servers, VMware virtualization technologies, SAN     Adapter, User and Group Management, Accounting and Quota Management.
- Currently it is being downloaded 10,000 times a month so it is popular.

Nimbula - Cloud Operating System is an automated cloud management system delivering Amazon EC2-like services behind the firewall.
- Commercial version only.
- Currently only supports Xen and KVM but VMware support is planned.
- Supports Microsoft Windows, Linux, Solaris, BSD and AIX servers.
- Offers an API, a command line and a web control panel but does not appear to offer public cloud API support.
- Is able to deploy a virtual infrastructure on bare metal so good for large data centers.
- This is a new product by from the original developers of Amazon EC2 so very good pedigree.

Amazon - Virtual Private Cloud

2. VMWare vCloud Compatible clouds

VMware vCloud Director has the following features:
* Supports multi tenancy/organizational isolation
* Allows for the creation of central application catalogs and personalization of templates
* Enables creation and deployment of vApps from catalogs/templates
* Controls user resource usage through roles/rights, quotas and leases
* Enables programmatic control through the RESTful vCloud API
* Provides an additional level of abstraction from underlying hardware

Launched at VMworld 2010.

3. Others

OpenStack based on NASA Nebula and backed by others like Rackspace is a promising open source initiative and maybe the future for other Cloud stacks to coalesce around.

Abiquo - the provision of physical infrastructure is completely separated from the virtual application infrastructure by a “Resource Cloud”.
-Community and Enterprise Editions.
-Supports Xen, KVM or Virtual Box, VMware and Microsoft’s Hyper-V all in the community edition. (formerly VMOps) - Massively Scalable Infrastructure Management.
- Has Community, Enterprise Edition and Service Provider Editions .
- Works with Xen and KVM hypervisors as well as VMware vSphere or Citrix XenServer.
- Own API but plan to implement Amazon EC2/S3 and vCloud on top.

OpenQRM - Next generation, open-source Data-center management platform
- supports VMware, Xen, KVM and Linux-VServer vms.
- supports major linux distribution like Debian, Ubuntu, CentOS and openSuse.
- Nagios integration for monitoring.

OpenNebula - Open-Source toolkit for building private, public and hybrid clouds.
- Apache Open Source Licence. Enterprise Edition coming out.
- supports Xen, KVM and VMware virtualization platforms
- on-demand access to Amazon EC2 and ElasticHosts Cloud providers.
- Local Unix-like command line interface and Cloud interfaces, such as libvirt, EC2 Query API and OGF OCCI API
- Support for multiple users, image transferring and cloning, virtual network management and service contextualization.
- Currently no support for windows servers but is planned.

Elastra - provides cloud-based computing services

Enomaly - which makes software for private cloud management and also operates     the SpotCloud marketplace for buying and selling cloud capacity. 

NewScale - NewScale software can be ordered through Cisco and Cisco channel partners under new product names including Cisco Cloud Portal and Cisco Workplace Portal, as well as the Cisco Intelligent Automation for Cloud.

Aserver - typically for service providers

CloudSwitch - Hybrid Cloud

OpSource - Virtual Private Cloud

Amazon Elastic Beanstalk

Amazon have finally annouced their Platform as a Service offering - Elastic Beanstalk so it looks like 2011 would be the year of PaaS.

The first version provides a Tomcat platform that can deploy and run your WAR file on a automated scalable architecture that includes all the load balancing, auto scaling, DNS, monitoring and notification. This is an ideal companion to Database as a Service Amazon RDS.

Containers and Custom Amazon Machine Images
What is really important is Amazon have the concept of an Elastic Beanstalk Container. When you create your application you choose your Solution Stack. Currently there are only 5 stacks:
            64bit Amazon Linux running Tomcat 6 and 7
            32bit Amazon Linux running Tomcat 6 and 7
            64bit Amazon Linux running PHP 5.3
            32bit Amazon Linux running PHP 5.3
            64bit Windows Server 2008 R2 running IIS 7.5
Or you can upload your own stack.
What is powerful is you can use Elastic BeanStalk with a custom Amazom Machine Image. All you need to do is first bring up the Elastic BeanStalk AMI as a regular EC2 server and customize it before using with Elastic Beanstalk. This means you can use Memcached, Terracotta, Nginx, Jetty etc. We will see public custom AMIs appear for the various software stacks just like for EC2 Servers.

Flexibility and Portability
Early PaaS products lacked flexibility to tailor the components - often applications have all sorts of custom requirements (caching, third-party tools, version requirements etc). Being able to tailor Elastic BeanStalk AMIs makes it very flexible!! However to really take off PaaS needs to be Portable, so if some company could create an Elastic Beanstalk for Eucalyptus and OpenStack.

Production Application = Infrastructure + Product + Configuration + Data 
Installation of a Production Application will become little more than:
    1. Running the product install script on the Elastic Beanastalk AMI and doing a little configuration and saving the new Application AMI.
    2. Setting up the data requirements for the application (for example creating a database).
    3. Starting the Application AMI in Elastic Beanstalk and deploying any application code.
This means it is incredibly easy to setup production java-based applications like Alfresco. While now a PHP version of Elastic Beanstalk is available so it is really open the floodgates to applications like SugarCRM, Magento etc etc.

Elastic Beanstalk looks like an ideal platform for building Restful or SOA (Service Orientated Architecture) Web Services.

Many larger enterprises have already reduced costs by consolidating their data centers and virtualizing their servers. But I think we will see adoption of public and internal clouds increase when mature, flexible, and portable PaaS products are available. A number of major vendors are developing PaaS platforms:
    VMware vFabric
    Redhat PaaS Makara
    Windows Azure
Amazon have set the bar for the cost of PaaS. It is a free part of a Cloud Offering! Free always helps adoption and there is tremendous potential here for the future!!!! 

Your Reviews/Queries Are Accepted