Spoločnosť Google predstavila stabilnú verziu platformy Knative 1.0, ktorá je určená na vytváranie infraštruktúry bezserverových výpočtov, nasadzovanej nad systémom kontajnerovej izolácie na báze platformy Kubernetes. Okrem Googlu sa na vývoji Knative zúčastňujú aj ďalšie spoločnosti, ako IBM, Red Hat, SAP a VMware. Vydanie Knative 1.0 znamenalo stabilizáciu API pre vývoj aplikácií, ktoré odteraz nebude meniť a zachová spätnú kompatibilitu. Kód projektu je napísaný v jazyku Go a šíri sa pod licenciou Apache 2.0.
Navrhovaný v Knative bezserverový model vývoja aplikácií (serverless) poskytuje ďalšiu úroveň abstrakcie pre cloudové systémy, umožňujúcu vykonávať funkcie ako služby (FaaS, Functions as a service). Podstata bezserverového modelu spočíva v tom, že vývojár implementuje logiku na úrovni jednotlivých funkcií, bez nutnosti sa zaoberať vytváraním a spravovaním infraštruktúry na spúšťanie aplikácií, a nie je viazaný na konkrétne serverové aplikácie a potrebné cloudové prostredia pre ich fungovanie.
Vývoj sa uskutočňuje bez vytvárania monolitných aplikácií na úrovni prípravy súboru malých jednotlivých funkcií, pričom každá z nich zabezpečuje spracovanie určitej udalosti a je navrhnutá na samostatnú prácu bez väzby na prostredie (stateless, výsledok nezávisí od predchádzajúceho stavu a obsahu FS). Funkcie sa spúšťajú iba v prípade potreby a po spracovaní udalosti môžu ihneď ukončiť svoju prácu, t.j. na rozdiel od mikroslužieb nie je potrebná stála prítomnosť spustených prostredí, ktoré konzumujú zdroje na prázdno.
Platforma Knative sama spúšťa kontajnery podľa potreby, umiestňuje do nich pripravené funkcie, organizuje správu a zabezpečuje škálovanie prostredí potrebných na vykonávanie týchto funkcií. Platforma môže byť nasadená na svojich vlastných prostriedkoch bez väzby na externé cloudové služby. Na spustenie je potrebný len Kubernetes. Poskytujú sa prostriedky na podporu rôznych typových rámcov, vrátane Django, Ruby on Rails a Spring. Na správu činnosti platformy môže byť použitý príkazový riadok.
Platforma poskytuje dva hlavné komponenty:
- Servírovanie pre spúšťanie bezserverových kontajnerov v Kubernetes s automatickou konfiguráciou sieťovej interakcie, smerovaním, sledovaním zmien (vytváraním snímok nasadeného kódu a nastavení) a udržiavaním požadovanej úrovne škálovania (až po zníženie počtu pod-ov na nulu pri absencii aktivity). Vývojár sa zameriava iba na logiku, všetko, čo sa týka vykonávania, zabezpečuje platforma. Na organizáciu sieťovej interakcie a smerovanie požiadaviek môžu byť použité sieťové subsystémy Ambassador, Contour, Kourier, Gloo a Istio. Je podporovaný HTTP/2, gRPC a WebSockets.
- Eventing — univerzálny systém prihlásenia (pripájania spracovateľov), doručovania a správy udalostí. Umožňuje vytvárať asynchrónne aplikácie pripojením výpočtových zdrojov k tokov dát pomocou objektového modelu a mechanizmu spracovania udalostí.
Zdroj: opennet.ru
