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.
- Funding
- Over $466M raised
- Generally available
- 1 October 2026; early customers launched over 20 million VMs before that
- Session length
- Default 5 minutes, maximum 24 hours
- Compliance
- SOC 2 on every plan; HIPAA on Enterprise
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 workload | Azure Container Apps Sandboxes: price rank | Modal VM Sandboxes: price rank | bochka: 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; bochka 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 it | 5th 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 it | 186th 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; bochka keeps a stopped user sandbox's disk for free. | 22nd cheapest of 361 $2,260 a month | Can't run it | Cheapest 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; bochka'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 it | 10th 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 bochka 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 it | 18th 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; bochka streams a Linux desktop at 60fps. | 279th of 369, with limits $1,573 a month | Can't run it | 6th 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 it | 7th 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 it | 6th 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 it | 71st 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 it | Can't run it | Can't run it |
| macOS agents 5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month | Can't run it | Can't run it | Can't run it |
Key features
| Feature | Azure Container Apps Sandboxes | Modal VM Sandboxes | bochka |
|---|---|---|---|
| Isolation | MicroVM per sandbox with its own kernel | VM with its own Linux kernel on Cloud Hypervisor | Full VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts |
| Docker and systemd | Depends on the image: azure-dev ships Docker on systemd; the default ubuntu image has only Buildah | Yes; start dockerd yourself as the entrypoint | Docker, systemd and root on every sandbox |
| Nested virtualization | Not documented | Team and Enterprise plans only, on request | Yes, /dev/kvm on every plan |
| CPU benchmark (4 vCPU / 8 GB) | Not measured | 15.54 runs/s | 26.69 runs/s |
| Longest session | No cap; runs until stopped or auto-suspended when idle | 24 hours (default 5 minutes) | No cap on paid plans; you set the time to live |
| Stop and resume | Suspend with memory and disk; resume in under a second with processes running | No paused state; a finished sandbox is gone, only Volumes and snapshots keep files | Stop for free, resume later with the whole disk; saved every minute |
| Wake on traffic | Network traffic or a start command brings a suspended sandbox back | No | Auto-stop timer you set; a stopped sandbox is started by API |
| Fork and snapshots | Snapshot a running sandbox with its memory and create new sandboxes from it | Filesystem snapshots into an image; memory snapshots in alpha end the sandbox and expire after 7 days | Fork a running sandbox with its disk |
| Getting a shell and inbound access | Shell through the aca CLI, SDK or portal; public HTTPS routes per port; no SSH or raw TCP | Encrypted and raw TCP tunnels, connect tokens, inbound IP allowlist | SSH, HTTPS URLs for up to 50 ports, raw TCP, dedicated IPv4 or IPv6 |
| Desktop, browser and computer use | Headless; no desktop or managed browser | Not offered; an example shows how to set up Xvfb and VNC yourself | Linux desktop streamed at 60fps, Chromium and computer-use tools preinstalled |
| Coding agents and API keys | Copilot CLI and Claude Code images run through exec; their tokens are injected into the sandbox | Examples only; secrets are environment variables, or you run your own proxy in a sidecar | Seven agents preinstalled with a prompt, steer and events API; credentials proxy keeps real keys outside |
| Outbound network rules | Allow, deny, rewrite and header rules by host, path and method; VNet integration | Block all, IP-range allowlist, domain allowlist (beta) | Open internet, no provider-side allowlist |
| Scaling a fleet | 500 concurrent active cores by default; more by Azure support request | 100 containers on Starter, 5,000 on Team, more on Enterprise | Concurrency set by plan, up to 2,000 sandboxes, self-serve |
| Regions | 40 Azure regions, 9 of them in the EU | US, EU and Asia-Pacific; pinning a region costs 1.15x to 1.75x | EU only (Germany, Finland, France) |
Every feature Battleships tracks (43)
| Feature | Azure Container Apps Sandboxes | Modal VM Sandboxes | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | No | Yes | Yes |
| Root | Yes | Yes | Yes |
| Systemd | Yes | Yes | Yes |
| Desktop GUI | No | No | Yes |
| Browser | No | No | Yes |
| Computer-use API | No | No | Yes |
| SSH | No | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | No | Yes |
| Automatic snapshots | Yes | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | Yes | Yes | Yes |
| Memory fork | Yes | Yes | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | Yes | Yes | No |
| Wake on request | Yes | No | No |
| HTTPS preview URLs | Yes | Yes | Yes |
| Raw TCP inbound | No | Yes | Yes |
| Public IPv4 | No | No | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | Yes | No | Yes |
| Secret proxy for any API | Yes | No | Yes |
| Preinstalled agents | Yes | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | No | No | No |
| GPU | No | No | No |
| Windows | No | No | No |
| Arm64 | No | No | No |
| Self-hosting | No | No | No |
| BYOC | No | No | No |
| Open source | No | No | No |
| Scoped API keys | Not published | Not published | Yes |
| Spend limits | Yes | Not published | Yes |
| Usage per sandbox (API) | Yes | Not published | Yes |
| Audit logs | Yes | Yes | No |
| SSO | Yes | Yes | No |
| SOC 2 | Yes | Yes | No |
| HIPAA | Yes | Yes | No |
| EU data residency | Yes | Yes | Yes |
| Zero data retention | Not published | Not published | Yes |
Performance
In the same hpc-sandbox-benchmarks run on 29 September 2026 at 4 vCPU / 8 GB, bochka did 26.69 runs per second and Modal's VM runtime did 15.54, so bochka 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.
| Scenario | Azure Container Apps Sandboxes, a month | Modal VM Sandboxes, a month | bochka, 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 bochka queues the starts.
| Scenario | Azure Container Apps Sandboxes | Modal VM Sandboxes | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite |
| None that bite |
| One agent that never stops |
|
| None that bite |
| 50 agents in parallel | None that bite |
| None that bite |
| Sandboxes for your users | None that bite | None that bite | None that bite |
| 1,000 short jobs at once | None that bite |
|
|
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 bochka 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, bochka 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. bochka 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. bochka 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. bochka has a 60fps desktop, Chromium, seven agents you drive from outside, and a credentials proxy.
Use bochka 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: bochka vs Azure Container Apps Sandboxes and bochka 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. bochka 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. bochka 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. bochka 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. bochka 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 bochka sandbox has an SSH server and endpoint.
Is bochka SOC 2 compliant?
SOC 2 is in progress. We're open about where we stand: live status at status.bochka.xyz and our data retention policy at docs.bochka.xyz/data-retention.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs Azure Container Apps Sandboxes
- bochka vs Modal VM Sandboxes
- E2B vs Azure Container Apps Sandboxes
- Daytona vs Azure Container Apps Sandboxes
- Modal vs Azure Container Apps Sandboxes
- Vercel Sandbox vs Azure Container Apps Sandboxes
- Cloudflare Sandbox vs Azure Container Apps Sandboxes
- Blaxel vs Azure Container Apps Sandboxes
- Runloop vs Azure Container Apps Sandboxes
- Tensorlake vs Azure Container Apps Sandboxes
- Morph Cloud vs Azure Container Apps Sandboxes
- CodeSandbox SDK vs Azure Container Apps Sandboxes