CloudStack - The Dark Horse of Cloud Platforms Releases 4.2.0

Shanghai Free Trade Pilot Free Trade Zone

Recently I have been working extensively with various cloud platforms and with CloudStack in particular. Clouds pique my interest lately since there is so much potential for innovation in various areas. Also slowly it is becoming the basic foundation for modern scalable software and systems. You talk of Google, Facebook, Amazon, Apple; icons of modern systems and softwares; and find all are involved in improving various aspects of cloud platform. You can see the innovation happening via open datacenter platform like OpenCompute or in server platforms like SeaMicro, or in operating systems like CoreOS or cloud platforms like OpenStack, CloudStack, oVirt and many more. Still all of these just the beginning and there are many more innovations and breakthrough needs to happen.

I was personally evaluating some of this cloud platforms for one of my side projects, I have been working on in my spare time. During my evaluation, to my surprise I found, CloudStack as one of the dark horses of cloud platforms race. Although all the media attention and hype is around OpenStack and Amazon. Recently Apache CloudStack released version 4.2.0. In this article I will briefly discuss about CloudStack and in particular about new features in version 4.2.0, which is the second major release since CloudStack became top level project of Apache Foundation (ASF) -.

Brief Overview of CloudStack

Apache CloudStack is a top-level project of the Apache Software Foundation (ASF). The project develops open source software for deploying public and private Infrastructure-as-a-Service (IaaS) clouds. CloudStack provides an open and flexible cloud orchestration platform to deliver reliable and scalable private and public clouds.

Features and Functionality

Apache CloudStack is a Java-based project that provides a management server and agents (if needed) for hypervisor hosts so that you can run an IaaS cloud. Some, but not all, of the features and functionality provided by CloudStack:

  • Works with hosts running XenServer/XCP, KVM, and/or VMware ESXi with vSphere
  • Provides a friendly Web-based UI for managing the cloud
  • Provides a native API
  • May provide an Amazon S3/EC2 compatible API (optional)
  • Manages storage for instances running on the hypervisors (primary storage) as well as templates, snapshots, and ISO images (secondary storage)
  • Orchestrates network services from the data link layer (L2) to some application layer (L7) services, such as DHCP, NAT, firewall, VPN, and so on
  • Accounting of network, compute, and storage resources
  • Multi-tenancy/account separation
  • User management

In short, organizations can use Apache CloudStack to deploy a full-featured public or private IaaS cloud.

I used the word dark horse for CloudStack, since personally I deployed the cloud with 3 servers within 8 hours on Ubuntu, which included time for building the debian packages from source. Also the user interface and various tools to manage the cloud infrastructure are polished, professional, tested and can compete with available commercial offerings from VMWare, IBM, HP or any tier 1 vendor with an added advantage of having the freedom to tinker with source code to suite one’s reqruirements.

Indeed personally I am more working on Python and Google Go language lately and in spite of OpenStack being written using Python, I found CloudStack to be easier to work with which is a surprise in itself. Sometimes it does make sense to build a coherent framework. OpenStack has too many cooks currently and requires significant efforts to fit the pieces together. This is due to necessity of differentiation among vendors who are part of OpenStack Consortium with competing interest. This results in code contributions which makes the overall framework incoherent. Also OpenStack lacks Apache Foundation, FreeBSD culture or a benevolent dictator for life like Linus or Guido Van Rossum. So until such changes happen in OpenStack I believe CloudStack has better chance of being the front runner in long run.

Also one thing which really stands out in CloudStack, compared to other platforms is documentation. As mentioned earlier my current interests are in Python, Django, Google Go language, which put a lot of emphasis on good and relevant documentation. I find CloudStack documentation to be of similar quality and if you go through the developer mailing list of CloudStack you will notice 4.2.0 release was postponed due to incomplete documentation, which is a sign that the community involved in development also cares about good documentation. I believe for people to use platform effectively good, relevant and to the point documentation is a pre-requisite, you cannot expect people to just rely on books published in the market.

Release 4.2.0 New Notable Features [1]

