479 olvasmányok
479 olvasmányok

Mik azok a Cloud Native Buildpack-ek? Egy egyszerű végigjátszás

által Alvin Lee8m2025/03/11
Read on Terminal Reader

Túl hosszú; Olvasni

A Cloud Native Buildpack segítségével egyszerűen hozhat létre alkalmazásokat a Docker számára. Az építőcsomagok összegyűjtenek mindent, amire az alkalmazás futtatásához szüksége van, és egy Open Container Initiative (OCI) képbe helyezi. Ez olyan, mintha pontosan a szükséges Docker-fájllal rendelkezne – csak nem kell egyet írnia.
featured image - Mik azok a Cloud Native Buildpack-ek? Egy egyszerű végigjátszás
Alvin Lee HackerNoon profile picture

Eleged van már a Dockerfile-al való babrálásból? A Dockerfiles és a Docker lemezképek nagyszerű módja annak, hogy az alkalmazást újrafelhasználható, konténeres telepítésekhez csomagolja. A Dockerfile írása és karbantartása azonban nem mindig intuitív, és időt vesz igénybe, amelyet egyébként felhasználhatna az alkalmazáshoz funkciók hozzáadásához. Lépjen be a Cloud Native Buildpacksba. Buildpackok léteznek, hogy összegyűjtsék mindazt, amire az alkalmazásnak szüksége van a futáshoz, és egy Open Container Initiative (OCI) képbe helyezi – nincs szükség Dockerfile-re.


A Cloud Native Buildpacks lehet a keresett megoldás minden olyan fejlesztő számára, akinek olyan konténerépítési folyamatra van szüksége, amely könnyen használható, és időt és fejfájást takarít meg. Érdekelt? mesélek még.

Mik azok a Cloud Native Buildpackok?

Általánosságban elmondható, hogy egy buildpack alkalmazáskódot vesz fel, és futtathatóvá teszi azt egy összeállítási folyamaton keresztül. Így aztán a Cloud Native Buildpacks elfoglalja az alkalmazás forráskódját, és futtatható, reprodukálható OCI-képekké alakítja, és megvalósítja a képbiztonsággal, a teljesítményoptimalizálással és a konténerépítési sorrenddel kapcsolatos követelményeket. Ez olyan, mintha pontosan a szükséges Dockerfile rendelkezne – csak nem kell egyet írnia.


Míg a legtöbb fejlesztő tud Docker-fájlt írni, kevesen ismerik a Dockert vagy az infrastruktúrát. Túl sok alkalmazás rendelkezik Docker-fájlokkal, amelyek az interneten található kódrészletekből állnak össze – gyakran a Copilot, a Stack Overflow és a ChatGPT keveréke. A Dockerfile hibák bizonytalan és rosszul teljesítő alkalmazásokhoz vezethetnek.


A Cloud Native Buildpacks átveszi ezt a terhet, és automatikusan alkalmazza a bevált módszereket minden egyes nyelvhez vagy keretrendszerhez. A készítő ezután tetszőleges számú buildcsomagot használhat, automatikusan észlelve, hogy mely buildcsomagokra van szükség, és alkalmazni tudja őket egy alkalmazás létrehozásához. Itt vannak a Heroku építője által jelenleg támogatott buildcsomagok:


 $ pack builder inspect heroku/builder:24 Inspecting builder: heroku/builder:24 REMOTE: Description: Ubuntu 24.04 AMD64+ARM64 base image with buildpacks for .NET, Go, Java, Node.js, PHP, Python, Ruby & Scala. ... Buildpacks: ID NAME VERSION heroku/deb-packages Heroku .deb Packages 0.0.3 heroku/dotnet Heroku .NET 0.1.10 heroku/go Heroku Go 0.5.2 heroku/gradle Heroku Gradle 6.0.4 heroku/java Heroku Java 6.0.4 heroku/jvm Heroku OpenJDK 6.0.4 heroku/maven Heroku Maven 6.0.4 heroku/nodejs Heroku Node.js 3.4.5 heroku/nodejs-corepack Heroku Node.js Corepack 3.4.5 heroku/nodejs-engine Heroku Node.js Engine 3.4.5 heroku/nodejs-npm-engine Heroku Node.js npm Engine 3.4.5 heroku/nodejs-npm-install Heroku Node.js npm Install 3.4.5 heroku/nodejs-pnpm-engine Heroku Node.js pnpm Engine 3.4.5 heroku/nodejs-pnpm-install Heroku Node.js pnpm install 3.4.5 heroku/nodejs-yarn Heroku Node.js Yarn 3.4.5 heroku/php Heroku PHP 0.2.0 heroku/procfile Heroku Procfile 4.0.0 heroku/python Heroku Python 0.23.0 heroku/ruby Heroku Ruby 5.0.1 heroku/sbt Heroku sbt 6.0.4 heroku/scala Heroku Scala 6.0.4


Más építők, mint például a Paketo vagy a Google Cloud , szintén számos buildcsomagot hoznak. Összességében a Cloud Native Buildpacks ökoszisztéma növekszik és érlelődik, ami izgalmas a fejlesztők számára!


Azok, akik ismerik a Herokut, már élvezték a buildpack élményt. git push heroku main segítségével közvetlenül telepíthető a Herokuba, Dockerfile nélkül. A Cloud Native Buildpacks a Heroku buildpack-élményére épít, átveszi az egykor szállítóspecifikus implementációt, és CNCF-szabványsá alakítja, amely bármely felhőplatformon használható.


