−25%

na Windows przy płatności rocznej, do 31.10. Do planów

EQVPS
Zacznij

MicroVM Firecracker w prostych słowach: prawdziwa maszyna wirtualna, która startuje w ułamku sekundy

10 paź 2026 · 4 min czytania · EQVPS Team

Jeśli czytałeś cokolwiek o bezpiecznym uruchamianiu kodu wygenerowanego przez AI, widziałeś słowo microVM, zwykle obok Firecracker. Tłumaczy się je albo jako „lekką VM” (prawda, ale mało pomocna), albo diagramem wnętrzności jądra. Oto wersja pośrodku.

Dwie starsze opcje i dlaczego żadna nie pasuje

Zacznijmy od dwóch rzeczy, między którymi stoi microVM.

Kontener to grupa zwykłych procesów na twojej maszynie, które jądro zgodziło się okłamywać. Namespaces pokazują im własny system plików, listę procesów i sieć; cgroups ograniczają, ile CPU i pamięci mogą zużyć. Startuje w milisekundach, bo nic nowego nie jest uruchamiane. Ale wszystkie kontenery na hoście rozmawiają z tym samym jądrem. Błąd jądra osiągalny z jednego kontenera to wyjście ze wszystkich.

Maszyna wirtualna przynosi własne jądro. Procesor hosta, dzięki wirtualizacji sprzętowej (KVM w Linuksie), wykonuje gościa tak, jakby miał własny komputer. Granicą jest hipernadzorca, który udostępnia znacznie mniej niż setki wywołań systemowych jądra. Ceną jest waga. Klasyczna VM emuluje cały PC: firmware, magistralę PCI, kontrolery USB, kartę graficzną, czasem kartę dźwiękową. Uruchamia się przez to wszystko, trwa to od sekund do minut, a każda instancja niesie dziesiątki lub setki megabajtów narzutu.

Analogia, która dość dobrze się trzyma: kontenery to mieszkania w jednym budynku, ze wspólnymi fundamentami, rurami i instalacją elektryczną. VM to osobne domy. Domy są bezpieczniejszymi sąsiadami, ale nikt nie buduje domu na wizytę trwającą 20 sekund.

Co wyrzuca Firecracker

Firecracker to monitor maszyn wirtualnych (program, który przygotowuje i uruchamia VM na KVM) napisany w Rust i udostępniony jako open source w 2018 roku. Powstał do jednego zadania: uruchamiania ogromnej liczby krótkotrwałych, nieufających sobie obciążeń na współdzielonym sprzęcie. Osiąga to głównie przez usuwanie:

  • Bez firmware'u i wykrywania sprzętu. Jądro jest ładowane bezpośrednio do pamięci i uruchamiane. Nikt nie szuka urządzeń, których nie ma.
  • Malutki model urządzeń. Karta sieciowa, urządzenie blokowe, konsola szeregowa i kilka innych, wszystkie virtio (urządzenia zaprojektowane dla maszyn wirtualnych, a nie imitacje fizycznych). Bez USB, grafiki i PCI.
  • Mała, bezpieczna pamięciowo baza kodu. Mniej kodu emulującego urządzenia to mniej miejsc na błąd, przez który gość sięgnie do hosta.
  • Klatka wokół samego VMM. Każdy proces Firecrackera działa w chroot, z filtrami seccomp na własne wywołania systemowe i cgroups na zasoby. Gdyby coś wyrwało się z gościa, trafiłoby do klatki, a nie na hosta.

Liczby publikowane przez sam projekt: przestrzeń użytkownika już po 125 ms i poniżej 5 MiB narzutu pamięci na microVM. To najlepsze wyniki laboratoryjne; prawdziwy sandbox musi jeszcze przygotować dysk i sieć oraz poczekać na agenta w środku gotowego przyjmować polecenia, dlatego nasz jest gotowy w około sekundę. To wciąż na tyle blisko szybkości kontenera, że można tworzyć jeden na zadanie i potem go wyrzucać.

Kontener a microVM w praktyce

KontenerMicroVM Firecracker
Jądrowspólne z hostemwłasne
Granica z hostemwywołania systemowe do wspólnego jądrahipernadzorca + mały VMM
Czas startumilisekundy~0.1–1 s
Narzut na instancjębardzo małykilka MiB
Urządzeniato, co udostępni hostsieć, dysk, konsola
GPUmożliwenie
Nadaje się dowłasnego kodu, pakowania aplikacjiniezaufanego kodu, obciążeń wielodzierżawnych

