Infraestructura declarada, tipada y comprobada antes de existir
Provisioning convierte una declaración en Nickel en el sistema en marcha (servidores, servicios de tarea, clústeres) y mantiene ambos en sintonía.
Declarada, tipada y comprobada antes de existir.
Declara un workspace una vez y crea servidores, instala servicios de tarea y despliega clústeres desde la CLI; el orden de dependencias, los puntos de control y la vuelta atrás corren de su cuenta.
Un proveedor es una interfaz que implementar y un servicio de tarea es un componente del catálogo con un manifiesto validado contra un contrato común: la plataforma en sí no cambia.
Una declaración · cualquier proveedor · cada cambio revisable en Git
Siempre configuración, nunca un valor fijado en el código.
Declarada, tipada y comprobada antes de existir
Una sola declaración gobierna cada proveedor, cada servicio y cada clúster. Lo declarado es lo que se ejecuta, y lo que se ejecuta se comprueba contra lo declarado.
Una configuración que no puede tener mala forma
Cada pieza de infraestructura es un esquema Nickel que se valida antes de llegar a ejecución. TOML y YAML son salida generada, nunca la fuente de verdad: un servidor mal formado, una dependencia ausente o un plan imposible se rechazan en el esquema.
El orden es estructura, no un script
Un workspace se compone como un grafo de dependencias tipado: containerd antes que etcd, etcd antes que Kubernetes, Kubernetes antes que Cilium. El orquestador lo ejecuta en paralelo donde el grafo lo permite, con puntos de control y vuelta atrás.
Una plataforma, cualquier proveedor
Los proveedores son una interfaz enchufable: una nube nueva es una implementación, no un cambio en la plataforma. Por debajo se mantienen límites estrictos entre servicios: las API de proveedor solo en el orquestador, la autorización solo en el Control Center y los secretos solo a través del vault.
Arquitectura
Plano de control: el orquestador, el Control Center, el servicio de vault, IA/MCP y el registro de extensiones, coordinados por el flujo de eventos de NATS JetStream sobre una persistencia compartida.
Cómo funciona
Definir, orquestar, ejecutar.
Definir con Nickel
Servidores, servicios de tarea y clústeres se escriben como declaraciones tipadas. La evaluación perezosa y la fusión recursiva los componen; una jerarquía de valores por defecto, de usuario, de workspace y de ejecución los ajusta.
Orquestar con Nushell
La CLI de provisioning conduce los flujos como canalizaciones de datos estructurados, sin scripts de shell frágiles. Las operaciones informan de vuelta como eventos en NATS JetStream, el único intermediario entre servicios.
Ejecutar con Rust
El orquestador, el Control Center y los servicios de plataforma están escritos en Rust: llamadas a proveedores, SSH verificado contra las claves de host fijadas, decisiones de política Cedar y estado en SurrealDB.
Infraestructura que se puede leer, revisar y revertir
Todo vive en Git: esquemas, módulos Nickel y flujos Nushell se versionan, se revisan y se revierten. Empieza por la visión general de la plataforma o lee cómo está construida.