Case study · AI infrastructure and capacity

Capacity you can move: multi-region AI serving for a US SaaS company when data centres stall

A US B2B software company had built AI features that customers now relied on daily. Its model serving sat in one cloud region with one provider, on capacity that was hard to expand. With demand for AI compute outrunning supply and voters pushing back on new data centres, the company needed AI capacity it could move, without rebuilding the product each time.

Case studySoftware · United StatesSumanta Mukhopadhyay9 min read
#ai#platform#kubernetes
CASE STUDY · CASE STUDY · AI INFRASTRUCTURE AND CAPACITY5 Nov 2026 · 15:55 GST
At a glance
SectorSoftware · United States
My roleFractional CTO and AI architect
EngagementAssessment, architecture and delivery leadership
ScopeCapacity planning, multi-region serving, model routing, provider portability, cost controls, failover
What changed
  • AI features served from more than one region and provider
  • Traffic moved between regions and providers by configuration, not code changes
  • Overflow to managed model APIs when self-hosted capacity was full
  • Cost per feature and per customer visible, not just total spend
  • Capacity decisions made from usage data and provider plans, not guesswork
Kubernetes clusters in several regionsvLLM model servingInference gateway with model routingManaged model APIs as overflowInfrastructure as codeMulti-cluster managementOpenTelemetry GenAI telemetryPer-tenant cost allocation

Anonymised composite. Client names, identifying details and confidential figures are withheld; public facts are cited in the references.

The situation

A US software company sold a workflow platform to mid-sized businesses. Over two years it added AI features: summarising records, drafting replies, extracting data from documents and an assistant inside the product. Customers adopted them quickly. The company served open-weight models on GPUs in one cloud region, with a managed model API for a few tasks. As usage grew, adding GPU capacity in that region became slow and uncertain, and latency spiked whenever demand peaked.

Why now. Demand for AI compute was running ahead of supply: Fortune reported Microsoft's CFO saying demand for its cloud still exceeded supply3. New capacity was arriving on long timelines and through complex financing, such as Google's credit backstop for Anthropic's Kentucky data centre lease4. And in the 3 November 2026 midterms, voters sided against data centres in 40 of 41 local ballot measures across 10 states, according to CNBC's analysis1, a sign of growing opposition to new AI infrastructure2. The board's question was simple: what happens to our AI features if we cannot get more capacity where we are?

What had to be true

  • No single point of capacity: AI features served from more than one region and provider.
  • Moving traffic is configuration, not a code change or a rebuild.
  • Customer data rules respected: some customers required US-only processing; some required specific providers.
  • Costs visible per feature and per customer, so capacity decisions follow value.
  • Quality held when traffic moves between models or providers.

Architecture

Product
AI featurescall tasks, not models
Routing
Inference gatewaycapacity, latency, data rulesPer-customer policyallowed regions and providers
Capacity
Primary regionreserved GPUs, vLLMSecondary regionsmaller, warmManaged APIsoverflow and failover
Operations
Infrastructure as codeidentical clustersMulti-cluster viewone place to operate
Evidence
Telemetrymodel, provider, tokens, customerEvaluationsper model and taskCost reportsper feature and customer
The gateway decides where each request runs; identical clusters and evaluations make moving safe.

The data flow, end to end

  1. RequestA product feature asks for a task, such as "summarise this record"
  2. PolicyThe gateway checks the customer's allowed regions and providers
  3. RouteIt picks the primary region if it has capacity, else the secondary or an approved API
  4. ServeThe model runs; the response streams back to the product
  5. RecordModel, provider, region, tokens, latency and customer are recorded
  6. ReviewWeekly reports show cost and quality per feature, feeding capacity decisions
Every request carries enough metadata to answer "where did it run, what did it cost, was it good?".

The hard part: moving traffic without changing behaviour

Routing is easy to draw and hard to trust. A summary from one model in one region should not read differently from a summary produced somewhere else. The team built a small evaluation set for each AI feature from real, consented examples, and ran it against every model and provider combination the gateway was allowed to use. A route was only enabled for a feature when it passed that feature's evaluation; see evaluation sets that predict production.

The second difficulty was operations. Running identical clusters in two regions doubles the surface area unless they are managed as one. All clusters were built from the same infrastructure code, ran the same serving stack, and were operated from a single multi-cluster view, so engineers could see and act on every region from one place5.

Headlamp user interface showing a Nodes list that spans two clusters, with a Cluster column identifying which cluster each node belongs to, alongside CPU, memory, readiness and version
One view across clusters: operating several regions as a single estate rather than separate silos. Source: Kubernetes blog, Will Case · CC BY 4.0

Customer data rules shaped routing as much as capacity did. Some contracts required US-only processing or excluded certain providers. Those rules lived in a per-customer policy the gateway checked on every request, so overflow never sent a restricted customer's data somewhere it should not go. See Kubernetes inference gateway and model routing.

Capacity you cannot move is a dependency you cannot manage. Make moving cheap: same code, same clusters, same evaluations, different place.

How it ran

Platform team
  1. Second region and clusters
  2. Gateway and routing
  3. Failover drills
AI and product
  1. Task-level interfaces
  2. Per-feature evaluations
  3. Quality monitoring
Finance and legal
  1. Customer data rules
  2. Provider contracts
  3. Cost per feature
Platform made moving possible, product made it safe, finance made it worth it.
Phase 1See
  • Telemetry per request
  • Cost per feature
  • Capacity forecast
Phase 2Decouple
  • Task-level interfaces
  • Inference gateway
  • Customer policies
Phase 3Expand
  • Secondary region
  • Managed API overflow
  • Per-route evaluations
Phase 4Operate
  • Failover drills
  • Quarterly capacity review
  • Contract renegotiation
Measure first; the data showed which features needed reserved capacity and which could use overflow.

Key decisions and trade-offs

DecisionAlternativeWhy
Primary plus secondary regionActive-active everywhereResilience without doubling cost
Managed APIs as overflowSelf-host all capacityAbsorbs peaks without buying idle GPUs
Routes enabled per feature after evaluationRoute anywhere with capacityQuality stays consistent when traffic moves
Per-customer data policy in the gatewayRules in each featureOne place to enforce contracts
Cost per feature and customerTotal AI spend onlyCapacity follows value

What I'd do again, and differently

Again: start with per-request telemetry. It showed that a few features drove most of the cost, which changed the whole capacity plan. Differently: write customer data rules into the gateway before adding the second region; retrofitting them slowed the rollout. Related: planning around the AI capacity crunch, AI cost allocation, the 5 November tech news and the US page.

If your AI features depend on capacity you cannot easily expand, see my AI architecture work, or analyse your challenge and bring the result to a call.

References
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
FAQ

Common questions

Why would a SaaS company need AI capacity in more than one region?

Because capacity in a single region can be hard to expand when demand outruns supply, and new data centres can be delayed. Serving from several regions and providers keeps AI features available and gives room to negotiate.

Does multi-region serving mean running everything everywhere?

No. In this design, a primary region carries most traffic, a secondary region and managed APIs absorb overflow and failures, and routing decides per request based on capacity, latency and data rules.

How do you keep costs under control across providers?

Record model, provider, tokens and customer on every request, and report cost per feature and per customer. That shows where capacity is worth reserving and where overflow pricing is acceptable.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. Time zones from the Americas and Europe to the Middle East and Asia-Pacific.