Vigo
Silnik rozproszonego egzekwowania stanu
Dziesiątki tysięcy węzłów na jednym serwerze
Nowoczesne zarządzanie konfiguracją
Prawdziwa sieć samonaprawiająca się: każdy agent koryguje własny dryf przy każdym sprawdzeniu — nawet co sekundę. Zmierzono na żywo na jednym serwerze 8 vCPU / 32 GB: ~7 450 węzłów przy interwale jednej sekundy, ~30 000 przy wydłużeniu interwału — sprawdź, jak to zmierzyliśmy.
Wolne oprogramowanie na licencji GNU AGPL v3.0, bez limitu liczby węzłów.
Zmierzone na jednym serwerze
Serwer 8 vCPU z 32 GB RAM. Interwał sprawdzeń wyznacza granicę — oto co udało się utrzymać, zmierzone na żywo, nie ekstrapolowane. Pełna metodologia i tabela skalowania →
| Zmierzono na stanowisku testowym | Vigo |
|---|---|
| Węzły przy interwale jednej sekundy | ~7 450 |
| Węzły przy interwale 30–60 sekund | ~30 000 |
| RAM na połączony węzeł | ~220 KB |
| Binarny agent | ~10 MiB |
| Ograniczenie | CPU przy 1 s, pamięć przy długim interwale |
Zmierzono na żywo na serwerze 8 vCPU / 32 GB. Przy interwale jednej sekundy serwer jest ograniczony przez CPU (~7 450 węzłów); przy wydłużeniu interwału ograniczeniem staje się pamięć, rzędu dziesiątek tysięcy (~30 000 przy 30–60 s). Pojemność skaluje się ~liniowo z rdzeniami i RAM. Zobacz pełną analizę pojemności →
Pojemność
Dziesiątki tysięcy / serwer
Na jednym serwerze 8 vCPU / 32 GB, zmierzono na żywo — ~7 450 envoys przy interwale jednej sekundy, ~30 000 przy wydłużeniu interwału. To Ty ustalasz kompromis; pojemność skaluje się liniowo z rdzeniami i RAM. Bez compile masters, bez puli roboczych, bez klastrów bazodanowych. Wydajność i pojemność →
Szybkość
Mikrosekundy, nie milisekundy
Gorąca ścieżka to ~53 µs weryfikacja podpisu ED25519 (zmierzona) względem indeksu w pamięci — reszta zajmuje poniżej mikrosekundy. Bez kompilacji katalogu, bez interpretacji Ruby, zero zapytań do bazy danych na ścieżce sprawdzenia.
Prostota
YAML. Nie DSL.
Nie trzeba uczyć się żadnego języka własnego. Bez kompilatora. Bez Ruby, bez Pythona, bez JVM na zarządzanych węzłach. Administrator nieznający Vigo może przeczytać plik konfiguracyjny i zrozumieć, co robi. Jeden format, jeden katalog, jedno polecenie publikacji.
Koszt
Open source. Bez limitu węzłów.
Nie ma wersji enterprise ani zablokowanych dodatków. Każda funkcja jest w kodzie, który klonujesz. O licencji →
Architektura
Uruchom serwer
sudo docker pull ghcr.io/daniel-alexander4/vigo:latest
sudo docker tag ghcr.io/daniel-alexander4/vigo:latest vigo:latest
sudo mkdir -p /srv/vigo
sudo docker run --rm -v /srv/vigo:/srv/vigo vigo:latest --seed-only
cd /srv/vigo && sudo docker compose up -d
Te polecenia pobierają opublikowany obraz serwera. Wymaga to Dockera z wtyczką Compose na hoście x86_64. Certyfikaty TLS, baza danych i sekrety są generowane przy pierwszym uruchomieniu serwera. Otwórz https://localhost:8443, aby zobaczyć panel, a następnie zarejestruj agenta samego serwera poleceniem curl -sSfk https://127.0.0.1:8443/bootstrap | sudo sh. Jak zbudować obraz ze źródeł, opisuje przewodnik instalacji, który omawia też resztę.
Agenci dodani w 30 sekund
curl -sSfk https://server:8443/bootstrap | sudo sh
Pobiera binarny agent 10 MiB. Generuje certyfikaty TLS. Rejestruje się z serwerem. Instaluje usługę systemową. Weryfikuje łączność.
Działa na Linux, macOS, FreeBSD, OpenBSD, NetBSD i illumos.
Windows: irm https://server:8443/bootstrap?os=windows | iex
Wszystko widoczne na pierwszy rzut oka
Jedna konfiguracja. Każda platforma.
69 typów zasobów — 68 wbudowanych (16 z nich to oparte na SSH executory urządzeń sieciowych dla Cisco, Arista i Juniper) oraz jeden dostarczony przez użytkownika executor własny. Wpisz type: service, a agent przekieruje do właściwego backendu. Nie są wymagane konfiguracje specyficzne dla platformy.
| Platforma | System init | Menedżer pakietów | Executory |
|---|---|---|---|
| Linux | systemd | apt, dnf, yum, zypper, pacman, apk | Wieloplatformowe |
| macOS | launchd | Homebrew | Wieloplatformowe |
| FreeBSD | rc.d | pkg | Wieloplatformowe |
| OpenBSD | rcctl | pkg_add | Wieloplatformowe |
| NetBSD | rc.d | pkgin | Wieloplatformowe |
| illumos | SMF | IPS | Wieloplatformowe |
| Windows | Windows Service | Chocolatey, winget, Scoop | Wieloplatformowe |
| Urządzenia sieciowe | — | — | 16 opartych na SSH (Cisco, Arista, Juniper) |
Zdalny dostęp z przeglądarki
Terminale SSH i pulpity RDP w przeglądarce. Bez VPN. Bez hosta bastion. Bez przekierowywania portów. Przez ten sam tunel mTLS, którego już używa agent.
SSH
Pełny terminal przez xterm.js. Klucze efemeryczne generowane na sesję. Żadnych trwałych poświadczeń SSH przechowywanych na serwerze.
RDP
Graficzny pulpit przez Guacamole. Skalowanie dopasowane do okna lub 1:1. Synchronizacja schowka, transfer plików, klawiatura ekranowa.
Podgląd / Pomoc
Podgląd i kontrola aktywnej sesji pulpitu użytkownika. Obserwuj to, co widzi użytkownik w czasie rzeczywistym, lub przejęcie sterowania w celu udzielenia pomocy. Wbudowane monity zgody użytkownika. Linux (x11vnc) i Windows (TightVNC).
Zero dodatkowej infrastruktury
Brak serwerów pośredniczących, koncentratorów VPN, bastionów SSH. Agent tuneluje przez istniejące połączenie gRPC. Jedna powierzchnia ataku mniej.
22 ram zgodności. Egzekwowanych, nie tylko raportowanych.
Vigo mapuje zasoby configcrate na kontrole regulacyjne i informuje dokładnie, co egzekwuje, co monitoruje, a co wymaga zewnętrznej walidacji. Bez zawyżonych twierdzeń.
HIPAA
Kontrola dostępu, logowanie audytowe, szyfrowanie, zarządzanie sesjami
SOC 2
Zarządzanie zmianami, przyznawanie dostępu, monitorowanie, dostępność
PCI DSS v4.0
Zapora sieciowa, utwardzanie, kontrola dostępu, monitorowanie integralności
NIST 800-53
Rodziny kontrolne AC, AU, CM, IA, SC
CIS Benchmarks
Ubuntu, RHEL, Windows Server — ponad 260 kontroli
ISO 27001
Zarządzanie aktywami, kryptografia, bezpieczeństwo operacyjne
Również: SOX, FINRA, MiFID II, GDPR, NERC CIP, HITRUST, IEC 62443, FDA 21 CFR Part 11, Cyber Essentials Plus, CCSS, UKGC, Nevada GCB, MGA, NY DFS 23 NYCRR 500. Pełna lista ram →
Obserwuj, zanim zaczniesz egzekwować
Uruchom Vigo obok istniejącego systemu zarządzania konfiguracją. Zobacz dokładnie, co zmieniłby — nic nie zmieniając.
Na węzeł lub dla całej floty
Włącz tryb obserwacji globalnie w server.yaml lub per węzeł w konfiguracji. Agenci raportują dryf bez stosowania zmian.
Bezpieczna ścieżka migracji
Zarejestruj węzły zarządzane przez istniejący system zarządzania konfiguracją. Zobacz, co zrobiłoby Vigo. Przejdź, gdy będziesz pewny.
Wycofanie configcrate
Oznacz configcrate jako state: absent, a Vigo przy następnym sprawdzeniu odwraca to, co zastosował — pliki, pakiety, usługi, polecenia. Deklaratywna, objęta kontrolą wersji, po stronie serwera.
Dystrybuuj cokolwiek. Peer-to-peer.
Pod każdym agentem działa Swarm — sieć peer-to-peer tylko dla envoys z mTLS, bez serwera w ścieżce danych. Na niej działają sześć podsystemów treści, wszystkie zakorzenione w tożsamości puddle per użytkownik: Filecast przesyła pliki od administratorów do floty, Longdrawer i Lockbox synchronizują katalogi per użytkownik między własnymi maszynami (jawne i szyfrowane), Gitback kopiuje osobiste repozytoria git, Curator to rejestr artefaktów adresowanych zawartością, a Poolq to uporządkowany dziennik dołączania tylko do floty.
Filecast
Dystrybucja plików inicjowana przez administratora. Rozpocznij seedowanie ładunku z CLI lub interfejsu administracyjnego, a każdy docelowy envoy pobierze go peer-to-peer. Harmonogramowanie fragmentów metodą rarest-first, adaptacyjna przepustowość, śledzenie postępu w czasie rzeczywistym z wizualizacją źródeł fragmentów.
Longdrawer
Upuść plik w ~/longdrawer/ na dowolnej maszynie. Pojawi się na każdej innej maszynie, gdzie masz konto. Usuń go — zniknie wszędzie. Tylko LAN, w pełni peer-to-peer, bez udziału serwera, bez konfiguracji, bez poleceń.
Lockbox
Zaszyfrowany odpowiednik Longdrawer. Pliki w ~/lockbox/ są szyfrogramem w spoczynku na każdym envoy, zaszyfrowanym kluczem publicznym każdego węzła. Odblokuj poleceniem vigo swarm puddle unlock, aby odszyfrować lokalnie. Wybierz to dla wszystkiego, co ma pozostać nieczytelne na skradzionym urządzeniu.
Gitback
Osobiste kopie lustrzane git bez zewnętrznego hosta. Uruchom vigo swarm gitback project init w dowolnym repozytorium, a każdy push jest rozsyłany jako pakiet do pozostałych envoys przez mTLS. Jeśli stacja robocza ulegnie awarii, git clone gitback://<your-name>/<repo> z innej maszyny przywraca pełną historię. Bez zewnętrznej usługi git, bez kodu opuszczającego Twoją sieć.
Curator
Rejestr artefaktów peer-to-peer adresowanych zawartością. Opublikuj binaria i obrazy kontenerów raz, a każdy envoy rozwiązuje je przez hash i pobiera ze swarm — bez serwera rejestru, bez centralnego magazynu w ścieżce danych.
Poolq
Uporządkowany dziennik dołączania tylko do floty i kolejka. Rekordy i zdarzenia przepływają między envoys peer-to-peer w spójnej kolejności, bez brokera w ścieżce danych.
Serwer wyłączony? Agenci nadal działają.
Agenci buforują podpisane pakiety zasad w LMDB. Gdy serwer jest nieosiągalny, konwergencja kontynuuje się w oparciu o ostatnio znane zasady. Wyniki kolejkowane lokalnie są automatycznie opróżniane po przywróceniu łączności. Żaden inny silnik egzekwowania stanu nie oferuje takiego poziomu odporności offline.
Wypróbuj teraz
Vigo jest wolnym oprogramowaniem. Zbuduj je ze źródeł dostępnych na GitHubie.