Azure Virtual Machines vs Oracle Cloud
Azure Virtual Machines and Oracle Cloud both rent plain VMs that you set up yourself, so the choice comes down to the details. Azure adds hibernation, Spot VMs and full-speed machines at the prices we found, while Oracle adds Mac servers, a wider GPU range and an Always Free Arm box, with cheap prices that rely on throttled burstable VMs.
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.
Oracle Cloud
Oracle Cloud Infrastructure (OCI) is Oracle's general-purpose cloud: compute, storage, networking, databases and AI services in regions around the world.
OCI Compute rents virtual machines and bare metal servers on x86 (AMD, Intel) and Arm (Ampere), plus GPU machines and Mac servers. You pick a shape, an OS image, a network and a disk, and then install and run everything inside the VM yourself. It is not a sandbox product, so this page compares the part that overlaps: running agent code on a VM.
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 | Oracle Cloud: price rank | boat: price rank |
|---|---|---|---|
| Software factory 100 at once · 4 vCPU / 8 GB · 2,200 sessions of 8 h a month Both clouds leave you to build the images, HTTPS and agent driver for a software factory; boat ships them on every machine and ranks 3rd here. | 83rd of 367, with limits $730 a month | 58th of 367, with limits $413 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 | 100th of 366, with limits $376 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 | 114th of 345, with limits $222 a month | 51st of 345, with limits $16 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 On Azure or Oracle Cloud you build the sandbox layer for your users yourself (URLs, auth, cleanup); boat ranks 1st because it gives you that by API. | 63rd of 361, with limits $500 a month | 31st of 361, with limits $115 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 Oracle Cloud ranks 7th and Azure Virtual Machines ranks 19th for big rollout fleets, as long as your quota or service limits are raised to match. | 19th of 360, with limits $1,039 a month | 7th of 360, with limits $679 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 Oracle Cloud ranks 1st and Azure Virtual Machines ranks 3rd for eval batches, since both fit scripted, short runs on plain VMs. | 3rd cheapest of 364 $173 a month | Cheapest of 364 $136 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 Oracle Cloud ranks 6th and Azure Virtual Machines 35th for CI runners; boat ranks 4th with Docker and /dev/kvm ready. | 35th cheapest of 377 $335 a month | 6th cheapest of 377 $102 a month | 4th cheapest of 377 $86 a month |
| 24/7 dev boxes 1 machine 24/7 · 4 vCPU / 8 GB Oracle Cloud ranks 2nd for a 24/7 dev box thanks to its low prices and Always Free Arm allowance, though Oracle may reclaim Always Free VMs it judges idle. | 72nd cheapest of 368 $94 a month | 2nd cheapest of 368 $12 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 on its VMs (each sells desktops as a separate product); boat ships a 60fps desktop with Chromium and computer use. | 100th of 369, with limits $192 a month | 75th of 369, with limits $97 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 | 154th of 367, with limits $49 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 | 150th of 346, with limits $32 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 | 81st of 338, with limits $2,044 a month | 35th of 338, with limits $642 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 Parallel red teaming needs many copies of one live machine; boat forks a running sandbox in one call, while both clouds copy through images that boot cold. | 110th of 360, with limits $46 a month | 102nd of 360, with limits $26 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 | Oracle Cloud | boat |
|---|---|---|---|
| What you get | A general cloud VM; images, networking and tooling are yours to set up | A plain cloud VM or bare metal server that you set up yourself | An agent sandbox: a full VM per sandbox, created and driven by API |
| Isolation | Full Hyper-V VM with its own kernel | Full VM with its own kernel on a KVM hypervisor; bare metal also offered | Full VM with its own kernel |
| Docker and nested virtualization | Root and Docker on any size; nested virtualization on Intel and AMD D and F sizes, not on Arm or B-series burstable sizes | Root on every VM, Docker is yours to install; nested KVM documented on E5 and Standard3 Flex VMs, not on Ampere Arm VMs | Docker, root, systemd and /dev/kvm on every machine |
| Desktop and computer use | None built in; Azure Virtual Desktop is a separate product | None on Compute VMs; OCI Secure Desktops is a separate product | 60fps desktop and Chromium, computer use and browser control, embeddable stream |
| Coding agents | None built in; Run Command, scripts or SSH to install and run them | None preinstalled; you install and run them over SSH | Claude Code, Codex, OpenCode and more preinstalled, with a prompt, steer and events API |
| Keeping keys out of the machine | Key Vault; secrets are fetched into the VM, so code inside can read them | OCI Secret Management; the VM fetches secrets, so the key ends up inside | AI credentials proxy for model providers and any HTTPS API; switch a credential to another account when credits run out |
| Files after a stop | A deallocated VM stops compute billing; disks and static IPs keep billing; no automatic snapshots | Stopping pauses compute billing; the boot volume is billed until you delete it; backups by hand or on a schedule | Snapshots every minute and on stop; a stopped sandbox costs nothing |
| Fork and clone | Capture an image or disk snapshot, then boot new VMs cold; image capture needs the VM stopped | Make a custom image of the boot disk; imaging a running VM shuts it down for several minutes | Fork a running sandbox in one call |
| Reaching the machine | Public IPv4 and any port through security group rules; HTTPS is yours to run | Public IPv4 and any port through security rules; HTTPS through your own server or a load balancer | HTTPS URLs for up to 50 ports, token-protected; raw TCP; dedicated IP |
| Running many at once | vCPU quotas per region and per VM family; stopped VMs still count; raised by request | Default or trial service limits per tenancy; increases may not be approved | 100 to 2,000 sandboxes at once by plan, self-serve |
| GPUs | GPU families such as NC with Nvidia H100 and A100 | Nvidia B200, H200, H100 and A100 and AMD MI300X, in VMs and bare metal | None |
| Operating systems and CPUs | Linux and Windows on Intel, AMD and Arm (Cobalt 100, Ampere Altra) | Linux and Windows Server on AMD, Intel and Ampere Arm, plus Mac servers | Linux on dedicated AMD Ryzen 9 9950X (Zen 5) hosts; Wine for Windows apps |
| Free tier | $200 of credit for 30 days, plus 12 months of small 1 to 2 GiB burstable VMs | $300 of credit for 30 days, plus Always Free Arm compute of 1,500 OCPU hours and 9,000 GB hours a month | Plans from $20 a month, all of it usage credit; a stopped sandbox costs nothing |
| Regions | 77 regions available or coming soon across more than 30 countries | Regions across the Americas, Europe, Asia, the Middle East, Africa and Australia, plus government and sovereign clouds | EU only: Germany, Finland, France |
Every feature Battleships tracks (43)
| Feature | Azure Virtual Machines | Oracle Cloud | boat |
|---|---|---|---|
| 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 | No | Yes |
| Fork/clone | Yes | Yes | Yes |
| Live fork (no pause) | No | No | 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 | Yes | No |
| GPU | Yes | Yes | No |
| Windows | Yes | Yes | No |
| Arm64 | Yes | Yes | 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 | Yes | 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 CPU measurement for Azure Virtual Machines or Oracle Cloud: neither was part of StarSling's public sandbox benchmark run of 2026-09-29. In that run boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB on dedicated AMD Ryzen 9 9950X hosts. Speed on both clouds depends on the size you pick, and their burstable sizes guarantee only part of each vCPU.
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 Oracle 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.
| Scenario | Azure Virtual Machines, a month | Oracle Cloud, a month | boat, 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) | $5 · Usage account · with limits | $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 | $15 · Usage account · 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 | $1,168 · Pay-as-you-go subscription (no plan fee) | $203 · Usage account · 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 | $225 · Pay-as-you-go subscription (no plan fee) | $49 · 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 | $97 · 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 past the first 100 GB a month are billed on top, and disks keep billing while the VM is deallocated. Its always-on price needs a 3-year reservation, billed whether the VM runs or not.
Oracle Cloud: Oracle bills per OCPU hour (one x86 OCPU is two vCPUs) and per GB hour of memory while a VM runs, plus the boot disk until you delete it, and the first 10 TB of outbound data each month is free. Its prices in our table use burstable VMs with a 12.5% CPU baseline, so they sit far below a full-speed VM.
Oracle Cloud: 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
Every Oracle Cloud price in our scenarios uses burstable VMs that guarantee 12.5% of each vCPU and throttle above that, so none of them fit a busy agent; full-speed shapes cost more. Azure fits one agent on workdays, 50 agents and the user sandboxes at full speed, but its always-on price needs a 3-year commitment and its 1,000-job burst uses B-series VMs that guarantee 30% of each vCPU. Both clouds also cap how much you can run with vCPU quotas or tenancy service limits that you raise by request. On boat the 1,000-job burst needs more starts per day and per hour than the $2,000 plan allows, and starts above 90 a minute are queued.
| Scenario | Azure Virtual Machines | Oracle Cloud | boat |
|---|---|---|---|
| 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 |
| 1,000 short jobs at once |
|
|
|
Which one should you use?
Use Azure Virtual Machines when
you need full-speed VMs at a known price, hibernation or Spot capacity, Windows or Arm, or your company already runs inside Azure.
- Hibernation and Spot VMs. Useful if a VM must resume with its memory, or a big batch can survive eviction with 30 seconds of notice for less.
- Full speed at the listed price. Useful for busy agents: Azure's priced machines for one agent and for 50 agents run at full speed, not on a throttled baseline.
- Strict outbound rules. Useful if traffic must follow rules: security groups filter by IP and port, and Azure Firewall can limit outbound HTTPS to listed domains.
Use Oracle Cloud when
you want a free small Arm box, Mac servers, the widest GPU choice, lots of free outbound data, or your company already runs on OCI.
- A free always-on Arm box. Useful for one small personal box: every tenancy gets 1,500 Arm OCPU hours and 9,000 GB hours a month free.
- Mac servers and more GPUs. Useful if agents build for Apple or need Nvidia B200, H200 or AMD MI300X GPUs, which Oracle Cloud rents.
- Lots of free outbound data. Useful for traffic-heavy jobs: the first 10 TB of outbound data each month is free, where Azure frees the first 100 GB.
Where boat fits
If what you are really running is agents, both Azure Virtual Machines and Oracle Cloud hand you a blank VM and leave the sandbox layer to you. boat gives each agent a full VM that already has Docker, /dev/kvm, a desktop, HTTPS URLs, coding agents and snapshots every minute. It is not a GPU, Windows or Mac cloud, so keep those jobs on Azure or Oracle Cloud.
The sandbox layer is already built
On Azure or Oracle Cloud your team installs Docker, a desktop stream and the coding agents, then runs TLS or a load balancer for each preview URL. On boat every machine comes with them, plus HTTPS on up to 50 ports and raw TCP.
Saved every minute, forked while running
An agent that breaks its machine needs the state from a minute ago. Azure has no automatic snapshots and needs the VM stopped to capture an image; Oracle shuts a running VM down for minutes to image it. boat forks a running sandbox in one call.
Keys stay out of the machine
Azure Key Vault and OCI Secret Management both deliver the secret into the VM, where code the agent writes can read it. boat's credentials proxy keeps real keys outside and can switch to another account when credits run out.
Use boat when what you really run is agents and you want full VMs with Docker, /dev/kvm, a desktop, HTTPS URLs, coding agents, snapshots every minute and forks of running sandboxes, without building that layer on raw cloud VMs. Compare it one to one: boat vs Azure Virtual Machines and boat vs Oracle Cloud.
Questions people ask
Is Oracle Cloud cheaper than Azure Virtual Machines?
On list price, yes: one coding agent on workdays comes to $5 a month on Oracle and $26 on Azure, and 50 agents in parallel to $203 against $1,168. Those Oracle prices use burstable VMs throttled above 12.5% of each vCPU, so they do not fit a busy agent, while the Azure ones do. On boat the same two cost $20 and $317.
Which is faster, Azure Virtual Machines or Oracle Cloud?
We have no comparable measurement for either: neither was in StarSling's public sandbox benchmark. Speed on both depends on the size you pick. boat did 26.69 Node.js build-and-test runs per second at 4 vCPU / 8 GB in that benchmark.
Can Azure VMs and Oracle Cloud VMs run Docker and nested virtualization?
Both give you root, so you can install Docker on any VM. Nested virtualization works on Azure's Intel and AMD D and F sizes and on Oracle's E5 and Standard3 Flex VMs, but not on either cloud's Arm VMs or Azure's B-series. boat has Docker, systemd and /dev/kvm on every machine.
Do Azure and Oracle Cloud have a free tier?
Azure gives $200 of credit for 30 days plus 12 months of small 1 to 2 GiB burstable VMs. Oracle gives $300 of credit for 30 days plus an Always Free Arm allowance of 1,500 OCPU hours and 9,000 GB hours a month, though it may reclaim Always Free VMs that sit idle.
Can I run macOS or GPUs on Azure or Oracle Cloud?
Oracle Cloud rents Mac servers and Nvidia and AMD GPUs; Azure has GPU families such as NC with Nvidia H100 and A100 but no macOS. boat runs Linux on dedicated AMD Ryzen 9 9950X hosts with no GPUs and no macOS.
Where does my data run?
Azure lists 77 regions worldwide and Oracle Cloud has regions across the Americas, Europe, Asia, the Middle East, Africa and Australia, so both let you pick almost any part of the world. boat runs only in the EU (Germany, Finland and France), with EU data residency.
Try boat
Install the CLI, then run boat new.
7-day free trial
More comparisons
- boat vs Azure Virtual Machines
- boat vs Oracle Cloud
- AWS EC2 vs Azure Virtual Machines
- Google Compute Engine vs Azure Virtual Machines
- 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 OVHcloud
- Azure Virtual Machines vs IONOS Cloud
- Azure Virtual Machines vs Contabo