Two Clouds, Twice the Operations: What Hybrid and Multicloud Actually Require

Two organizations describe themselves the same way. The first runs its core system in its own datacenter and its analytics in a public cloud, joined by a private circuit. The second runs everything in one cloud except a machine learning workload in another, because a team preferred that provider’s tooling. Both say we’re hybrid multicloud, and they have almost no engineering problems in common.

The phrase covers too much, which matters because the words are used to justify decisions. What follows separates the two arrangements, then works through what either actually requires: a connection with properties you have measured, a position on where data lives, one way to do identity and policy and monitoring, and the skills to operate more than one platform. Definitions here follow NIST and the Google Cloud architecture guidance, checked in September 2026.

Two different arrangements, one phrase

Hybrid cloud has a standard definition, and it is stricter than common usage. NIST defines it as an infrastructure that “is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds).”

Read the conditions rather than the label. There are two or more cloud infrastructures; they remain distinct; and what binds them provides portability of data and applications. Note the first condition carefully: the definition asks for distinct cloud infrastructures, not for one of each deployment model — and a conventional datacenter is not automatically a cloud infrastructure, since private cloud in the same document means capacity “provisioned for exclusive use by a single organization” with the essential characteristics of cloud computing, self-service among them.

So an estate with a rack of hand-provisioned virtual machines, a cloud account, and a link between them may satisfy neither the first condition nor the third. That is a connected estate — a perfectly reasonable thing to run — and calling it hybrid borrows a capability nobody built. Industry usage is looser than this, which is fine as long as the looser sense is not used to claim portability in a decision.

Multicloud is different in a way worth noticing: it is not in that taxonomy at all. NIST lists four deployment models — private, community, public, hybrid — and using two public clouds is not one of them. That is not a criticism of the term; it is a hint about its nature. Multicloud describes a procurement and operational situation rather than an architecture, which is why two multicloud estates can look nothing alike.

The distinction that actually predicts difficulty is a different one, and it cuts across both words.

DeliberateAccumulated
How it aroseA constraint forced it: residency, a system that cannot move, a capability only one provider has, an acquisitionTeams chose independently; a proof of concept stayed; a vendor brought its own cloud
What existsA stated boundary, a chosen integration point, someone who owns both sidesSeveral partial platforms, each with its own identity and monitoring
What it costsKnown, budgeted, and arguablePaid in incidents and in duplicated work nobody totalled
What to do about itOperate it, and keep the boundary narrowDecide: consolidate, or make it deliberate. Leaving it undecided is the expensive option

Most estates described as multicloud are the second column. The useful first question is therefore not how do we manage multicloud but what made a second environment necessary, and is that reason still true.

The boundary has physics

Whatever the arrangement, there is now a link between environments, and three properties of it constrain the design more than any product choice does.

Latency has a floor. Distance and the speed of light set it, and a call that crosses the boundary pays it every time. The failure mode is not one slow call but a chatty sequence: a request that makes eight round trips across the boundary multiplies that floor by eight, which is how a design that tested fine in one environment becomes unusable when split. The fundamentals of throughput and latency decide what a protocol costs here, and a stated latency guardrail is how a team notices when a topology change made it worse.

Egress is charged, and asymmetrically. Moving data out of a provider generally costs more than moving it in, so an architecture that reads across the boundary repeatedly has a recurring bill that grows with success — see data transfer cost for the structure. The design response is to move computation to the data rather than data to the computation, which is the whole content of the next point.

Data has gravity. Data gravity is the observation that as a dataset grows, the services and workloads that use it tend to move next to it, because moving the data is slower and more expensive than moving the code. It is the single most reliable predictor of where a workload will end up, and it explains an otherwise puzzling pattern: a “multicloud” strategy decided at the top often produces one cloud that holds the data and does the work, plus a second that holds a few edge services.

