Organisations tend to have one of two IT strategies today: those who are already planning and eventually implementing cloud strategy, and those who are going to be doing it soon. But, the options that companies are faced with are dizzying, often contradictory, and usually dangerously expensive. So what's the best way for organisations to find the ideal cloud service for their specific needs?
Determining what is needed from the cloud will drive what platform organisations should deploy on. Considerations like budget, expected performance, and project timeline all have to be carefully balanced before plunging ahead. Broadly speaking the platform options range from using someone else's public cloud, such as AWS, to building your own private cloud from scratch. Where an organisation lands on that spectrum will be driven by how they rank the primary factors involved.
In this guest blogpost, Christopher Aedo, chief product architect at Mirantis explains how to evaluate the cloud requirements and pick the right platform
In essence there are seven key factors to address that will help businesses clarify what really matters and enable them to establish their individual cloud requirements. These are:
Control: How much control do you have over the environment and hardware? Make sure the cloud platform you select delivers the level of control you require.
Deployment Time: How long before you need to be up and running? How much time will you burn just sorting out, ordering, racking and provisioning the hardware? It is critical that the cloud platform you choose can deployed in the right amount of time.
Available Expertise : Can your single IT staff member handle the project, or do you need a team of experts poached from the biggest cloud makers? Choose a cloud platform that matches the expertise you have available - or you can afford to bring in.
Performance: In a single server there are so many components impacting performance - from the memory bus to your NIC and everything in between. However performance directly correlates with budget - a larger budget will usually see greater performance. However there is no reason a smaller budget can't see high performance - providing you select the right option.
Scalability: Your platform of choice should accommodate adding, or reducing, capacity quickly and easily. Will your chosen platform require downtime to scale up or down or can it be executed seamlessly?
Commitment: From no contract "utility pricing" to the long term investment of owning all your gear - the longer you're tied up, the greater the risk.
Cost: This may be the most important and most difficult factor to account for. You can see it as an output from your other factors, or your ultimate limiter dictating where you'll make concessions. There are definitely some good ways to maximize your dollar while minimisng your risk as long as you keep your head up and your eyes open.
By addressing these factors early on in the process of implementing a cloud based solution you will save yourself time, resource and budget in the long run. However having addressed what you want the cloud to deliver it is important that you match your requirements with the right type of cloud platform.
Here are the main cloud options:
Option 1: The Public Cloud
The big players here are AWS and RackSpace, but there are other contenders with fewer bells and whistles like DigitalOcean and Linode. These represent the lowest entry barrier (you just need 'net access and a credit card!) but also offer the least control and the greatest cost increases as you scale up.
The public cloud is priced like a utility offering the opportunity to scale up/down as needed. This is well suited to handling a highly elastic demand, but it's important to keep an eye on what you've spun up.
With a public cloud you get limited access to the underlying hardware, and no visibility into what's beneath the covers of the cloud - although you will get some flexibility in configuration and near instant deployment of service without the need for any real expert to be involved.
However, generally speaking, you're going to find relatively low performance with a public cloud with higher performance coming at significantly increased cost. You can also expect to be billed by the minute in return for not being held to any contract. Many will offer discounts with a commitment of some sort, but then you give up the ability to drop resources when you no longer need them.
Option 2: Hosted Private Cloud
There are many well-known vendors offering options in this space, ranging from complete turn-key environments to build-to-order approaches. They will provide the hardware on short-term lease, and will charge you to manage that hardware.
Companies like RackSpace will work with you to architect your environment, and provide assistance in deployment - which could take up to 6 weeks. You'll need moderate to extreme expertise and your average junior sys-admin is going to be way out of their depth using such a service.
Levels of control will vary from high to minimal depending on how much of the platform you manage and deploy yourself. The level of commitment will also vary but the longer you commitment the more likely an alternative platform is to make sense. HPC is not well suited to an elastic demand and upscale in 2-6 weeks - and generally there will be no 'scale-down' option.
Option 3: Build your own private cloud (BYPC)
BYPC requires a high level of technical expertise within the business and will present you with the greatest technical and financial risk. However, you will have total control over the hardware design, the network design, and how your cloud components are configured - but expect this to take a year to 18 months to complete.
Your costs in the build-your-own approach can be kept down if performance and reliability are of no concern, or they can (needlessly) go through the roof if you're not making carefully planned decisions. The performance of BYPC will be entirely dependent on your budget constraints and how successful your architectural planning is.
There are lots of moving pieces, and the risks are tremendous, as you may be committing hundreds of thousands of dollars to your cloud pilot. Ask anyone who's actually tried this; it's a lot harder than it looks.
Option 4: Private-cloud-as-a-Service (PCaaS)
PCaaS, such as OpenStack, represents a balance between the value and flexibility of public cloud and the control of private cloud.
PCaaS provides total control over how hardware is used, and that hardware is 100% dedicated to you with a minimum One-day commitment on a rolling contract. As a result of the minimal commitments it can be deployed within a few hours and you will be free to scale the size of your environment up and down at nearly the same pace as if you were on a public cloud.
The costs are higher than a comparable number of VMs in a public cloud, but with no long-term commitment and clear pricing from the start, your financial risks are lower than any other private cloud approach.
You'll need a moderate skill level with PCaaS but your risks are mitigated because you're in a managed environment. Whereas, until recently, PCaaS required you to have a reasonable amount of OpenStack knowledge developments such as OpenStack Express have drastically reduced the expertise needed to implement a PCaaS.
Each of these cloud platforms has validity, as well as a real sweet spot, where that particular approach is the only obvious good choice for your business needs. If you properly consider your requirements and how they match with the options available, your cloud project will not end up as a costly mistake.