Rychlý průvodce Knative Serverless Framework pro začátečníky

Bezserverové frameworky jsou v posledních letech žádané a mezi vývojáři jsou svědky zvýšeného přijetí.

Přesto jsou kontejnerové aplikace již populární a Kubernetes mezi podniky také.

Kubernetes je bezpochyby skvělý nástroj s dobrým potenciálem. Jeho ekosystém se také rozrůstá s řadou nových nástrojů a nejnovějších technologií, jako je Knative, která má sílu udělat Kubernetes ještě lepší.

Knative byl představen s cílem překonat situace, které vedou k selhání, a vytvořit základní standard pro cloudové platformy a cloudovou nativní orchestraci.

Jinými slovy, bezserverový framework Knative vyhovuje potřebám společnosti mnohem lépe než jiná cloudová nasazení bez serveru.

V této příručce budu mluvit o Knative, jeho výhodách, případech použití, postupu instalace, pracovním postupu a dalších.

Tady jsme!

Co je Knative?

Knative je bezserverový framework založený na Kubernetes, který byl poprvé vyvinut společností Google. Načítá a spouští funkce bez serveru na základě požadavků společnosti, čímž minimalizuje plýtvání. Jedná se o open-source projekt, který přidává komponenty pro nasazení, spouštění a správu aplikací bez serveru na Kubernetes.

Primárním účelem bezserverového frameworku Knative je správa standardů pro multiplatformní orchestraci. To je implementováno integrací funkce vytváření kontejnerů, automatického škálování, modelů událostí a správy pracovní zátěže.

Dříve existovala řada jiných open-source řešení než Knative. Každé řešení má svůj způsob nasazení, což může způsobit fragmentaci trhu, protože chybí standardizované postupy. To znamená, že výběr konkrétního poskytovatele je nezbytný, pokud chcete konkrétní funkci systému.

Do fronty se však začaly dostávat problémy s migrací. A aby se těmto problémům předešlo, byl představen Knative serverless framework. Pokud tedy máte potíže se začleněním jakýchkoli úkolů, Knative to dokáže efektivně provést v rámci potrubí založeného na Kubernetes.

Knative má tři kusy:

  • Knative Build: Vytváří obrazy kontejnerů a zpřístupňuje je ze zdrojového kódu.
  • Knative Serving: Používá Istio a Kubernetes k připojení a nasazení těchto obrazů kontejnerů prostřednictvím přidělených prostředků infrastruktury.
  • Knative Eventing: Umožňuje uživatelům definovat spouštěče událostí a umožňuje uživatelům přidružit spouštěče událostí ke kontejnerizovaným funkcím.

Kdykoli Knative identifikuje událost, definuje přidružený proces, který ji spustí na vyžádání. S Knative není potřeba přidělovat kontejnerové uzly, clustery a pody pro práci, protože Knative odevzdává hostitelské zdroje pouze při spuštění daného procesu. Tímto způsobem Knative vyvažuje výhody bez serverů a kontejnerů.

Základní koncepty Knative

Pojďme diskutovat o hlavních konceptech Knative Serverless Framework a o tom, jak se vztahují k primitivům Knative.

Stavět

Knative-building pomáhá využívat a rozšiřovat stávající primitiva Kubernetes, což vám umožňuje spouštět sestavení kontejnerů od původu. Umožňuje zdrojový kód ze závislostí a úložiště, vytváření obrázků kontejnerů a jejich registraci.

  Jak importovat kontakty LinkedIn a zároveň zachovat soukromí vašeho e-mailu

Události

Událost vám pomůže vytvořit lepší komunikaci mezi volně spojenými konzumenty událostí a producenty pro budování architektury řízené událostmi. Knative zařazuje tyto události do fronty, která musela být provedena automaticky bez skriptu vývojářů.

Později jsou tyto akce rozváženy do kontejnerů. Poté odešle zdroje producentům událostí, aby provedli úkoly. To sníží zátěž vývojáře při vytváření kódu pro navázání připojení.

