Multi-Cloud: A myth or a practical reality?
For many businesses, the desire of being on one, two, or even three Cloud vendors is attractive to mitigate financial risks due to untenable price increases and business risks around availability of their critical systems. For other businesses, they want to provide a global reach to their customers where some providers excel in those regions while others do not perform within acceptable parameters.
What is a Cloud?
The more pressing question, and frankly the harder one to answer, is “What is a Cloud?”. The Cloud can be many things to many people, from the simple systems administrator version of “someone else’s computers in someone else’s data center”. If you ask a business analyst, they may tell you that Salesforce is a Cloud or possible Google’s gSuite is a Cloud. You would be amiss if you argued that either of those points of view is either invalid or even misguided.
So, for the brevity of such an article, I will be talking about IaaS vendors going forward. Some of this will also apply to PaaS vendors, but we will not be focusing on SaaS vendors at all.
Examining the Risks
The problem with most enterprises is they have largely decided to build systems in the IaaS Clouds much as they do on-premises. In some vendor offerings, such as vCloud Air or VMware on AWS, if you have the overlay networks and virtual SAN’s in place on-premises today, that largely works. The problems start when you move to offerings which are not like for like from what you did in the past.
This risk is by far the least understood risk by most technologists but one of the most important to the business. As part of the Cloud transition, costs largely are moved from Capital Expenditures (CapEx) to Operational Expenditures (OpEx). This important to understand as CapEx can be seen as a transfer of assets from cash to equipment under the Generally Accepted Accounting Practices (GAAP). As such, the company is not expending money, its transferring money into non-monetary instruments which devalue over time, a process known as amortization. As such, one day one, a million dollar mainframe didn’t impact the balance sheet as a million dollars of cash gone out the door.
This all changes in the Cloud with some exceptions such as reservations. When companies spend money in the Cloud, its generally considered an OpEx usage by GAAP which means a dollar spent is a dollar not in the company’s balance sheet.
What does it mean to be Multi-Cloud
With the risks well understood, the question is now what does it actually mean to be Multi-Cloud. There are several camps of thought around this topic and I would summarize them as:
- Syncing your static backups to another provider
- Using vendor agnostic provisioning systems (e.g. Terraform, Puppet, Ansible, etc.) and having a copy of warm data in another provider
- Actively running your app(s) across multiple Cloud vendors at once
Clearly these are cumulative, you cannot do #3 without #1 and #2. These are also presented in levels of increasing difficulty and complexity.
I would argue, for about 70% of companies, you should just do #3 and have a runbook on how to use the second provider by hand if required mitigating a potential financial risk due to increased single provider costs. For most of that 70%, to ensure you have durability of your application, using multiple regions in your primary provider is the correct way to reduce business risk.
In part 2 of this series, I will investigate what you need, when you should do it, what to avoid, and what’s the first step