CALL +44 (0)20 7183 3893
Blog

Wednesday 20 February 2013

CloudStack vs OpenStack

Kickin’ in the front seat
Sittin’ in the back seat
Gotta make my mind up
Which seat can I take? 
Rebecca Black, Friday

Two years ago, comparing OpenStack and CloudStack, Robert Paulson wrote that: “Cloud computing is very much like sex in high school. Everyone's talking about it and few people are actually doing it”.

It is 2013 and things have changed. Cloud computing moved from high school to Uni. Everyone’s doing it, but only few people are doing it in the right way (Cloudreach is amongst those few, of course).

Many fine articles can be found on the Internet which compare CloudStack, Openstack, and other private/hybrid cloud platforms. Most of them just go through feature lists from OpenStack and CloudStack websites, mention that there is more buzz around OpenStack, and conclude that both platforms are great and it is up to you to decide. So at the end of the day, techie guys still have to spend valuable time installing and evaluating both platforms.

This blogpost is an attempt to point out most notable differences between OpenStack and CloudStack which have attracted our attention. We start from obvious things like popularity and size of surrounding communities, move to more pleasurable features like VPNs and conclude that both platforms are fine. As a matter of fact, they are, trust me.


First of all, let us take a look at Google Trends and compare amount of search queries for OpenStack and CloudStack. Obviously, OpenStack is attracting more attention (red - CloudStack; blue - OpenStack).


OpenStack has much wider community and tons of related articles. There are installation how-tos for all the major Linux distributions and all the common issues are well described and discussed.
CloudStack has much smaller community, and community-written installation manuals are a bit outdated. On the other hand, official documentation is much better for CloudStack and all the options and configuration properties are well described.
Unfortunately, the same thing can not be said about OpenStack. Sometimes it feels like OpenStack foundation chaps hired Captain Obvious to write the documentation. This is how the difference between Admin and Member roles in OpenStack is described:
Admin - user with rights for managing cloud platform.
Member - normal user belonging to a project.

Well, maybe documentation quality is the reason why there are so many OpenStack search queries.

But let us leave documentation and move to support options. If you are deploying private or hybrid cloud project not just for fun, but for some level of production use, you would definitely require expert knowledge. You would have an urge for cloud ninjas, who can install, configure, and support your cloud. Professionals who can answer your questions and solve your technical issues within a determined amount of time.

In case of OpenStack you can hire a consultancy company to do an installation (Cloudreach, for example). If your installation is large enough, you can do both - hire a consultancy company and contact one of OpenStack contributors, like Canonical or HP to provide vendor support. You might even go for one of the OpenStack customized distributions, like Piston Cloud. They offer OpenStack on USB sticks with some original high availability technologies. But if your IT department is skillful enough, you can deploy OpenStack yourself.

CloudStack case is similar, you can hire consultancy wizards (you already know the right company - begins with Cloud, ends in Reach) or do it on your own. Things change if you have a massive infrastructure and you are aiming to compete with Amazon on the IaaS market, or have any other “conquer-the-world” ideas in mind. In this case, you can contact the company behind CloudStack directly. So here it is, while OpenStack has a wide set of corporate players behind its back, Citrix is the major driving force for CloudStack with all the attendant pros and cons of totalitarian software development.

At the end of the day, crystal clear documentation and billions of contributors mean nothing if a product lacks features that are required and is technically insolvent. Now it is time to forget about politics and get to raw feature comparison. To be as objective as possible, we will enumerate it as a list of short points we find interesting, with some comments from personal experience. Off we go...

CloudStack has an advanced and polished web interface, OpenStack has advanced CLI. In case of CloudStack, web UI is all you need. In case of OpenStack you can forget about performing administrative tasks with mouse or touchpad solely. On the other hand, OpenStack web UI aims to be as simple and minimalistic as possible.
For example, to create a new instance in CloudStack, user has to go through the guide which is similar to virtual machine creation in VMware Workstation - CPU and RAM options; next; storage options; next; security options; next. OpenStack allows to launch a new instance with literally “a couple of clicks”.

CloudStack provides hypervisor resource utilisation monitoring out of the box. Nice graphs and counters appear in that polished web interface we were talking about. OpenStack provides almost nothing for monitoring. So be prepared to install your favourite Zenoss or Nagios tools, enable SNMP for all the OpenStack nodes and so on.

OpenStack is written in Python, CloudStack is written in Java. Both products are distributed under Apache license. For us it means that OpenStack can be modified on the fly. Real world example: we faced some errors in NexentaStor driver implementation for Cinder and fixed them within a couple of hours.

Both platforms use libvirt to interact with hypervisors. However, there is a significant difference in hypervisor support options.
Cloudstack supports XenServer, KVM, ESXi, Oracle VM. Even bare-metal servers can be part of a CloudStack installation. OpenStack does not support Oracle VM and bare-metal servers, but supports Hyper-V. If you are lucky owner of Microsoft licenses, forget about CloudStack. At least for a while - CloudStack community is working hard to implement Hyper-V support and make all the MS chaps happy.