Funkce

Funkce je nezávislá jednotka nasazení a služba obsluhy Knative, jako je mikroslužba. Jeho kód je napsán tak, aby provedl jeden úkol, například:

  • Zpracování souboru v databázi
  • Uložení uživatele do databáze
  • Provádění plánované práce

Knative bezserverový framework je navržen tak, aby vám umožnil efektivně vyvíjet a nasazovat funkce a spravovat je.

Pluginy

Snadno rozšiřte nebo přepište funkčnost bezserverového rámce Knative pomocí pluginů. Každý soubor serverless.yml obsahuje vlastnost pluginu, která obsahuje různé pluginy.

Zdroje

Zdroje jsou komponenty infrastruktury bez serveru Knative, které vaše funkce používá, včetně:

  • Zdroj události AWS SQS
  • Naplánovaná úloha (spouštět každých 5 minut, 10 minut atd.)
  • Zdroj události Kafka

A více.

Služby

Služby jsou jako projekt. Služba je tedy organizační jednotkou bezserverového rámce Knative. Ačkoli můžete mít mnoho služeb pro jednu aplikaci, můžete si službu představit jako soubor projektu.

Zde budete moci definovat funkce, události a zdroje, vše v jediném souboru s názvem serverless.yml, serverless.json nebo serverless.js. Když nasadíte služby s bezserverovým rámcem, vše v souboru se nasadí najednou.

Porce

Knative-serving je zabudován v Istio a Kubernetes, který podporuje nasazení aplikací. Umožňuje rychlý vývoj bezserverových kontejnerů, síťové programování a automatické škálování pro komponenty Istio. Knative-serving považuje kontejnery za škálovatelnou službu, která se může pohybovat od jedné instance po mnoho instancí kontejneru.

Vlastnosti Knative

Pojďme diskutovat o některých funkcích bezserverového rámce Knative:

  • Knative je bezserverový framework založený na Kubernetes, který vám umožňuje nasadit služby do Kubernetes.
  • Snadno integruje Knative s podporovaným prostředím
  • Vývojáři mohou přímo používat Kubernetes API s pomocí Knative k nasazení služeb bez serveru
  • Umožňuje uživatelům spouštět služby bez serveru pomocí systému událostí Knative

Jak Knative funguje?

Knative serverless framework funguje jako segment řízení událostí a propojuje Istio a Kubernetes. Kubernetes pracuje jako orchestrátor pro mikroslužby a kontejnery. Na druhé straně Istio je technologie s otevřeným zdrojovým kódem, která spojuje různé komponenty za účelem interakce s uživatelem a se sebou samými.

Knative poskytuje uživatelům několik komponent zaměřených na provádění základní každodenní práce. Tyto komponenty se znovu a znovu používají v různých aplikacích. Vývojář může použít jakýkoli programovací jazyk. Proto nepotřebujete specifické znalosti jazyků, protože Knative rozpoznává pouze obrázky kontejnerů.

Knative serverless framework má tři komponenty, které jsou klíčem k jeho fungování.

Stavba nových kontejnerů

Komponenta sestavení je zodpovědná za stavbu nových kontejnerů. Dokáže převést zdrojové kódy do kontejneru. Knative lze nakonfigurovat tak, aby vyhovoval specifickým obchodním potřebám.

Nejprve Knative vytáhne zdrojový kód z knihovny jako Github. Poté jsou přidány základní závislosti, takže kód běží efektivně. Obrazy kontejnerů jsou poté vytvořeny a vloženy do souborů, ke kterým má platforma Kubernetes přístup.

  Kdy bude Discovery Plus k dispozici na PS4?

Kontejner je zpřístupněn vývojářům pomocí Kubernetes a Knative. Kontejnery se tedy staví tak dlouho, dokud je znám původ kódu.

Obsluhování nebo provozování platformy

