bochka vs Azure Virtual Machines

Azure Virtual Machines rents you plain Linux or Windows machines in regions around the world, and you build everything around them. bochka gives each agent a full VM that already has Docker, a desktop, HTTPS URLs, forks and coding agents you drive by API.

Where bochka stands out

Coding agents you drive from outside

bochka ships Claude Code, Codex, OpenCode and other agents inside each sandbox, and you drive agents inside from outside with a prompt, steer and events API. The credentials proxy keeps real AI keys out of the machine and can switch to another account when one runs out of credits. An Azure VM gives you Run Command and SSH, and the rest is code you write.

Fork a running machine, keep its files for free

bochka can fork a sandbox while it runs, snapshots the disk every minute and on stop, and charges nothing while a sandbox is stopped. On Azure a copy starts from an image or disk snapshot and boots cold, and image capture needs the VM stopped first.

A desktop and HTTPS URLs out of the box

Every bochka sandbox has a 60fps desktop with Chromium for computer use and browser control, plus HTTPS URLs on up to 50 ports, raw TCP and its own IP. An Azure VM has a public IP and open ports if you ask for them, but no desktop stream and no managed HTTPS.

The companies and products

bochka

bochka.xyz runs sandboxes for AI agents: each one is a full Linux VM with its own kernel.

You start a machine with one command or one API call, then SSH in, run Docker, open a desktop, or let a built-in agent (Claude Code, Codex, OpenCode and others) work in it. The disk stays between sessions, and a stopped sandbox costs nothing.

Azure Virtual Machines

Azure Virtual Machines is Microsoft's general-purpose cloud VM service: you rent Linux or Windows machines by the minute in Azure regions worldwide.

It is a hyperscaler IaaS product, not a sandbox API. Each VM runs on Microsoft's Hyper-V hypervisor with its own kernel, root and SSH, and you pick from hundreds of sizes, including Arm, burstable and GPU families. Networking, disks, images, firewalls and any agent tooling are separate pieces you set up yourself, so it suits teams that already run on Azure and want full control.

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. “3rd cheapest of 367” means 2 of the other 366 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 workloadbochka: price rankAzure Virtual Machines: price rank
Software factory
100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month
Azure can host a software factory, but you assemble the images, networking, HTTPS and agent driver yourself; bochka ships them on every machine.
3rd cheapest of 367
$634 a month
83rd of 367, with limits
$730 a month
Always-on AI employees
50 machines 24/7 · 2 vCPU / 4 GB
An always-on assistant on Azure is cheapest on a 3-year reservation; bochka runs it month to month with snapshots and a desktop included.
5th cheapest of 366
$657 a month
113th of 366, with limits
$644 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 better here, because burstable VMs cost little when they sit mostly idle and there is no start limit beyond your vCPU quota.
186th of 345, with limits
$2,000 a month
114th of 345, with limits
$222 a month
Sandboxes for your users
300 at once · 2 vCPU / 4 GB · 30,000 sessions of 23 min a month
Giving each user a VM on Azure means building your own sandbox layer (URLs, auth, cleanup); bochka gives you that through its API.
Cheapest of 361
$209 a month
63rd of 361, with limits
$500 a month
RL rollouts
1,000 at once · 2 vCPU / 4 GB · 1,000,000 sessions of 3 min a month
Azure Spot VMs make large RL fleets cheap, as long as your rollouts can survive eviction with 30 seconds of notice.
34th of 360, with limits
$2,000 a month
19th of 360, with limits
$1,039 a month
Agent evals
250 at once · 4 vCPU / 8 GB · 15,000 sessions of 20 min a month
Both fit well; Azure's per-minute billing and huge size range suit eval batches that you already script in Azure.
10th cheapest of 364
$200 a month
3rd cheapest of 364
$173 a month
CI runners
40 at once · 8 vCPU / 16 GB · 6,000 sessions of 12 min a month
4th cheapest of 377
$86 a month
35th cheapest of 377
$335 a month
24/7 dev boxes
1 machine 24/7 · 4 vCPU / 8 GB
18th cheapest of 368
$26 a month
72nd cheapest of 368
$94 a month
Computer-use agents
50 at once · 4 vCPU / 8 GB · 20,000 sessions of 15 min a month
Azure VMs have no built-in desktop stream or computer-use API; on bochka a 60fps desktop and Chromium come with every machine.
6th cheapest of 369
$200 a month
100th of 369, with limits
$192 a month
Browser-use agents
50 at once · 2 vCPU / 4 GB · 30,000 sessions of 10 min a month
On Azure you install and expose the browser yourself; bochka ships Chromium with browser control on each machine.
7th cheapest of 367
$200 a month
168th of 367, with limits
$107 a month
Scraping & bots (startup scale)
50 at once · 1 vCPU / 2 GB · 100,000 sessions of 3 min a month
6th cheapest of 346
$90 a month
194th of 346, with limits
$116 a month
Mass scraping & bots (undetectable)
1,000 at once · 1 vCPU / 2 GB · 3,000,000 sessions of 2 min a month
71st of 338, with limits
$1,800 a month
81st of 338, with limits
$2,044 a month
Parallel red teaming
200 at once · 2 vCPU / 4 GB · 5,000 sessions of 30 min a month
2nd cheapest of 360
$200 a month
110th of 360, with limits
$46 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 it
macOS agents
5 at once · 4 vCPU / 8 GB · 1,000 sessions of 20 min a month
Can't run itCan't run it

