What is our primary use case?
The main goal was to have an IaaS solution which could be supported by a small number of people and which matches our business logic for internal units. In the end, CloudStack was deployed as a private cloud, across three datacenters with different hardware vendors (HPE, Dell, Cisco Blades, EMC, and Supermicro storage) and advanced networking. It's more then 100 hosts (including DR) and more then 1,000 instances deployed. Final design included automatic limits configuration and access management.
How has it helped my organization?
We managed to avoid additional expenses for orchestration and automation tools.
What is most valuable?
Killer features for me were:
- Support for many hypervisors
- ability to match business logic
- "everything in one box"
- available APIs.
What needs improvement?
The main reason why we started looking for another solution: backups, replication, HA, and dependency on secondary storage. CS is quite sensitive for infrastructure, and any kind of network disruption between CS and secondary storage leads to VM hanging. This is most painful point here.
For how long have I used the solution?
One to three years.
What do I think about the stability of the solution?
We did encounter issues with stability, and the main issue was secondary storage. When it is not available, XenServers and hypervisors are affected. And CS doesn’t do anything to reboot, or fix. Come to think of it, maybe it shouldn’t, considering their approach – CS just orchestrates everything else on the hypervisor and storage level. But considering so many points of failure and dependencies on infrastructure, they could figure out something. This was another reason why we planned migration to SOA.
What do I think about the scalability of the solution?
CS itself provides quite powerful options to scale: availability zones, clusters, etc. One main issue encountered: It's really hard to delete zones, clusters, datacenters. You need to follow strict rules, which were not properly documented, a couple of years ago.
How are customer service and technical support?
CS has very descriptive logging, and every time I faced issues and asked for help, I didn’t get any reply from the community. Reason? Its quite obvious. CS runs on specific environments, unique to each case. So, unless it is a functional issue of CS, nobody can help you. All issues were resolved by myself going through logs. This is another reason why you need smart enough people to manage it. Engineers must have knowledge of hypervisors and understand how CS interacts with them. At the end, CS is “script box.”
Which solution did I use previously and why did I switch?
We used OnApp for cloud. It is deployed on premises, and paid, and still it did not give us flexibility. For example, we couldn’t export VMs, CLI capabilities were limited, only Xen hypervisors.
How was the initial setup?
It was complex for three reasons:
- I had to match business logic, so initial testing came in.
- To make it work properly, I had to figure out how it exactly interacts with hypervisors, and rules for that. It was not clearly described at that time.
- Sensitive environment, so if you make a mistake during the initial configuration, get ready to start from the beginning.
What's my experience with pricing, setup cost, and licensing?
As far as I know, CS is still free of charge. If you want to pay some money, Citrix Cloud Platform is based on CS, I think. As for hypervisors – everything as usual, you need to pay for VMware and vCenter. As for XenServer, recently they changed the free feature list, so you may need to pay some money to get useful features like XenMotion.
Which other solutions did I evaluate?
We were looking for a solution on premises, and I reviewed OpenStack “zoo” before making my final decision. As I mentioned, CS can be managed by small number of people, unlike OpenStack.
What other advice do I have?
We have been using CS for three years. I started a small PoC with a few VMware hosts. At the end, I had three production instances with VMware and XenServers.
I would rate CloudStack as a six out of 10. Main pros: You can manage infrastructure with a few people, since product is monolithic. We had three engineers (storage, virtual, Linux admins) only. Also, CS supports different flavours of hypervisors. Main concern: Environment is sensitive, so, unlike VMware, you can not afford middle-skilled engineers, they will ruin everything.
It's very important to understand CS rules and baseline for them.
Make proper estimations for everything: networking, storage, performance (primary and secondary) and then add 20% to your estimates. CS is good for private clouds, but I would never use it for public clouds.