A Knative Serverless Framework rövid útmutatója kezdőknek

A kiszolgáló nélküli keretrendszerekre az elmúlt néhány évben volt kereslet, és a fejlesztők egyre nagyobb teret hódítottak.

Ennek ellenére a konténer alapú alkalmazások már most népszerűek, és a Kubernetes is a vállalkozások körében.

A Kubernetes kétségtelenül egy nagyszerű eszköz, amely jó potenciállal rendelkezik. Ökoszisztémája számos új eszközzel és legújabb technológiával is bővül, mint például a Knative, amely képes még jobbá tenni a Kubernetes-t.

A Knative-t azért vezették be, hogy leküzdjék azokat a helyzeteket, amelyek kudarchoz vezetnek, és egy alapvető szabványt hozzon létre a felhőplatformokhoz és a felhőalapú hangszereléshez.

Más szóval, a Knative szerver nélküli keretrendszer sokkal jobban megfelel a vállalat igényeinek, mint a többi felhőalapú szerver nélküli telepítés.

Ebben az útmutatóban a Knative-ról, annak előnyeiről, használati eseteiről, a telepítési eljárásról, a munkafolyamatról és egyebekről fogok beszélni.

Essünk neki!

Mi az a Knative?

A Knative egy Kubernetes-alapú szerver nélküli keretrendszer, amelyet először a Google fejlesztett ki. Szerver nélküli funkciókat tölt be és futtat a vállalat igényei alapján, ezáltal minimalizálja a pazarlást. Ez egy nyílt forráskódú projekt, amely összetevőket ad hozzá a Kubernetes kiszolgáló nélküli alkalmazások telepítéséhez, futtatásához és kezeléséhez.

A Knative szerver nélküli keretrendszer elsődleges célja a platformok közötti hangszerelés szabványainak kezelése. Ez a tároló létrehozása, az automatikus skálázás, az eseménymodellek és a munkaterhelés-kezelés integrálásával valósul meg.

Korábban a Knative-on kívül számos nyílt forráskódú megoldás létezett. Mindegyik megoldásnak megvan a maga bevezetési módja, ami a piac széttöredezettségét okozhatja, mivel hiányoznak a szabványosított gyakorlatok. Ez azt jelenti, hogy egy adott szolgáltató kiválasztása szükséges, ha egy adott rendszerfunkciót szeretne.

A migrációs problémák azonban elkezdtek előtérbe kerülni. Az ilyen problémák elkerülése érdekében bevezették a Knative szerver nélküli keretrendszert. Tehát, ha nehézségekbe ütközik a feladatok beépítése, a Knative hatékonyan meg tudja csinálni a Kubernetes-alapú folyamaton belül.

A Knative három darabból áll:

  • Knative Build: Konténerképeket készít, és elérhetővé teszi őket a forráskódból.
  • Knative Serving: Istio és Kubernetes segítségével csatlakoztatja és telepíti ezeket a tárolóképeket a hozzárendelt infrastruktúra-erőforrásokon keresztül.
  • Knative Eventing: Lehetővé teszi a felhasználók számára az eseményindítók meghatározását, és lehetővé teszi a felhasználók számára, hogy az eseményindítókat konténeres függvényekkel társítsák.

Amikor a Knative azonosít egy eseményt, meghatározza a kapcsolódó folyamatot, hogy igény szerint lefusson. A Knative használatával nincs szükség konténercsomópontok, fürtök és pod-ok kiosztására a munkához, mivel a Knative csak akkor köti le az erőforrásokat, amikor egy adott folyamat fut. Ily módon a Knative egyensúlyban tartja a szerver nélküli és a konténer nélküli előnyöket.

A Knative alapfogalmai

Beszéljük meg a Knative Serverless Framework fő fogalmait, és azt, hogy ezek hogyan kapcsolódnak a Knative primitívekhez.

Épít

A Knative-building segít a meglévő Kubernetes primitívek hasznosításában és kiterjesztésében, lehetővé téve az eredeti konténer buildek futtatását. Lehetővé teszi a forráskódot a függőségekből és a tárolóból, konténerképek létrehozását és regisztrálását.

  30 legjobb ingyenes Chromecast-alkalmazás

Események

Az esemény segít jobb kommunikációt teremteni a lazán összekapcsolódó rendezvényfogyasztók és a producerek között az eseményvezérelt architektúra felépítéséhez. A Knative ezeket az eseményeket egy sorba helyezi, amelyet automatikusan kellett végrehajtani a fejlesztői szkript nélkül.

Később ezek az események a konténerekbe kerülnek. Ezután hírfolyamokat küld az esemény producereinek a feladatok elvégzéséhez. Ez csökkenti a fejlesztő munkaterhét a kapcsolat létrehozásához szükséges kód létrehozása során.

