Azure Container Apps Sandboxes vs Unikraft Cloud

Both give each workload its own microVM with its own kernel. Azure bills per second inside your Azure account and scales to large fleets, while Unikraft Cloud wakes instances in milliseconds but caps self-serve plans at a small shared pool of running capacity.

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.

Unikraft Cloud

Unikraft Cloud is a microVM cloud from Unikraft Inc. that runs any Dockerfile-based workload as a minimal Linux microVM with millisecond cold starts and scale-to-zero.

Your Dockerfile becomes the VM image at build time, and each instance runs on a heavily customized Firecracker VMM, so it boots in milliseconds and can go into standby when no traffic arrives. It is a general compute platform built for dense, bursty work such as HTTP services, headless browsers and agent fleets, sold as flat self-serve plans plus Enterprise dedicated hosts, on-prem and bring your own cloud. It is not a dev machine you log into: instances are reached through services, the CLI and a sandbox plugin for commands and files.

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 rankUnikraft Cloud: price rankboat: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
A software factory runs Docker, databases and test suites for hours; Azure needs the azure-dev image for Docker, Unikraft documents no container runtime inside, and boat ships both.
288th of 367, with limits
$5,276 a month
Can't run it3rd cheapest of 367
$634 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An assistant that lives on its machine all month needs room for many tools; Unikraft's Team pool is 8 GiB shared by every running instance, and Azure 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
Short code runs that sleep between calls suit both; Azure fits this use case fully, while Unikraft's self-serve plans stop at 24 running instances.
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 hundreds of active user sandboxes on pay-as-you-go; Unikraft Pro holds 5,000 sleeping instances but only 24 running ones, so this needs Enterprise there.
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
153rd of 360, with limits
$10,740 a month
Can't run it34th 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
CI that builds Docker images or runs Android emulators needs Docker and /dev/kvm; Azure documents no nested virtualization, Unikraft keeps it for Enterprise, and boat has both on every plan.
103rd cheapest of 377
$1,046 a month
Can't run it4th cheapest of 377
$86 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
Unikraft's Team pool keeps one box running all month for $39, Azure costs $262 a month without a commitment, and boat costs $26 with SSH included.
322nd of 368, with limits
$262 a month
219th of 368, with limits
$39 a month
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
Computer-use agents need a screen to look at; Azure and Unikraft are both headless, while 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
On Azure and Unikraft you install and run a headless browser in your own image; boat gives each sandbox Chromium on a desktop out of the box.
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
Can't run it2nd 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 SandboxesUnikraft Cloudboat
IsolationMicroVM per sandbox with its own kernelMinimal Linux microVM on a customized Firecracker VMMFull VM with its own kernel on dedicated AMD Ryzen 9 9950X hosts
Machine sizeTiers up to 4 vCPU / 8 GB, and up to 16 vCPU / 32 GB by API, per sandboxPlan pool shared by all running instances: 2 vCPU / 4 GiB, 8 vCPU / 8 GiB or 24 vCPU / 32 GiB4 vCPU / 8 GB by default, up to 16 vCPU / 32 GB per sandbox on the $100 plan and above
Docker and systemd insideDepends on the image: azure-dev ships Docker on systemd; the default ubuntu image has only BuildahThe Dockerfile becomes the VM image; no container runtime inside is documentedDocker, systemd and root on every sandbox
Nested virtualizationNot documentedYes, with a per-instance flag and permission, Enterprise onlyYes, /dev/kvm for Android emulators and VMs on every plan
Getting a shellInteractive shell through the aca CLI, SDK or portal; no SSHNo SSH yet; commands and files go through the sandbox plugin and CLISSH into every sandbox, plus CLI and API exec
Desktop, browser and computer useHeadless; no desktop or managed browserNone built in; you can run your own headless browser from a DockerfileLinux desktop streamed at 60fps, Chromium and computer-use tools preinstalled
Sleep and wakeSuspends with memory and disk and resumes in under a second with processes running; traffic wakes itStandby after a 1 second idle cooldown by default, with memory in stateful mode; traffic wakes it in millisecondsDisk saved every minute and on stop; a stopped sandbox is started again by API
Fork and snapshotsSnapshot a running sandbox with its memory and create new sandboxes from itCheckpoint memory and volumes of a running microVM, then start new instances from it; forking is in previewFork a running sandbox with its disk; snapshots every minute
Inbound accessPublic HTTPS routes per published port; private endpoint from your VNet; no public IPServices on its load balancer: HTTP on 80, HTTPS on 443, TLS-wrapped TCP on other ports; no public IPHTTPS URLs for up to 50 ports, token-protected by default; raw TCP; dedicated IPv4 or IPv6
Outbound rulesEgress policy with allow, deny, rewrite and header rules by host, path and method; VNet integrationNetwork shield filters traffic, Enterprise only, limited accessOpen internet, no provider-side allowlist
Keeping API keys out of the sandboxGroup secrets usable in egress header rules; Copilot and Anthropic tokens are injected into the sandbox at startupNetwork shield can inject secrets into traffic, Enterprise only, limited accessCredentials proxy for model providers and any HTTPS API, on every plan; switch a credential to another account when credits run out
Coding agentsCopilot CLI and Claude Code images, run through the exec APINone preinstalled; you bring the agent in your own imageSeven agents preinstalled, driven from outside with a prompt, steer and events API
Scaling up a fleet500 concurrent active cores by default; more by Azure support requestUp to 24 running instances on self-serve plans; more on EnterpriseUp to 2,000 sandboxes at once, self-serve
Regions40 Azure regions, 9 of them in the EUDallas, Frankfurt, San Francisco, Singapore and Washington DC; more on requestEU only (Germany, Finland, France)
Every feature Battleships tracks (43)
FeatureAzure Container Apps SandboxesUnikraft Cloudboat
Full VM (own kernel)YesYesYes
Docker insideYesNoYes
Nested virtualizationNoYesYes
RootYesYesYes
SystemdYesNot publishedYes
Desktop GUINoNoYes
BrowserNoNoYes
Computer-use APINoNoYes
SSHNoNoYes
Persistent diskYesYesYes
Pause/resumeYesYesYes
Automatic snapshotsYesYesYes
Fork/cloneYesYesYes
Live fork (no pause)YesYesYes
Memory forkYesYesNo
Custom image (Docker or snapshot)YesYesYes
≥24 h sessionsYesYesYes
Idle auto-stopYesYesNo
Wake on requestYesYesNo
HTTPS preview URLsYesYesYes
Raw TCP inboundNoNot publishedYes
Public IPv4NoNoNo
Egress allowlistYesYesNo
Secret proxyYesYesYes
Secret proxy for any APIYesYesYes
Preinstalled agentsYesNoYes
Agent harness APINoNoYes
MCP serverNoNoNo
GPUNoYesNo
WindowsNoNoNo
Arm64NoYesNo
Self-hostingNoYesNo
BYOCNoYesNo
Open sourceNoNoNo
Scoped API keysNot publishedNot publishedYes
Spend limitsYesNot publishedYes
Usage per sandbox (API)YesNoYes
Audit logsYesYesNo
SSOYesNoNo
SOC 2YesYesNo
HIPAAYesYesNo
EU data residencyYesYesYes
Zero data retentionNot publishedNot publishedYes