Configuration management is centralised in CloudStack. In OpenStack you have to configure each node and each service individually or use Chef/Puppet to introduce centralised configuration management.

OpenStack components can reside on different nodes. You can have a set of nodes responsible for web interface (Horizon), another set of nodes responsible for user management and so on, or you could just put all the eggs in one basket. CloudStack is monolithic. It has only management nodes, compute nodes, and two types of storage nodes.

Both platforms are Amazon AWS API compatible. So the tools you have for magnificent AWS, should potentially work with these two private cloud platforms. To be honest, we did not try it.

There is no such thing as ephemeral storage in CloudStack, all instances’ volumes are persistent. OpenStack knows and loves ephemeral storage.

CloudStack can optionally use a Citrix NetScaler. It can even use BigIP F5 load balancer to provide load balancing services to guests. If this is not enabled, CloudStack will use the software load balancer in the virtual router. Apart from F5 and Citrix, CloudStack can also work with other corporate networking solutions, like Juniper. Ever heard of Juniper and F5? OpenStack has not.

CloudStack has “Usage Server”. The Usage Server is an optional, separately-installed part of CloudStack that provides aggregated usage records which you can use to create billing integration for CloudStack. OpenStack has built-in computing resource usage reporting, but it is not that detailed.

CloudStack has ingress and egress rules for network security groups. OpenStack has only ingress filtering rules.

CloudStack has site-to-site VPN support, similar to AWS Hardware VPN, out of the box. OpenStack has CloudPipe VPN for client access, based on OpenVPN.

CloudStack has something similar to VPC if you are using XenServer or VMware vSphere. In general, CloudStack offers more advanced networking options. It is possible to create isolated networks using 802.11q VLANs, GRE, and STT protocols. In case of OpenStack you have only VLANs and GRE, and it is a pain to get GRE working properly for the first time.

CloudStack has HA-enabled virtual machines - when an HA-enabled VM crashes, CloudStack detects the crash and restarts the VM automatically. While OpenStack stands silent and motionless in the corner.

CloudStack is not IPv6 compatible out of the box; however there are some tweaks to implement IPv6 for floating IPs. OpenStack is IPv6 compatible with Nova-Network module, but not with the new Quantum (OpenStack guys promise to implement IPv6 in the next release).

In CloudStack it is possible to attach ISOs to virtual machines. Nothing similar in OpenStack.

CloudStack does not have S3/Swift alternatives, though Swift and S3 are supported as object storages.

I’ve tried to be objective thus far, but here is a personal one. It took me about 4 hours to install OpenStack for the first time and two days to get it running (I am talking about a proper multi-node setup, not all-in-one DevStack distribution). CloudStack was up and running after 40 minutes and another 40 were spent to launch the first virtual machine.

Here we are. Two different private cloud platforms, no single answer which is the best one. In fact, there is a unified answer for all the “what would you recommend” questions. The answer is: “it depends”. Roughly speaking, if there are no exotic requirements, go for CloudStack. Easy to deploy, easy to maintain, easy to scale, has all the basic cloudy features and provides rich functionality out of the box.
If you have something non-standard in mind, OpenStack is your buddy. But be prepared to spend more time deploying and adapting it to your needs. 

Finally, when deploying such a complex cloud services, it is easy to make a wrong decision and there is a very thin line which separates Infrastructure as a Service from turning into Infrastructure as a Circus. So contact us if you are in doubt or if you need any help or advice using cloud technologies.

Juris Pavlyuchenkov
Systems Developer, Cloudreach

5 comments:

David Kavanagh said...

HI Juris,
I wonder if you gave any thought to Eucalyptus? It is certainly an established player in this space.
http://www.eucalyptus.com/download/faststart

Anonymous said...

Hi Juris, Could you post a link where you found the Captain Obvious definitions of user roles? I searched but didn't locate it, and I'd like to log a doc bug to fix.
Thanks,
Anne

kpeter778 said...

Finding top quality Investor Leads is important for any business and these companies need money to develop or begin with their new ventures which should be from the these investors.

investment leads

CloudTariq said...

I agree if you want a cloud solution that is easy/fast to deploy and works immediately out of the box with great community support then @CloudStack is the way to go.

We have done numerous deployments of CloudStack for customers who have also considered OpenStack and found it difficult to deploy and get working.

Just to mention, as well as the feature rich GUI, CloudStack does have a CLI tool(cloudmonkey) that can be both used as an interactive shell and as a command line tool. There is also the advanced API which allows you to do everything the GUI does and more!

Tariq @ ShapeBlue.com

prashant said...

cloudstack rocks ! i was able to setup cloustack in 2 hours ... out of the box !!!!

and after doing lot of testing .. we have 2000 vms running on xenserver in production ..

Post a Comment

Pontus is ready and waiting to answer your questions