Por qué Vigo

Simplicidad, seguridad, fiabilidad, escalabilidad y precio — en qué se diferencia Vigo de cualquier otro sistema de gestión de configuración.

Próximo lanzamiento Vigo está en alfa y se acerca a su primera versión estable. Hasta entonces, pueden producirse cambios incompatibles entre versiones — buscamos socios de prueba con flotas significativas en arquitecturas diversas. Más información →

Un recurso. Un archivo.

Crear un usuario con sudo sin contraseña y una clave SSH — una tarea que hace todo equipo. En Vigo es un único recurso en un único archivo, con claves SSH, sudo y secretos integrados.

Vigo — 1 archivo, 1 recurso
configcrates/os-users.vgo
name: os-users

resources:
  - name: alice
    type: user
    username: alice
    comment: Alice Nguyen
    shell: /bin/bash
    groups: sudo, adm
    state: present
    password: secret:vigo/os-users/alice
    sudo_nopasswd: true
    authorized_keys: |
      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJqR... alice@laptop

📄 Simplicidad

Un servidor a cualquier escala

Sin masters de compilación, sin grupos de trabajo, sin clústeres de base de datos, sin balanceadores de carga. Un proceso, un archivo SQLite, un directorio de configuración. La arquitectura no cambia ya sea que gestione 10 nodos o 100.000.

Binario de agente estático de ~8 MiB

Sin Ruby, sin Python, sin JVM, sin ecosistema de gestores de paquetes en los nodos gestionados. Copie el binario, ejecútelo. Cero dependencias en tiempo de ejecución.

Un formato de configuración, una ruta de configuración

Existe exactamente una forma de configurar Vigo: editar archivos YAML y publicar. Sin escrituras en API, sin configuración en base de datos, sin mutaciones en la interfaz. Una única fuente de verdad, un formato, una herramienta.

Sin DSL

El lenguaje de configuración es YAML. Las plantillas Go aparecen únicamente dentro de los atributos content:. Sin lenguaje personalizado que aprender, sin compilador, sin peculiaridades del analizador.

El arranque es un solo comando

curl | sudo sh descarga el binario, genera certificados TLS, se registra con el servidor, instala el servicio y verifica la conectividad. Bajo gestión en 30 segundos.

Siete familias de SO desde una sola base de código

Linux, macOS, FreeBSD, OpenBSD, NetBSD, illumos y Windows. Escriba type: service y delega a systemd, launchctl, rc.d, rcctl, SMF o sc.exe.

Recursos condicionales sin un DSL de if

when: "os_family('debian')" en cualquier recurso o configcrate. Lógica booleana, funciones integradas como has_command, arch, version_ge. El servidor evalúa lo que puede y pasa el resto al agente. Sin DSL, sin plugins.

Visibilidad — trace cualquier decisión hasta su origen

Un comando — vigocli config trace danlap — muestra la cadena de resolución completa para cualquier nodo. Cada configcrate, variable, dependencia, etiqueta de cumplimiento, exención y condicional trazados hasta el archivo exacto que los definió.

Trazado de configuración de Vigo mostrando el árbol de herencia de directorios con la resolución de rutas y configcrates para danlap
Herencia de rutas — el árbol de directorios que contribuye a la configuración de este nodo, desde la raíz de la flota hasta el archivo de entrada hoja.
Herencia de configcrates de Vigo mostrando listas de configcrates por nivel y expansión de roles para danlap
Herencia de configcrates — qué configcrates y roles provienen de qué archivo, con la expansión de roles mostrando los configcrates que aporta cada rol.
Cadena de herencia de variables de Vigo mostrando variables por nivel con marcadores de anulación y fuentes de resolución final
Herencia de variables — variables definidas en cada nivel de directorio, marcadores de anulación donde un hijo sombrea a un padre, y la resolución final mostrando de dónde proviene el valor de cada variable.
Herencia de dependencias de Vigo mostrando aristas depends_on, notify y subscribes entre recursos
Herencia de dependencias — el DAG completo de aristas depends_on, notify y subscribes. Los recursos se ejecutan en orden topológico; notify desencadena la reaplicación cuando cambia una dependencia.
Herencia de condicionales de Vigo mostrando expresiones when del lado del servidor y del agente con resolución de variables de plantilla
Herencia de condicionales — cada expresión when: con su lado de evaluación. Las condiciones del lado del servidor (como changed) se resuelven antes del envío; las condiciones del lado del agente (como os_family y hour_range) se ejecutan en el nodo gestionado. Las variables de plantilla se resuelven y muestran bajo la expresión original.
Herencia de cumplimiento de Vigo mapeando configcrates a controles de marcos en CIS, HIPAA, NIST, PCI DSS, SOC 2, ISO 27001 e HITRUST
Herencia de cumplimiento — las etiquetas de cumplimiento de cada configcrate mapeadas a controles de marcos. Siete marcos, desde benchmarks CIS hasta HIPAA y PCI DSS, trazados hasta el configcrate que los aplica.
Herencia de exenciones de Vigo mostrando exenciones de controles de cumplimiento aprobadas con aprobador y archivo fuente
Herencia de exenciones — exenciones aprobadas para controles de cumplimiento específicos. Cada exención registra quién la aprobó, por qué y qué archivo la definió. Las exenciones se heredan a través de la cadena de directorios.

