Finch, razvojno orodje v ukazni vrstici za ustvarjanje, izvajanje in objavljanje vsebnikov Linux
Pred nekaj dnevi je Amazon v objavi na blogu napovedal začetek svojega odprtokodnega projekta "Finch", ki razvija nabor orodij za gradnjo, objavo in zagon Linux kontejnerjev v formatu OCI (Open Container Initiative).
Omenjeno je, da je glavni cilj projekta "Finch" poenostavitev dela z Linux vsebniki na gostiteljskih sistemih, ki ne temeljijo na Linuxu.
Finch je odprtokodni odjemalec za razvoj vsebnikov. Njegov preprost namestitveni program zagotavlja minimalen domači odjemalec skupaj z objektivno distribucijo drugih odprtokodnih komponent. Namesto da bi ustvaril še več možnosti za razmišljanje in izbiro, Finch želi pomagati pri promociji drugih projektov tako, da jih olajša namestitev in uporabo, hkrati pa ponuja preprostega domačega odjemalca, ki vse skupaj poveže.
O Finchu
Projekt Finch se opira na več odprtokodnih projektov, vključno z nerdctl, containers, BuildKit in Lima. To vam omogoča, da takoj začnete, ne da bi morali razumeti in konfigurirati vse te komponente posebej (medtem ko zagon vsebnikov v sistemih Linux ni trivialna naloga, ustvarjanje okolja za zagon vsebnikov Linux v sistemih Windows in macOS ni).
Za delo ponujamo lasten pripomoček Finch, ki podrobnosti dela s posamezno komponento skriva za enotnim vmesnikom. Za začetek preprosto namestite priloženi paket, ki vključuje vse, kar potrebujete, nato pa lahko takoj ustvarite in zaženete vsebnike.
Za izgradnjo vmesnika ukazne vrstice v Finchu se uporablja razvoj iz projekta nerdctl, ki zagotavlja niz ukazov, združljivih z Dockerjem, za gradnjo, zagon, objavo in nalaganje vsebnikov (zgradi, zaženi, potisni, povleci itd.), kot kot tudi dodatne izbirne funkcije, kot so delovanje brez korenin, šifriranje slik, distribucija slik P2P z uporabo IPFS in digitalno podpisano certificiranje slik.
Poleg tega je omenjeno, da se container uporablja kot runtime za upravljanje vsebnika, medtem ko se komplet orodij BuildKit uporablja za ustvarjanje slik v formatu OCI, Lima pa se uporablja za zagon virtualnih strojev Linux, konfiguracijo skupne rabe datotek in posredovanje omrežnih vrat.
Kar zadeva Finchove funkcije, so med drugim podpora za trajne diske, izboljšave časa inicializacije virtualnih strojev, prepolovitev časa zagona za razvijalce, eksperimentalna podpora za Applov ogrodje za virtualizacijo, dodatne pospeške delovanja v Finchovem virtualnem stroju in orodje za primerjalne meritve, ki se izvaja pri vsakem zapisu (commit) za potrditev obstoječih meritev delovanja.
Trenutno je Finch na različici 1.0, ki je označena kot prva stabilna različica, primerna za produkcijske uvedbe in vsakodnevno uporabo na platformi macOS. Podpora za odjemalce za Linux in Windows naj bi bila dodana v prihodnjih izdajah.
Želimo, da je Finch stabilno in učinkovito razvojno orodje med izvajanjem, ki uporabnikom olajša izpolnjevanje njihovih razvojnih nalog z ustvarjanjem in izvajanjem vsebnikov lokalno ter interakcijo z registri vsebnikov. Ta različica 1.0 izraža naše prepričanje, da je Finch pripravljen za produkcijsko uporabo kot vsakodnevno orodje razvijalcev vsebnikov v sistemu macOS.
Amazon je v okviru projekta pripravil tudi več razširitev, ki so bile prenesene v glavni del projekta nerdctl. Pripravljene so predvsem komponente za digitalno podpisovanje slik ter podpora za ustvarjanje in zagon slik s tehnologijo SOCI (Seekable OCI), prvotno ustvarjeno za AWS in omogoča bistveno hitrejše nalaganje slik vsebnika ( SOCI omogoča zagon brez čakanje, da se slika v celoti naloži, in nalaganje delov, potrebnih za delo, ko so potrebni).
Za tiste, ki jih projekt zanima, je Finchova koda napisana v jeziku Go in distribuirana pod licenco Apache 2.0 na GitHubu . Podrobnosti o izdaji najdete v prvotni objavi na blogu AWS.