Funkciók

A funkció egy független telepítési egység és egy Knative kiszolgálási szolgáltatás, például egy mikroszolgáltatás. A kódja egyetlen feladat végrehajtására van írva, például:

  • Fájl feldolgozása adatbázisban
  • Felhasználó mentése adatbázisba
  • Ütemezett munka elvégzése

A Knative szerver nélküli keretrendszert úgy tervezték, hogy lehetővé tegye a funkciók hatékony fejlesztését és telepítését, valamint azok kezelését.

Beépülő modulok

Könnyen bővítheti vagy felülírhatja a Knative szerver nélküli keretrendszer funkcióit bővítmények segítségével. Minden serverless.yml fájl tartalmaz egy plugin tulajdonságot, amely különféle beépülő modulokat tartalmaz.

Erőforrások

Az erőforrások a Knative szerver nélküli infrastruktúra-összetevői, amelyeket a függvény használ, beleértve:

  • AWS SQS eseményforrás
  • Egy ütemezett feladat (futtatás 5 percenként, 10 percenként stb.)
  • A Kafka esemény forrása

És több.

Szolgáltatások

A szolgáltatások olyanok, mint egy projekt. Ezért a szolgáltatás a Knative szerver nélküli keretrendszer szervezeti egysége. Bár egy alkalmazáshoz sok szolgáltatása lehet, a szolgáltatást egy projektfájlnak tekintheti.

Itt határozhatja meg a függvényeket, eseményeket és erőforrásokat, mindezt egyetlen szerverless.yml, serverless.json vagy serverless.js nevű fájlban. Amikor a szolgáltatásokat a kiszolgáló nélküli keretrendszerrel telepíti, a fájlban minden egyszerre kerül telepítésre.

Szolgáló

A Knative-serving az Istio és a Kubernetes rendszerbe épül, amely támogatja az alkalmazások telepítését. Lehetővé teszi a szerver nélküli konténerek gyors fejlesztését, a hálózati programozást és az Istio komponensek automatikus skálázását. A Knative-serving a konténereket egy méretezhető szolgáltatásnak tekinti, amely egy példánytól több tárolópéldányig terjedhet.

A Knative jellemzői

Beszéljünk a Knative szerver nélküli keretrendszer néhány funkciójáról:

  • A Knative egy Kubernetes-alapú kiszolgáló nélküli keretrendszer, amely lehetővé teszi szolgáltatások telepítését a Kubernetesre.
  • Könnyen integrálja a Knative-ot a támogatott környezetbe
  • A fejlesztők közvetlenül használhatják a Kubernetes API-t a Knative segítségével kiszolgáló nélküli szolgáltatások telepítéséhez
  • Lehetővé teszi a felhasználók számára, hogy szerver nélküli szolgáltatásokat indítsanak el a Knative eseményrendszerének segítségével

Hogyan működik a Knative?

A Knative szerver nélküli keretrendszer eseményirányítási szegmensként működik, és összeköti az Istio-t és a Kubernetes-t. A Kubernetes a mikroszolgáltatások és konténerek hangszerelőjeként dolgozik. Az Istio ezzel szemben egy nyílt forráskódú mesh technológia, amely különböző összetevőket egyesít, hogy kölcsönhatásba lépjen a felhasználóval és önmagukkal.

A Knative több olyan összetevőt kínál a felhasználóknak, amelyek célja az alapvető napi munka elvégzése. Ezeket az alkatrészeket újra és újra felhasználják különféle alkalmazásokban. A fejlesztő bármilyen programozási nyelvet használhat. Ezért nincs szükség speciális nyelvtudásra, mivel a Knative csak konténerképeket ismer fel.

A Knative szerver nélküli keretrendszer három összetevője a működésének kulcsa.

Új konténerek építése

A build komponens felelős az új konténerek építéséért. A forráskódokat konténerbe tudja konvertálni. A Knative úgy konfigurálható, hogy megfeleljen az üzletspecifikus igényeknek.

Először a Knative kiveszi a forráskódot a könyvtárból, mint például a Github. Ezután hozzáadódnak a mögöttes függőségek, hogy a kód hatékonyan fusson. Ezután a rendszer összeállítja a tárolóképeket, és olyan fájlokban helyezi el, amelyeket a Kubernetes platform elérhet.

  Betűtípusok megváltoztatása Androidon

A tároló elérhető a Kubernetes és a Knative fejlesztői számára. Így a konténereket addig építik, amíg a kód eredete ismert.

A platform kiszolgálása vagy futtatása

