Control plane icon connected to three clusters on a violet gradient
Control plane icon connected to three clusters on a violet gradient
Trisha McCanna

Trisha McCanna

VP of Marketing

AI

Cloud Native

Read time: 0 mins

Read time: 0 mins

The Inference Problem Starts After the Model Runs

The Inference Problem Starts After the Model Runs

Upbound has submitted Modelplane to the CNCF for consideration as a Sandbox project. Running inference reliably is a systems problem, and we think its operating layer should be built in the open.

Share

Share

The Inference Problem Starts After the Model Runs

The Inference Problem Starts After the Model Runs


For two weeks, our engineers thought the open model behind their coding agents wasn’t ready. It made up tool names, dropped required fields and wandered through long reasoning loops. Then one of our pilot users suggested a test almost too simple to be useful: ask the model to copy back 50 names. On one serving engine it managed that correctly only 30% of the time. On another, using the same model weights and GPUs, it got every name right. The problem was not the model. It was the software around it.

That was one of the more memorable moments in Project Champagne, our effort to run real internal workloads on Modelplane rather than ask others to depend on something we hadn’t operated ourselves. It also gets to the reason Upbound has submitted Modelplane to CNCF for consideration as a Sandbox project: running inference reliably is a systems problem, and we think the operating layer for that systems problem needs to be built in the open.

AI infrastructure is becoming more horizontal. Models, serving engines, schedulers, accelerators and infrastructure providers evolve on different timelines, while GPU capacity remains scarce and expensive. Different workloads need different combinations; a coding agent with a long conversation has little in common with an interactive chat endpoint or a security scan in a build pipeline. The difficult part is no longer just standing up one cluster and getting one model to answer. It is keeping those combinations working across a heterogeneous fleet as capacity, traffic and software change.

That’s a familiar transition for platform engineers. Upbound created Crossplane so teams could manage resources across clouds through declarative APIs. Modelplane applies the same idea to inference: platform teams describe the models and infrastructure they need, and the control plane coordinates deployments, serving technology and GPU capacity across a fleet of Kubernetes clusters. Application teams can use a stable inference endpoint while the systems behind it evolve. The work underneath is still done by the model servers, schedulers, accelerators and providers that specialize in it.

An open ecosystem is the point

We saw the breadth of that work at Inference Day on November 5. Rather than put one company on stage to explain the whole inference stack, the event brought together the people building different pieces of it. Kelsey Hightower opened a conversation about what platform teams should build - and which cloud-native lessons they should carry forward. The panels then tackled three distinct problems: serving models at scale, building the platforms underneath, and operating inference in production. Viktor Farcic closed with an Inference 101 session for engineers new to the field.

Those conversations spanned maintainers and contributors from NVIDIA Dynamo, KServe, Envoy AI Gateway, Kubernetes, Metal3, Crossplane and Modelplane, alongside engineers focused on production telemetry and operations. That range is the point. A project focused on scheduling should not have to become a model server, and an accelerator provider should not have to own the enterprise control plane. The interesting work is making these independent pieces useful together at the fleet level. We also published an Open Field Guide to Inference Engineering, drawing on practices across the community and the lessons from Champagne, so platform engineers inheriting this work have a place to start.

Inference Day: modelplane.ai/inference-day

Field guide: docs.modelplane.ai/guides/inference-guide



Modelplane: the inference ecosystem orchestrated as one fleet, with supported models, engines and infrastructure providers

What this looked like on stage

At KubeCon + CloudNativeCon North America, Bassam walked through that idea with infrastructure from several providers. The keynote showed NVIDIA GPUs on AWS and AMD GPUs on Vultr, with a single endpoint in front of two model deployments. As the scenario evolved and an AWS reservation approached expiration, CoreWeave was added and the AWS deployment was drained. The point wasn’t that every workload should be moved around constantly; it was that an application shouldn’t need to be rewritten every time the infrastructure behind its inference endpoint changes.



Bassam presenting the KubeCon keynote in front of a slide titled One cluster is not enough



The same principle applies within the serving stack. One example is Modelplane’s integration with NVIDIA Dynamo, which brings together distributed inference, multi-node workload coordination using Grove and the KAI Scheduler, and model-weight distribution through ModelExpress. It’s one of the ways specialized open source technologies can work within a common fleet-level operating model rather than becoming a separate infrastructure stack.



