Finch, et kommandolinjeudviklingsværktøj til at oprette, køre og udgive Linux-containere
For flere dage siden annoncerede Amazon i et blogindlæg lanceringen af ​​sit open source-projekt "Finch", som udvikler et sæt værktøjer til at bygge, udgive og køre Linux-containere i OCI- format (Open Container Initiative).
Det nævnes, at hovedmålet med "Finch"-projektet er at forenkle arbejdet med Linux-containere på ikke-Linux-baserede værtssystemer.
Finch er en open source-klient til containerudvikling. Dens enkle installationsprogram giver en minimal indbygget klient sammen med en objektiv fordeling af andre open source-komponenter. I stedet for at skabe endnu flere muligheder for at ræsonnere og vælge imellem, sigter Finch på at hjælpe med at fremme andre projekter ved at gøre dem nemmere at installere og bruge, samtidig med at de tilbyder en simpel indbygget klient til at binde det hele sammen.
Om Finch
Finch-projektet er baseret på adskillige open source-projekter, herunder nerdctl, containerd, BuildKit og Lima. Dette giver dig mulighed for at komme i gang med det samme uden at skulle forstå og konfigurere alle disse komponenter separat (selvom det ikke er en triviel opgave at køre containere på Linux-systemer, er det ikke en triviel opgave at oprette et miljø til at køre Linux-containere på Windows og macOS).
Til arbejde tilbyder vi vores eget Finch-værktøj, som skjuler detaljerne om at arbejde med hver komponent bag en samlet grænseflade. For at komme i gang skal du blot installere den medfølgende pakke, som indeholder alt hvad du har brug for, hvorefter du kan oprette og køre containere med det samme.
For at bygge kommandolinjegrænsefladen i Finch bruges udviklinger fra nerdctl-projektet, som giver et sæt Docker-kompatible kommandoer til at bygge, køre, publicere og indlæse containere (build, run, push, pull osv.), som f.eks. samt yderligere valgfri funktioner såsom rodløs drift, billedkryptering, P2P-billeddistribution ved hjælp af IPFS og digitalt signeret billedcertificering.
Derudover nævnes det, at containerd bruges som runtime til containerstyring, mens BuildKit toolkit bruges til at lave billeder i OCI format og Lima bruges til at starte Linux virtuelle maskiner, konfigurere fildeling og netværksportvideresendelse.
Hvad angår Finchs funktioner, inkluderer højdepunkterne understøttelse af vedvarende diske, forbedringer i VM-initialiseringstid, halvering af opstartstiden for udviklere, eksperimentel understøttelse af Apples virtualiseringsframework, yderligere ydeevneaccelerationer i Finch VM og et benchmarkværktøj, der kører på hver commit for at validere eksisterende ydeevnemålinger.
I øjeblikket er Finch på version 1.0, som er markeret som den første stabile version, velegnet til produktionsimplementeringer og daglig brug på macOS-platformen. Klientsupport til Linux og Windows er planlagt til at blive tilføjet i fremtidige udgivelser.
Vi ønsker, at Finch skal være et stabilt og effektivt runtime-udviklingsværktøj, der gør det nemt for brugere at udføre deres udviklingsopgaver ved at oprette og køre containere lokalt og interagere med containerregistre. Denne version 1.0 repræsenterer vores overbevisning om, at Finch er klar til produktionsbrug som containerudviklers daglige værktøj på macOS.
Som en del af projektet har Amazon også udarbejdet flere udvidelser, der er blevet porteret til hoveddelen af ​​nerdctl-projektet. Der er især udarbejdet komponenter til digital signering af billeder, samt understøttelse af oprettelse og lancering af billeder ved hjælp af SOCI (Seekable OCI) teknologi, der oprindeligt er skabt til AWS og tillader væsentlig hurtigere indlæsning af containerbilleder (SOCI giver dig mulighed for at starte opsendelsen uden venter på, at billedet er fuldt indlæst og indlæser de nødvendige dele til jobbet, efterhånden som de er nødvendige).
For dem der er interesserede i projektet, er Finchs kode skrevet i Go og distribueret under Apache 2.0-licensen på GitHub . Du kan finde detaljer om udgivelsen i den oprindelige annoncering på AWS-bloggen.