Performance

Azure Container Apps SandboxesNot measured
Unikraft CloudNot measured
boat26.69 runs/s

There is no comparable CPU measurement for Azure Container Apps Sandboxes or Unikraft Cloud: neither is in the hpc-sandbox-benchmarks run that measured boat at 26.69 runs per second at 4 vCPU / 8 GB, on dedicated AMD Ryzen 9 9950X hosts. Unikraft states cold starts under 10 ms and Azure states resume in under a second; those are their own start-time figures, not CPU speed.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Azure Container Apps Sandboxes and Unikraft Cloud have 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 monthUnikraft Cloud, 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$39 · Hobby$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$39 · Hobby$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-goCan't run it$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-goCan't run it$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-goCan't run it$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, including idle time before auto-suspend, which defaults to 5 minutes. There is no plan fee, stopped sandboxes pay no CPU or memory, and some regions such as West Europe charge more.

Unikraft Cloud: Unikraft charges a flat monthly fee for a pool of running capacity: free for 2 vCPU / 4 GiB, $39 for 8 vCPU / 8 GiB, $199 for 24 vCPU / 32 GiB, with sleeping instances not counted. It publishes no per-hour or egress rate, so anything bigger is an Enterprise quote.

Unikraft Cloud: 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

Unikraft's limits are pools every running instance shares: the Team pool has 8 vCPU and 8 GiB in total, so one 4 vCPU / 8 GB agent fills it, and the 50-agent, user-sandbox and burst scenarios fit no self-serve plan. Azure fits all three, but its default quota of 500 active cores caps a fleet until support raises it, and Docker inside means picking an image like azure-dev. Azure bills a running sandbox every second, so the always-on scenario only gets to $262 a month with a 3-year commitment. Unikraft also publishes no price for disk beyond its plan or for egress.

