Azure Container Apps Sandboxes vs Modal VM Sandboxes

Both give each agent a machine with its own kernel. Azure's sandboxes run as long as you want and suspend with their memory inside your Azure account, while Modal's VM Sandboxes are short-lived VMs with Docker that end within 24 hours and scale to huge bursts.

The companies and products

Azure Container Apps Sandboxes

Azure Container Apps Sandboxes is a service inside Microsoft Azure that gives each agent or user an isolated microVM you create, suspend and resume through an SDK.

It is part of Azure Container Apps, the hyperscaler's serverless container platform, and lives in your Azure subscription as a sandbox group resource. Each sandbox boots from an OCI image or a snapshot, has its own kernel, and can be suspended with its memory and resumed in under a second. It is built for teams already on Azure that want stateful code execution with Azure networking, identity and billing.

Modal VM Sandboxes

Modal is a serverless cloud for AI work, and VM Sandboxes are the version of its sandboxes that run in a virtual machine with their own Linux kernel.

You create a VM Sandbox from Python, TypeScript or Go code with runtime="vm", run commands in it, and terminate it when the job is done. Modal built the runtime on the Rust-based Cloud Hypervisor, so Docker, FUSE, systemd and nested cgroups work, with the same API, images and prices as its gVisor sandboxes. It became generally available on 1 October 2026 and suits teams that want many short-lived agent machines next to Modal's inference and training.

Which use cases each one fits

For each use case, Battleships prices every sandbox provider on the same workload and sorts them from the cheapest monthly bill up. “34th cheapest of 345” means 33 of the other 344 providers run that workload, with every feature it needs, for less. “With limits” means the provider runs it but misses something, so it is listed after every full match. Open a use case for its whole ranking and what each provider misses.

Use case and its workloadAzure Container Apps Sandboxes: price rankModal VM Sandboxes: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Modal ranks well above Azure here because its VM runs Docker on every image, but it ends within 24 hours; boat ranks 3rd with a VM that keeps its disk, SSH and a desktop.
288th of 367, with limits
$5,276 a month
84th of 367, with limits
$759 a month
3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An agent that lives on its machine all month cannot run on Modal VM Sandboxes, which stop at 24 hours; Azure has no cap but bills every running second.
302nd of 366, with limits
$6,544 a month
Can't run it5th cheapest of 366
$657 a month
Code interpreter bursts
100 at once · 1 vCPU / 2 GB · 200,000 sessions of 1 min a month
Azure fits short code runs well: sandboxes suspend with their memory, resume in under a second and wake again on traffic.
34th cheapest of 345
$354 a month
Can't run it186th of 345, with limits
$2,000 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Azure fits users who come back to the same sandbox because it suspends idle ones with their memory; boat keeps a stopped user sandbox's disk for free.
22nd cheapest of 361
$2,260 a month
Can't run itCheapest of 361
$209 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
Huge bursts of short rollouts suit Modal's 5,000 containers at once on Team, and Azure starts them from prewarmed pools; boat's start limits queue large bursts.
153rd of 360, with limits
$10,740 a month
171st of 360, with limits
$16,322 a month
34th of 360, with limits
$2,000 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
75th cheapest of 364
$1,728 a month
Can't run it10th cheapest of 364
$200 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
Both run Docker builds, but Android or VM builds need /dev/kvm, which boat has on every plan, Modal offers on Team and Enterprise on request, and Azure does not document.
103rd cheapest of 377
$1,046 a month
188th of 377, with limits
$1,064 a month
4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
A dev box wants SSH and a disk that stays; Azure gives a shell through its own CLI and Modal VMs end within a day.
322nd of 368, with limits
$262 a month
Can't run it18th cheapest of 368
$26 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Neither Azure nor Modal ships a desktop or browser, so you build the display stack yourself; boat streams a Linux desktop at 60fps.
279th of 369, with limits
$1,573 a month
Can't run it6th cheapest of 369
$200 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
288th of 367, with limits
$795 a month
Can't run it7th cheapest of 367
$200 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
284th of 346, with limits
$561 a month
Can't run it6th cheapest of 346
$90 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
239th of 338, with limits
$10,956 a month
Can't run it71st of 338, with limits
$1,800 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
278th of 360, with limits
$517 a month
294th of 360, with limits
$642 a month
2nd cheapest of 360
$200 a month
GPU eval jobs
10 at once · 8 vCPU / 32 GB · 500 sessions of 30 min a month
Can't run itCan't run itCan't run it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run itCan't run it

Key features

