Finch, ein Befehlszeilen-Entwicklungstool zum Erstellen, Ausführen und Veröffentlichen von Linux-Containern
Vor einigen Tagen kündigte Amazon in einem Blogbeitrag den Start seines Open-Source-Projekts „Finch“ an, das eine Reihe von Tools zum Erstellen, Veröffentlichen und Ausführen von Linux-Containern im OCI- Format (Open Container Initiative) entwickelt.
Es wird erwähnt, dass das Hauptziel des "Finch"-Projekts darin besteht, die Arbeit mit Linux-Containern auf nicht-Linux-basierten Hostsystemen zu vereinfachen.
Finch ist ein Open-Source-Client für die Containerentwicklung. Sein einfacher Installer bietet einen minimalen nativen Client zusammen mit einer objektiven Verteilung anderer Open-Source-Komponenten. Anstatt noch mehr Optionen zum Nachdenken und Auswählen zu schaffen, möchte Finch dazu beitragen, andere Projekte zu fördern, indem es ihre Installation und Verwendung vereinfacht und gleichzeitig einen einfachen nativen Client anbietet, um alles miteinander zu verbinden.
Über Finch
Das Finch-Projekt basiert auf mehreren Open-Source-Projekten, darunter nerdctl, containerd, BuildKit und Lima. Dadurch können Sie sofort loslegen, ohne alle diese Komponenten separat verstehen und konfigurieren zu müssen (Container auf Linux-Systemen auszuführen ist zwar keine triviale Aufgabe, aber eine Umgebung zum Ausführen von Linux-Containern unter Windows und macOS zu schaffen, ist es nicht).
Für die Arbeit bieten wir unser eigenes Finch-Dienstprogramm an, das die Details der Arbeit mit jeder Komponente hinter einer einheitlichen Schnittstelle verbirgt. Installieren Sie zunächst einfach das bereitgestellte Paket, das alles enthält, was Sie benötigen. Anschließend können Sie sofort Container erstellen und ausführen.
Um die Befehlszeilenschnittstelle in Finch zu erstellen, werden Entwicklungen aus dem Nerdctl-Projekt verwendet, das eine Reihe von Docker-kompatiblen Befehlen zum Erstellen, Ausführen, Veröffentlichen und Laden von Containern (Build, Run, Push, Pull usw.) bereitstellt, z sowie zusätzliche optionale Funktionen wie Rootless-Betrieb, Bildverschlüsselung, P2P-Bildverteilung mithilfe von IPFS und digital signierte Bildzertifizierung.
Darüber hinaus wird erwähnt, dass Containerd als Laufzeit für die Containerverwaltung verwendet wird, während das BuildKit-Toolkit zum Erstellen von Bildern im OCI-Format verwendet wird und Lima zum Starten virtueller Linux-Maschinen, zum Konfigurieren der Dateifreigabe und zur Netzwerkportweiterleitung verwendet wird.
Zu den Highlights von Finch gehören die Unterstützung persistenter Festplatten, Verbesserungen bei der VM-Initialisierungszeit, die Halbierung der Startzeit für Entwickler, experimentelle Unterstützung für Apples Virtualisierungsframework, die Bereitstellung zusätzlicher Leistungsbeschleunigungen in Finch VM sowie ein Benchmark-Tool, das bei jedem Commit ausgeführt wird, um die vorhandenen Leistungsmetriken zu validieren.
Derzeit liegt Finch in der Version 1.0 vor, die als erste stabile Version gilt und für Produktionsbereitstellungen und den täglichen Einsatz auf der macOS-Plattform geeignet ist. Es ist geplant, in zukünftigen Versionen Client-Unterstützung für Linux und Windows hinzuzufügen.
Wir möchten, dass Finch ein stabiles und effizientes Laufzeitentwicklungstool ist, das es Benutzern erleichtert, ihre Entwicklungsaufgaben zu erledigen, indem sie Container lokal erstellen und ausführen und mit Container-Registern interagieren. Diese Version 1.0 spiegelt unsere Überzeugung wider, dass Finch für den Produktionseinsatz als alltägliches Tool eines Containerentwicklers unter macOS bereit ist.
Im Rahmen des Projekts hat Amazon auch mehrere Erweiterungen vorbereitet, die auf den Hauptteil des Nerdctl-Projekts portiert wurden. Insbesondere wurden Komponenten für die digitale Signierung von Bildern vorbereitet sowie Unterstützung für die Erstellung und den Start von Bildern mithilfe der SOCI-Technologie (Seekable OCI), die ursprünglich für AWS entwickelt wurde und ein deutlich schnelleres Laden von Container-Images ermöglicht (SOCI ermöglicht Ihnen den Start ohne Warten, bis das Bild vollständig geladen ist, und Laden der für den Auftrag erforderlichen Teile nach Bedarf.
Für alle, die sich für das Projekt interessieren: Finchs Code ist in Go geschrieben und wird unter der Apache-2.0-Lizenz auf GitHub veröffentlicht . Details zur Veröffentlichung finden Sie in der ursprünglichen Ankündigung im AWS-Blog.