TecLeads TecLeads Blog
2026-07-31 · 7 min read

When Multi-Cloud and On-Prem Actually Earn Their Keep

Long rows of enterprise server cabinets
multi-cloudon-premcloud architecturefinopsreliability

At 2am, nobody cares that your architecture diagram has three cloud logos on it. They care that the service is down, the failover runbook is stale, and the engineer with access to the secondary environment is asleep on another continent.

That is the problem with most multi-cloud strategies. They begin as a risk-management idea and quietly become an operations tax. Teams duplicate infrastructure, identity, networking, observability, deployment pipelines, security controls, and support knowledge. Then they discover that owning two recovery targets is not the same as being able to recover.

The sensible default is much less fashionable: use one cloud well. Add another cloud, or keep workloads on-prem, only when a specific constraint pays for the additional complexity.

One cloud is the default, not a failure of ambition

A single-cloud architecture gives engineers one identity model, one network control plane, one set of managed services, and fewer ways for production to surprise them. That usually improves reliability and developer experience more than theoretical provider portability does.

There is still work to do. A single-cloud system should span failure domains where the application requires it. Backups need copies outside the primary account or subscription. Infrastructure must be reproducible. Restore procedures need testing. None of that requires running the live application across unrelated providers.

Provider concentration is a real risk, but teams often address it backwards. Before funding a second platform, ask whether the current one can survive an account compromise, region failure, broken deployment, expired certificate, or accidental database deletion. Those are the failures most engineering teams can actually rehearse.

A basic inventory is more useful than another strategy deck:

kubectl config get-contexts
terraform workspace list
aws organizations list-accounts
az account list --output table
gcloud projects list

If nobody can explain which environments those commands reveal, who owns them, and how production is restored, adding another provider will make the situation worse.

Multi-cloud needs a job beyond making executives comfortable

Multi-cloud makes sense when a constraint cannot reasonably be handled inside one provider.

Regulation may require operational separation or force data and services into locations one provider cannot cover. An acquisition may leave two functioning estates that would cost more to consolidate than to operate independently. A product may depend on a specialist service available from one provider while its main platform lives elsewhere. Large organisations can also have enough engineering depth to treat cloud providers as separate platforms with clear ownership.

There is another defensible model: place independent products in different clouds. Product A runs entirely in one provider, Product B in another, and neither pretends it can fail over between them. This limits concentration without putting every request through a cross-cloud maze.

Active-active portability is where confidence tends to outrun engineering. The application might run in Kubernetes on both sides, but state is rarely so cooperative. Databases have consistency rules. Object stores expose different behaviour. Identity systems, queues, keys, load balancers, and private networking all resist abstraction at exactly the point an incident becomes interesting.

If multi-cloud exists for reliability, test the claim. Do not settle for seeing two green clusters:

kubectl --context=cloud-a get pods -A
kubectl --context=cloud-b get pods -A

dig api.example.com
curl --fail --max-time 5 https://api.example.com/health/ready

Then remove the primary path during a controlled exercise. Measure DNS convergence, data loss, queue behaviour, authentication, and the time until users receive a working response. A failover plan that has never been run is documentation, not resilience.

On-prem is not obsolete, but nostalgia is not a business case

On-prem makes sense for stable, heavily used workloads where hardware utilisation is predictable. It can also be the right answer for specialised accelerators, factory systems with strict latency requirements, restricted data, or sites that must continue operating through a wide-area network failure.

The financial comparison must include the whole service. Servers are only the visible part. Count racks, power, cooling, spares, networking, licences, hardware refreshes, remote hands, capacity planning, security patching, backup infrastructure, and the people carrying the pager. Cloud pricing deserves the same honesty. Include support, logging, data transfer, idle development environments, oversized databases, and managed services that were selected because nobody wanted to operate the underlying technology.

This is where FinOps should be useful. Good FinOps connects spending to ownership and workload behaviour. Bad FinOps emails a monthly spreadsheet after the money has gone.

Compare a workload over its expected life, with realistic utilisation and staffing assumptions. Do not compare a fully loaded cloud bill with the purchase price of bare servers. Also do not compare an on-prem estate that has already been paid for with a cloud migration as if the existing hardware will run forever.

A sudden cloud bill is a reason to inspect architecture and usage first. It is not automatic evidence that building a data centre platform will be cheaper.

Hybrid is a permanent operating model, not a halfway point

Most established companies are hybrid whether they planned it or not. Some systems cannot move yet. Others should not move. The mistake is treating hybrid as temporary while building no durable way to operate it.

The hard parts sit between environments: identity, address planning, DNS, certificate issuance, secrets, telemetry, software distribution, and incident ownership. A workload crossing that boundary inherits both sides' failure modes plus the connection between them.

Keep those crossings explicit. Avoid chatty application calls across a private link. Replicate data deliberately rather than mounting remote storage and hoping latency stays polite. Put timeouts, retries, and circuit breakers at the boundary. Record which team owns the link and what happens when it fails.

Developer experience needs attention too. Engineers should not learn three deployment rituals for the same service. Standardise the interface where it helps, perhaps through GitOps, reusable Terraform modules, OpenTelemetry, and a shared workload identity pattern. Accept that the implementations underneath will differ. An abstraction that hides every provider feature usually hides the information needed to debug it as well.

Make the constraint pay the bill

For each proposed environment, write down the constraint it satisfies, the owner, the recovery objective, and the annual operating work. Include patching, access reviews, incident exercises, upgrades, and skills coverage. Architecture has a labour cost even when the resource calculator shows zero.

Then choose plainly. Use one cloud for most new internet-facing systems. Use multi-cloud for genuine regulatory, product, acquisition, or concentration requirements that have funded owners. Use on-prem for predictable high utilisation, local autonomy, specialised hardware, or constraints that public cloud cannot meet cleanly. Use hybrid when the estate demands it, and engineer the boundary as a production dependency.

If you only do one thing this week

Pick the system described internally as multi-cloud or hybrid and ask its owner to demonstrate recovery without the primary environment. Give them a controlled window and the right support. Watch what happens to identity, data, DNS, monitoring, and user traffic.

If the demonstration works, you have evidence. If it does not, stop buying more infrastructure and fix the recovery path you already claim to have.


TecLeads helps engineering teams ship this kind of thing faster and more safely. If you'd like a second pair of eyes on your setup, book a 30-minute call or explore what we do.

📍 Tech Pulse · today's quick question 🟢 Level: Basic DevSecOps

What does shift-left security mean?

Pick an answer to see how other engineers voted.

Want a hand with this?

TecLeads helps engineering teams ship faster and more securely.

Book a 30-minute call

← All posts