Obslužná komponenta je zodpovědná za chod platformy. To zahrnuje:

  • Konfigurace: Konfigurace je jistá při správě více verzí služby. Pokaždé, když dojde k nasazení nové funkce kontejneru, Knative uloží stávající verzi a vytvoří novou s nejnovějšími změnami a funkcemi. Navíc Knative definuje stav služby.
  • Automatické škálování: Chcete-li lépe pracovat bezserverové kontejnery, musíte být schopni automaticky škálovat kontejnery nahoru nebo dolů. Knative může v případě potřeby automaticky škálovat služby mnoha lidem.
  • Inteligentní směrování služeb: Je důležitou součástí pracovního mechanismu Knative. Umožňuje vývojářům nasměrovat tok a objem provozu na různé existující verze mikroslužeb. Při zavádění nových funkcí a modrozelených strategií nasazení lze použít inteligentní směrování služeb.

Umožňuje vám vystavit zlomek uživatelů nedávnému testování a verzi a postupně nasměrovat obrovský provoz na novou verzi.

Eventing k definování funkcí

Eventová složka Knative je zodpovědná za popis funkce Knative. Umožňuje definovat běh kontejnerů na základě událostí. Různé události spouštějí specifické funkce kontejnerů.

Vývojáři mohou definovat spouštěče událostí a související kontejnery, aby nechali Knative dělat svou práci. Knative zpracovává seznam událostí a doručení událostí.

Výhody Knative

Knative poskytuje služby, jako je správa trasy, postupné uvolňování a připojení služeb. Může se pochlubit rozsáhlou komunitou. Pojďme diskutovat o tom, jak Knative ovlivňuje společnosti, aby přijaly tuto technologii.

  • Na rozdíl od jiných řešení má Knative standardní události a je kompatibilní s řešením FaaS. Nabízí standardní rámec CloudEvent, který pomáhá při navrhování architektury bez serveru.
  • Přestože Knative není PaaS, umožňuje vám vytvořit bezserverové PaaS s bezserverovou orchestrační platformou.
  • Knative má plnohodnotný a vyzrálý bezserverový design.
  • Podporuje více platforem a poskytuje vám univerzální standard mezi poskytovateli cloudu, který eliminuje možnost vázat dodavatele konkrétním řešením.

  • Knative poskytuje flexibilní rámec.
  • Podporuje proporcionální fázované uvolňování.
  • V kontejnerovém prostředí můžete zažít ekosystém bez serveru.
  • Knative odstraňuje spolehlivost správy a nástrojů.
  • Implementací Kubernetes můžete rychle migrovat k jiným cloudovým poskytovatelům, kteří jsou integrovaní s Knative.
  • Nabízí výpočetní model řízený žádostí.
  • Umožňuje vám spravovat pracovní postupy jako službu.
  • S Knative můžete zpracovávat data IoT, spouštět kontroly přístupnosti a ověřovat konfigurace vašich bezpečnostních skupin.
  • Umožňuje vývojářům soustředit se na kódování a nechat je rychle vytvářet iterativní kód.
  • Zajišťuje, že vývojáři začlení nové verze.
  • Model Knative založený na událostech pomáhá implementovat návrhy, včetně předplatného, ​​připojení k externímu systému a registrace.

Výzvy Knative (a některá řešení)

Výzvy v oblasti efektivity

Knative Framework, který podporuje správné aplikace, poskytuje lepší výkon za minimální náklady. Nevhodná kombinace aplikací však může vést k vyšším nákladům a nedostatečně využitým zdrojům kontejnerů. To by mohlo vést ke špatnému výkonu aplikací, což je největší výzva nasazení Knative bez serveru.

Špatně velký fond zdrojů nebo nesprávné aplikace tedy mohou zničit mnoho výhod Knative.

Tento problém můžete překonat provedením testů pro ověření množství zdrojů a kombinace aplikací na Knative. Změřte zatížení událostmi dimenzováním průměrného a maximálního zatížení pro každou z nich a odhadněte celkovou spotřebu zdrojů. Tento postup opakujte pro několik aplikací, abyste vytvořili a spustili zkušební konfiguraci pro ověření odhadů.

  Jak vybrat to nejlepší