A kiszolgáló komponens felelős a platform működéséért. Magában foglalja:

  • Konfiguráció: A konfiguráció bizonyos a szolgáltatás több verziójának kezelésében. Valahányszor egy tároló új funkcióját telepítik, a Knative elmenti a meglévő verziót, és létrehoz egy újat a legújabb változtatásokkal és szolgáltatásokkal. Ezenkívül a Knative meghatározza a szolgáltatás állapotát.
  • Automatikus méretezés: A kiszolgáló nélküli tárolók jobb működéséhez képesnek kell lennie a tárolók automatikus skálázására akár felfelé, akár lefelé. A Knative szükség esetén automatikusan skálázhatja a szolgáltatásokat sokaknak.
  • Intelligens szolgáltatás-útválasztás: A Knative működési mechanizmusának fontos része. Lehetővé teszi a fejlesztők számára, hogy a forgalom áramlását és mennyiségét a mikroszolgáltatások különböző meglévő verzióihoz irányítsák. Az új funkciók és a kék-zöld telepítési stratégiák bevezetése közben az intelligens szolgáltatás-útválasztás használható.

Lehetővé teszi, hogy a felhasználók egy része megismerje a legutóbbi tesztelést és verziót, és a hatalmas forgalmat fokozatosan az új verzióra irányítsa.

Esemény a funkciók meghatározásához

A Knative eventing komponense felelős a Knative funkciójának leírásáért. Lehetővé teszi a konténerek futtatását események alapján. A különböző események a tárolók meghatározott funkcióit váltják ki.

A fejlesztők meghatározhatják az eseményindítókat és a kapcsolódó tárolókat, hogy a Knative elvégezhesse a feladatát. A Knative kezeli az események listáját és az események kézbesítését.

A Knative előnyei

A Knative olyan szolgáltatásokat nyújt, mint az útvonalkezelés, a szakaszos kiadás és a szolgáltatási kapcsolat. Hatalmas közösséggel büszkélkedhet. Beszéljük meg, hogyan befolyásolja a Knative a vállalatokat ennek a technológiának az elfogadására.

  • Más megoldásokkal ellentétben a Knative szabványos eseményekkel rendelkezik, és kompatibilis a FaaS megoldással. CloudEvent szabványos keretrendszert kínál, amely segít a szerver nélküli architektúra tervezésében.
  • Bár a Knative nem PaaS, lehetővé teszi kiszolgáló nélküli PaaS létrehozását a kiszolgáló nélküli hangszerelési platformmal.
  • A Knative teljes értékű és kiforrott szerver nélküli kialakítással rendelkezik.
  • Támogatja a többplatformosságot, és univerzális szabványt biztosít a felhőszolgáltatók között, hogy kiküszöbölje annak lehetőségét, hogy a szállítókat egy adott megoldással lekösse.

  • A Knative rugalmas keretet biztosít.
  • Támogatja az arányos fázisú kiadásokat.
  • Megtapasztalhatja a szerver nélküli ökoszisztémát egy konténeres környezetben.
  • A Knative megszünteti a menedzsment és a szerszámok megbízhatóságát.
  • A Kubernetes megvalósításával gyorsan áttérhet más felhőszolgáltatókra, amelyek integrálva vannak a Knative-val.
  • Kérelemvezérelt számítási modellt kínál.
  • Lehetővé teszi a munkafolyamatok szolgáltatásként történő kezelését.
  • A Knative segítségével feldolgozhatja az IoT-adatokat, futtathatja a hozzáférhetőségi ellenőrzéseket, és érvényesítheti a biztonsági csoportok konfigurációit.
  • Lehetővé teszi a fejlesztők számára, hogy a kódolásra összpontosítsanak, és gyorsan iteratív kódot hozzanak létre.
  • Ez biztosítja, hogy a fejlesztők új verziókat építsenek be.
  • A Knative eseményalapú modellje segít a tervek megvalósításában, beleértve az előfizetést, a külső rendszerhez való csatlakozást és a regisztrációt.

A Knative kihívásai (és néhány megoldás)

Hatékonysági kihívások

A megfelelő alkalmazásokat támogató Knative Framework jobb teljesítményt biztosít minimális költséggel. Az alkalmazások nem megfelelő kombinációja azonban magasabb költségeket és alulkihasznált konténer-erőforrásokat eredményezhet. Ez rossz alkalmazásteljesítményhez vezethet, ami a Knative szerver nélküli telepítésének legnagyobb kihívása.

Így egy rosszul méretű erőforráskészlet vagy rossz alkalmazások tönkretehetik a Knative számos előnyét.

  Vásároljon kriptográfiai ajándékkártyákat ezeken a platformokon [2022]

Leküzdheti ezt a kihívást, ha teszteket hajt végre az erőforrások mennyiségének és az alkalmazások keverékének ellenőrzésére a Knative-on. Mérje meg az eseményterheléseket az átlagos és maximális terhelések méretezésével, és becsülje meg az erőforrások teljes felhasználását. Ismételje meg ezt több alkalmazásnál a becslések érvényesítéséhez próbakonfiguráció létrehozásához és futtatásához.

