Much disagreement may arise in discussing whether IT organizations ought to use one public cloud service provider (CSP), or choose to work with 2 or more public cloud providers. The rationale on both sides seem rational. I’m not talking about what IT organizations are doing, but I’m trying to be prescriptive on what they ought to do. So what is the right strategy for cloud computing deployment when choosing the right number of CSPs?
- One cloud: They state that it makes sense to learn one provider. Having more than one is going to impose a cost on learning more than one security or operational model. So why not choose one, make your organization efficient, and negotiate a good price? You are less unlikely to make a big mistake, and if you did change your mind later, you can always port your application later. This is like the reason for choosing only one Linux distro in your data center. I do not see a reason for choosing SLES, RHEL, and Oracle Linux. Why not choose one since they have enough similarities?
- Two or more clouds: Each cloud is different, and you ought to choose the right one for each workload. It does not make sense to have one cloud provider since there are always some differences between the providers and some are superior in running some workloads (say machine learning) than another. For the same reason I choose to run Windows and Linux as OSs, I choose more than one system. There are purely financial or risk mitigation issues, too. I can choose several to negotiate a better price, avoid a single vendor lock-in, or avoid exposure to a single provider’s failure.
Each sort of makes sense. But there are some subtle differences and potential flaws in the rationale, such as claiming that choose to use a mix of Windows and Linux is proof for using more than one CSP. This is not totally fair, since it indicates the choice of OS is a symptom of running different workloads, not the cause. I ought to state that I want to use multiple CSPs for the same reason I have different workloads that require different OSs. It’s not sufficient to point out that just because I have multiple OSs, I need multiple CSPs
Some people may favor “one cloud” and they cite the iOS vs. Android analogy. Most people like to work within a single ecosystem since it’s a pain to rely on two address books, app stores, or privacy settings. There’s a slight fallacy there since the two systems are similar in many respects and are reasonably mature. The differences in the public clouds are more drastic and there are changes that continue to be introduced, so it’s more like looking at differences between iOS and Android in their early days. The differences are more than them being a provider of VMs. We need to look at the programming models and services that are provided atop these platforms. We’re not talking about just IaaS, but the data services, AI services, advanced network services, etc.
Some people may try to layer some common veneer between the two platforms, such as Apache Mesos (DC/OS), to create a common services platform, or to adopt a PaaS such as Cloud Foundry, but I bet some people wish they had direct access to some underlying capability.
In general, I think it makes sense to for more large enterprises to adopt more than one cloud to make the best use of a variety of cloud services. For very small organizations, it may make sense to choose one, since the staff is stretched too thin to learn many operational models. ESG research shows that 75% of current public cloud infrastructure customers use multiple CSPs. So our enterprise survey respondents are voting with their feet with the multiple CSP option.
Thus, the question is: What are the criteria for this choice? What is the break-even point? Is there some ROI model where I can make the decision? That’s one of the areas where I want to investigate this year. The platforms are rapidly changing, so it’s difficult to create a precise model that will last for many years, but I think it’s worth looking all the issues carefully—and I invite you to join me in this investigation.