Amazons Microhypervisor ist da – aber für wen eignet sich Firecracker überhaupt?
Mit Firecracker 1.0.0 startet der AWS-Microhypervisor durch. Udo Seidel erklärt, was hinter der Technik steckt und für welche Bereiche sie gedacht ist.
- Dr. Udo Seidel
Das Firecracker-Projekt hat einen wichtigen Meilenstein erreicht und Version 1.0.0 veröffentlicht. Das ist ein großer Schritt – die eigenen Richtlinien für eine neue Vollversion sind recht streng. Aber was ist Firecracker eigentlich und wo kommt es her? Maßgeblich an der Entwicklung ist der Cloud-Gigant Amazon AWS beteiligt. Dieser will seinen Diensten wie Lambda oder Fargate ein kleinen aber sicheren Unterbau zur Verfügung stellen.
Schutz gegen Aufwand
Hier manifestiert sich ein Dilemma, welches seit den ersten Tagen der Container-Reise existiert: Eine ausreichend sichere Abtrennung von verschiedenen Anwendungen, deren Abläufen oder sogar Kunden trauen die meisten nur der Virtualisierungstechnologie zu. Doch dieser Schutz kommt mit zusätzlichen Aufwänden beim Anlaufen oder dem Verbrauch von Ressourcen.
Die Container haben hier die Nase deutlich vorn - müssen sich aber im Punkt Isolation beziehungsweise Sicherheit den bekannten Hypervisoren geschlagen geben. Lassen sich die Vorteile beider Welten vereinigen, ohne die Nachteile ebenfalls mitschleppen zu müssen? Firecracker versucht genau dies.
Die Experten sprechen hier von einem sogenannte Micro-Hypervisor. Klassische Virtualisierung unter Linux besteht aus zwei Teilen. Der erste ist zumeist KVM. Dieser sogenannte Typ-I-Hypervisor läuft direkt auf der Hardware und benötigt ein absolut minimales Betriebssystem. Seine Aufgabe ist, die Hardware-beschleunigte Virtualisierung an die zweite Komponente weiterzureichen. Hier kommt normalerweise QEMU ins Spiel. Dessen Prozesse laufen im User-Land. Sie emulieren umfangreiche Hardware-Komponenten wie Festplatten, Schnittstellenkarten und Systembusse.
Dazu zählt auch das Übersetzen von Systemaufrufen aus der virtuellen Maschine. Die Experten sprechen hier von VMMs (Virtual Machine Monitors). Firecracker nimmt die Stelle von QEMU ein und verbraucht deutlich weniger CPU-Leistung, Hauptspeicher und Plattenplatz. Auch der Start der sogenannten Micro-VMs ist deutlich schneller. Aber diese Vorteile haben ihren Preis: Im Vergleich zu QEMU unterstützt Firecracker deutlich weniger Geräte und selbst diese noch mit Einschränkungen. Weitere Details finden sich in der Projekt-Dokumentation und auch in einem iX-Artikel.
AWS hat Firecracker insbesondere für die eigenen Cloud-Dienste aus der Taufe gehoben. Dennoch handelt es sich um eine freie Software unter der Apache-2.0-Lizenz und ist auf GitHub verfügbar. Der Wechsel von Version 0.25.2 zu 1.0.0 ist signifikant. Die Projekt-eigenen Richtlinien sehen hier beispielsweise neue Funktionen vor oder auch Veränderungen der Schnittstellen. Sogar eine gewisse Inkompatibilität mit älteren Versionen ist erlaubt.
Beachtlicher Support
Ein Blick hinter die Kulissen offenbart jedoch nur zwei Anhaltspunkte, welche eine neue Vollversion rechtfertigen. Einmal bekennen sich die Entwickler nun vollständig zu den eigenen Richtlinien bezüglich der Unterstützung von Linux-Kernel-Versionen. Der relevante Teil betrifft dabei die Zeitdauer. Firecracker 1.0.0 wird jede einmal offizielle bestätigte Version des Linux-Kerns für zwei Jahre unterstützen. Die gegenwärtige rasante Entwicklung der IT betrachtend ist dies ein ambitioniertes Versprechen. Übrigens zählen im Moment nur die Linux-Kernel in der Version 4.14 und 5.10 zu diesem ausgewählten Kreis.
Außerdem setzt die neue Vollversion die Uhren für generelle Unterstützung durch das Projekt zurück. Sprich: Welche Versionen erfahren bei Fehlern oder Sicherheitslücken Patches? Zum gegenwärtigen Zeitpunkt heißt dies, dass ausschließlich alle zukünftigen Versionen 1.x.y für die nächsten 12 Monate in den Genuss solcher Updates kommen.
Trotz Version 1.0.0 kann man Firecracker noch nicht als Alltagswerkzeug betrachten – vielmehr ist es für reguläre Nutzer eine Forschungsoptionen für das heimische Labor oder sogar innerhalb der AWS-Cloud. Für letztere bringt diese Version ein paar Verbesserungen bezüglich Linux-Kern 5.10 und CPU-Schablonen für T2 und C3. Den größten Nutzen aus Firecracker bezieht wohl Amazon selbst. Und hinzu kommt: Wer sich für minimalistische Ansätze bezüglich Server oder Betriebssystem interessiert, findet im Unikernel-Lager ebenfalls interessante Ideen und Implementierungen. Bislang scheinen diese aber nur "akademisches" Interesse zu wecken und keine sichtbare Verbreitung in der Masse zu finden.
Das Bild ändert sich etwas im Umfeld der Kata-Container. Hier zählt Firecracker seit geraumer Zeit zu den unterstützten VMMs. Damit schließt sich auch der Kreis zu dem eingangs beschriebenen Dilemma: die Vor- aber nicht Nachteile von Virtualisierung und Containern zu vereinigen. Anders gesagt, wer sowieso schon Kata-Container großflächig einsetzt, sollte auch einen Blick auf Firecracker als Bestandteil dieses Ökosystems werfen. Verwandte Implementierungen finden sich über Googles gVisor oder Nabla-Container.
(fo)