As more and more companies build internal private clouds or enter the service provider market with public clouds, the more they will need the right set of tools to successfully build, manage and scale their Infrastructure as a Service (IaaS) platform. However – choosing the right technology stack can be a difficult decision. There are several aspects that should be considered, such as planning for future growth and demand, team size, budget, project timeframe, previous experience, available hardware and the underlying infrastructure already in place. In this article, we will focus on the platforms that enable you to provision IaaS – the software which turns your infrastructure into a fully-featured cloud environment – and also look at key factors which can affect your decision-making process and ensure your cloud project is a success.
When it comes to cloud management (or cloud orchestration) platforms, the first thing we need to clarify is what we mean by this. A typical cloud management platform allows one to take existing datacentre infrastructure and wrap around it a common API, CLI and user interface, which allows an organization to benefit from the basic concepts of cloud computing in terms of elasticity, metered usage, self-service and resource pooling.
For some, the first choice to make is whether to go for an open-source or a proprietary/vendor solution. This may not come as a surprise to anyone… but at ShapeBlue, we passionately believe the solution should be 100% open-source, and following years of experience, feedback from users and developers, testing most other solutions and working with the community, we also passionately believe the solution should be Apache CloudStack! As we are regularly asked ‘why?’, we will try to answer that question here.
Proprietary Cloud Management Platforms
There are 2 categories of vendors in the proprietary market which we will review below.
Small, proprietary vendors focused on the service provider market, delivering end-to-end IaaS solutions (eg. OnApp, Flexiant)
Although these solutions can be considered to work “out of the box”, you are usually limiting yourself to a specific technology stack, which they support. A cloud management platform could be orchestrating hundreds of different types of hardware, and different hypervisors and storage types. Broad support for multiple technology stacks is essential, and whilst ‘locking in’ to a vendor or solution might seem like a good idea for the short term, you will probably want to have other options in the longer term.
Small, proprietary vendors might not have the scale to compete with large opensource projects or large vendors in this respect. So you can become dependent on the vendor’s roadmap and you are limiting yourself in terms of the support you will get below and above the stack.
Pros: Quick to deploy, an end-to-end solution aimed at service providers. Support often included
Cons: Locked-in to the solution, limited choices for supported infrastructure, hypervisor, etc.; possible licensing costs.
Large, proprietary vendor solutions (eg. VMware vCloud Director, Red Hat OpenStack)
Large, commercial vendors will provide well known, well supported, enterprise-grade solutions. However, as with the smaller vendors, you could be restricting yourself to using a particular hypervisor or OS and might also need to pay license and support fees.
As already mentioned, when choosing a cloud management platform, it can be wise long-term to avoid vendor or technology lock-in. At some point, you may need to (for example) change the hypervisor, or integrate with a new storage solution. These changes should be possible and straightforward without wholesale changes to your environment.
Pros: Enterprise-grade support, reputation, deployment usually included
Cons: Complex solutions to support and maintain, high capital and operational costs, vendor lock-in
Open-source Cloud Management Platforms
Open-source cloud management platforms are community-driven, not dominated by a single vendor and follow a rapid development process. This community approach (with so many companies and individuals collaborating and contributing) means you will not be pushed in a specific direction from a large company or vendor. When choosing an open-source project you should look for a project with a roadmap, forward momentum and lots of contributors to ensure it supports a broad technology stack now, with plans to develop support as the industry changes.
Some of the more well-known open-source cloud management platforms are:
Freely available cloud software orchestrator, with a wide range of features (virtual networks, bare-metal support, integrated VM and container support, vlan-aware VM support, etc.). However – OpenStack is widely considered to be overly complex and needs a lot of time to deploy and a lot of effort to manage. Most users are currently running vendor distributions from Red Hat, IBM, etc. in production, which makes it effectively a proprietary solution.
Pros: Broad range of modules available and large open-source community; broad hypervisor support
Cons: Time-consuming and difficult to deploy and maintain; installation and configuration of multiple modules required for basic cloud functionality; support is expensive
Integrates with multiple virtualization technologies, and the Community Edition (CE) is free, open-source and full-featured. However, only the top level of enterprise subscription includes ‘product influence’, and only the enterprise editions are truly suitable for enterprise, production use. It is open-source, but as OpenNebula are both product and vendor, it might be debatable whether you are avoiding vendor lock-in!
Pros: Easy to use and manage. Easy to implement.
Cons: Subscription costs for enterprise editions, potentially limited influence or opportunity for collaboration
Fully featured platform supporting a wide range of integrations. Constantly developing new features and support for new technologies with a clearly defined, evolving roadmap guided by users and the community. No different levels of support or versions, and although there are vendor distributions available, no vendor has a dominant influence over the project and most organizations run the freely available, open-source version in production.
Pros: Easy to implement and manage; large community of active contributors; no vendor lock-in
Cons: Not as widely known as other solutions (eg. OpenStack); documentation could be improved
Having decided between open-source and proprietary, you can now start to narrow down the field even further by focusing on exactly what you need, and start to arrange demos, or even deploy your own test environment.
Deciding on a Cloud Management Platform
Know what you want
Consider your requirements. These might just be “obvious” requirements, such as a common API to internal business units or customers; requirements around data retention; performance; security or specific functional requirements. The more in-depth your understanding of the requirements of your organization you have, the easier it will be to ascertain which platforms are most suitable.
Consider your existing infrastructure
An issue is that many companies do not map their existing infrastructure to their requirements, and start to change parts of their technology stack to accommodate shortfalls in functionality. We recommend you look at your existing infrastructure and consider what solutions will complement that.
Evaluate platforms against the requirements
Undertake a proof of concept (PoC) of different solutions. A PoC should prove (or disprove) whether the technology matches your requirements. If it does not, then question how complex it might be to develop the technology to fit your needs.
Think about the migration process
Be sure the migration of your existing workloads will be relatively straightforward, and consider any unavoidable downtime. This requires planning and testing.
Understand the Total Cost of Ownership (TCO) of each platform
If you are a service provider or public cloud provider, costs are critical to your success. To be competitive, you need to know the TCO of your platform, so that you can correctly price the services you offer. TCO should include costs for licensing, implementation, support, management, administration, etc.
Build a future-proof system
Ensure that the solution you choose will be adaptable to your future requirements. If you anticipate using VMware for 10 years then that’s the solution for you. However – if you anticipate eventually offering your customers different options, then you need a platform that offers those options.
Simple Steps to Make Your Project Successful
Use best practices and design patterns
You do not need to design the most unique infrastructure on the market. But you need to make something which works as expected, matches your requirements and brings a good return on investment.
You are not the first company to do this, so why not benefit from others experiences?
Understand horizontal scale
The resource pooling nature of IaaS allows it to scale very easy. But the scalability should be designed from the very beginning. How are you going to scale all the components of the infrastructure?
Start small, grow big
Having an orchestrated environment gives you a clearer view of capacity planning. The metering/billing capabilities of an orchestrated environment allow you to understand where the costs are delivering value to your organization.
Do not follow the hype
Choosing the CMP is a long-term investment. If you need to change in a few years, it will be huge work and time for your team and organization. Choose something that is here for the long term and will be there in 10 years.
As mentioned at the beginning of this article, we love open-source, and specifically Apache CloudStack. However – that doesn’t mean it’s right for everyone, and all the other products/projects mentioned herein are great solutions and should be considered. Think carefully about what you need, set up demos or trials and look at where the technology is going.
If you have any questions about this blog, or would like to know more about CloudStack, or set up a demo with us, please contact email@example.com.