FeatureAzure Container Apps SandboxesModal VM Sandboxesboat
IsolationMicroVM per sandbox with its own kernelVM with its own Linux kernel on Cloud HypervisorFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Docker and systemdDepends on the image: azure-dev ships Docker on systemd; the default ubuntu image has only BuildahYes; start dockerd yourself as the entrypointDocker, systemd and root on every sandbox
Nested virtualizationNot documentedTeam and Enterprise plans only, on requestYes, /dev/kvm on every plan
CPU benchmark (4 vCPU / 8 GB)Not measured15.54 runs/s26.69 runs/s
Longest sessionNo cap; runs until stopped or auto-suspended when idle24 hours (default 5 minutes)No cap on paid plans; you set the time to live
Stop and resumeSuspend with memory and disk; resume in under a second with processes runningNo paused state; a finished sandbox is gone, only Volumes and snapshots keep filesStop for free, resume later with the whole disk; saved every minute
Wake on trafficNetwork traffic or a start command brings a suspended sandbox backNoAuto-stop timer you set; a stopped sandbox is started by API
Fork and snapshotsSnapshot a running sandbox with its memory and create new sandboxes from itFilesystem snapshots into an image; memory snapshots in alpha end the sandbox and expire after 7 daysFork a running sandbox with its disk
Getting a shell and inbound accessShell through the aca CLI, SDK or portal; public HTTPS routes per port; no SSH or raw TCPEncrypted and raw TCP tunnels, connect tokens, inbound IP allowlistSSH, HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv4 or IPv6
Desktop, browser and computer useHeadless; no desktop or managed browserNot offered; an example shows how to set up Xvfb and VNC yourselfLinux desktop streamed at 60fps, Chromium and computer-use tools preinstalled
Coding agents and API keysCopilot CLI and Claude Code images run through exec; their tokens are injected into the sandboxExamples only; secrets are environment variables, or you run your own proxy in a sidecarSeven agents preinstalled with a prompt, steer and events API; credentials proxy keeps real keys outside
Outbound network rulesAllow, deny, rewrite and header rules by host, path and method; VNet integrationBlock all, IP-range allowlist, domain allowlist (beta)Open internet, no provider-side allowlist
Scaling a fleet500 concurrent active cores by default; more by Azure support request100 containers on Starter, 5,000 on Team, more on EnterpriseConcurrency set by plan, up to 2,000 sandboxes, self-serve
Regions40 Azure regions, 9 of them in the EUUS, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75xEU only (Germany, Finland, France)
Every feature Battleships tracks (43)
FeatureAzure Container Apps SandboxesModal VM Sandboxesboat
Full VM (own kernel)YesYesYes
Docker insideYesYesYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdYesYesYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHNoYesYes
Persistent diskYesYesYes
Pause/resumeYesNoYes
Automatic snapshotsYesNoYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkYesYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesNoNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoYesYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesNoYes
Secret proxy for any APIYesNoYes
Preinstalled agentsYesNoYes
Agent harness APINoNoYes
MCP serverNoNoNo
GPUNoNoNo
WindowsNoNoNo
Arm64NoNoNo
Self-hostingNoNoNo
BYOCNoNoNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)YesNot publishedYes
Audit logsYesYesNo
SSOYesYesNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Azure Container Apps SandboxesNot measured
Modal VM Sandboxes15.54 runs/s
boat26.69 runs/s

In the same hpc-sandbox-benchmarks run on 29 September 2026 at 4 vCPU / 8 GB, boat did 26.69 runs per second and Modal's VM runtime did 15.54, so boat did about 1.7 times the CPU work in the same time. There is no comparable measurement for Azure Container Apps Sandboxes yet, so this page makes no speed claim about Azure.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Modal VM Sandboxes measured on: VM Sandbox, request = size. Azure Container Apps Sandboxes has no published run in this suite yet, so there is no like-for-like number to compare.

Pricing in five scenarios

Each bill is priced from the providers' public price lists by the open Battleships engine, with the cheapest plan that runs the scenario.

ScenarioAzure Container Apps Sandboxes, a monthModal VM Sandboxes, a monthboat, a month
One coding agent, workdays
4 vCPU / 8 GB, 50 GB disk, 8 hours a day, 22 days a month, files kept between days
$68 · Pay-as-you-go$15 · Starter · with limits$20 · $20/mo
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$262 · Pay-as-you-go · with limits$178 · Starter · with limits$26 · $20/mo
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$3,421 · Pay-as-you-go$2,229 · Starter · with limits$317 · $20/mo × 3 seats
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$989 · Pay-as-you-go$792 · Team$200 · $100/mo × 2 seats
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$2,148 · Pay-as-you-go$3,193 · Team · with limits$2,000 · $2000/mo · with limits

Azure Container Apps Sandboxes: Azure bills per second on the Container Apps Consumption meters for the vCPU and memory of the sandbox's tier while it runs, idle time before auto-suspend included. There is no plan fee, stopped sandboxes pay no CPU or memory, and some regions charge more.

Modal VM Sandboxes: Modal bills by the second for the higher of the CPU and memory you request or use, until the sandbox ends. Starter is free with $30 of monthly credit, Team is $250 a month with $100 of credit, and pinning a region multiplies the price.

Modal VM Sandboxes: Plans start at $20 a month, and the whole fee is usage credit. You pay per second while a sandbox runs, and a stopped sandbox costs nothing and keeps its disk.

Limits in those scenarios

Modal's 24-hour cap and lost root disk are why it does not fit the workday, always-on and fleet scenarios unless you keep files in a Volume. Azure has no session cap, but it bills every running second, so the always-on scenario only gets close with a 3-year savings plan, and Docker in the fleet needs an image like azure-dev. For 1,000 short jobs at once Azure fits at $2,148 a month, while Modal's priced tier uses shared vCPUs and boat queues the starts.