Key features

FeaturebochkaAzure Virtual Machines
What you getAn agent sandbox: a full VM per sandbox, created and driven by APIA general cloud VM; images, networking and tooling are yours to set up
IsolationFull VM with its own kernelFull Hyper-V VM with its own kernel
Docker, root and nested virtualizationDocker, root, systemd and /dev/kvm on every machineRoot and Docker on any size; nested virtualization on Intel and AMD D and F sizes, not on Arm or B-series burstable sizes
Desktop and computer use60fps desktop and Chromium, computer use and browser control, embeddable streamNone built in; you install your own VNC or RDP server (Azure Virtual Desktop is a separate product)
Files after a stopSnapshots every minute and on stop; a stopped sandbox costs nothingDisk is kept; a deallocated VM stops compute billing, but disks and static IPs keep billing
Pause with memoryResume reboots from disk (no memory snapshots)Hibernation saves memory to the OS disk on supported sizes up to 64 GB of RAM; you trigger it by API
Fork and cloneFork a running sandbox in one callCapture an image or disk snapshot, then create new VMs that boot cold; image capture needs the VM stopped
Reaching the machineHTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IPPublic IPv4 and any port through security group rules; HTTPS and certificates are yours to run, or you add a load balancer or gateway
Outbound internetOpen internet on every plan; no provider-side allowlistSecurity group rules by IP, and domain allowlists with the paid Azure Firewall; new virtual networks need an explicit outbound method
Keeping keys out of the machineAI credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run outKey Vault; secrets are fetched into the VM, so the code inside can read them
Coding agentsClaude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events APINone built in; Run Command, scripts or SSH to install and run them yourself
GPUsNoneGPU families such as NC with Nvidia H100 and A100
Operating systems and CPUsLinux on dedicated AMD Ryzen 9 9950X (Zen 5) hosts; Wine for Windows appsLinux and Windows guests on Intel, AMD and Arm sizes
RegionsEU only: Germany, Finland, France77 regions worldwide, available or coming soon, including many in the EU
Compliance and transparencySOC 2 is in progress. We're open about where we stand: live status and data retention policy.SOC 2
Every feature Battleships tracks (43)
FeaturebochkaAzure Virtual Machines
Full VM (own kernel)YesYes
Docker insideYesYes
Nested virtualizationYesYes
RootYesYes
SystemdYesYes
Desktop GUIYesNo
BrowserYesNo
Computer-use APIYesNo
SSHYesYes
Persistent diskYesYes
Pause/resumeYesYes
Automatic snapshotsYesNo
Fork/cloneYesYes
Live fork (no pause)YesNo
Memory forkNoNo
Custom image (Docker or snapshot)YesYes
≥24 h sessionsYesYes
Idle auto-stopNoNo
Wake on requestNoNo
HTTPS preview URLsYesNo
Raw TCP inboundYesYes
Public IPv4NoYes
Egress allowlistNoYes
Secret proxyYesNo
Secret proxy for any APIYesNo
Preinstalled agentsYesNo
Agent harness APIYesNo
MCP serverNoYes
GPUNoYes
WindowsNoYes
Arm64NoYes
Self-hostingNoNo
BYOCNoNo
Open sourceNoNo
Scoped API keysYesNot published
Spend limitsYesNo
Usage per sandbox (API)YesYes
Audit logsNoYes
SSONoYes
SOC 2NoYes
HIPAANoYes
EU data residencyYesYes
Zero data retentionYesNot published

Performance

bochka26.69 runs/s
Azure Virtual MachinesNot measured

There is no comparable measurement for Azure Virtual Machines: the public sandbox benchmark we use did not include it. bochka did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in StarSling's run of 2026-09-29. Azure's speed depends on which of its many CPU families you pick.

Node.js build-and-test loop at 4 vCPU / 8 GB, higher is better. Measured with the open hpc-sandbox-benchmarks suite. Azure Virtual Machines 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.

Scenariobochka, a monthAzure Virtual Machines, 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
$20 · $20/mo$26 · Pay-as-you-go subscription (no plan fee)
One agent that never stops
4 vCPU / 8 GB, 50 GB disk, running 24/7 all month
$26 · $20/mo$48 · Pay-as-you-go subscription (no plan fee) · with limits
50 agents in parallel
50 machines of 4 vCPU / 8 GB at once, 8-hour sessions, 1,100 sessions a month, Docker inside
$317 · $20/mo × 3 seats$1,168 · Pay-as-you-go subscription (no plan fee)
Sandboxes for your users
2 vCPU / 4 GB, 30,000 sessions of 10 minutes a month, up to 300 at once
$200 · $100/mo × 2 seats$225 · Pay-as-you-go subscription (no plan fee)
1,000 short jobs at once
2 vCPU / 4 GB, 1,000 at once, 3 minutes each, 200,000 jobs a month
$2,000 · $2000/mo · with limits$483 · Pay-as-you-go subscription (no plan fee) · with limits