ScenarioAzure Container Apps SandboxesUnikraft Cloudboat
One coding agent, workdaysNone that bite
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
None that bite
One agent that never stops
  • 3-year commitment
  • flat pool: the tier is billed whether used or not
  • disk beyond 0 GiB: price unknown
  • egress price not published
None that bite
50 agents in parallelNone that bite
  • no pool tier with 200 vCPU / 400 GiB for 50 VMs
  • no published per-resource rate
None that bite
Sandboxes for your usersNone that bite
  • no pool tier with 600 vCPU / 1,200 GiB for 300 VMs
  • no published per-resource rate
None that bite
1,000 short jobs at onceNone that bite
  • no pool tier with 2,000 vCPU / 4,000 GiB for 1,000 VMs
  • no published per-resource rate
  • 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 needs hundreds of short stateful sandboxes that suspend with memory, follow strict egress rules, or run in many regions.

  • Memory suspend on every plan. For stateful jobs that sleep between requests: a sandbox suspends with its memory and resumes in under a second, processes still running.
  • Outbound rules without a contract. For agents that must stay on chosen hosts: egress rules by host, path and method come with pay-as-you-go, not only Enterprise.
  • Large fleets inside Azure. For teams on Azure: pay per second with Entra ID and VNets, in 40 regions, with room for hundreds of running sandboxes.

Use Unikraft Cloud when

you run a handful of small services or headless browsers that sleep most of the time and must wake in milliseconds, or want GPUs or on-prem under Enterprise.

  • Millisecond starts and scale-to-zero. For many small services that sleep most of the time: instances wake on the next request in milliseconds, and sleeping ones are free.
  • A small flat plan for one box. For one small always-on workload: the Hobby plan is free and the Team pool is a flat fee, with no per-second meter to watch.
  • GPUs, arm64 and your own hardware. For teams ready to sign Enterprise: NVIDIA GPUs, arm64 hosts, dedicated hosts, on-prem or your own cloud.

Where boat fits

Azure and Unikraft are both built around microVMs that sleep and wake fast. If what you are really running is agents that work for hours, a team comparing the two should look at boat: each agent gets a whole computer with Docker, /dev/kvm, SSH, a desktop and built-in coding agents, and fleets of full-size sandboxes need no sales call.

A whole machine to work in

Agents run docker compose, emulators and remote editors. Azure has Docker only on some images and no documented nested virtualization or SSH; Unikraft documents no Docker inside, has no SSH yet and keeps /dev/kvm for Enterprise.

A screen and a browser for every agent

Both Azure and Unikraft are headless, so a computer-use or browser agent needs you to build a browser, a virtual display and a streaming stack into your own image and keep it working. boat streams a 60fps desktop with Chromium.

Agents and keys built in

Azure injects Copilot and Anthropic tokens into the sandbox, where a prompt-injected agent can read them, and Unikraft's secret injection is Enterprise only. boat keeps keys in a proxy outside and drives seven preinstalled agents from outside.

Use boat when your agents need a real machine for hours of work: Docker, emulators, SSH, a desktop and a browser, coding agents driven from outside, and big fleets without a sales call. Compare it one to one: boat vs Azure Container Apps Sandboxes and boat vs Unikraft Cloud.

Questions people ask

Is Azure Container Apps Sandboxes cheaper than Unikraft Cloud?

For one agent, Unikraft is cheaper: one coding agent on workdays costs $68 a month on Azure and $39 on Unikraft's Team pool, and boat costs $20. For 50 agents in parallel, Azure costs $3,421 a month while no self-serve Unikraft plan is big enough, so the price is an Enterprise quote.

Which is faster, Azure Container Apps Sandboxes or Unikraft Cloud?

Neither has a comparable CPU measurement yet, so there is no speed claim either way. For starts, Unikraft states cold boots under 10 ms and Azure states resume from suspend in under a second; both are their own figures.

Can Azure Container Apps Sandboxes or Unikraft Cloud run Docker?

On Azure, the azure-dev image ships Docker on systemd, while the default ubuntu image has only Buildah. Unikraft builds your Dockerfile into the VM itself and does not document a container runtime inside. Every boat sandbox runs Docker and has /dev/kvm for emulators and VMs.

Can I SSH into Azure Container Apps Sandboxes or Unikraft Cloud?

No for both. Azure gives a shell through the aca CLI, SDK or portal, and Unikraft runs commands and moves files through its sandbox plugin and CLI. Every boat sandbox has an SSH endpoint.

Which one runs in more regions?

Azure, with 40 regions, 9 of them in the EU. Unikraft runs in Dallas, Frankfurt, San Francisco, Singapore and Washington DC, with more metros on request. boat runs in the EU only.

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