What is our primary use case?
My usual use cases for CloudStack involve an AWS style private cloud or public cloud. I can deploy an AWS style cloud using the open source tool that is CloudStack. The use case depends on the customer, as we have service providers who are creating public clouds and providing cloud services to the end users. We also have customers who are creating private clouds for in-house deployments. It really depends on your use cases.
What is most valuable?
The idea of CloudStack is to provide a cloud environment with a self-service portal where users can come and deploy VMs. The underlying technology that CloudStack relies on is hypervisors, and the great thing about CloudStack is that it's hypervisor agnostic. I can integrate any hypervisor, so if I have my own hypervisors and want to implement a self-service on top of it, that's where CloudStack fits in. If I'm starting a cloud business, CloudStack can support that too. Regardless of the hypervisor I currently have or prefer, CloudStack integrates smoothly.
At present, we're seeing lots of traction, as people are eager to shift to open source solutions such as KVM, which is community-based and has substantial support. CloudStack integrates tightly with KVM and has many rich features.
CloudStack is very feature-rich in terms of networking. It can perform numerous functions. With advanced networking, I have different types of networks that I can deploy in CloudStack, such as isolated and shared networks. The goal is to offer end users what they need, allowing them to deploy their own networks as well. It's very flexible and loaded with features. When I say feature-rich, I mean things such as NAT, firewalls, and site-to-site VPNs—all these capabilities are accessible through the advanced networking tools in CloudStack. Until version 4.19, this was managed through a virtual router created when deploying a network. In the latest versions, there's capability for integrating VNF, virtual network function templates, into CloudStack, which allows for the incorporation of other open source firewall software such as pfSense as a network firewall or source NAT provider that I can control individually. Additionally, we support VXLANs to extend networks, and BGPs are now included in the product, allowing dynamic and static routing and all related functionalities.
There are quite a few features of CloudStack that I have found valuable, such as VM deployment and manageability that comes in quite handy. I do a lot of work with VMware and support KVM, and we also do migrations from VMware to KVM. KVM is an open source hypervisor that allows for significant cost savings. We have many customers coming in to do that, and we have successfully migrated quite a few customers as well. That's something that's playing a big role at this point in time because of the circumstances with VMware. Apart from this, CloudStack is a very feature-rich product; it gives you a lot of control over your VM networks and has extensive integration with storage plugins where you can use many open source tools to bring storage into your CloudStack environment for backups or even to run VMs. Recently, there is a new feature coming where you can integrate CloudStack with any hypervisor, which I would say is a game changer. The reason being, with many ongoing changes with hypervisors and numerous options out there, with CloudStack, I can basically bring in whatever I want.
What needs improvement?
Enhancements for CloudStack can focus on integrating more hypervisors, as mentioned regarding current features. We're working on a new feature that will allow for certain limited functions, but over time, it will improve to achieve full integration with various hypervisors. That's one key area of ongoing development within the community. Additionally, there's notable activity shifting from VMware to KVM. We have successfully migrated a few customers, but some challenges were encountered with complex networks or intricate VMs. The community is addressing these hiccups, and improvements are on the roadmap. Furthermore, there's a GPU functionality feature that is forthcoming, which is an essential improvement and will be included in the next few releases.
Customization freedom already exists because it's a community-driven platform. If I could suggest one improvement, it would be regarding containers. While we currently support the orchestration of container hardware or worker nodes, I want to add the ability to control the containers themselves.
For how long have I used the solution?
I have been working with CloudStack since 2014, so it has been approximately 11 years now.
What was my experience with deployment of the solution?
I have encountered some challenges during the initial setup or deployment of CloudStack. Having worked all these years, I see that there were initial roadblocks due to the learning curve involved with any product. When users first engage with it, I often find that customers or community members struggle with getting certain elements up and running. When starting CloudStack, there are systems in place that auto-check and indicate whether the cloud is functioning properly. I have observed that some community users face difficulties getting everything running, but most issues resolve with thorough documentation review. As an open-source product, the documentation can sometimes feel overwhelming for new users. However, there's always a community willing to assist.
The primary difficulties I've encountered often involve users missing basic setup steps, such as seeding the required templates before initiating their cloud. Some community members attempt installations on their own Linux distributions, which sometimes leads to complications. The success rate typically hinges on the kernel version they are utilizing and what CloudStack has been tested against. Generally, it works flawlessly with documented versions, but if someone uses a new distribution, they may need to build their own RPMs for installation. Hence, there's a learning curve associated with that as well.
What do I think about the stability of the solution?
I would describe CloudStack's stability as very high. There are quite a few public and private clouds operating with it, and it remains stable and feature-rich. A lot of community work is ongoing, so if any issues arise, they will be addressed in upcoming releases. The community has become very active, especially in recent years, due to increasing market traction. There are numerous public clouds that continue to function and generate revenue, so it is quite stable.
What do I think about the scalability of the solution?
Regarding scalability, I can confidently say that CloudStack has no limits. It can scale as much as required, and there are no theoretical limits that I or the community have encountered thus far.
How are customer service and support?
I started in the CloudStack community and then was hired by one of the companies that provides support, so I have relevant experience with the technical support and customer service.
How would you rate customer service and support?
How was the initial setup?
The initial setup and deployment experience with CloudStack is quite easy. I have the RPMs for all the major Linux distributions, and the packages are built for Ubuntu and Red Hat, though there's no CentOS at present—only Alma or Rocky Linux. One of the reasons CloudStack resonates with the community is its straightforward installation; it's just one package for everything. In contrast, with OpenStack, various modules and integrations take significant effort and time to establish a functioning product. With CloudStack, I simply download the package, run the installer, and that's it—it's done. It's designed to be easy from the outset.
What other advice do I have?
With CloudStack's Role-Based Access Controls, it is pretty handy for user management. The user experience depends on the use case. In private clouds, that's where I observe a lot of utilization of RBAC, as different departments need to control or access CloudStack with specific restrictions. I can define roles and limit what users can do or see and which parts of the cloud product they can manage. Typically, this use case is not as prevalent in public clouds, where everything is governed at the account or tenant level itself. However, RBAC is far more feature-rich when implemented in private clouds.
CloudStack's APIs are very tight and useful for automating processes. They integrate flawlessly with Terraform and Ansible, the market leaders in automation technologies. I can leverage Terraform or Ansible to automate tasks as needed. The API is very feature-rich and operates on a REST-based architecture. Just to clarify, all the UI elements of CloudStack are primarily API-driven; the features I see in the UI represent only about 80% of what's available through the API. There are many more features accessible through the API, and numerous community users rely heavily on it to automate their tasks.
When discussing CloudStack's orchestration capabilities, the primary function is orchestrating the VMs. I can spin up any number of VMs needed using my automation tools or the user-friendly UI. Navigating through the UI is straightforward, making it accessible for anyone starting, as they can easily find what they need on the left pane of their dashboard. The orchestration platform is extensive because it can integrate with any hypervisor I want to bring into the platform.
I rate CloudStack 9 out of 10.
Which deployment model are you using for this solution?
On-premises
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Other