Multi-Cloud: Keep the Exit Open Without the Abstraction Tax
January 8, 2026 · 5 min read · Architecture
Lock-in bites unevenly
Multi-cloud gets sold as insurance against vendor lock-in, and then gets built as if every layer locks you in equally. It does not. Compute is nearly portable already. A managed database, a cloud-specific queue, an identity system: those are where a provider actually holds you, and no amount of running the same container in two places changes that.
So the useful question is not "single cloud or multi-cloud." It is which parts of your stack you want to keep portable, and what that portability costs, because it is never free.
Where portability is worth paying
True portability means abstraction at every layer, and the layers do not cost the same.
Compute ports cheaply: containers and Kubernetes give you most of it for free. Data, networking, and identity are the expensive ones, and they are also where the managed service you would give up is doing the most work for you. Pay the abstraction tax on the compute layer, where it is small and buys real flexibility. Think hard before you pay it on data, where it is large and often buys you a worse database.
Declare infrastructure once, reconcile it everywhere
The move that keeps the exit open without a bespoke abstraction for every provider is declarative infrastructure. Describe what you want as Kubernetes resources, and let a reconciler make it real on whichever target you point it at: AWS, Azure, GCP, Alibaba Cloud, DigitalOcean, OpenStack, or your own on-prem and bare metal.
Git stays the source of truth, so the same declaration is reviewed, versioned, and reconciled the same way on every cloud. You are not writing one pipeline per provider; you are writing the desired state once and letting the platform land it. That is portability at the layer where it is cheap, without a translation layer smeared across the layers where it is not.
Keep the exit open, do not move in twice
The point of all this is leverage, not a permanent second home. Keep your compute and delivery portable so switching is a real option and your contract talks have teeth. Accept the provider-specific managed services where they earn their keep, and write down which parts are portable and which are not, so the exit cost is a number you know rather than one you discover.
When one cloud is the right call
For most teams, most of the time, one cloud is simpler and cheaper, and the discipline above is what keeps that from becoming a trap. Portable compute, Git-driven delivery, and honest notes on your dependencies give you the exit without the standing cost of running everywhere. Go genuinely multi-cloud when a real requirement demands it, residency, an acquisition, a service only one provider offers, and not because a slide said lock-in was bad.