🔒 Seguridad

Firmas ED25519 por solicitud

Cada solicitud del agente se firma individualmente y se verifica contra claves públicas almacenadas. No solo TLS — prueba criptográfica real de identidad en cada llamada a la API. El replay y la suplantación requieren la clave privada, no solo un certificado válido.

Los secretos nunca se materializan

El prefijo secret: se resuelve al cargar la configuración a través de un proveedor conectable y se elimina antes de la transmisión. Los secretos nunca aparecen en archivos YAML, variables de entorno, logs, filas de base de datos, cargas útiles gRPC ni informes de resultados de ejecución.

Sin modo de texto plano

mTLS es el único transporte. No hay indicador --no-ssl, sin modo alternativo de texto plano, sin "modo de desarrollo" que omita el cifrado. La ruta insegura no existe en el código.

Tokens de inscripción de un solo uso

Los tokens están cifrados con bcrypt en reposo y vinculados a patrones glob de nombre de host. Un token que coincide con *.web.prod no puede inscribir una máquina llamada db01.staging. Se usa una vez, luego se invalida permanentemente.

Barreras de autoprotección

La canalización de validación bloquea cualquier recurso que apunte al binario del agente, el binario del servidor, el directorio de configuración o la unidad de servicio. Incluso el modo --dangerous no puede omitir estas comprobaciones. El sistema no puede usarse para romperse a sí mismo.

Binario del agente verificado

El binario del agente se distribuye con firmas ED25519 y sumas de comprobación SHA-256, verificadas en el arranque. El endurecimiento del binario incluye PIE, RELRO completo, protectores de pila, símbolos eliminados y LTO.

⚡ Fiabilidad

Idempotencia aplicada en el momento de la publicación

La mayoría de las herramientas de CM tratan la idempotencia como una disciplina que el operador debe mantener. Vigo la convierte en una invariante en el momento de la publicación: config publish valida la idempotencia junto con la sintaxis, por lo que la configuración no idempotente falla al publicarse en lugar de llegar a la flota. Se mantiene porque cada ejecutor comprueba antes de actuar — file: compara un SHA-256, package: comprueba la versión instalada, service: comprueba is-active/is-enabled antes de hacer nada. Reevaluar un recurso 86.400 veces al día a una cadencia de 1 segundo no produce ningún cambio ni ruido de auditoría hasta que algo realmente se desvía.

Paquetes de políticas firmados con convergencia sin conexión

El servidor firma los paquetes con ED25519. El agente verifica, almacena en caché en LMDB y continúa convergiendo indefinidamente si el servidor desaparece. Los resultados pendientes se ponen en cola y se envían al reconectarse.

Promoción adaptativa de flujos

Los agentes usan por defecto un sondeo ligero sin estado. Los flujos persistentes solo se promueven cuando el servidor tiene trabajo que enviar y luego se liberan. Los agentes inactivos no consumen recursos de flujo.

Resiliencia de evaluación

Un error de renderizado de plantilla o un error de análisis de when: en un recurso omite ese recurso y continúa con el resto de la ejecución de convergencia. Un único recurso defectuoso no cancela toda la política.

Cero operaciones de base de datos en la ruta crítica

El FleetIndex es un índice completamente en memoria con vaciado asíncrono del conjunto de cambios. Una comprobación del agente — búsqueda, compilación de políticas y respuesta — no toca ninguna consulta a la base de datos.

El agente nunca sale ante fallos transitorios

Servidor inaccesible, fallo en el apretón de manos TLS, respuesta malformada, fallo en la evaluación de políticas — todo gestionado con retroceso y reintento. El binario del agente, una vez iniciado, se ejecuta hasta que se detiene explícitamente.

Recarga con reserva elegante