Keynote walkthrough slide: Operate, drain AWS to CoreWeave, showing the Modelplane control plane routing across AWS, Vultr and CoreWeave clusters

Learning by running our own inference

Champagne began with three very different workloads: chat, coding agents and a build-security agent that finds and fixes CVEs. They forced us to learn the details. Our first-choice GPU instance never appeared despite approved quota. Another shape was refused in multiple availability zones. Some model responses streamed valid tokens and returned HTTP 200 even though the answer had been cut off. Credentials that worked for a short human interaction didn’t necessarily survive a long-running agent session. A dashboard could say a resource was healthy while the underlying service wasn’t. None of those problems could be solved by picking a different frontier model.

The security agent gave us another useful lesson. When we compared open models with a hosted reference on actual vulnerability-fixing tasks, the models could identify known CVEs, but a plan that looked plausible could still recommend a version that didn’t fix the vulnerability. We had to test the entire workflow, the grader and the infrastructure before deciding whether the model had failed. For coding agents, the hard question became how to grow beyond a small pilot without making the experience worse. Testing the equivalent of a 15-engineer team showed that two GPU nodes weren’t sufficient; four nodes with a different serving configuration could meet the test. Even apparently light users could produce heavy concurrency through subagents.

We didn’t keep those discoveries private. The six-part Drinking Our Own Champagne series records the failures, experiments and trade-offs, and the fixes helped shape upstream work on gateway authentication, configurable timeouts, observability and scaling. The series is complete, but the feedback loop is not. We run the software, find what breaks, publish what we learn and make improvements that other users can build on.

Why a neutral home matters

Inference Day and Project Champagne have pushed us toward the same conclusion from different directions. The ecosystem needs people who are excellent at their own layers, but it also needs a common way to operate those layers together. And it needs shared knowledge about the unglamorous parts - capacity, identity, observability, reliability and cost - that determine whether inference is actually useful. An open fleet-level control plane gives those communities somewhere to connect their work without asking any one project to solve the entire problem.

Modelplane remains available under the Apache 2.0 license. Our submission for consideration as a CNCF Sandbox project is an invitation to build that common layer with a broader community of maintainers, infrastructure providers and enterprise users. Acceptance is not yet decided. In the meantime, we’ll keep doing what Champagne taught us to do: run it, test it, share the results and make the project better in the open.

Explore Modelplane: github.com/modelplaneai/modelplane

Documentation: docs.modelplane.ai

Project Champagne series: Drinking Our Own Champagne, Part 6

About Authors

Trisha McCanna

Trisha McCanna

VP of Marketing

Subscribe to the
Upbound Newsletter

Subscribe to the
Upbound Newsletter

Subscribe to the
Upbound Newsletter

Related

Related

Posts

Posts

Nov 2, 2026

Drinking Our Own Champagne, Part 6: The Model Was Rarely the Problem

Sumbry

Nov 2, 2026

Drinking Our Own Champagne, Part 6: The Model Was Rarely the Problem

Sumbry

Oct 26, 2026

Drinking Our Own Champagne, Part 5: What Does It Take to Grow a Self-Hosted Coding Model From Pilot to Team?

Dennis Ramdass

Principal AI Engineer

Oct 26, 2026

Drinking Our Own Champagne, Part 5: What Does It Take to Grow a Self-Hosted Coding Model From Pilot to Team?

Dennis Ramdass

Principal AI Engineer

Oct 21, 2026

Can Your Platform API Survive Its Own Implementation? Composition Lessons from Two Decades of EC2

Javid Habibi

Staff Solutions Engineer

Oct 21, 2026

Can Your Platform API Survive Its Own Implementation? Composition Lessons from Two Decades of EC2

Javid Habibi

Staff Solutions Engineer

Get Started with Upbound Crossplane 2.0

Trusted by 1,000+ organizations and downloaded over 100 million times.

Get Started with Upbound Crossplane 2.0

Trusted by 1,000+ organizations and downloaded over 100 million times.

Get Started with Upbound Crossplane 2.0

Trusted by 1,000+ organizations and downloaded over 100 million times.