Azure Virtual Machines vs OVHcloud
Both rent you plain Linux or Windows VMs that you set up yourself. Azure is Microsoft's hyperscaler, with Arm sizes, 77 regions, hibernation and Spot VMs; OVHcloud is a French OpenStack cloud that bills by the second and has a smaller, simpler range.
The companies and products
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.
OVHcloud
OVHcloud is a French cloud provider; its Public Cloud rents OpenStack virtual machines, storage and networking by the second.
A Public Cloud instance is a Linux or Windows VM picked from families such as General Purpose (B3), Compute (C3), Memory (R3), GPU and the shared-resource Discovery range (D2). You run your own software on it, next to OVHcloud products like private networks, gateways, load balancers, Kubernetes and object storage, through a Control Panel, an API or OpenStack tools. It is general infrastructure, not an agent sandbox, so this page compares the two where they overlap: giving an agent its own Linux machine.
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 364” means 2 of the other 363 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 Virtual Machines: price rank | OVHcloud: price rank | bochka: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month | 83rd of 367, with limits $730 a month | 90th of 367, with limits $814 a month | 3rd cheapest of 367 $634 a month |
| Always-on AI employees 50 machines 24/7 · 2 vCPU / 4 GB | 113th of 366, with limits $644 a month | 136th of 366, with limits $934 a month | 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 OVHcloud suits short code runs better than Azure because it bills by the second after a 1-minute minimum; bochka's start limits make big bursts a compromise. | 114th of 345, with limits $222 a month | 56th of 345, with limits $43 a month | 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 Neither cloud has a sandbox layer for your users, and 300 at once needs a quota raise on OVHcloud; bochka gives each user a sandbox through its API. | 63rd of 361, with limits $500 a month | 43rd of 361, with limits $299 a month | 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 Both clouds rank above bochka for RL rollouts, and Azure Spot VMs help if rollouts can survive eviction with 30 seconds of notice. | 19th of 360, with limits $1,039 a month | 27th of 360, with limits $1,280 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 Azure fits agent evals fully and ranks near the top, while OVHcloud is a compromise here; bochka also fits fully. | 3rd cheapest of 364 $173 a month | 99th of 364, with limits $231 a month | 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 on a full VM, but on either cloud you run the runner software, images and clean-up yourself. | 35th cheapest of 377 $335 a month | 29th cheapest of 377 $300 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB OVHcloud is the cheaper classic always-on server of the two for a 24/7 dev box, and bochka keeps the disk with snapshots every minute. | 72nd cheapest of 368 $94 a month | 23rd cheapest of 368 $34 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 Neither cloud has a desktop stream or computer-use API built in; bochka ships a 60fps desktop with Chromium on every machine. | 100th of 369, with limits $192 a month | 108th of 369, with limits $231 a month | 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 | 168th of 367, with limits $107 a month | 174th of 367, with limits $128 a month | 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 | 194th of 346, with limits $116 a month | 159th of 346, with limits $65 a month | 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 OVHcloud ranks above both bochka and Azure for mass scraping in our table, mostly on price. | 81st of 338, with limits $2,044 a month | 47th of 338, with limits $1,290 a month | 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 | 110th of 360, with limits $46 a month | 120th of 360, with limits $64 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 Virtual Machines | OVHcloud | bochka |
|---|---|---|---|
| What you get | A general Hyper-V VM; images, networking and tooling are yours to set up | A general OpenStack VM you set up and run yourself | A sandbox API for agents, on full VMs |
| Isolation | Full Hyper-V VM with its own kernel | Fully isolated VM with its own kernel | Full VM with its own kernel |
| Billing unit | Per full minute while running; a VM shut down from inside the OS keeps billing | Per second after a 1-minute minimum, until you delete the instance | Per second from a monthly plan that becomes usage credit |
| Stopping | Deallocate ends compute billing; disks and static IPs keep billing | Turn off and pause bill at the same rate; shelve frees compute and bills a disk snapshot | A stopped sandbox costs nothing and keeps its disk |
| Snapshots | On-demand disk snapshots; scheduled ones need the paid Azure Backup service | On-demand instance backups, or a schedule such as daily backups | Automatic snapshots every minute and on stop |
| Pause with memory | Hibernation saves memory on supported sizes up to 64 GB of RAM | Pause keeps the instance but bills at the same rate | Resume reboots from disk (no memory snapshots) |
| Fork and clone | Capture an image or snapshot, then boot new VMs cold; image capture needs the VM stopped | Take an instance backup, then create a new instance from it | Fork a running sandbox in one call |
| Docker and nested virtualization | Root and Docker; nested virtualization on Intel and AMD D and F sizes, not on Arm or B-series | Root and Docker; vmx is passed, but a live migration can make the guest kernel panic | Docker, root, systemd and /dev/kvm on every machine |
| Desktop and computer use | None built in; you install a VNC or RDP server | None built in; you install a desktop and connect over SSH or RDP | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Coding agents and keys | None built in; Key Vault secrets are fetched into the VM | None built in; secrets live on the instance | Claude Code, Codex, OpenCode preinstalled with a prompt, steer and events API; AI credentials proxy keeps keys outside |
| Reaching the machine | Public IPv4 and any port; HTTPS is yours to run, or add a gateway | Public IPv4 on any port; HTTPS needs your own certificates or a load balancer | HTTPS URLs for up to 50 ports, token-protected; raw TCP; own IP |
| Outbound rules | Security groups by IP, plus domain allowlists with the paid Azure Firewall | Security groups by IP range, port and protocol | Open internet on every plan; no provider-side allowlist |
| GPUs, Windows and Arm | GPU families with Nvidia H100 and A100; Windows; Arm on Cobalt 100 and Ampere Altra | Nvidia L4, L40S and V100S instances; Windows Server; no Arm | Linux on dedicated AMD Ryzen 9 9950X hosts; no GPUs; Wine for Windows apps |
| Regions | 77 regions worldwide, available or coming soon | Europe, Canada, the US, Singapore and Sydney, plus Local Zones | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Azure Virtual Machines | OVHcloud | bochka |
|---|---|---|---|
| Full VM (own kernel) | Yes | Yes | Yes |
| Docker inside | Yes | Yes | Yes |
| Nested virtualization | Yes | 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 | Yes | Yes | Yes |
| Persistent disk | Yes | Yes | Yes |
| Pause/resume | Yes | Yes | Yes |
| Automatic snapshots | No | Yes | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | No | Yes | Yes |
| Memory fork | No | No | No |
| Custom image (Docker or snapshot) | Yes | Yes | Yes |
| ≥24 h sessions | Yes | Yes | Yes |
| Idle auto-stop | No | No | No |
| Wake on request | No | No | No |
| HTTPS preview URLs | No | No | Yes |
| Raw TCP inbound | Yes | Yes | Yes |
| Public IPv4 | Yes | Yes | No |
| Egress allowlist | Yes | Yes | No |
| Secret proxy | No | No | Yes |
| Secret proxy for any API | No | No | Yes |
| Preinstalled agents | No | No | Yes |
| Agent harness API | No | No | Yes |
| MCP server | Yes | No | No |
| GPU | Yes | Yes | No |
| Windows | Yes | Yes | No |
| Arm64 | Yes | 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 | No | Not published | Yes |
| Usage per sandbox (API) | Yes | No | Yes |
| Audit logs | Yes | Not published | 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
There is no comparable measurement for Azure Virtual Machines or OVHcloud: neither was part of the public StarSling benchmark we use. 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. Speed on either cloud depends on the family you pick, and OVHcloud's Discovery (D2) instances share their CPU.
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 and OVHcloud 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.
| Scenario | Azure Virtual Machines, a month | OVHcloud, 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 | $26 · Pay-as-you-go subscription (no plan fee) | $8 · Usage account | $20 · $20/mo |
| One agent that never stops 4 vCPU / 8 GB, 50 GB disk, running 24/7 all month | $48 · Pay-as-you-go subscription (no plan fee) · with limits | $34 · Usage account | $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 | $1,168 · Pay-as-you-go subscription (no plan fee) | $406 · Usage account | $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 | $225 · Pay-as-you-go subscription (no plan fee) | $128 · Usage account · with limits | $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 | $483 · Pay-as-you-go subscription (no plan fee) · with limits | $256 · Usage account · with limits | $2,000 · $2000/mo · with limits |
Azure Virtual Machines: Azure bills each VM per full minute while it runs, with no plan fee; disks, public IPv4 and egress cost extra, and disks keep billing while the VM is deallocated. The cheapest always-on price needs a 3-year reservation billed whether the VM runs or not.
OVHcloud: OVHcloud bills every second an instance exists, after a 1-minute minimum, until you delete it, and turned-off instances bill at the same rate. The prices here use shared Discovery d2 instances; since October 2026, B3, C3 and R3 instances also bill local storage and public IPv4 on top.
OVHcloud: 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.
Limits in those scenarios
Azure caps vCPUs per region and per VM family, stopped VMs still count, and new subscriptions start low until you ask for more. OVHcloud raises project quotas in steps of 20, 50, 100 and 200 VMs by buying prepaid credit, so 300 user sandboxes or 1,000 jobs at once need support first. For the 1,000-job burst, Azure's low figure uses B-series VMs that guarantee 30% of each vCPU, and OVHcloud's Discovery instances share their CPU. On bochka the same burst is held back by starts per minute and per day, even on the $2,000 plan.
| Scenario | Azure Virtual Machines | OVHcloud | bochka |
|---|---|---|---|
| One coding agent, workdays | None that bite | None that bite | None that bite |
| One agent that never stops |
| None that bite | None that bite |
| 50 agents in parallel | None that bite |
| None that bite |
| Sandboxes for your users | None that bite |
| None that bite |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Azure Virtual Machines when
you need Arm sizes, H100 or A100 GPUs, hibernation, Spot pricing, domain-level outbound rules or a region almost anywhere, or your company already runs on Azure.
- Arm, big GPUs and regions everywhere. Useful if you need Arm machines, Nvidia H100 or A100 GPUs, or a region in one of 77 places worldwide.
- Hibernation and Spot VMs. Useful if a machine must resume with its memory, or a big batch can survive eviction for a lower price.
- Domain-level outbound rules. Useful if agent traffic must only reach listed domains: the paid Azure Firewall can limit outbound HTTPS that way.
Use OVHcloud when
you want a European provider with simple per-second billing, low prices on small instances, scheduled backups, GPUs by the hour and private networks next to managed services.
- Per-second billing on simple instances. Useful for short runs and small budgets: OVHcloud bills by the second after a 1-minute minimum, with no plan fee.
- Scheduled backups built in. Useful if you want automatic instance backups, such as daily ones, without adding a separate backup service.
- A French cloud with GPUs by the hour. Useful if you want a European provider that also rents Nvidia L4 and L40S GPUs and has regions in North America and Asia.
Where bochka fits
Azure and OVHcloud are general clouds, not agent sandboxes, so bochka only overlaps where you give an agent its own Linux machine. If what you are really running is agents, bochka gives each one a full VM that is ready to work, instead of an empty image you build a sandbox layer on top of.
Free stops with a disk saved every minute
Agents sit idle between tasks. On OVHcloud a turned-off instance bills at the full rate unless you shelve it; on Azure a deallocated VM still bills disks. A stopped bochka sandbox costs nothing and keeps a disk saved every minute.
Fork and nested VMs you can rely on
bochka forks a running sandbox in one call and has /dev/kvm on every machine. Azure copies need a stopped VM, an image and a cold boot, and lose nested virtualization on Arm and B-series; OVHcloud nested VMs can panic on live migration.
Agents, desktop and URLs built in
On both clouds you install agents, a desktop, TLS and a key store yourself, and the agent can read any key on the VM. bochka ships coding agents you drive from outside, a 60fps desktop, HTTPS on 50 ports and a credentials proxy.
Use bochka when what you are really running is agents: each gets a full VM with Docker and /dev/kvm, forks of running sandboxes, snapshots every minute, free stops, a desktop, HTTPS URLs and coding agents you drive by API. Compare it one to one: bochka vs Azure Virtual Machines and bochka vs OVHcloud.
Questions people ask
Is Azure cheaper than OVHcloud?
In the scenarios we priced, OVHcloud is cheaper: one coding agent on workdays is $8 a month on OVHcloud (if you delete the instance every night) against $26 on Azure, and 50 agents in parallel come to $406 against $1,168. One agent that never stops is $34 on OVHcloud and $48 on Azure, but Azure needs a 3-year reservation for that price. On bochka those three come to $20, $317 and $26.
Which is faster, Azure or OVHcloud?
We have no comparable measurement for either: neither was in the public StarSling benchmark we use. Speed depends on the family you pick, and OVHcloud's cheap Discovery instances share their CPU. bochka did 26.69 runs per second at 4 vCPU / 8 GB in that benchmark.
Do I pay for a stopped VM on Azure or OVHcloud?
On Azure, a VM shut down from inside the OS keeps billing; a deallocate ends compute billing, but disks and static IPs still bill. On OVHcloud, turned-off and paused instances bill at the same rate until you delete them, and shelving bills only a disk snapshot. A stopped bochka sandbox costs nothing and keeps its disk.
Can Azure VMs and OVHcloud instances run Docker and nested VMs?
Both run Docker, since each is a full VM with root. Azure supports nested virtualization on Intel and AMD D and F sizes but not on Arm or B-series, and OVHcloud passes the vmx flag but warns a live migration can make the guest kernel panic. On bochka, Docker, systemd and /dev/kvm are on every machine.
Which has more regions?
Azure lists 77 regions worldwide, available or coming soon. OVHcloud runs in Europe, Canada, the US, Singapore and Sydney, plus Local Zones. bochka runs only in the EU, in Germany, Finland and France, with EU data residency.
Do Azure or OVHcloud have GPUs?
Yes, both do: Azure has GPU families with Nvidia H100 and A100, and OVHcloud rents Nvidia L4, L40S and V100S instances. bochka has no GPUs, so model work belongs on one of them.
Try bochka
Install the CLI, then run bochka new.
Product preview
More comparisons
- bochka vs Azure Virtual Machines
- bochka vs OVHcloud
- AWS EC2 vs Azure Virtual Machines
- Google Compute Engine vs Azure Virtual Machines
- Azure Virtual Machines vs Oracle Cloud
- Azure Virtual Machines vs DigitalOcean
- Azure Virtual Machines vs Hetzner Cloud
- Azure Virtual Machines vs Vultr
- Azure Virtual Machines vs Linode
- Azure Virtual Machines vs Scaleway
- Azure Virtual Machines vs IONOS Cloud
- Azure Virtual Machines vs Contabo