bochka: You pick a monthly plan from $20, and all of it becomes usage credit spent per second on running sandboxes. A stopped sandbox costs nothing and keeps its disk.

Azure Virtual Machines: Azure bills each VM per full minute while it runs, with no plan fee; disks, public IPv4 addresses and egress are billed on top, and disks keep billing while the VM is deallocated. The cheapest fits in the table are Arm Cobalt sizes, B-series burstable sizes, or for a machine that never stops, a 3-year reservation billed every hour whether it runs or not.

Limits in those scenarios

Azure limits how many vCPUs you can run per region and per VM family, and stopped VMs still count; new subscriptions start low and you raise the quota by request. The always-on price only works with a 3-year commitment. For 1,000 short jobs at once, the low Azure figure uses B-series burstable VMs, which guarantee 30% of each vCPU and throttle above that once credits run out. On bochka the same burst is held back by starts per minute and per day, even on the $2,000 plan.

ScenariobochkaAzure Virtual Machines
One coding agent, workdaysNone that biteNone that bite
One agent that never stopsNone that bite
  • 3-year commitment
50 agents in parallelNone that biteNone that bite
Sandboxes for your usersNone that biteNone that bite
1,000 short jobs at once
  • 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)
  • burstable CPU: 30% of each vCPU guaranteed, throttled above that

Which one should you use?

Use Azure Virtual Machines when

you need GPUs, Windows, Arm or a region outside the EU, or your company already runs everything inside Azure and wants raw VMs it controls end to end.

  • GPUs, Windows and Arm. Useful if agents train or test models, or need Windows or Arm: Azure rents all of these as plain VMs.
  • Regions everywhere and network controls. Useful if data must stay in a given country outside the EU, or if outbound traffic must follow strict rules.
  • Hibernation and Spot pricing. Useful if a machine must resume with its memory, or if a big batch can survive eviction for a lower price.

Use bochka when

you want agents to work in full VMs right away: Docker and /dev/kvm on every machine, forks of running sandboxes, a desktop, HTTPS URLs and coding agents you drive by API, without building that layer on top of raw VMs.

  • Coding agents you drive from outside. On Azure you build and maintain the layer that installs agents, sends prompts, streams events and stores keys. With Key Vault the key still lands inside the VM, where code the agent writes can read it.
  • Fork a running machine, keep its files for free. Agents that try five fixes in parallel need five copies of the same live machine. On Azure each copy means stopping, capturing, creating and booting, and stopped VMs still bill their disks and count against your vCPU quota.
  • A desktop and HTTPS URLs out of the box. A computer-use agent on Azure needs you to install a desktop and a VNC or RDP server, then run TLS or add a gateway for every preview URL. That is setup and upkeep for each image you use.

Questions people ask

Is bochka cheaper than Azure Virtual Machines?

In most of the scenarios we priced, yes: one coding agent on workdays is $20 a month on bochka and $26 on Azure, and 50 agents in parallel come to $317 versus $1,168. One agent that never stops is $26 on bochka and $48 on Azure, but only with a 3-year reservation. For 1,000 short jobs at once, Azure's burstable VMs come to $483 against $2,000 on bochka, and neither fits as asked.

Can I use Azure VMs as sandboxes for AI agents?

Yes, each Azure VM is a full machine with its own kernel, so it isolates code well. What it does not give you is the sandbox layer: fast forks, HTTPS preview URLs, a desktop stream, a keys proxy and an API to drive coding agents. On bochka those come with every sandbox.

Do Azure VMs keep billing when stopped?

It depends on how you stop them. A VM shut down from inside the OS stays allocated and keeps billing compute; only a stop (deallocate) from the portal, CLI or API ends compute billing, and disks and static IPs still bill. A stopped bochka sandbox costs nothing and keeps its files.

Does bochka have GPUs or Windows like Azure?

No. bochka runs Linux VMs on dedicated AMD Ryzen 9 9950X hosts, with no GPUs and no Windows guests, and has Wine docs for Windows apps. If you need GPUs, Windows or Arm, Azure has all three.

Where does my data run?

bochka runs only in the EU (Germany, Finland and France), with EU data residency and a zero data retention option. Azure lists 77 regions worldwide, so you can pick a region in the EU or almost any other part of the world.

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. Azure lists SOC 2 among its compliance offerings.

Start a sandbox

Install the CLI, then run bochka new.

Product preview

More comparisons

Bochka product preview · Pricing, benchmarks and commands are illustrative. Sandbox provisioning is not connected.