Funkční výzvy

Funkční výzvy Knative by mohly být:

  • Knative závisí na funkcích, které vyhovují bezstavovému modelu. To znamená, že v samotné komponentě nejsou uložena žádná data. Vývoj funkcí není obtížná fáze, ale vyžaduje mírný posun v přístupu, což znamená, že jediná chyba může zničit výkon softwaru.
  • Obchodní data se skládají z transakcí s více kroky a bezstavové funkce udržují kontext ve všech krocích. Knative nemá takovou schopnost jako veřejné cloudové bezserverové nástroje.

Pravidelné sledování a odstraňování problémů vám může pomoci udržet váš výkon na slušném skóre.

Provozní výzvy

Ve srovnání s bezserverovými nabídkami ve veřejném cloudu existuje u Knative provozní výzva. Správci neřídí základní servery s veřejným cloudem. Budou však muset spravovat servery spolu s Kubernetes, kontejnery, Knative a samotným Istio.

Knative minimálně rozšiřuje provoz a složitost vývoje pro společnosti, které se již zavázaly používat Kubernetes a kontejnery. Ti, kteří se zavázali k servisním sítím a mikroslužbám, najdou Knative jako přirozené rozšíření.

Use Cases of Knative

Pro aplikace, které vedou k různému počtu událostí, které zůstávají v rámci nebo nad stanovenými limity, je pro ně nejlepší Knative. Mezi konkrétní případy použití bezserverového rámce Knative patří:

Zásadní je orientace akce. Pokud si IT týmy nedokážou představit aplikaci jako sérii událostí místo transakcí, Knative nemusí být dobrou volbou z funkčních a efektivnějších důvodů.

Předpoklady a instalace Knative

Jak vidíme ve výše uvedených částech, Knative je sada komponent, jako je eventing a service, které běží na servisní síti a clusteru orchestrace pracovního zatížení. Existují nástroje příkazového řádku, které musíme nainstalovat, abychom mohli přímo pracovat. Potřebujeme tedy několik závislostí, abychom zajistili, že můžeme pokračovat v instalaci.

Předpoklady

Existuje několik možností instalace Kubernetes. Docker Desktop umožňuje snadný cluster Kubernetes, který slouží různým účelům. Jednoduchým přístupem je použití Kubernetes v Dockeru ke spuštění clusteru Kubernetes spolu s uzly kontejneru Docker. Pohodlným způsobem práce s clusterem je použití nástroje příkazového řádku Knative.

Knative CLI nabízí snadné a rychlé rozhraní pro vytváření zdrojů. Pomáhá při složitých úlohách, jako je rozdělení provozu a automatické škálování. Pohodlným způsobem je stáhnout si kompatibilní binární soubor ze stránky GitHub.

Instalace

Jakmile máme všechny předpoklady, můžeme přistoupit k instalaci komponent. Pro vývojové prostředí existuje plugin pro rychlý start. Plugin pomáhá při instalaci místního clusteru Knative pomocí klienta Knative. Plugin pro rychlý start si můžete stáhnout z oficiální stránky vydání.

Závěr: Budoucnost Knative

Knative nahradil bezserverové výpočty poskytováním automatického škálování aplikací. Má významný dopad na interoperabilní a modulární systém.

V budoucnu se očekává, že Knative pokryje současné nedostatky a stane se jednou z nejúčinnějších technologií pro provoz bezserverové architektury.

Technologie Knative má pro vývojáře větší vliv, protože se dívá na její výhody oproti alternativám bez serveru. Knative vám pomůže ušetřit skvělý čas tím, že nahradí potřebu vytvářet a udržovat rozšíření Kubernetes. Vývojáři jsou s technologií Knative docela spokojeni, protože se snadno používá a je skvělou alternativou k řešení bez serveru.

Pokud tedy chcete maximalizovat výkon prostředí Kubernetes ve svých cloudových pracovních postupech, osvojte si technologii Knative a sami se přesvědčte o výhodách.