# Compute

Source: https://docs.quake.ai/docs/compute
Markdown: https://docs.quake.ai/docs/compute.md
> Create and manage virtual machine instances on Quake AI: choose an image and flavor, connect to project networks, and snapshot, resize, or destroy.

---

# Compute

Compute is the foundation of Quake AI: virtual machines you control, running on dedicated infrastructure. Create instances from a catalog of OS images, size them with predefined flavors, connect them to project networks, and manage the full lifecycle: start, stop, resize, snapshot, and destroy.

[OpenStack Nova](https://docs.openstack.org/nova/latest/) backs Compute. For details on how Quake AI implements OpenStack, see [How Quake AI uses OpenStack](/resources/migration/openstack).

## What you can do

<UseCaseGrid>
<UseCaseCard
  title="Launch your first VM"
  description="Create a virtual machine instance by choosing an image, flavor, and network, ready to SSH into in minutes."
  href="/docs/compute/how-to/create-instance"
  difficulty="beginner"
  estimatedTime="10 min"
  services={["Compute", "Network"]}
/>
<UseCaseCard
  title="Deploy on a private network"
  description="Launch an instance on an isolated project network with controlled internet access through a router and floating IP."
  href="/docs/compute/how-to/create-vm-private-network"
  difficulty="beginner"
  estimatedTime="15 min"
  services={["Compute", "Network"]}
/>
<UseCaseCard
  title="Create an instance snapshot"
  description="Capture the current state of a running instance for backup, cloning, or creating a custom image."
  href="/docs/compute/how-to/create-snapshot"
  difficulty="beginner"
  estimatedTime="5 min"
  services={["Compute"]}
/>
<UseCaseCard
  title="Build a custom image"
  description="Create a reusable VM image with your OS, packages, and configuration pre-installed."
  href="/docs/compute/how-to/create-image"
  difficulty="intermediate"
  estimatedTime="20 min"
  services={["Compute"]}
/>
</UseCaseGrid>

## How it works

<Figure caption="What you assemble to create a compute instance: an image, flavor, network attachment, key pair, and security group combine into a running VM.">

```d2
direction: right

inputs: Inputs {
  image: Image
  flavor: Flavor
  network: Network
  keypair: Key Pair
  sg: Security Group
  userdata: User Data {style.stroke-dash: 5}
}

instance: Running Instance

inputs.image -> instance
inputs.flavor -> instance
inputs.network -> instance
inputs.keypair -> instance
inputs.sg -> instance
inputs.userdata -> instance {style.stroke-dash: 5}
```

</Figure>

Creating an instance ties together an **image** (the OS and pre-installed software), a **flavor** (CPU, memory, and ephemeral disk allocation), and **network attachments** (which project networks the instance joins). Optionally add **security groups** for traffic filtering, **key pairs** for SSH authentication, and **user data** scripts for first-boot automation.

The platform places your instance on a compute node with sufficient capacity, respecting any placement policies you set through **server groups** (affinity or anti-affinity rules). After boot, you manage the instance through the console, CLI, or API: stopping it to save resources, resizing to a larger flavor as load grows, snapshotting for point-in-time recovery, or deleting it when the workload completes.

Instances use **ephemeral disk** by default (tied to the instance lifecycle). For data that must survive instance deletion, attach a persistent **block storage volume** from [Block storage](/docs/block).

## Get started

To create your first virtual machine, follow [Create a virtual machine instance](/docs/compute/how-to/create-instance). If you need isolated networking, start with [Create a VM on a private network](/docs/compute/how-to/create-vm-private-network) instead.

## Key concepts

<DocsSectionLinks section="compute/concepts" grouping="concepts" primaryOnly />

## Security considerations

Secure your instances with [SSH key pairs](/docs/compute/concepts/key-pairs) (most images disable password authentication by default), [security groups](/docs/network/concepts/security-groups) for port-level firewall rules, and regular patching of your OS and applications. For platform-wide security practices, see [Security](/docs/security).

## Guides and reference

### Console guides

<ReferenceConsoleLinks service="compute" />

### How-to guides

<DocsSectionLinks section="compute/how-to" />

### CLI reference

<ReferenceServiceLinks service="compute" group="cli" />

### API reference

<ReferenceServiceLinks service="compute" group="api" />

## Related services

Every instance needs a [Network](/docs/network) connection; even the simplest deployment attaches to at least one project network. For persistent disk beyond the instance lifecycle, attach [block storage](/docs/block) volumes. To deploy instances repeatably from templates, use [Automation](/docs/automation) with Terraform or Heat.