Funkcionális kihívások

A Knative funkcionális kihívásai a következők lehetnek:

  • A Knative az állapot nélküli modellhez illeszkedő függvényektől függ. Ez azt jelenti, hogy magában az összetevőben nem tárolódnak adatok. A funkciók fejlesztése nem nehéz szakasz, de enyhe szemléletváltást igényel, ami azt jelenti, hogy egyetlen hiba tönkreteheti a szoftver teljesítményét.
  • Az üzleti adatok többlépéses tranzakciókból állnak, és az állapot nélküli függvények kontextust tartanak fenn az összes lépésben. A Knative nem rendelkezik olyan képességekkel, mint a nyilvános felhőszerver nélküli eszközök.

A problémák rendszeres ellenőrzése és kijavítása segíthet abban, hogy teljesítményét tisztességes szinten tartsa.

Működési kihívások

A nyilvános felhőben található szerver nélküli ajánlatokhoz képest a Knative működési kihívást jelent. A rendszergazdák nem irányítják a mögöttes szervereket a nyilvános felhő segítségével. De a Kubernetes, a konténerek, a Knative és az Istio mellett a szervereket is kezelniük kell.

A Knative minimálisan kiterjeszti a működést és a fejlesztési komplexitást azon vállalatok számára, amelyek már elkötelezték magukat a Kubernetes és a konténerek mellett. Azok, akik elkötelezettek a szervizháló és a mikroszolgáltatások iránt, a Knative természetes kiterjesztését fogják találni.

A Knative használati esetei

Azoknál az alkalmazásoknál, amelyek változó számú eseményt idéznek elő a meghatározott időhatárokon belül vagy túllépve, a Knative a legjobb számukra. A Knative szerver nélküli keretrendszer konkrét használati esetei a következők:

Az eseményorientáltság elengedhetetlen. Ha az informatikai csapatok egy alkalmazást nem tudnak tranzakciók helyett események sorozataként elképzelni, a Knative funkcionális és hatékonysági okokból nem biztos, hogy jó választás.

A Knative előfeltételei és telepítése

Amint azt a fenti szakaszokban látjuk, a Knative olyan összetevők halmaza, mint például az események és a kiszolgálás, amely szolgáltatáshálón és munkaterhelés-rendezési fürtön fut. Vannak parancssori segédprogramok, amelyeket telepítenünk kell az egyszerű működéshez. Ezért szükségünk van néhány függőségre a telepítés folytatásához.

Előfeltételek

Számos lehetőség van a Kubernetes telepítésére. A Docker Desktop egy egyszerű Kubernetes-fürtöt tesz lehetővé, amely különféle célokat szolgál. Az egyszerű megközelítés a Kubernetes használata a Dockerben a Kubernetes-fürt és a Docker-tároló csomópontok futtatására. A fürttel való munka kényelmes módja a Knative parancssori eszköz használata.

A Knative CLI egyszerű és gyors felületet kínál az erőforrások létrehozásához. Segít olyan összetett feladatokban, mint a forgalom felosztása és az automatikus skálázás. A kényelmes módja a kompatibilis bináris letöltése a GitHub oldaláról.

Telepítés

Ha minden előfeltételünk megvan, folytathatjuk az összetevők telepítését. A fejlesztői környezethez van egy gyorsindítási bővítmény. A beépülő modul segít egy helyi Knative-fürt telepítésében a Knative-kliens használatával. A Quickstart bővítmény letölthető a hivatalos kiadási oldalról.

Következtetés: A Knative jövője

A Knative felváltotta a szerver nélküli számítástechnikát az alkalmazások automatikus skálázásával. Jelentős hatással van az átjárható és moduláris rendszerre.

A jövőben várhatóan a Knative fedezni fogja a jelenlegi hiányosságokat, és az egyik leghatékonyabb technológiává válik a szerver nélküli architektúra futtatásához.

A Knative technológia nagyobb befolyást gyakorol a fejlesztőkre, ha megvizsgálja előnyeit a szerver nélküli alternatívákkal szemben. A Knative nagyszerű időt takarít meg azáltal, hogy helyettesíti a Kubernetes-bővítmények építésének és karbantartásának szükségességét. A fejlesztők nagyon elégedettek a Knative tech-vel, mivel könnyen használható, és kiváló alternatívája a szerver nélküli megoldásoknak.

Tehát, ha maximalizálni szeretné a Kubernetes környezet erejét felhőmunkafolyamataiban, alkalmazza a Knative technológiát, és maga is szemtanúja legyen az előnyöknek.