La publicación de configuración valida, sincroniza y recarga. Si la nueva configuración falla la validación, el servidor mantiene la configuración funcional anterior. Sin tiempo de inactividad, sin estado parcial.

Acceso remoto por navegador y CLI (Scrier)

Terminales SSH, escritorios RDP y sombreado de sesiones en vivo desde la interfaz web — o vigocli scrier ssh desde su terminal por el mismo túnel. Sin VPN, sin bastión, sin reenvío de puertos. Hace el túnel a través de la conexión mTLS existente del agente. Claves efímeras por sesión. El modo Shadow/Assist permite al soporte técnico ver y controlar el escritorio en vivo de un usuario con consentimiento.

Modo de observación para migración segura

Ejecute Vigo junto a la CM existente. Los agentes informan de qué cambiarían sin aplicar nada. Cambie cuando esté seguro. Por nodo o a nivel de flota.

📈 Escalabilidad

Decenas de miles de envoys por servidor

En una única máquina de 8 vCPU / 32 GB, medido en vivo — ~7.450 envoys a la cadencia predeterminada de un segundo, ~30.000 con cadencia relajada. Usted fija la cadencia; la capacidad escala linealmente con los núcleos y la RAM. Sin masters de compilación, sin grupos de trabajo, sin clústeres de base de datos. Ver el análisis →

Ruta crítica en microsegundos

El trabajo crítico por comprobación es una verificación de firma ED25519 de ~53 µs (benchmarked); la comprobación de marca de tiempo, la búsqueda en el índice y la comparación de hash son cada una por debajo del microsegundo. Sin compilación de catálogos, sin interpretación de Ruby, cero consultas a la base de datos en la ruta crítica — razón por la que una cadencia de un segundo satura antes la CPU, y una cadencia relajada la memoria.

Coste de memoria lineal y medido

~220 KB por envoy conectado para el flujo mantenido, ~623 KB en total una vez que su inventario está en caché — medido en vivo, perfectamente lineal con la RAM. Las flotas pequeñas funcionan cómodamente en una Raspberry Pi.

Sin base de datos externa

SQLite en modo WAL. Sin clúster PostgreSQL que aprovisionar, ajustar, respaldar, actualizar o mantener a las 3 de la mañana. La base de datos es un único archivo que puede copiar con cp.

Protocolo de transmisión delta

Después de la comprobación inicial, los agentes solo envían lo que cambió — deltas de características, finalizaciones de ejecución, latidos. Sin transferencias de estado completo redundantes en cada ciclo.

Federación entre pares (spanner) para multirregión

Cuando un servidor no es suficiente, spanner distribuye la inscripción, las consultas y las tareas entre servidores pares con escritura equivalente. Cada par gestiona su propia partición de la flota y agrega resultados de los demás. Sin base de datos compartida.

💰 Precio

Gratis para 100 nodos. Sin límite de tiempo.*

Sin tarjeta de crédito, sin restricciones de características. Cada capacidad — orquestación, flujos de trabajo, consultas, integraciones nativas, exportación de cumplimiento, asistente de IA — está incluida en cada nivel.

Sin características exclusivas para empresas

No hay una "Edición Enterprise" con características críticas retenidas. RBAC, OIDC, tokens de API, exportación de cumplimiento, spanner — todo incluido. El nivel gratuito es el producto completo.

Coste de infraestructura: casi cero

Un proceso, un archivo SQLite, ~6 GB de RAM a 10.000 envoys. Sin clúster PostgreSQL, sin Redis, sin cola de mensajes, sin flota de masters de compilación. El servidor que ejecuta su monitorización también puede ejecutar Vigo.

Sin licencias de agente por nodo

El binario del agente es de distribución libre. Paga por el recuento de nodos del lado del servidor, no por instalación de agente. Dé de baja y vuelva a inscribir sin rotación de licencias.

Precios simples por nodo

$144/nodo/año a partir de 101 nodos, bajando a $96/nodo/año a escala. Los descuentos por volumen son automáticos. Sin llamadas de ventas necesarias hasta los 5.000+ nodos.

Menor coste total de propiedad

La licencia es el único coste significativo. Sin masters de compilación, sin DBA de PostgreSQL, sin ingenieros de CM dedicados — el servidor que ejecuta su monitorización también puede ejecutar Vigo.

Vea cómo se compara

Una comparación detallada con las herramientas de gestión de configuración establecidas, y guías para migrar.

* El nivel gratuito se proporciona TAL CUAL sin obligación de soporte. Consulte los Términos comerciales.