Encore reconstruye su stack de microVMs Linux para funcionar en Apple Silicon

Fuentes: We rebuilt the Linux microVM stack on Apple Silicon

La empresa Encore ejecuta cada compilación de sus aplicaciones backend en Firecracker, un hipervisor de microVMs basado en KVM. Como KVM solo está disponible en hosts Linux y la mayoría de sus ingenieros desarrolla en Mac, durante cuatro años el sistema de compilación tuvo que residir en una máquina Linux remota accesible por SSH y Tailscale. Ese entorno funcionó, pero alargaba el ciclo de desarrollo: los puntos de interrupción locales nunca se disparaban, revisar logs requería tail por SSH y cada cambio en la imagen guest implicaba exportar capas Docker, transferirlas y reconstruir un squashfs en el host compartido.

Para llevar el sistema de compilación al Mac sin renunciar a Firecracker en producción, el equipo construyó crackling, un demonio y CLI que arranca imágenes OCI como microVMs Linux tanto en Linux (con Firecracker) como en macOS (con Virtualization.framework de Apple). El núcleo es independiente del hipervisor y se describe mediante MachineSpec; un trait compartido permite cambiar el backend y testear con uno en memoria. El artículo recorre el historial del workaround anterior —conversión manual de capas Docker a un dispositivo de bloque booteable, creación de un bridge docker0 dentro del contenedor, rsync cruzado— y explica la arquitectura de crackling, sus diferencias de capacidades entre backends y por qué las alternativas existentes (Apple container, Lima, Tart, podman con libkrun o KVM anidado en M3+) no cubrían el caso de unificar ambos hosts en una sola API.