Two consequences follow for anything crossing the boundary. Keep it asynchronous where you can — a queue or a replicated copy tolerates latency that a synchronous call does not. And keep the crossing coarse: one batched exchange beats many fine-grained calls at the same total volume, because the floor is per round trip.

Where the reason for the second environment is legal rather than technical, note that none of this settles it: data residency is a constraint about where data may sit, and it is satisfied by a specific region and service rather than by an arrangement of clouds.

Consistency is the real bill

The Google Cloud guidance lists the challenges plainly: “increasing management complexity. Maintaining consistent security. Integrating software environments. Achieving consistent cross-cloud performance and reliability.” That is the cost, and it is paid in four specific places.

  • Identity. Two identity systems means either federating them or maintaining two sets of accounts and two joiner-mover-leaver processes. The second is how access outlives employment. Pick one directory as authoritative and federate to the rest, and accept that this is a project rather than a setting.
  • Policy. The same rule — where resources may be created, what must be encrypted, what may not be public — has to be expressed twice, in two mechanisms that do not inherit the same way. Keep the list of non-negotiable rules short precisely because each one costs two implementations, and write the rule in prose once so the two implementations can be compared against it.
  • Observability. This one is documented as a trap: each cloud’s own tools produce “siloed visibility, which prevents building advanced threat intelligence across the entire environment,” and a centralized view “avoids the need for manual correlation between different tools and dashboards from different platforms.” An incident spanning both environments is the moment you discover whether correlation was arranged in advance or is being done by hand at 3am.
  • Skills. The least visible and often the largest. Each platform needs people who know its failure modes, and on-call has to cover both. A team that is expert in one cloud and adequate in another does not have two clouds; it has one cloud and a liability.

Because all four are recurring, they belong in total cost of ownership rather than in a migration budget. The comparison that matters is not the price of two platforms against one; it is the cost of operating two well against the constraint that made the second one necessary.

One approach reduces the bill without pretending the platforms are identical: standardize the interface teams use rather than the implementation underneath. One deployment pipeline, one policy repository, one monitoring destination, with provider-specific work hidden behind them. What does not work is an abstraction layer that claims to make two clouds interchangeable — it adds a third thing to operate and reliably leaks at the points that matter.

When a second environment improves availability, and when it does not

“Enhancing the reliability and availability level of business critical applications” is on the documented list of drivers, and it is the claim most often made without the conditions attached. A second environment is capacity in a different failure domain; whether that improves availability depends entirely on what you built across it.

It helps when three things are true: the workload can run in either place with data already present and current enough; the switch is automatic or has been rehearsed under load; and nothing in the failover path depends on the environment that is down. Miss any one and you have paid for capacity you cannot use in the moment you need it.

Three patterns make availability worse rather than better, and all three are common.

  • A shared control plane you built yourself. The orchestration that spans both environments — the deployment system, the service registry, the secret store, the DNS that decides which side receives traffic — becomes a dependency of both. What its failure takes down depends on which phase needs it: already-running services usually keep serving, because the request path does not go through the deployment system — but anything requiring a change does not work, and that includes scaling up and replacing a failed instance. So the failure mode is not both environments go dark but neither environment can respond to a problem, which is precisely the moment you were relying on the second one. Where the shared component is in the request path — DNS resolution for the failover target, a secret fetched on each start, a registry consulted per call — the outage is immediate rather than delayed. Either way the control plane you built spans both, so it is a common dependency where each provider’s own is not. Correlated failure through the thing meant to provide redundancy is the classic version of this mistake.
  • A request path that needs both sides. If serving a user requires a call to each environment, the path can only be as available as its worse half, and if the two fail independently it is the product of the two — 99% and 99% giving about 98%. The multiplication needs that independence: two environments whose outages coincide give roughly 99% again, which is why the honest general statement is no better than the weaker side, with the product as the independent case. Either way, splitting a synchronous path across a boundary reduces uptime while appearing to add redundancy.
  • A failover that has never run. Untested failover is a belief, not a capability, and it fails in specific ways: stale data, capacity that was never reserved in the standby, a certificate or credential that expired there, a runbook naming people who left. Rehearsing it is the only way to know, and the rehearsal is what most programmes skip.

