Perché Vigo
Semplicità, sicurezza, affidabilità, scalabilità e prezzo — dove Vigo è diverso da ogni altro sistema di gestione della configurazione.
Una risorsa. Un file.
Crea un utente con sudo senza password e una chiave SSH — un'operazione che ogni team esegue. In Vigo è una singola risorsa in un singolo file, con chiavi SSH, sudo e segreti integrati.
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
📄 Semplicità
Un server a qualsiasi scala
Nessun compile master, nessun pool di worker, nessun cluster di database, nessun load balancer. Un processo, un file SQLite, una directory di configurazione. L'architettura non cambia che tu gestisca 10 nodi o 100.000.
Binario agente statico da ~8 MiB
Nessun Ruby, nessun Python, nessuna JVM, nessun ecosistema di gestori di pacchetti sui nodi gestiti. Copia il binario, eseguilo. Zero dipendenze runtime.
Un formato di configurazione, un percorso di configurazione
C'è esattamente un modo per configurare Vigo: modifica i file YAML e pubblica. Nessuna scrittura tramite API, nessuna configurazione nel database, nessuna modifica dall'interfaccia utente. Un'unica fonte di verità, un formato, uno strumento.
Nessun DSL
Il linguaggio di configurazione è YAML. I template Go appaiono solo negli attributi content:. Nessun linguaggio personalizzato da imparare, nessun compilatore, nessuna stranezza del parser.
Il bootstrap è un comando
curl | sudo sh scarica il binario, genera i certificati TLS, si registra con il server, installa il servizio e verifica la connettività. Sotto gestione in 30 secondi.
Sette famiglie OS da un'unica codebase
Linux, macOS, FreeBSD, OpenBSD, NetBSD, illumos e Windows. Scrivi type: service e dispaccerà a systemd, launchctl, rc.d, rcctl, SMF o sc.exe.
Risorse condizionali senza un DSL if
when: "os_family('debian')" su qualsiasi risorsa o configcrate. Logica booleana, built-in come has_command, arch, version_ge. Il server valuta ciò che può, passa il resto all'agente. Nessun DSL, nessun plugin.
Visibilità — traccia qualsiasi decisione fino alla sua fonte
Un comando — vigocli config trace danlap — mostra la catena di risoluzione completa per qualsiasi nodo. Ogni configcrate, variabile, dipendenza, tag di conformità, esenzione e condizionale tracciati fino al file esatto che li ha definiti.
when: con il suo lato di valutazione. Le condizioni lato server (come changed) vengono risolte prima del dispatch; le condizioni lato agente (come os_family e hour_range) vengono eseguite sul nodo gestito. Le variabili template vengono risolte e mostrate sotto l'espressione originale.🔒 Sicurezza
Firme ED25519 per ogni richiesta
Ogni richiesta dell'agente è firmata individualmente e verificata rispetto alle chiavi pubbliche memorizzate. Non solo TLS — prova crittografica reale dell'identità su ogni chiamata API. Replay e impersonazione richiedono la chiave privata, non solo un certificato valido.
I segreti non vengono mai materializzati
Il prefisso secret: viene risolto al caricamento della configurazione attraverso un provider collegabile e rimosso prima della trasmissione. I segreti non appaiono mai in file YAML, variabili d'ambiente, log, righe del database, payload gRPC o report dei risultati di esecuzione.
Nessuna modalità in chiaro
mTLS è l'unico trasporto. Non esiste alcun flag --no-ssl, nessun fallback in chiaro, nessuna "modalità di sviluppo" che salti la crittografia. Il percorso non sicuro non esiste nel codice.
Token di registrazione monouso
I token sono memorizzati con hash bcrypt e vincolati a pattern glob di hostname. Un token che corrisponde a *.web.prod non può registrare una macchina chiamata db01.staging. Usato una volta, poi invalidato permanentemente.
Protezioni di autopreservazione
La pipeline di validazione blocca qualsiasi risorsa che punti al binario dell'agente, al binario del server, alla directory di configurazione o all'unità di servizio. Anche la modalità --dangerous non può aggirare questi controlli. Il sistema non può essere usato per distruggersi.
Binario agente verificato
Il binario agente viene distribuito con firme ED25519 e checksum SHA-256, verificati al bootstrap. L'hardening del binario include PIE, RELRO completo, protezioni dello stack, simboli rimossi e LTO.
⚡ Affidabilità
Idempotenza applicata al momento della pubblicazione
La maggior parte degli strumenti CM tratta l'idempotenza come una disciplina che l'operatore deve mantenere. Vigo la rende un invariante al momento della pubblicazione: config publish valida l'idempotenza insieme alla sintassi, quindi la configurazione non idempotente fallisce alla pubblicazione invece di atterrare sulla flotta. Regge perché ogni esecutore è check-before-act — file: confronta un SHA-256, package: controlla la versione installata, service: controlla is-active/is-enabled prima di fare qualsiasi cosa. Rivalutare una risorsa 86.400 volte al giorno a un ritmo di 1 secondo non produce modifiche né rumore di audit finché qualcosa non deriva davvero.
Bundle di policy firmati con convergenza offline
Il server firma i bundle con ED25519. L'agente verifica, memorizza nella cache in LMDB e continua a convergere indefinitamente se il server scompare. I risultati in sospeso si accodano e si svuotano alla riconnessione.
Promozione adattiva dello stream
Gli agenti usano per impostazione predefinita il polling stateless leggero. Gli stream persistenti vengono promossi solo quando il server ha lavoro da dispatchare, poi rilasciati. Gli agenti inattivi consumano zero risorse dello stream.
Resilienza di valutazione
Un errore di rendering del template o un errore di parsing when: in una risorsa salta quella risorsa e continua con il resto dell'esecuzione di convergenza. Una singola risorsa difettosa non interrompe l'intera policy.
Zero operazioni di database sul percorso critico
Il FleetIndex è un indice completamente in memoria con flushing asincrono del dirty-set. Una verifica dell'agente — lookup, compilazione della policy e risposta — tocca zero query al database.
L'agente non esce mai in caso di guasti transitori
Server non raggiungibile, fallimento dell'handshake TLS, risposta malformata, crash della valutazione della policy — tutto gestito con backoff e retry. Il binario dell'agente, una volta avviato, viene eseguito fino a quando non viene esplicitamente fermato.
Ricaricamento con fallback graduale
La pubblicazione della configurazione valida, sincronizza e ricarica. Se la nuova configurazione fallisce la validazione, il server mantiene la configurazione funzionante precedente. Nessun downtime, nessuno stato parziale.
Accesso remoto da browser e CLI (Scrier)
Terminali SSH, desktop RDP e shadowing di sessioni live dall'interfaccia web — o vigocli scrier ssh dal terminale sullo stesso tunnel. Nessuna VPN, nessun bastion, nessun port forwarding. Fa tunneling attraverso la connessione mTLS esistente dell'agente. Chiavi temporanee per sessione. La modalità Shadow/assist permette all'helpdesk di vedere e controllare il desktop live di un utente con consenso.
Modalità di osservazione per la migrazione sicura
Esegui Vigo in parallelo al CM esistente. Gli agenti segnalano cosa cambierebbero senza applicare nulla. Passa quando sei sicuro. Per nodo o per l'intera flotta.
📈 Scalabilità
Decine di migliaia di envoys per server
Su una singola macchina 8 vCPU / 32 GB, misurata in tempo reale — ~7.450 envoys alla cadenza predefinita di un secondo, ~30.000 a cadenza allentata. Sei tu a impostare la cadenza; la capacità scala linearmente con i core e la RAM. Nessun compile master, nessun pool di worker, nessun cluster di database. Vedi l'analisi →
Percorso critico in microsecondi
Il lavoro critico per verifica è una verifica della firma ED25519 di ~53 µs (misurata su benchmark); il controllo del timestamp, la ricerca nell'indice e il confronto degli hash sono ciascuno inferiori al microsecondo. Nessuna compilazione del catalogo, nessuna interpretazione Ruby, zero query al database sul percorso critico — motivo per cui una cadenza di un secondo satura prima la CPU, e una cadenza allentata la memoria.
Costo di memoria lineare e misurato
~220 KB per envoy connesso per lo stream mantenuto, ~623 KB complessivi una volta messo in cache il suo inventario — misurato in tempo reale, perfettamente lineare con la RAM. Le flotte piccole girano comodamente su un Raspberry Pi.
Nessun database esterno
SQLite in modalità WAL. Nessun cluster PostgreSQL da provisioning, ottimizzare, fare backup, aggiornare o tenere in vita alle 3 di notte. Il database è un singolo file che puoi copiare con cp.
Protocollo di streaming delta
Dopo la verifica iniziale, gli agenti inviano solo ciò che è cambiato — delta degli attributi, completamenti di esecuzione, heartbeat. Nessun trasferimento ridondante dello stato completo a ogni ciclo.
Federazione peer (spanner) per multi-regione
Quando un server non è sufficiente, spanner distribuisce registrazione, query e task su server peer con scrittura uguale. Ogni peer gestisce la propria partizione della flotta e aggrega i risultati dagli altri. Nessun database condiviso.
💰 Prezzo
Gratis per 100 nodi. Senza limiti di tempo.*
Nessuna carta di credito, nessun gate sulle funzionalità. Ogni capacità — orchestrazione, workflow, query, integrazioni native, esportazione conformità, assistente IA — è inclusa in ogni livello.
Nessuna funzionalità riservata alle grandi aziende
Non esiste una "Enterprise Edition" con funzionalità critiche trattenute. RBAC, OIDC, token API, esportazione conformità, spanner — tutto incluso. Il livello gratuito è il prodotto completo.
Costo infrastruttura: quasi zero
Un processo, un file SQLite, ~6 GB di RAM a 10.000 envoys. Nessun cluster PostgreSQL, nessun Redis, nessuna coda di messaggi, nessuna flotta di compile master. Il server che gestisce il tuo monitoraggio può anche eseguire Vigo.
Nessuna licenza per agente per nodo
Il binario agente è liberamente distribuibile. Paghi per il conteggio dei nodi lato server, non per ogni installazione dell'agente. Decommissiona e re-registra senza problemi di licenza.
Prezzi semplici per nodo
$144/nodo all'anno a 101 nodi, scendendo a $96/nodo all'anno su scala. Gli sconti volume sono automatici. Nessuna chiamata di vendita richiesta fino a oltre 5.000 nodi.
Costo totale di proprietà più basso
La licenza è l'unico costo significativo. Nessun compile master, nessun DBA PostgreSQL, nessun ingegnere CM dedicato — il server che gestisce il tuo monitoraggio può anche eseguire Vigo.
Vedi come si confronta
Un confronto dettagliato con gli strumenti di gestione della configurazione consolidati, e guide per la migrazione.
* Il livello gratuito è fornito COSÌ COM'È senza obblighi di supporto. Vedi Termini commerciali.