Control plane & governance¶
How you operate Foundry at scale — provisioning, regions, cost, RBAC, gateways, and policy. Conceptual background; no code required to do the labs.
The labs run against a single project you create by hand. In production, a platform team operates a fleet of projects and agents. This page sketches that control plane so the enterprise references in the labs make sense.
1. Provisioning¶
Enterprises provision Foundry with infrastructure-as-code (Bicep/Terraform) so the topology is repeatable and reviewable. The reference series deploys, via Bicep:
- a core gateway account (shared models + an APIM front door),
- project spokes (1:1 per team, or 1:N multi-project),
- supporting resources: Azure AI Search, Application Insights, storage, ACR.
For the workshop you skip all of this — portal click-ops to create one project + deploy two models is enough (see Setup).
2. Regions & model availability¶
Not every model is available in every region, and reasoning / deep-research models
often lead in a subset of regions. When you pick a region for your account, check that
your target models (e.g. o3-deep-research) are available there. The reference series
keeps region-availability notes per capability; for the labs, deploy in a region that
offers gpt-4.1-mini and text-embedding-3-large at minimum.
3. The AI gateway (APIM)¶
At scale, all model traffic is routed through an AI gateway — typically Azure API Management — which provides:
- per-team subscription keys for independent rate limiting,
- managed-identity backend auth (no model keys in app code),
- a single governed egress point for logging and policy.
team A ─┐
team B ─┼─► APIM gateway ─► model backends (regional)
team C ─┘ (keys, quotas, ▲
routing, logging) └─ managed identity
Why some labs note 'not supported through APIM'
When a project connects to models via an APIM connection, the supported call
path is the Responses API + agents, not raw chat.completions. The workshop's
direct single-project setup doesn't hit this constraint, but you'll see it called
out because it matters in the enterprise topology.
4. Identity & RBAC¶
Auth across the platform is DefaultAzureCredential — your az login identity (or
a managed identity in production). No admin keys in notebooks. Access is granted at
the project scope via Azure RBAC roles, so onboarding a developer is one role
assignment, not a sprawl of per-resource grants.
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential() # az login locally; managed identity in prod
5. Governance with Azure Policy¶
Because Foundry sits under one resource provider, Azure Policy can enforce org-wide rules uniformly. A canonical example from the reference series:
Deny model deployments in project spokes — forcing all inference through the core APIM gateway, so every request is logged, rate-limited, and policy-checked.
Other governance levers: cost management (per-project budgets and showback via the gateway keys), networking (private endpoints), and content safety policies that apply to every agent in scope.
6. Beyond the workshop¶
The control plane also covers operating concerns you'll meet in the capstone's "where next":
- Custom/registered agents — register agents (even from other clouds) for unified fleet management in the Operate view.
- Publishing — surface agents in Microsoft 365, Teams, and BizChat.
- Hosted agents — containerized agent deployments (ACR-backed) for portability.
- VS Code extension — author and debug agents from your editor.
You now have the mental model for both the single-project path you'll code and the enterprise path you'd grow into.
→ Set up your environment and start M1 · First inference.