Dlaczego Vigo

Prostota, bezpieczeństwo, niezawodność, skalowalność i cena — czym Vigo różni się od każdego innego systemu zarządzania konfiguracją.

Wkrótce dostępne Vigo jest w wersji alfa i zbliża się do pierwszego stabilnego wydania. Do tego czasu spodziewaj się zmian niekompatybilnych między wersjami — szukamy partnerów testowych z flotami na różnych architekturach. Dowiedz się więcej →

Jeden zasób. Jeden plik.

Utwórz użytkownika z sudo bez hasła i kluczem SSH — zadanie, które wykonuje każdy zespół. W Vigo to jeden zasób w jednym pliku, z wbudowanymi kluczami SSH, sudo i sekretami.

Vigo — 1 plik, 1 zasób
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

📄 Prostota

Jeden serwer w dowolnej skali

Bez compile masters, bez puli roboczych, bez klastrów bazodanowych, bez load balancerów. Jeden proces, jeden plik SQLite, jeden katalog konfiguracji. Architektura nie zmienia się niezależnie od tego, czy zarządzasz 10 czy 100 000 węzłów.

~8 MiB statyczny binarny agent

Bez Ruby, bez Pythona, bez JVM, bez ekosystemu menedżera pakietów na zarządzanych węzłach. Skopiuj binarium, uruchom je. Zero zależności środowiska uruchomieniowego.

Jeden format konfiguracji, jedna ścieżka konfiguracji

Istnieje dokładnie jeden sposób konfigurowania Vigo: edytuj pliki YAML i publikuj. Bez zapisów przez API, bez konfiguracji w bazie danych, bez mutacji w interfejsie. Jedno źródło prawdy, jeden format, jedno narzędzie.

Bez DSL

Językiem konfiguracji jest YAML. Szablony Go pojawiają się tylko wewnątrz atrybutów content:. Brak języka własnego do nauki, brak kompilatora, brak osobliwości parsera.

Uruchomienie jednym poleceniem

curl | sudo sh pobiera binarium, generuje certyfikaty TLS, rejestruje się z serwerem, instaluje usługę i weryfikuje łączność. Pod zarządzaniem w 30 sekund.

Siedem rodzin OS z jednej bazy kodu

Linux, macOS, FreeBSD, OpenBSD, NetBSD, illumos i Windows. Wpisz type: service, a system przekieruje do systemd, launchctl, rc.d, rcctl, SMF lub sc.exe.

Zasoby warunkowe bez DSL if

when: "os_family('debian')" na dowolnym zasobie lub configcrate. Logika boolowska, wbudowane funkcje jak has_command, arch, version_ge. Serwer ocenia, co może, resztę przekazuje agentowi. Bez DSL, bez wtyczek.

Widoczność — śledź każdą decyzję do jej źródła

Jedno polecenie — vigocli config trace danlap — pokazuje pełny łańcuch rozwiązywania dla dowolnego węzła. Każdy configcrate, zmienna, zależność, znacznik zgodności, zwolnienie i warunek śledzony do dokładnego pliku, który go zdefiniował.

Ślad konfiguracji Vigo pokazujący drzewo dziedziczenia katalogów z rozwiązywaniem ścieżki i configcrate dla danlap
Dziedziczenie ścieżki — drzewo katalogów, które przyczynia się do konfiguracji tego węzła, od korzenia floty do pliku wejściowego liścia.
Dziedziczenie configcrate w Vigo pokazujące listy configcrate per poziom i rozwinięcie roli dla danlap
Dziedziczenie configcrate — które configcrates i role pochodzą z którego pliku, z rozwinięciem roli pokazującym configcrates, które każda rola wnosi.
Łańcuch dziedziczenia zmiennych Vigo pokazujący zmienne per poziom z znacznikami nadpisania i ostatecznymi źródłami rozwiązania
Dziedziczenie zmiennych — zmienne zdefiniowane na każdym poziomie katalogu, znaczniki nadpisania, gdzie dziecko przesłania rodzica, i ostateczne rozwiązanie pokazujące, skąd pochodzi wartość każdej zmiennej.
Dziedziczenie zależności Vigo pokazujące krawędzie depends_on, notify i subscribes między zasobami
Dziedziczenie zależności — pełny DAG krawędzi depends_on, notify i subscribes. Zasoby są wykonywane w kolejności topologicznej; notify wyzwala ponowne stosowanie po zmianie zależności.
Dziedziczenie warunkowe Vigo pokazujące wyrażenia when po stronie serwera i agenta z rozwiązaniem zmiennych szablonu
Dziedziczenie warunkowe — każde wyrażenie when: ze stroną oceny. Warunki po stronie serwera (jak changed) są rozwiązywane przed wysyłką; warunki po stronie agenta (jak os_family i hour_range) uruchamiają się na zarządzanym węźle. Zmienne szablonu są rozwiązywane i pokazane pod oryginalnym wyrażeniem.
Dziedziczenie zgodności Vigo mapujące configcrates na kontrole ram CIS, HIPAA, NIST, PCI DSS, SOC 2, ISO 27001 i HITRUST
Dziedziczenie zgodności — znaczniki zgodności każdego configcrate zmapowane na kontrole ram. Siedem ram, od wzorców CIS po HIPAA i PCI DSS, śledzone do configcrate, który je egzekwuje.
Dziedziczenie zwolnień Vigo pokazujące zatwierdzone wyjątki kontroli zgodności z osobą zatwierdzającą i plikiem źródłowym
Dziedziczenie zwolnień — zatwierdzone wyjątki dla konkretnych kontroli zgodności. Każde zwolnienie rejestruje, kto je zatwierdził, dlaczego i który plik je zdefiniował. Zwolnienia dziedziczone są przez łańcuch katalogów.

