Google představil stabilní verzi platformy Knative 1.0, která je navržena tak, aby vytvořila bezserverovou výpočetní infrastrukturu nasazenou nad systémem izolace kontejnerů založeným na platformě Kubernetes. Kromě Googlu se na vývoji Knative podílejí také společnosti jako IBM, Red Hat, SAP nebo VMware. Vydání Knative 1.0 znamenalo stabilizaci rozhraní API pro vývoj aplikací, které od nynějška zůstane nezměněno a zůstane zpětně kompatibilní. Kód projektu je napsán v Go a distribuován pod licencí Apache 2.0.
Bezserverový model vývoje aplikací nabízený společností Knative poskytuje další úroveň abstrakce pro cloudové systémy a umožňuje, aby funkce byly vykonávány jako služby (FaaS, Funkce jako služba). Podstatou bezserverového modelu je, že vývojář implementuje logiku na úrovni jednotlivých funkcí, bez starostí s vytvářením a správou infrastruktury pro běh aplikací a bez vazby na konkrétní serverové aplikace a cloudová prostředí nezbytná pro jejich provoz.
Vývoj probíhá bez vytváření monolitických aplikací na úrovni přípravy sady malých jednotlivých funkcí, z nichž každá zajišťuje zpracování konkrétní události a je navržena tak, aby fungovala samostatně bez vazby na prostředí (bezstavová, výsledek nezávisí na předchozí stav a obsah systému souborů). Funkce se spouštějí pouze v případě potřeby a po zpracování události mohou okamžitě dokončit svou práci, tzn. na rozdíl od mikroslužeb není vyžadována stálá přítomnost běžících prostředí, která spotřebovávají nečinné zdroje.
Samotná platforma Knative spouští kontejnery podle potřeby, umísťuje do nich připravené funkce, organizuje správu a zajišťuje škálování prostředí potřebných k výkonu těchto funkcí. Platformu lze nasadit samostatně bez vazby na externí cloudové služby. Ke spuštění je vyžadován pouze Kubernetes. K dispozici jsou nástroje pro podporu různých běžných frameworků, včetně Django, Ruby on Rails a Spring. Rozhraní příkazového řádku lze použít k ovládání provozu platformy.
Platforma nabízí dvě hlavní součásti:
- Poskytování pro běh bezserverových kontejnerů v Kubernetes s automatickou konfigurací síťové komunikace, směrování, sledování změn (vytváření snímků hostovaného kódu a nastavení) a udržování požadované úrovně škálování (až do snížení počtu podů na nulu při absenci aktivity) . Vývojář se soustředí pouze na logiku, vše, co souvisí s prováděním, řeší platforma. Pro organizaci síťových interakcí a požadavků na směrování lze použít síťové subsystémy Ambassador, Contour, Kourier, Gloo a Istio. K dispozici je podpora pro HTTP/2, gRPC a WebSockets.
- Eventing je univerzální systém pro předplatné (připojování handlerů), doručování a správu událostí. Umožňuje vytvářet asynchronně běžící aplikace připojením výpočetních zdrojů k datovým tokům pomocí objektového modelu a mechanismu zpracování událostí.
Zdroj: opennet.ru
