TL;DR

Fly.io launched Sprites, a new offering that provides root Linux virtual machines which launch in about one to two seconds, include a persistent 100GB root filesystem, and auto-sleep when idle. The design drops per-user container images in favor of a standard starting container, uses S3-compatible object storage as the durable store for disks, and moves much orchestration into the VM itself.

What happened

Fly.io introduced Sprites, a new class of lightweight virtual machines intended to be rapidly created and disposable. Sprites present a full Linux VM with root access, a 100GB persistent root filesystem, and an auto-sleeping idle state that keeps costs very low while dormant. To reach near-instant creation times, Fly.io runs Sprites from a single standard container image under the hood and maintains pools of prewarmed workers so provisioning avoids the overhead of pulling varied user containers. Persistent storage is implemented with an object-storage-first model: data chunks live on S3-compatible object stores while local NVMe acts as a read-through cache. Metadata is kept locally and made durable with Litestream; the storage design follows a JuiceFS-like split of data and metadata. Finally, orchestration responsibilities are shifted inward — the VM’s root namespace hosts much of the platform code (storage, service management, logs), while user code runs inside an inner container namespace.

Why it matters

  • Near-instant creation reduces wait times and makes ephemeral machines feel immediately available for ad-hoc tasks.
  • Object-backed disks decouple durable state from physical hosts, simplifying migration and recovery.
  • Keeping orchestration inside the VM isolates changes and limits blast radius for platform updates.
  • Fast checkpoint and restore driven by metadata operations encourages frequent snapshots and quicker recovery.

Key facts

  • Sprites are Linux virtual machines that provide root access to users.
  • Creation time is approximately one to two seconds, comparable to SSHing into an existing host.
  • Each Sprite has a 100GB durable root filesystem by default.
  • User-facing container images are not pulled per-Sprite; Sprites start from a single standard container and use pools of empty Sprites.
  • Durable storage is backed by S3-compatible object storage; local NVMe volumes are used as read-through caches.
  • The storage design separates immutable data chunks (on object storage) and metadata (kept locally and replicated via Litestream).
  • The orchestration model places much platform logic in the VM’s root namespace while presenting an inner container to user workloads.
  • The global orchestrator for Sprites is an Elixir/Phoenix application that relies on object storage for account metadata and assigns independent SQLite databases to accounts.

What to watch next

  • How Fly.io’s internal tooling evolves around the object-storage-first stack and what operational trade-offs emerge
  • Performance and consistency characteristics of the JuiceFS-like storage stack in larger-scale production use
  • not confirmed in the source
  • not confirmed in the source

Quick glossary

  • Virtual Machine (VM): A software emulation of a physical computer that runs an operating system and applications in an isolated environment.
  • Object storage: A storage architecture that manages data as discrete units (objects) in a flat address space, commonly exposed via S3-compatible APIs.
  • NVMe: A high-performance protocol for accessing non-volatile storage media, typically used with solid-state drives attached directly to a host.
  • Checkpoint/restore: Saving the state of a running system or process (checkpoint) and later restoring it to continue execution from that saved state.

Reader FAQ

Are Sprites containers or VMs?
Sprites are Linux VMs that present an inner container namespace for user code; the platform runs orchestration in the VM root namespace.

How persistent is Sprite storage?
Each Sprite provides a 100GB root filesystem backed by S3-compatible object storage, with local NVMe used as a cache.

How fast do Sprites start?
Sprite creation is designed to take about one to two seconds.

Is pricing or broad availability detailed?
not confirmed in the source

Image by Annie Ruygt We’re Fly.io, and this is the place in the post where we’d normally tell you that our job is to take your containers and run them…

Sources

Related posts

By

Leave a Reply

Your email address will not be published. Required fields are marked *