🔒 Bezpieczeństwo

Podpisy ED25519 per żądanie

Każde żądanie agenta jest indywidualnie podpisane i weryfikowane względem przechowywanych kluczy publicznych. Nie tylko TLS — rzeczywisty kryptograficzny dowód tożsamości przy każdym wywołaniu API. Odtworzenie i podszywanie wymagają klucza prywatnego, nie tylko ważnego certyfikatu.

Sekrety nigdy nie są materializowane

Prefiks secret: jest rozwiązywany przy załadowaniu konfiguracji przez dostawcę z możliwością podłączenia i usuwany przed transmisją. Sekrety nigdy nie pojawiają się w plikach YAML, zmiennych środowiskowych, logach, wierszach bazy danych, ładunkach gRPC ani raportach wyników uruchomień.

Brak trybu jawnego

mTLS jest jedynym transportem. Brak flagi --no-ssl, brak rezerwy jawnej, brak "trybu deweloperskiego" pomijającego szyfrowanie. Niezabezpieczona ścieżka nie istnieje w bazie kodu.

Jednorazowe tokeny rejestracji

Tokeny są haszowane bcrypt w spoczynku i powiązane ze wzorcami glob nazwy hosta. Token pasujący do *.web.prod nie może zarejestrować maszyny o nazwie db01.staging. Użyty raz, trwale unieważniony.

Zabezpieczenia ochrony własnej

Potok walidacji blokuje każdy zasób, który celuje w binarium agenta, binarium serwera, katalog konfiguracji lub jednostkę usługi. Nawet tryb --dangerous nie może ominąć tych kontroli. System nie może zostać użyty do własnego zniszczenia.

Zweryfikowane binarium agenta

Binarium agenta jest dystrybuowane z podpisami ED25519 i sumami kontrolnymi SHA-256, weryfikowanymi przy uruchomieniu. Utwardzanie binarium obejmuje PIE, pełne RELRO, protektory stosu, usunięte symbole i LTO.

⚡ Niezawodność

Idempotentność egzekwowana w czasie publikacji

Większość narzędzi CM traktuje idempotentność jako dyscyplinę, którą operator musi utrzymywać. Vigo czyni z niej niezmiennik czasu publikacji: config publish waliduje idempotentność wraz ze składnią, więc nieidemp otentna konfiguracja zawodzi przy publikacji, a nie ląduje na flocie. Działa, ponieważ każdy executor sprawdza przed działaniem — file: porównuje SHA-256, package: sprawdza zainstalowaną wersję, service: sprawdza is-active/is-enabled przed wykonaniem czegokolwiek. Ponowna ocena zasobu 86 400 razy dziennie w kadencji 1 sekundy nie wprowadza żadnych zmian i żadnego szumu audytowego, dopóki coś rzeczywiście nie podlegnie dryfowi.

Podpisane pakiety zasad z konwergencją offline

Serwer podpisuje pakiety ED25519. Agent weryfikuje, buforuje w LMDB i kontynuuje konwergencję w nieskończoność, jeśli serwer zniknie. Oczekujące wyniki kolejkowane i opróżniane po ponownym połączeniu.

Adaptacyjna promocja strumienia

Agenci domyślnie korzystają z lekkiego odpytywania bezstanowego. Trwałe strumienie są promowane tylko wtedy, gdy serwer ma pracę do wysłania, a następnie zwalniane. Bezczynne agenci zużywają zero zasobów strumienia.

Odporność oceny

Błąd renderowania szablonu lub błąd parsowania when: w jednym zasobie pomija ten zasób i kontynuuje resztę przebiegu konwergencji. Jeden zły zasób nie przerywa całej zasady.

Zero operacji bazodanowych na gorącej ścieżce

FleetIndex jest w pełni w pamięci z asynchronicznym opróżnianiem brudnego zestawu. Sprawdzenie agenta — wyszukiwanie, kompilacja zasad i odpowiedź — nie dotyka żadnych zapytań do bazy danych.

Agent nigdy nie kończy przy przejściowych błędach

Serwer nieosiągalny, błąd uzgadniania TLS, zniekształcona odpowiedź, awaria oceny zasad — wszystko obsługiwane z wycofaniem i ponowieniem. Binarium agenta, raz uruchomione, działa do czasu jawnego zatrzymania.

Przeładowanie z graceful fallback