Before reaching for a second provider, note that most availability requirements are met inside one. Multiple zones handle infrastructure failure and multiple regions handle regional failure, both with mechanisms the provider operates for you. The case for a second provider is narrower: a provider-wide failure, an account-level event, a regulatory demand for independence, or a commercial reason to be able to leave. Naming which one applies is what makes the design arguable — and the target should be written as an SLO rather than as an architecture, because the objective is what tells you whether a second provider is necessary at all.

Where the driver is a demand spike rather than failure, the pattern in the definition — “cloud bursting for load balancing between clouds” — is real but narrower than it sounds: it needs the workload to be portable and its data reachable at the moment of the spike, which is the same condition as failover. What it costs to keep that capability ready, and when it is cheaper than provisioning for the peak, is covered under cloud bursting.

What it does and does not do about lock-in

“Avoiding vendor lock-in” is also on the documented list of drivers, and it is worth being precise about what running two providers buys. It reduces commercial dependence: there is a credible alternative in a negotiation, and knowledge of the second platform exists in the team. That is a real benefit and it is often the honest reason.

It does not make workloads portable. A service built against one provider’s managed database, identity model, and messaging still has to be rebuilt to run elsewhere, and having an account with the other provider changes none of that. Being in two clouds and being able to move between them are separate properties, and the second is the expensive one.

So the useful form of a portability position is an estimate rather than an arrangement: what would it actually take to move this workload — foundation redesign, data transfer, dual running, retraining — stated as an exit cost per significant system. A team that can name that number for its three most important systems has more genuine optionality than one that has accounts everywhere.

One narrow exception is worth allowing: where the concern is not portability but concentration — a single provider account being suspended, or one commercial relationship carrying the whole business — the second environment is the answer, and the requirement is that it works without the first, which is a demanding and testable property.

Design conditions, in the order they bind

If a second environment is going to exist, these conditions decide whether it is operable. They are ordered by how hard each is to change later.

  1. Name the constraint. Residency, an immovable system, a capability, an acquisition, concentration risk. If no one can state it, consolidation is the cheaper answer and this list is unnecessary.
  2. Decide where data lives, per dataset, and accept that workloads will follow. This is the decision everything else inherits.
  3. Draw the boundary, and write down what crosses it. A short list, asynchronous by default, coarse-grained. Anything synchronous crossing it needs a stated reason and a measured latency budget.
  4. Choose one authoritative identity source and federate. Two directories is the condition under which access control quietly stops being true.
  5. Pick the single destination for logs, metrics, and alerts before the first incident, since correlating by hand is the failure the documentation warns about.
  6. Write the non-negotiable rules once in prose, then implement them per platform and test that both implementations enforce the same thing.
  7. Assign ownership of the boundary itself. Its network, its identity federation, its data movement — otherwise it belongs to whoever is on call when it breaks.

Two closing judgments, offered as mine rather than as documentation. Deliberate hybrid estates are normal and often permanent — plenty of systems will not move, and a connected datacenter is a reasonable long-term position rather than an unfinished migration. Multicloud as a default posture is usually a decision to pay twice for consistency, and the organizations that do it well are the ones that chose it for a reason they can still articulate.

Where it is accumulated rather than chosen, the recoverable move is to stop the growth first — one place where new workloads go by default — and then decide about what exists, workload by workload, using the same isolation reasoning that would apply inside a single provider.

References: NIST SP 800-145, The NIST Definition of Cloud Computing; Google Cloud Architecture Center, Drivers for hybrid and multicloud architectures; Google Cloud Architecture Center, Other considerations.


Discover more from Insightful Data Lab

Subscribe to get the latest posts sent to your email.

Similar Posts

Questions, corrections, or additional insights?

This site uses Akismet to reduce spam. Learn how your comment data is processed.