Skip to content
Kunobi Team
~7 min read

Over the past year, "cloud repatriation" has moved from niche infrastructure debates into mainstream enterprise conversations. It shows up in Gartner reports, Reddit threads, Slack discussions, infrastructure podcasts, and increasingly in boardroom conversations about cost, control, and operational risk. Gartner predicts that 90% of organizations will adopt a hybrid cloud approach through 2027, and against that backdrop, repatriation keeps coming up.

We did some research and wrote this to look past the usual "cloud good, on-prem bad" debate. The more interesting question is what happens after years of treating public cloud as the default for everything, then realizing that some workloads, costs, and operational surprises don't reconcile cleanly just because the YAML says they should.

What the CNCF Data Signals

We checked the latest CNCF State of Cloud Native Development report to bring some real data to this.

One of the more interesting signals is that public cloud usage has slightly declined, from 36% to 33% among the general population, and from 33% to 30% among backend developers, while hybrid cloud adoption keeps growing. That isn't a dramatic retreat from cloud. It points to teams getting picky after years of throwing almost everything into public cloud by default.

For a long time, "cloud-first" worked because it optimized for speed. Teams could move fast, avoid managing infrastructure directly, and scale without thinking too hard about placement decisions. Then workloads matured and the trade-offs got harder to ignore. Bills got weird. Debugging got slower. Compliance questions got sharper. And while some workloads genuinely benefit from cloud elasticity, others sit there 24/7 quietly generating invoices while barely changing load patterns at all.

What Engineers Are Actually Struggling With

So is the conversation really shifting from migration to placement? We dug through Reddit threads, community discussions, and platform engineering conversations to hear it from engineers themselves.

Visibility and debugging collapse together

Managed services and modern platform stacks solved setup complexity, but they also scattered operational context across too many surfaces. Logs, deployments, GitOps state, cloud metrics, Kubernetes events, and observability data all exist somewhere, just rarely in one place when you actually need them. The recurring complaint in r/kubernetes is some version of the same thing: nobody has real visibility into what's actually happening across their clusters.

Distributed systems make that worse, because a single issue can bounce across services, clusters, managed components, and cloud APIs. What used to be a quick fix becomes three engineers hopping between Grafana, kubectl, cloud logs, GitOps history, and Slack trying to reconstruct what changed first. That's the real pain. Not just complexity, but operational distance.

The cloud bill starts freelancing

Another problem we kept seeing is that cost gets weirdly hard to explain. One r/devops user captured the mood perfectly: "Our company's AWS bill has been steadily climbing for the past few months and it's starting to get out of control."

Somebody opens the bill, sees costs jump 40%, and suddenly three teams are in Slack trying to figure out whether it was egress traffic, autoscaling, overprovisioned EKS, NAT gateways running 24/7, or one forgotten analytics workload chewing through resources for two weeks.

Death by tabs

As infrastructure grows, platform teams inherit a weird pile of dashboards, terminals, cloud consoles, observability tools, and internal scripts that all show slightly different versions of reality. One Reddit engineer summed it up by saying half their job was just remembering which dashboard had the right information.

A surprising amount of engineering time now goes into rebuilding context that already technically exists somewhere, just spread across six interfaces, three browser windows, and one Slack thread somebody forgot to update.

Kubernetes didn't delete complexity

Kubernetes helped standardize how teams package, deploy, and operate workloads, but it also added another layer that teams now have to understand across cloud, on-prem, and hybrid environments. The line that gets repeated in r/kubernetes fits: Kubernetes is a fractal of complexity, where every step down raises more questions than it answers.

So when teams talk about moving workloads, they aren't just choosing between cloud and hardware. They're deciding where Kubernetes complexity, cloud-specific behavior, networking, storage, observability, and day-two operations become easiest to live with. Complexity didn't disappear. It stacked.

The Real Theme: Control vs Abstraction

What ties all of these problems together is that modern infrastructure became easier to provision, but much harder to reason about. Teams now operate across managed services, Kubernetes layers, GitOps workflows, cloud APIs, observability stacks, and multi-cluster environments that all expose different fragments of the same system.

The result is that operational work increasingly turns into context reconstruction. Figuring out which dashboard is correct, which layer owns the issue, which workload caused the cost spike, or which deployment changed first.

That's why cloud repatriation conversations get misunderstood. The issue isn't simply cost. It's how much abstraction, fragmentation, and operational distance teams can realistically manage before complexity starts eating engineering time faster than the infrastructure is saving it.

Where Kunobi Fits In

That same shift is happening in tooling, which is where Kunobi comes in. It's a local-first desktop workspace for Kubernetes and GitOps, and it earns its keep in exactly the hybrid and multi-cluster environments where operational context fragments fastest.

Kunobi connects directly to your existing Kubernetes contexts and GitOps sources, so instead of bouncing between kubectl sessions, Grafana tabs, GitOps dashboards, cloud consoles, and YAML history, you trace what's deployed, what changed, where it drifted, and why — all from one place. It's built for the moment something breaks and you need to fix it, not for staring at graphs.

Take the case everyone with a GitOps setup has hit. A service starts misbehaving in one cluster. Argo says the app is synced and healthy, so the repo looks like the source of truth. But the pod is running an image tag that doesn't match what's in Git, because someone patched it live three weeks ago to chase down an incident and never reconciled it back. Normally that's a scavenger hunt: pull the manifest from the repo, kubectl the live resource, diff them by eye, then go ask in Slack who touched it. In Kunobi the Git intent and the cluster reality sit next to each other in one view, the drift is visible immediately, and you click straight from the running resource to the manifest that should have produced it. The hunt becomes a glance.

The product is intentionally local-first and Kubernetes-native. No hosted control plane, no extra SaaS dependency, no replacing your existing workflows. The point is operational clarity in environments where GitOps intent, cluster reality, and deployment history tend to drift apart over time.

In practice that means seeing across clusters and GitOps sources in one workspace, browsing resources fast even in large Kubernetes environments, and navigating directly between resources, manifests, and deployment state. It runs with native desktop performance instead of browser-heavy tooling, and starts fast enough that it doesn't get in the way of day-to-day work.

Try Kunobi now →

Conclusion

"Cloud repatriation" makes the trend sound bigger and cleaner than it really is. Most teams are doing something messier: figuring out where workloads actually belong after years of stacking managed services, Kubernetes layers, cloud APIs, and tooling on top of already complex systems. Some stay in public cloud, some move closer to hardware, and plenty end up split across both.

Wherever the workloads land, the real pressure shows up later — during day-two operations, when someone has to know what changed, where the cost spike came from, and which layer owns the problem. That's the question that actually matters now. Not where the infrastructure lives, but whether teams can still understand and operate the systems they built.

$ tail -f /dev/blog

Cluster updates, in your inbox.

Kubernetes deep dives, GitOps field notes, and platform-engineering essays from the team building Kunobi. Two posts a month. No fluff.

$ also availableThe Kunobi desktop app. Every cluster, one window.
Try Kunobi now
Available for:
Apple macOS logomacOSMicrosoft Windows logoWindowsLinux logoLinux
Download Kunobi