Over the past few years it would have been hard to miss the slow and systematic outsourcing of certain parts of corporate IT. The primary solution has been cloud computing—which, of course, means the market is flush with cloud providers—and a lot of hype.
With so many options to choose from, it becomes even more important to take a step back, understand your requirements, and find the provider that best suits your needs. Whether you’re looking to run a simple development stack or a complex multi-tiered application, you need to do your homework, test the provider, and let them prove they’re the best fit for you.
You might be surprised by how many cloud providers have a hands-off approach to partnering with customers—you get your free trial and off you go. So I wanted to arm you with some key questions to ask and successful habits to employ when choosing the right cloud provider.
1. Identify Your Requirements
The following is a list of things that nearly all of my customers need to be able to do:
- Empower an end user community to use the service on their own.
- Take snapshots and clone VMs to share between users.
- Upload existing internal VMs.
- Give external access to customers, partners, etc.
- Create network requirements to mirror production environments.
- Give access to a global user community.
- Have Fort Knox-style security and approval from the IT security team.
- Maintain visibility over activity, usage, and cost.
Gather your own list of requirements, then research a variety of vendors and decide which providers are worth trying.
2. Set the Baseline: Compatibility and Cost
When you speak with the vendor, you will want to determine the following:
Can my application run on your cloud?
- How do I get my application into your cloud?
- Can I configure the cloud provider’s VMs and network topology to work with my application?
How much is it going to cost?
- Do my VMs need to run all the time or can I suspend them (and thus not be charged for them)?
- Does the cloud provider charge to the second, minute, or hour?
- What is included in the price (storage, bandwidth, IP addresses, networks)?
- How will pricing change as my environment scales?
3. Establish a Technical Fit
Hypervisors. Which hypervisor does the provider use? This is an important question to ask because there is no standard hypervisor. It’s like choosing a mode of transportation between planes, trains, and automobiles. They’ll each get you to the same destination, but each has pros and cons that can greatly impact your success. I find that most companies leverage VMware ESX internally, but there are several in the market to choose from. Discussing the hypervisor will help scope whether or not you can import and export the virtual machines you already have, or if you have to rebuild from scratch.
VM specifications. Can the provider support the VM specifications you need? This will help define whether your app is able to run properly. Questions to ask include:
- How many CPUs, GB of RAM, or disk can a single VM have?
- What type of network topology can I have?
- Can I build the same networking topology leveraging the same hostnames, IPs, and MAC addresses I use internally, or do I need to use something different?
Hybrid cloud model. Does the provider support a hybrid cloud model? You will likely want the ability to keep some resources in house, while running virtual machines with a cloud provider. Being able to connect to all of your resources is very important.
4. Ask Use Case-Specific Questions
Once you understand each provider’s ability to technically support your needs, you need to ask use case-specific questions. I often tell people that anyone can host a VM. Finding a cloud provider is all about finding the one that best supports your use case.
Whatever your use case is, you need to know that the provider offers features that support your requirements and success criteria. So let’s look at questions specific to development and testing.
- Do you offer dev/test-specific features like snapshots, open APIs, the ability to create a VPN tunnel between our office and your cloud, or integrations into any development or testing tools?
- Can we empower the developers and testers to use your cloud while fencing them off from the more technical tasks?
- Can we give them a quota on the capacity they can use monthly?
- Is there an easy way to share environments between development and testing teams?
Once you understand the technical and use case-specific fit, you need to drill down on the subject of cost.
5. Scope the Pricing Conversation
Every use case is a little different and that will impact pricing. Most development and test use cases have dynamic and transient usage graphs. On any given day, you never really know how much you’ll need, which is why most corporate IT organizations have a hard time supporting them. The good news is that many cloud providers have a usage-based billing model. Coming to the table with information on how many machines each developer or tester will use at any given time will help scope the pricing conversation.
I recommend building a few different pricing plans that support a phased rollout over a few months, starting with a specific project or development group, and building out to your comfort level.
As you can see, this process isn’t trivial. The last thing you need is a bunch of static while you’re trying to make a key business decision. But if you follow these guidelines, I can promise you’ll be able to keep your cloud provider in the end. Ask the right questions, do your homework, and ensure your requirements and success criteria are met, and you’ll be on your way to successfully integrating the cloud.
Next month, I’ll discuss how to run a successful trial once you’ve selected a couple vendors to try. If you’d like to skip ahead and talk directly to a Skytap Cloud Specialist, we’d welcome the opportunity to speak with you about your business.