If you work at enterprise or SMB, you have different criteria to select a cloud. Enterprises do have a very complex decision making process, and, in the majority of the cases, the cloud preference depends on top management decisions or whether a cloud vendor and enterprise already have legal relationships. In this article I’ll talk about how an SMB company can make a conscious decision, and what the criteria should be.
In this article I’ll describe private vs. public options and public clouds from the Big Three: AWS, Azure and GCP.
Private vs. public cloud
If you are an SMB, in 90% of the cases you don’t need a private cloud and you should focus on public clouds only. Private cloud is not just hardware and cloud software licenses but it’s TCO which is very complex and brings a lot of complexity and management. Yes, at a certain scale, private cloud becomes cheaper, but you need to spend around $150K+/mo to come to this edge. Everything below that number should go to public clouds if you don’t have other limitations. Of course, private cloud vendors like VMware try to say the opposite, but they forget to mention that TCO is not only about cost but also about processes and a cost of changing those processes.
Private cloud is less risky as you have a cap of your hardware capacity and is considered as more secure (if you have the right stuff and processes in place), but at the same time it brings more complexity: you need to renew your hardware every 3–4 years, purchase licenses, renew your datacenter lease and hire OPS team or sysadmins to guarantee uptime. Public clouds take that overhead from you, but, of course, not for free.
I recommend a private cloud as an option in the following cases:
1. Private cloud is used for R&D tasks with predicted capacity and load. It’s hard to achieve, and please be ready that one day you start to split the tasks between the private and public clouds.
2. You have an OPS team in any case, and they can manage your cloud.
3. You don’t expect 5 nines uptime from the cloud and have a ‘Plan B’ in case something goes wrong.
In other cases I strongly encourage you to take a look at public clouds and consider a private cloud only if you have strong arguments and previous experience.
I’ll be speaking about AWS, Azure and GCP here. Of course, there are other options like Oracle or IBM cloud but I am not an expert in those and don’t consider them serious players on the market.
In terms of public clouds you need to take a look at the following criteria:
- price and discounts
- customer care
- native cost explorer and optimizations
- specific services (if you need them)
You don’t need to care about uptime or coverage in the US as all the three players provide pretty similar options here.
Price and discounts
You can easily find their pricing on the public cloud websites: AWS, Azure and GCP. They look pretty similar with more or less the same pricing and AWS being a cheaper option in the majority of cases. But… When it comes to discounts it’s a bit tricky. Lots of people say about that, and I can confirm from our experience at Hystax: if you are a small company with monthly bill of less than $100K/mo, AWS won’t even talk to you, so I don’t know any cases (if you know, please, comment) when small companies got any discounts. Otherwise, Azure and GCP are very focused on startups and provide nice options for SMBs. I know some companies receiving $100K credits + free software licenses for a year from Azure and it’s not something unusual.
My advice here will be to review list prices for your types of resources and services and contact the cloud sales team to get a better option. Just expect not to hear back from the AWS team.
All the three players provide different tiers of support with free and paid options. Expect that you have to contact support as there are use cases when you can’t solve an issue yourself. For example, AWS has soft and hard limits on the number of resources, so if you grow or need to scale, you need to contact their team to increase the limits.
The options look similar here for SMB. Nonetheless, from our experience at Hystax I can say that Azure and GCP can solve any issues with less number of iterations. But it is subjective and based on my previous communication with the clouds.
AWS is, for sure, a leader here. Being a pioneer in public clouds they now deliver cutting-edge cloud services and automate various use cases. So if you have a technology startup or you want to be able to try all the recent ML / AI / IOT/ etc. cases, AWS is your number one option. Azure comes second with GCP being slightly behind.
Native cost explorer and optimizations
All the three clouds have built-in cost explorer and budgeting functionality, and all three are barely possible to use due to complexity and lack of functionality. You need to either spend some time researching the tools or use some third-party products.
All the three clouds intend to help you save some cash by providing optimizations like reserved instances, saving plans, etc. For long running workloads it works perfectly fine but in the majority of the cases the optimizations are designed in a way to make you pay upfront and commit to some capacity.
Reserved instances and saving plans may look compelling from the first glance, but keep in mind that your provisioning behavior and number of resources significantly influence whether you would save on those options.
Specific workloads and services
Basic cloud services like compute, storage (block and object) and networking are pretty the same for all the three clouds. If you use some specific types of workloads, you need to benchmark all the three clouds and define what are the best options for your use case as even for compute there might be differences, I’m not saying about ML or workloads with GPU, lambda functions etc.
Choosing a right cloud is not that simple, not only a list price but lots of factors should be kept in mind, as in 99% of the cases you won’t be able to easily migrate to another cloud after that, and it would require some planning and effort. You can read about it here and here.