Environments¶
An environment is a named sandbox profile: where an agent runs and how big it is. A template's role names one
(vm: medium).
| Field | Meaning |
|---|---|
name |
What templates call it. |
provider |
firecracker (microVMs on a host running vmd) or nevia (Aiven's computers). |
profile |
The provider's own size name. |
vcpus, memory_mib, disk_gib |
The size, where the provider takes one. |
checkpoint_id |
For Nevia, the golden checkpoint a new computer is restored from. |
idle_after_seconds, deep_sleep_after_seconds |
When an idle agent is snapshotted and when it goes into deep sleep. |
image |
Read only. A Firecracker VM boots the current image build (GET /images); the environment does not choose it. |
used_by |
How many current agent and template versions name it. |
Rules¶
- Editing an environment changes none of its users: a template version copies the environment's values when the version is created, and a team copies them from its template. To roll a change out, create a template version, then refresh the teams.
- Deleting is refused with 409 while something uses it.
- Reading is open to every role; changing environments is for admins (
POST /environments,PUT /environments/{name},DELETE /environments/{name}). - Images and Nevia checkpoints are listed read-only under
GET /imagesand in the Console's Images view.
Sleep¶
An idle agent is snapshotted to disk and its VM process stops (on Nevia the computer sleeps), so it uses no CPU or memory. New work wakes it from the snapshot, or cold-boots it from its disk when the snapshot cannot be used. Snapshots are bound to their host, so a cold boot is the fallback and conversations that were running come back as errors; nothing restarts them for you.
Providers¶
Both providers sit behind one sandbox-provider interface, so a team does not change when its environment moves from one to the other. What each needs: deployment; the measured wake times and the isolation model: architecture, Agent microVMs.