7 Reasons Why Multi-Cloud is a BAD IDEA
1. Vendor lock-in is a false flag
If your organization is contemplating a multi-cloud strategy, chances are that the proponent(s) of the idea are grossly underestimating the effort required to implement it and are grossly overestimating the benefits. Perhaps because one of your consulting partners is touting its potential (to increase their revenue).
We in IT have been locked into our vendors since the beginning. Everybody ran Exchange on Windows Servers. When the Oracle Financials system underperformed, it was because it wasn't running on Oracle provided machines backed by Oracle provided storage arrays. Java processes are typically run on a licensed Java JVM (Websphere or Weblogic) on a licensed version of Unix (AIX or RedHat).
Moving to the cloud is not your opportunity to change the nature of that relationship. Buying into the cloud is not the same as purchasing office supplies.
2. Parity is an illusion
It should be simple. A bit of compute, a bit of storage, string it together with “standard” networking. Piece of cake. Just as there are a myriad of ways to solve the same problem (how many browsers do you have installed), there is more than one way to build a cloud platform. Trying to map from one paradigm to the next means creating a high degree of abstraction to make it all work. Not taking advantage of all the platform has to offer as it isn’t a commodity. It isn’t the same. And once the lowest common denominator is found, the underlying platforms will evolve in different directions. That requires constant vigilance and refactoring. Just in case.
3. Security, Identity, and Compliance will break you
Security has long been the primary concern of organizations as they embrace the cloud. While there is some overlap when it comes to core features of a cloud ( databases, compute, etc.) identity is NOT one of those. Every cloud implements a different model. Cloud platforms encourage the use of role-based access to grant and restrict access to and the operation of cloud-based resources. However, every platform has a different level of granularity and set of operations. Trying to port your Observer role from one platform to the next is not a transparent process.
The other form of security is network based. Proper network security for your cloud infrastructure is vital for segmenting and protecting your applications and data from attack, ensuring regulatory compliance, and guaranteeing application availability and reliability. Again, each cloud provider provides different control planes for your operators to configure. Porting those configurations between clouds is a complex task.
Multi-cloud environments raise governance challenges, particularly in ensuring consistent policies and compliance across diverse platforms. Properly interpreting and implementing policy consistently becomes crucial to maintaining control over resources and ensuring proper adherence. Failure to address these challenges will lead to compliance issues and increased regulatory scrutiny.
4. Multi-Cloud does not increase your reliability
If you rely on using multiple clouds to decrease the odds of a single vendor having an outage, you are doing so at exponentially increased costs and complexity. Sure outages are scary when they happen to major players like AWS, Azure, or GCP, but the same thing can and does happen in your own data centers (hello AT&T). It is your responsibility to plan for just such events. When did you last update or even (gasp) test your Disaster Recovery plans?
Not only do cloud platforms provide multiple network, power, and backup connections in each of their data centers, they also spread their risk geographically. That allows their clients to (with relative ease) configure their systems for high availability and geographic diversity (active-active) as well as automated failover solutions.
Trying to do this across cloud platforms requires companies to engage yet more (expensive) providers for networking, routing, load balancing, firewalls, and compliance. Not to mention the additional complexity it creates in trying to provide centralized logging, monitoring, and observability.
5. Data transfer costs are going to kill you
Transferring data out of the cloud is one of the hidden costs of using cloud platforms. Cloud providers need basic units to come up with costs; the size of compute, amount of storage, and the movement of data are some of the most common. The impact of this data movement generally isn’t discussed until you realize how much you are being charged to move your own data around. It is even more costly when you are moving data between different cloud providers. And that doesn’t begin to account for the complexity that arises due to data latency, data duplication, and application performance.
6. Multi-cloud means spending more money, a lot more money
While multi-cloud promises the allure of flexibility, it also leads to increased costs. Different cloud providers have distinct pricing models, making it challenging to optimize costs effectively. Managing expenses across multiple platforms requires a good deal more monitoring and adjustment. If the intention is to use arbitrage to take advantage of lower prices, that is done at the increased risk and cost of monitoring market fluctuations and moving quickly enough to take advantage of those. The expertise to do that is in and of itself an additional hidden cost.
This approach also removes a significant negotiating position from the cloud consumer. Cloud platforms provide discounts and incentives to their customers based on size and spend. By splitting spend across platforms, consumption costs will increase.
7. The juice isn’t worth the squeeze
The effort in upskilling an organization to make effective use of the cloud paradigm after decades of building and deploying systems in private or shared data centers is not insignificant. Assumptions will be made (“That isn’t how it worked before”). Mistakes will be made (“Oh, that's what that means”).
Managing a cloud environment demands a diverse skill set. Managing multiple cloud environments is exponential, not additive. Finding and retaining talent with the required broad skill set is challenging. The recruitment and training costs associated with building and maintaining a skilled workforce for each cloud provider can be substantial, adding another layer of complexity to the overall operational landscape.
On the other hand
There are, however, times when using more than one cloud provider makes sense. It isn’t in trying to run an application in more than one place. It is in leveraging the clouds for what they do well. If you want to run your Oracle Apps in the cloud, take the red pill and run them in Oracle’s cloud. If you're going to run your COBOL and Mainframe in the cloud, take the blue pill and run on whatever IBM is doing these days. Use Azure if you are a Microsoft shop with a great deal invested in dotNet and other Microsoft technology. Azure has been built to do Microsoft well. Use AWS if you are a Java, JS/Node, or Python shop. It will make sense to you. While Azure and AWS have Big Data solutions, GCP (for now) does it better.