ACA Express: The Agent-First Platform
Azure Container Apps Express hit public preview in May 2026. It's a new environment tier that eliminates the ceremony of spinning up agent backends. Bring a container image; Express handles provisioning, HTTPS, scaling, and resource allocation. No manual environment creation, no networking config, no scaling rules.
Under the hood, Express uses ACA Sandboxes with prewarmed pools to deliver subsecond cold starts. This isn't the standard ACA cold-start painted fresh—it's a different architecture.
Tradeoffs
Express is HTTP only, consumption CPU only. No GPU, VNet, Dapr, service discovery, managed identity at runtime, or health probes. If you need those, stick with standard ACA.
Deploy in Seconds
# Create an express environment
az containerapp env create \
--name my-express-env \
--resource-group rg-my-agents \
--environment-mode express \
--logs-destination none
# Deploy your app
az containerapp create \
--name my-agent-api \
--resource-group rg-my-agents \
--environment my-express-env \
--image mcr.microsoft.com/k8se/quickstart:latest \
--target-port 80 \
--ingress external \
--min-replicas 0 \
--max-replicas 1
Your app runs in seconds, not minutes. Express also has its own portal at containerapps.azure.com.
Agent-First Design
Microsoft positions Express for two audiences: developers shipping fast, and AI agents deploying endpoints on demand. The latter is interesting. An orchestrator spins up tool-use APIs, runs them for a task, tears them down. Express provisions fast, scales from zero, costs nothing when idle. Designed for MCP servers, tool-use endpoints, multi-step workflow APIs, and human-in-the-loop UIs.
Docker Compose for Agents: Separate and Complementary
Docker Compose for Agents deploys to standard ACA environments with workload profiles, not Express. Why? It supports GPU model serving, MCP gateway containers, sidecar processes, and multi-service stacks—capabilities Express lacks.
Compose for Agents lets you deploy the same compose.yml from local development to ACA. The CLI translates compose services into Container Apps resources.
Example Compose File
services:
my-agent-app:
build: .
ports:
- "8080:8080"
environment:
- MCP_GATEWAY_URL=${MCP_GATEWAY_URL}
mcp-gateway:
image: docker/mcp-gateway
x-azure-deployment:
image: acateam.azurecr.io/preview-ai-compose/mcp-gateway:latest
models:
gemma:
model: ai/gemma3-qat
x-azure-deployment:
workloadProfiles:
workloadProfileType: Consumption-GPU-NC8as-T4
The x-azure-deployment directive is the bridge: Docker ignores it locally, ACA uses it during deployment.
What the CLI Creates
- Agent app as a Container App with ingress
- MCP gateway as its own Container App with managed identity, dynamically managing MCP tool containers
- Model serving via Docker's model runner on serverless GPU
- MCP gateway handles stdio-to-SSE translation
Deploy Command
az extension remove --name containerapp
az extension add --source "" --yes
az containerapp compose create \
--compose-file-path compose.yml \
--resource-group rg-my-agents \
--environment my-standard-env
Note --environment my-standard-env—this deploys to standard ACA, not Express.
Where Each Fits in the Azure AI Stack
- Azure AI Foundry: Managed model endpoints with built-in safety, content filtering, enterprise governance. Consume models, not host infrastructure.
- ACA Standard: GPU workloads (self-hosted Ollama, vLLM), microservices with Dapr, VNet isolation. Where Docker Compose for Agents deploys.
- ACA Express: Fast, cheap, stateless agent backends. Prototypes, MCP servers, tool-use APIs, webhook handlers, agent orchestrators without GPU.
- ACA Dynamic Sessions: Sandboxed code execution for AI-generated code. Hyper-V isolated, millisecond provisioning, MCP-integrated.
Express fills the gap between standard ACA (too heavy) and serverless functions (too limited).
What's Missing in Express (For Now)
Public preview limitations: no secrets management (no Key Vault), no managed identity at runtime, no health probes, no custom domains, no VNet, no CORS, no sidecar containers, no OpenTelemetry, no KEDA autoscaling. Region-limited to West Central US and East Asia.
For production agent backends, these gaps matter. No managed identity means credentials pass through environment variables. No health probes means trusting defaults. No secrets means API keys sit in plain text.
For prototypes, internal tools, and active development? Acceptable tradeoffs for speed and cost. Microsoft ships features on a rapid cadence through preview.
When to Use Which
- Lightweight agent backend, MCP server, tool-use API (HTTP, no GPU): Go Express. Running endpoint in seconds, zero infrastructure decisions.
- Full agent stack with model serving, MCP gateway, GPU workloads: Use Docker Compose for Agents on standard ACA. Local-to-cloud parity with compose file.
- Need both: Use both. Express for lightweight endpoints, standard ACA for heavy lifting. They coexist in the same resource group.
Next Steps
Try ACA Express with a simple MCP server. If you need GPU, set up a standard ACA environment and deploy with Docker Compose for Agents. Both are in preview—test now and watch for GA features.