Publikacja konfiguracji waliduje, synchronizuje i przeładowuje. Jeśli nowa konfiguracja nie przejdzie walidacji, serwer zachowuje poprzednią działającą konfigurację. Bez przestojów, bez stanu częściowego.

Zdalny dostęp przez przeglądarkę i CLI (Scrier)

Terminale SSH, pulpity RDP i podgląd aktywnej sesji z interfejsu webowego — lub vigocli scrier ssh z terminala przez ten sam tunel. Bez VPN, bez bastionu, bez przekierowywania portów. Tuneluje przez istniejące połączenie mTLS agenta. Efemeryczne klucze na sesję. Tryb podglądu/pomocy pozwala help deskowi zobaczyć i kontrolować aktywny pulpit użytkownika za zgodą.

Tryb obserwacji dla bezpiecznej migracji

Uruchom Vigo obok istniejącego CM. Agenci raportują, co zmieniłyby, nic nie stosując. Przejdź, gdy będziesz pewny. Per węzeł lub dla całej floty.

📈 Skalowalność

Dziesiątki tysięcy envoys na serwer

Na jednej maszynie 8 vCPU / 32 GB, zmierzono na żywo — ~7 450 envoys przy domyślnym interwale jednej sekundy, ~30 000 przy wydłużonym interwale. To Ty ustawiasz interwał; pojemność skaluje się liniowo z rdzeniami i RAM. Bez compile masters, puli roboczych, klastrów bazodanowych. Zobacz analizę →

Mikrosekundowa gorąca ścieżka

Gorąca praca per sprawdzenie to ~53 µs weryfikacja podpisu ED25519 (zmierzona); sprawdzenie znacznika czasu, wyszukiwanie indeksu i porównanie hasha zajmują każde poniżej mikrosekundy. Bez kompilacji katalogu, bez interpretacji Ruby, zero zapytań do bazy danych na gorącej ścieżce — dlatego interwał jednej sekundy najpierw obciąża CPU, a wydłużony — pamięć.

Liniowy, zmierzony koszt pamięci

~220 KB na połączony envoy dla utrzymywanego strumienia, ~623 KB łącznie po zapisaniu jego inwentarza w pamięci podręcznej — zmierzono na żywo, idealnie liniowo z RAM. Małe floty działają wygodnie na Raspberry Pi.

Brak zewnętrznej bazy danych

SQLite w trybie WAL. Brak klastra PostgreSQL do aprowizacji, dostrajania, tworzenia kopii zapasowych, uaktualniania lub utrzymywania przy życiu o 3 w nocy. Baza danych to jeden plik, który możesz skopiować poleceniem cp.

Protokół strumieniowania delta

Po pierwszym sprawdzeniu agenci wysyłają tylko to, co się zmieniło — delty cech, zakończenia uruchomień, sygnały heartbeat. Bez zbędnych transferów pełnego stanu przy każdym cyklu.

Federacja peer (spanner) dla wielu regionów

Gdy jeden serwer nie wystarczy, spanner rozszerza rejestrację, zapytania i zadania na serwery peer z równymi prawami zapisu. Każdy peer zarządza własną partycją floty i agreguje wyniki od pozostałych. Bez współdzielonej bazy danych.

💰 Cena

Za darmo do 100 węzłów. Bez limitu czasu.*

Bez karty kredytowej, bez blokad funkcji. Każda możliwość — orkiestracja, przepływy pracy, zapytania, natywne integracje, eksport zgodności, asystent AI — jest dostępna na każdym poziomie.

Brak funkcji wyłącznie dla firm

Nie ma "wersji Enterprise" z zatrzymanymi krytycznymi funkcjami. RBAC, OIDC, tokeny API, eksport zgodności, spanner — wszystko w zestawie. Poziom bezpłatny to pełny produkt.

Koszty infrastruktury: bliskie zeru

Jeden proces, jeden plik SQLite, ~6 GB RAM przy 10 000 envoys. Bez klastra PostgreSQL, bez Redis, bez kolejki komunikatów, bez floty compile master. Serwer, na którym działa Twój monitoring, może też uruchomić Vigo.

Brak licencjonowania per węzeł agenta

Binarium agenta jest swobodnie dystrybuowalne. Płacisz za liczbę węzłów po stronie serwera, nie per instalację agenta. Wycofaj i ponownie zarejestruj bez rotacji licencji.

Proste ceny per węzeł

$144 za węzeł rocznie przy 101 węzłach, spadając do $96 za węzeł rocznie przy skali. Rabaty ilościowe są automatyczne. Nie są wymagane rozmowy sprzedażowe do 5 000+ węzłów.

Najniższy całkowity koszt posiadania

Licencja to jedyny znaczący koszt. Bez compile masters, bez administratora PostgreSQL, bez dedykowanych inżynierów CM — serwer, na którym działa Twój monitoring, może też uruchomić Vigo.

Zobacz, jak wypada w porównaniu

Szczegółowe porównanie z uznawanymi narzędziami zarządzania konfiguracją i przewodniki migracji.

* Poziom bezpłatny jest dostarczany W STANIE TAKIM, W JAKIM JEST, bez zobowiązań do wsparcia. Zob. Warunki handlowe.