The article introduces **Sprites**, a new offering from Fly.io that redefines disposable computing by providing Linux virtual machines with root access that can be created almost instantly.
**What Happened:**
Fly.io launched **Sprites**, a new platform that offers disposable Linux virtual machines. This is a departure from their previous product, Fly Machines, which were based on OCI containers. Sprites are designed for rapid creation, persistent storage, and automatic sleep when inactive, making them cost-effective for various tasks.
**Who is Affected:**
Developers and users who need quick, temporary, and isolated computing environments will be affected. This includes those prototyping applications, running acceptance tests, or engaging in tasks where a full-fledged, always-on server is unnecessary or cost-prohibitive.
**Security Implications:**
Sprites offer the isolation of KVM micro-VMs, providing root access within the VM. The article highlights that the core orchestration and management work happens *inside* the VM, with a container layer between the user and the kernel. This "inside-out" orchestration model means changes to Sprites have a smaller blast radius, potentially improving stability and security by isolating modifications to new VMs. The use of object storage for durable state also implies that the core data is managed by robust, external infrastructure.
**Technical Details:**
Sprites are Linux VMs with a 100GB durable root filesystem. Key technical decisions that enable Sprites include:
* **No More Container Images:** Sprites eliminate the need for users to manage container images, significantly speeding up creation time. Instead, they use a standard container internally, allowing for pre-pooled "empty" Sprites.
* **Object Storage for Disks:** The root filesystem is backed by S3-compatible object storage, with NVMe used as a read-through cache. This provides durability and simplifies workload migration and recovery. The storage stack is organized around the JuiceFS model, splitting data into chunks on object stores and metadata on local storage, with metadata durability provided by Litestream.
* **Inside-Out Orchestration:** Most orchestration and management logic resides within the VM's root namespace, rather than on the host. This includes the storage stack, service manager, logging, and network socket binding. This design allows for bouncing Sprites without rebooting the entire VM.
**What Defenders Should Know:**
Defenders should understand that Sprites are designed for rapid iteration and disposable use. Key takeaways include:
* **Instant Creation:** Sprites can be created in seconds, making them ideal for ephemeral tasks.
* **Cost-Effectiveness:** They automatically sleep when inactive, incurring minimal costs. Billing is based on actual usage, particularly for storage blocks written.
* **Persistent Storage:** Despite being disposable, Sprites have a 100GB persistent disk backed by object storage.
* **Prototyping and Testing:** Sprites are well-suited for prototyping and acceptance testing, with a potential automated workflow to transition to more permanent solutions like Fly Machines for scaling.
* **Contract with User Code:** Sprites establish a clear API and set of expectations for the execution environment, which can run on top of Fly Machines or potentially other runtimes in the future.