ScenarioAzure Container Apps SandboxesModal VM Sandboxesboat
One coding agent, workdaysNone that bite
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
One agent that never stops
  • 3-year commitment
  • Starter: sessions capped at 24 h
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
50 agents in parallelNone that bite
  • files survive a stop only in Volumes: packages installed elsewhere reset
None that bite
Sandboxes for your usersNone that biteNone that biteNone that bite
1,000 short jobs at onceNone that bite
  • shared vCPUs on this tier (Modal (VM Sandboxes) sells dedicated cores separately as “VM Sandbox, request = size”): heavy, sustained CPU use can be slowed by other tenants
  • max 2,400 starts/day (needs ~6,667)
  • max 600 starts/hour (needs ~1,000)
  • bursts above 90 starts/min are queued (a burst of 333 takes ~4 min to start)

Which one should you use?

Use Azure Container Apps Sandboxes when

your team is on Azure and wants stateful sandboxes that suspend with their memory, wake on traffic, sit behind strict egress rules and have no session cap.

  • Suspend with memory, wake on traffic. For stateful jobs that sleep between requests: a sandbox suspends with its memory and resumes in under a second.
  • No session cap. A sandbox keeps running until you stop it or it goes idle, so long jobs are not cut off at a day.
  • Fine-grained egress inside Azure. Teams on Azure get per-request outbound rules, VNets and Entra ID, in 40 regions.

Use Modal VM Sandboxes when

you run huge bursts of short jobs that need Docker in a real VM, finish within a day, or sit next to models you already run on Modal.

  • Docker on every VM. Every VM Sandbox has a real Linux kernel where Docker, FUSE and systemd work, whatever image you pick.
  • Huge bursts of short jobs. Good for evals and rollouts: Team runs 5,000 containers at once, with more on Enterprise.
  • One platform with your models. Teams that already serve or train models on Modal can keep sandboxes on the same account and bill.

Where boat fits

Azure is strongest at short stateful jobs inside an Azure account, and Modal at huge bursts of VMs that end within a day. If your agents do long real work on one machine, with builds, emulators, a browser and you stepping in over SSH, boat gives them a whole computer that keeps its disk and is not cut off.

A whole computer you can SSH into

Azure has no SSH, no raw TCP and no documented /dev/kvm, and Modal gives /dev/kvm only on Team or Enterprise after asking support. boat has SSH, raw TCP, Docker, systemd and /dev/kvm on every sandbox.

A disk that stays, with no 24-hour cutoff

A Modal VM ends within 24 hours and its root disk goes with it unless you write snapshot or Volume code. Azure keeps state but bills every running second. boat saves the disk every minute and a stopped sandbox costs nothing.

Desktop, agents and keys built in

Neither ships a desktop or browser, so you build Xvfb and VNC yourself, and both put real tokens inside the sandbox. boat has a 60fps desktop, Chromium, seven agents you drive from outside, and a credentials proxy.

Use boat when your agents work for hours or days on a machine they come back to: SSH, Docker, emulators, a desktop and a browser, on a faster VM that keeps its disk. Compare it one to one: boat vs Azure Container Apps Sandboxes and boat vs Modal VM Sandboxes.

Questions people ask

Is Azure Container Apps Sandboxes cheaper than Modal VM Sandboxes?

Modal costs less in most of our scenarios, for example $2,229 against $3,421 a month for 50 parallel agents, but its files reset when a VM ends unless you use a Volume. For 1,000 short jobs at once Azure fits at $2,148 a month, while Modal's tier there uses shared vCPUs. boat costs $317 a month for the same 50 agents.

Which is faster, Azure or Modal?

Modal's VM runtime did 15.54 runs per second on the hpc-sandbox-benchmarks CPU test at 4 vCPU / 8 GB. Azure has not been measured on the same test, so there is no fair comparison yet. boat did 26.69 runs per second in the same run.

Can I run Docker in Azure Container Apps Sandboxes and Modal VM Sandboxes?

Modal runs Docker in every VM Sandbox once you start dockerd. On Azure it depends on the image: azure-dev ships Docker on systemd, while the default ubuntu image has only Buildah. boat runs Docker on every sandbox and also exposes /dev/kvm.

How long can a sandbox run on each?

A Modal VM Sandbox runs 5 minutes by default and 24 hours at most. Azure documents no cap: a sandbox runs until you stop it or it auto-suspends when idle. boat has no session cap on paid plans.

Can I SSH into them?

Azure gives an interactive shell through the aca CLI, the SDK or the portal, not SSH. Modal offers encrypted and raw TCP tunnels into a sandbox. Every boat sandbox has an SSH server and endpoint.

Is boat SOC 2 compliant?

SOC 2 is in progress. We're open about where we stand: live status at status.ascii.dev and our data retention policy at docs.boat.dev/data-retention.

Try boat

Install the CLI, then run boat new.

7-day free trial

More comparisons