Röviden, a Cloud Native Buildpacks lehetővé teszi a fejlesztők számára, hogy:


  • Könnyebben telepíthet alkalmazásokat, mint valaha
  • … szabványos módon, bezárás nélkül
  • … mindezt a konténer legjobb gyakorlatainak alkalmazása mellett
  • …és anélkül, hogy a fejlesztőket rávenné a Dockerfiles-el való trükközésre.

Használati esetek

Jól hangzik, igaz? Mindezen előnyök mellett nézzünk meg néhány konkrét esetet, amikor a Cloud Native Buildpacks használata előnyös lehet.

Bármilyen helyen, ahol általában szüksége van egy Dockerfile-ra, lehetőség nyílik buildpack használatára. Példák:


  • Egy Node.js webalkalmazás
  • Python mikroszolgáltatás
  • Heterogén alkalmazás, amely több nyelvet vagy keretrendszert használ
  • Alkalmazások készítése felhőplatformokon, például AWS-en, Azure-on és Heroku-n történő telepítéshez


Egy dolog, amit érdemes megjegyezni: Míg a buildcsomagok deklaratívak , a Docker-fájlok procedurálisak . Egy buildpack esetén egyszerűen kijelenti, hogy egy adott alkalmazást egy adott builderrel vagy buildpack-kel szeretne elkészíteni. Ezzel szemben a Dockerfile megköveteli a parancsok meghatározását és a parancsok futtatásának sorrendjét az alkalmazás felépítéséhez. Mint ilyenek, a buildpack-ek jelenleg nem kínálják a Dockerfile-on belül elérhető konfigurálhatósági szintet, így előfordulhat, hogy nem felel meg bizonyos fejlettebb használati esetek igényeinek.


Ennek ellenére a Cloud Native Buildpacks nem kötődik a gyártóhoz. Egyszerűen egy OCI-képet építenek. Több testreszabásra és lehetőségre van szüksége, mint amennyi az összeállítási csomagban elérhető? Egyszerűen cserélje ki az összeállítási folyamatban lévő buildert a Dockerfile-ra és egy szabványos OCI image buildre, és már mehet is.

Egy egyszerű végigjátszás

Végezzünk egy gyors áttekintést a Cloud Native Buildpacks használatáról.


Ahhoz, hogy alkalmazásfejlesztőként elkezdhesse a buildpacks használatát, az első lépés a Pack CLI eszköz telepítése. Ez az eszköz lehetővé teszi, hogy alkalmazásokat építs csomagokkal. Kövesse az operációs rendszerének megfelelő telepítési utasításokat.


Ezenkívül, ha még nem rendelkezik vele, szüksége lesz egy Docker-démonra , hogy az építő elkészíthesse az alkalmazást, és Ön is futtathassa a képfájlt. A két eszköz telepítésével készen áll a kezdésre.

Mintaalkalmazás készítése

Ha hozzáfér a pack , készen áll arra, hogy kipróbálja egy példaalkalmazás elkészítésével. Ezt egy Next.js alkalmazáson belül fogom futtatni. Mintaalkalmazásra van szüksége a buildpack teszteléséhez? Itt található a Next.js példaalkalmazások teljes könyvtára . Kipróbálhatja a kéznél lévő alkalmazásokat is.


Ha elkészült az alkalmazással, kezdje azzal, hogy nézze meg, milyen építőt javasol a csomagolóeszköz. A shellben keresse meg az alkalmazáskönyvtárat, és futtassa ezt a parancsot:


 $ pack builder suggest


Az Ubuntu telepítésem során a Next.js alkalmazásomhoz a pack a következő építőket javasolja:


Próbáljuk ki a javasolt Heroku buildpack-et ( heroku/builder:24 ). Ennek használatához futtassa a következő parancsot:


 $ pack build my-app --builder heroku/builder:24


Az építési idő az alkalmazás méretétől függően változik; nekem az alkalmazás elkészítése 30 másodpercig tartott. Ezzel készen állt a képem. A képet a következőkkel futtathatjuk:


 $ docker run -p 3000:3000 my-app


Az eredmény így néz ki:



És ennyi! Sikeresen elkészítettük Next.js alkalmazásunk OCI-képet – Dockerfile használata nélkül .

További konfigurációk

Mi van, ha valamit be kell állítani a buildpack-en belül? Ehhez hivatkoznia kell a buildpack(ek)re, amelyeket az építője választott ki. Például a Next.js alkalmazásomhoz azt látom a naplókban, hogy az építő két buildcsomagot választott ki: nodejs-engine és nodejs-yarn .



Tegyük fel, hogy szeretném megadni a buildpack által használt fonalverziót. Először a nodejs-yarn buildpack Readme- hoz mennék, ahol azt látom, hogy a package.json fájlomban egy packageManager kulccsal megadhatom a fonal verzióját. Módosítanám a fájlomat a következőre:


 { "packageManager": "yarn@1.22.22" }


Innen már csak annyit kell tennem, hogy újra lefuttassam pack build my-app --builder heroku/builder:24 .

Következtetés

A Cloud Native Buildpacks izgalmas új módja annak, hogy tárolóképeket készítsünk alkalmazásaink számára. Azáltal, hogy nincs szükség Dockerfile-ra, minden eddiginél gyorsabbá teszik az alkalmazásunk becsomagolását és telepítését. Ráadásul, mivel szabványos konténerképeket készítenek, nincs szállítói bezárás.


A Cloud Native Buildpacks számos platformon megtekinthető, ami azt jelenti, hogy a funkciókészlet könnyű, de gyorsan bővül. A Heroku, amely nyílt forráskódú Cloud Native Buildpacks csomagjait , azokat a következő generációs platformjára is elhozza. Kíváncsian várom, hogy a Cloud Native Buildpacks hogyan teszi lehetővé az alkalmazások biztonságos, gyors telepítését a felhőplatform-közösségben.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks