Multi-cloud, you're doing it wrong...
For a click-bait title, I thought that was pretty good. If you're doing multi-cloud you're probably not doing it wrong, but plenty of organisations are, as I observed in my consulting days. Obviously, they're my views, not those, of any, of my former or current employers.
The benefits of multi-cloud are, I think, pretty clear:
- De-risk the certainty that your cloud provider will fall over and give you an outage
- Avoid vendor lock-in
- "Commercial Agility" - The idea that you can take advantage of the best commercial deals offered by the cloud vendors
That all sounds sensible, especially since every cloud vendor will eventually fail. Whether they've uploaded a new version of their software defined network that kills their systems on the west coast of the USA, or their data centres in Dublin overheat and shutdown, or they suffer DNS issues and one of your critical micro-servers is unreachable. All these incidents have happened to systems I've worked on and they happen more often than you think. The only thing guaranteed in the cloud over time is eventual failure. Isn't the future depressing?
Lock-in leaves you exposed to the whims of one cloud provider. If they choose to retire a product you use, even if they replace it with a better one, you have no choice but to re-engineer that aspect of a system. I don't think your CFO and CTO will be happy with the hit to expenditure, do you? This has just happened to one former client of mine. But then again, the cloud provider specific products often allow for a faster route to Production. In these cases, the key decision makers need to be made aware so that they can make the appropriate cost/benefit analysis.
But the multi-cloud approach comes with some overheads, the most notable being a requirement for multi-cloud capable staff, and the additional cost overheads in developing for, and aggregating the administration and monitoring of multiple cloud environments.
So far, so obvious.
So, what's wrong with all that? Nothing. Nothing at all. The issue is how are you using the various clouds? I've seen former clients using one cloud vendor as a target to transition all their internal SaaS, another for containerised deployments, and the third for non-containerised development. I've seen others that use the niche/specialised technologies only available in a specific cloud platform. These approaches maintain a significant level of risk for a business.
The point of using multi-cloud to de-risk is to have the ability to share workloads across different cloud providers, ideally all the time, but on fail-over only is not an unreasonable use case provided you can manage the state/cope with state loss. If you can't do any of this, then you're still locked in to a single provider.
Using a the specialised features of a single provider's product might accelerate your development or reduce your costs but it represents a single point of failure. If you take this approach, then you're still locked in to a single provider.
Not so shiny, more like more hard work...
Full disclosure: I've not seen this done right yet and have only developed some thought experiments on the topic...
To be true multi-cloud you are going to need a team that is cross cloud capable and to use a common set of tools and technologies, probably the lowest common denominator, across all your cloud providers. This will often come with additional costs in terms of maintenance and management too, e.g. you have to create CI/CD pipelines capable of delivering to multi-cloud. If you're managing your a collection of database servers across clouds, you probably can't leave maintenance and patching to the cloud provider as the servers would quickly get out of sync. You would need to ensure the patch levels of software remain consistent to avoid the risk of compatibility issues. Back-ups and designing for fail-over scenarios wouldn't be fun. Cross cloud networking is going to be fun and, as ever, you need to architect for failure to help mitigate it.
You're going to need people that know what they're doing. You're going to need some solid ideas about how to aggregate the things you need to aggregate across clouds. You're going to need a CTO and CFO to sign off on what's likely to be an expensive business case, and for that, you need a very good plan. Beyond that, good luck and be wary when someone says they're multi-cloud!
PS: My hope is that some emerging players start bringing to the market some nice cross platform tool kits/frameworks to help with some of this stuff. I haven't seen any true multi-cloud frameworks yet but they'll be coming. If you know of any then let me know.
Excellent insights Tim! Thanks for sharing..!
Partner - William Sterling Partners
5 年Great read Tim Allen!