The Case for Single Cloud

Larry Hau
DataSeries

--

Let me preface this post by saying that I’ve been in cloud my entire career in technology. I love cloud and the promise that it offers in moving the paradigm of hosting and even stack management away from manual tasks towards more automated, stable services. Cloud offers more advantages than I can enumerate here but more importantly, it’s incredibly misused. This post covers in reality how empty the promises of “multi cloud” really are for most enterprises and how, if multi cloud really is the right move for you, you can avoid the pitfalls.

What is multi cloud?

Multi cloud, as I’ll use it here, is referring to the strategy of employing two or more public cloud providers. There’s a strong trend toward organizations employing multi cloud infrastructures with promises of value but I think most of those ring hollow. This trend has been strong enough recently that it’s even caused Amazon to “ban” phrases like “multi cloud” or “any other language that implies designing or supporting more than one cloud provider.” Yes, I realize Amazon may have additional reasons for doing that but the important detail there is that multi-cloud messaging is now so prevalent Amazon has taken action.

The Promises of Multi Cloud

The strategic reasons for multi cloud are many and individual to an organization but the reasons I’ve most often seen are 1) for cloud provider specific features, 2) efficiency/cost reduction, and 3) disaster recovery. In reality most organizations fail to take advantage of any of these, let alone all of them.

Cloud provider features

Firstly, the three largest cloud providers (AWS, Google Cloud Platform, and Azure) offer generally the same portfolio of services under different branding. While I make no distinction here about the quality of those services (for time’s sake), you’ll find compute, storage, networking, machine learning, data warehousing, etc. on all three. In fact, should you search on your own, I suspect you’ll find a lack of good literature making a strong technical case for one cloud over another. I look all the time and have yet to find it.

Moreover, most of the organizations I’ve seen in my career touch on perhaps 50% of the total cloud suite and even then, vastly under-utilize those services. They struggle to effectively convert their legacy applications into service oriented architecture which could really take advantage of cloud’s distributed computing.

Efficiency/Cost Reduction

One of the biggest issues with multi cloud management (or really any cloud management) turns out to be controlling and accounting for costs. Rightscale covered this (pg 4) in their 2019 state of the cloud report. An endless tug of war is waged over who should control the checkbook but inevitably, someone suggests using a multi cloud strategy to hold one cloud provider hostage against another for discounts. There are sadly several holes in this logic.

Cloud providers don’t actually need your money. Amazon earned $9 BILLION from AWS…in just Q3 2019. Microsoft’s “Intelligent Cloud” (which includes many things beyond Azure like O365) earned $10.8 billion in the same quarter. While the cloud providers have been quite good about competing for your business, you likely won’t be holding them hostage against each other.

Also, most organizations can’t really carry out their threat, at least not without prohibitive expense. Because most companies don’t first invest in multi cloud technology that would enable a migration, they end up locked in with the provider anyway. There’s a reason these cloud providers make inbound data transfer so simple and free. Once you’re in, you’re in. Mostly though, multi cloud costs simply balloon as people lose track of what they have, where.

Disaster Recovery

DR is often floated as a justification for multi cloud as well and this one is a slightly more compelling case but even then, likely overblowing the risks of single cloud. If you look at CRN’s top 10 cloud outages of 2018, you’ll most certainly see that all three major cloud providers had issues that year (and they kept it up in 2019) but none of those incidents lasted over five hours.

Moreover, none affected all of their regions so effective DR can easily be multi-region instead of multi cloud. The reality is that multi cloud can make sense here but doing really good, data consistent multi cloud DR is really hard. Some applications likely meet that bar for your business but think strategically if true multi cloud DR is a value to your business before you spend on it or worse, find out you built it wrong when you need it.

Risks of Multi Cloud

On top of the unrealized benefits of a multi cloud strategy, there are substantial risks. Firstly, understanding two clouds is just really hard. Cloud infrastructure engineers tend to specialize in a cloud the same way developers tend to know a particular programming language best. While they may be able to use other languages, if you really want their expertise, it’s best to stick with their most well known tech. That benefit of deep expertise translates most notably into security and stability gains for the organization. The reality is that proper IAM, RBAC, networking and other security considerations are infinitely more complex today than just a few decades ago.

To understand how to properly architect those things, an engineer must understand the nuance of the cloud platform they’re on. For example, the differences between security groups, ACLs, encryption, and private cloud networks are very important to ensuring your data is transported securely and performantly. Should traffic be unencrypted on a private net? Should you leverage “encryption in transit” services? Must all block storage be encrypted at rest? What combination of services (and levels of security) do your clouds provide? Failing to understand and architect for business needs WHILE handling security will have disastrous consequences.

How to be Multi Cloud

If you really want to be multi cloud, rest assured! You can get there and it’s great when you do. But first, you need to lay the right groundwork. Here are my high level suggestions for preparing for a multi cloud environment:

  1. Think strategically about why you want to be multi cloud
  • Find the right reasons to make the move. Take stock of your applications and the advantages multi cloud will offer you.
  • Estimate costs and then triple them. If you’re bad at math historically, make it more than triple.
  • Set a team to really study your workloads and if the provider will offer some competitive advantage. Can you actually use their machine learning tools effectively? Are they really more cost effective under production workload? Does that PaaS actually meet your needs?.

2. Build the right organization

  • Start with the technical teams and allocate expertise to each cloud provider. That is, try not to mix your Azure folks with your GCP folks. Let them specialize in a cloud provider so they can give you good guidance on security, governance, and cost among many other things.
  • Build a cloud-aware Finance team and attach it to your infrastructure organization. So many finance folks struggle to understand cloud without being able to immerse themselves in the specifics of how utility billing works or how the provider charges one way for a managed container offering vs a VM.

3. Use the right tools first

  • Before you launch into your new cloud(s) find some cloud agnostic (or at least more agnostic) tooling that you can leverage across infrastructures. Most immediately, Kubernetes and Terraform come to mind. Containerizing your platform will most certainly not immediately allow you to jump to another cloud but it moves your concerns further up the stack and allows for microservice architecture which means you can leave, ideally, without downtime when you’re ready.

4. Move new stuff

  • Your new applications will be always easiest to move to a new platform. Rather than waste your time retooling legacy apps (“cash cows” I hope!), focus your energy on building new applications on the new platform. There’s lower risk if the app isn’t profitable and you won’t spend money just moving data around. Yes, that means your infra will be small at the new provider and that’s ok. Take your time and prove the value.

Summary

Multi cloud isn’t a bad idea but it’s usually a “mirage” of water in the desert of cloud computing efficiency. Most organizations I’ve worked with would benefit from first considering their cloud infrastructure strategy, and only then building the supporting org, tooling and culture to be multi cloud. If you go multi cloud without considering the underlying business and technical realities of the move, you’ll miss your targets and leave your technical folks aimless and confused. Most importantly, you’ll spend a lot of money running in place instead of exploiting the many, many advantages cloud should be offering you.

Disclaimer: I’ve received no incentive of any kind from any company mentioned or excluded from here to publish this article. These thoughts are mine and mine alone and reflect on no past, present or future employer.

--

--

Larry Hau
DataSeries

Cloud technologist with experience across four continents and three clouds. Interested in all new age tech from quantum to robotics to CI/CD to k8s.