The 4.2.0 release of CloudStack, the second major release from the Apache CloudStack project since its graduation from the Apache Incubator. CloudStack 4.2 includes more than 70 new features and enhancements. The focus of the release is on three major areas:

  • Improved support for both legacy-style and cloud-style workloads
  • New third-party plug-in architecture
  • Networking enhancements

Besides this the other 2 areas of enhancement are:

  • Host and Virtual Machine Enhancements
  • Monitoring, Maintenance, and Operations Enhancements

For me personally the major enhancements which stands out are in following specific areas and I will also point out one area where its not being enhanced and hopefully someone will work on them in future release soon:

Interesting Enhancements

  • Enhanced BareMetal Support I have been personally waiting for the updates on this area since cloud is not equal to virtualization. For me cloud always has similar model as electricity where you provide compute, storage, networking resource on demand with pay per use model. For me this means if customers workload requires a combination of baremetal, virtual machine or a OS container (LXC, OpenVZ or Solaris Zones), a cloud orchestration platform should be able to provision and manage them. Based on my analysis none of the existing cloud platforms have achieved it. So any additions in this area is interesting.

    1. Kickstart Installation for Bare Metal Provisioning CloudStack 4.2.0 supports the kick start installation method for RPM-based Linux operating systems on baremetal hosts in basic zones. Users can provision a baremetal host managed by CloudStack as long as the kick start file and corresponding OS installation ISO is ready.
    2. Enhanced Bare Metal Support on Cisco UCS CloudStack can now automatically understand the UCS environment, server profiles to make it easy to deploy a bare metal OS on a Cisco UCS.
  • Snaphotting, Backups, Cloning and System VMs for RBD Primary Storage Since in my personal enviroment I plan to use Ceph as distributed storage, this new addition helps me to remove NFS completely and use CEPH for both primary RBD and secondary object storage. It makes again managing cloud easier with less moving parts. You can find more information at Ceph for CloudStack.

  • Enhanced support for Software Defined Networking (SDN) This is the latest buzz word in the networking industry. Cloud platforms have achieved significant progress in compute, storage and now networking. In CloudStack 4.2.0 there has been significant enhancement in SDN, Virtual Router and BigSwitch integration. Also Midonet from Midokura is included. Although this is not as comprehensive as Neutron of OpenStack I feel its step closer to similar functionality. Hopefully in future more enhancement and support will help in creative cloud deployment models.

Interesting Enhancement Not Done or Not in Future Roadmap

  • Support for LXC (Linux Containers), OpenVZ and Solaris containers I was hoping 4.2.0 will contain some significant enhancement in virtual containers and integration. I was specially interested in LXC containers and integrating Docker with CloudStack. But since this was not a priority no major enhancement happened in this area. Hopefully if one day I have a big enough budget or financially capable will sponsor the development of those features or someone will have similar needs as me and work on it.
  • Integration with Ubuntu Juju and MAAS It will be interesting if Ubuntu Juju and MAAS can be integrated seemlessly with CloudStack.
  • Integration with The Foreman Hopefully someone can integrate The Foreman with CloudStack via plugin like its done in oVirt
  • Integration with Shinken Monitoring Shinken Monitoring is a modern replacement of Nagios with scalability in mind. If someone can integrate it with Admin, Domain and Cloud User portal of CloudStack via plugins will be a great addition and besides simple monitoring all the nagios plugins can be used on hosts and clients to monitor. This is on my personal wishlist of enhancement for CloudStack.
  • Some simple billing plugin Currently there is no opensource simple metering and billing plugin for CloudStack using cloud_usage data. Since I wanted to test the cloud-usage for CloudStack I have to write my own scripts. If someone can provide an opensource plugin which can integrate with CloudPortal will be great and make this platform very enticing for companies who wants to meter the usage and provide billing to internal departments or for cloud providers to provide simple billing to its clients.

This is my personal coverage of CloudStack release 4.2.0. Obviously you can check the full Release Notes for more details and enhancements and bug fixes interesting for you. Also if you haven’t tried or heard of CloudStack then now is the time to give it a try.

Footnotes

[1]CloudStack 4.2.0 Full Release Announcement and Notes