Ważny jest drugi wiersz. W kontenerze pytanie „czy ten kod może uciec?” zamienia się w „czy gdzieś w jądrze hosta jest osiągalny błąd?”. W microVM — w „czy jest błąd w hipernadzorcy albo w garstce wirtualnych urządzeń?”. Druga powierzchnia jest znacznie mniejsza i to właśnie ją platformy chmurowe i tak bronią we własnym hostingu wielodzierżawnym.

Z czego rezygnujesz

MicroVM to nie darmowe ulepszenie.

  • Bez GPU i ekranów. Służy do uruchamiania kodu, nie do pulpitów ani grafiki.
  • Mniej urządzeń, mniej elastyczności. Wszystko, co oczekuje prawdziwego sprzętu albo długiej listy modułów jądra, nie poczuje się jak w domu.
  • Granice nadal wymagają zasad. MicroVM z otwartym ruchem wychodzącym wciąż może wysyłać ruch, którego nie chcesz; z twoimi kluczami API w środku wciąż może je ujawnić. Izolacja chroni hosta przed gościem, a nie twoje sekrety przed kodem, któremu je oddałeś.

Jak używają jej nasze sandboxy

Każdy sandbox EQVPS to jedna microVM Firecracker z własnym jądrem, od 0.25 vCPU i 512 MB do 8 vCPU i 16 GB. Ma Pythona 3.12, Node.js 22, bash, git i curl, dostęp do internetu wychodzącego i żadnych portów przychodzących. Sandboxy efemeryczne są usuwane, gdy skończysz; persistent zachowują dysk, a wstrzymanie zapisuje snapshot microVM na dysk, więc nic nie kosztuje aż do wznowienia. Snapshoty wstrzymanych sandboxów są trzymane 14 dni. Potem sandbox jest usuwany, a jego id odpowiada 410 sandbox_deleted.

Wybraliśmy microVM zamiast kontenerów z jednego powodu: kod w sandboxie to z definicji kod, którego nikt nie sprawdził. Wynik agenta AI, pull request nieznajomego, benchmark z tysiąca programów napisanych przez model. Do tego własne jądro to granica, za którą warto zapłacić. Szczegóły tego, co zbudowaliśmy wokół — taryfy, limity, 55-sekundowy limit polecenia synchronicznego — są w dokumentacji sandboxów.

Jeśli chcesz dokładniej porównać tę granicę z innymi opcjami, w poziomach izolacji dla niezaufanego kodu procesy, kontenery, microVM i pełne VM stoją obok siebie. A jeśli uwagę przyciągnęła cena za sekundę, jak naprawdę działa rozliczanie za sekundę pokazuje rachunki.

FAQ

Czy microVM to kontener?

Nie. Kontener to grupa procesów na jądrze hosta, oddzielonych przez namespaces i cgroups. MicroVM uruchamia własne jądro na wirtualnym sprzęcie, a granicą z hostem jest hipernadzorca. Startuje prawie jak kontener tylko dlatego, że usunięto z niej niemal wszystko, co emuluje tradycyjna VM.

Dlaczego uruchamia się tak szybko?

Nie ma BIOS-u ani wykrywania sprzętu. VMM ładuje jądro bezpośrednio i oferuje tylko garść wirtualnych urządzeń: sieć, pamięć blokową, konsolę szeregową i kilka innych. Mniej do emulowania to mniej do uruchomienia.

Czego microVM nie potrafi?

Brak przekazywania GPU, brak ekranu graficznego i tylko minimalny zestaw urządzeń. Zbudowano ją do uruchamiania kodu i usług, nie do pulpitów ani obciążeń zależnych od sprzętu.

Czy jest bezpieczniejsza od kontenera?

Usuwa największą wspólną powierzchnię: jądro hosta. Kod w środku musi przebić się przez hipernadzorcę i VMM, a to znacznie mniej niż interfejs wywołań systemowych jądra. To nie magia: limity zasobów, reguły sieciowe i brak sekretów w środku nadal są potrzebne.

Czy mogę uruchomić Dockera w microVM?

Technicznie microVM może uruchomić wszystko, co obsługuje jej jądro, ale nasze sandboxy nie zawierają Dockera. Jeśli twoje obciążenie potrzebuje kontenerów, uruchom je na VPS.

Komentarze

Brak komentarzy. Bądź pierwszy.

Zostaw komentarz

Komentarze są moderowane przed pojawieniem się.