A Google bemutatta a Knative 1.0 stabil változatát, amely a felhőalapú számítási infrastruktúra létrehozására szolgál, és amely a Kubernetes konténerizációs rendszerre épül. A Knative fejlesztésében a Google mellett olyan cégek is részt vesznek, mint az IBM, a Red Hat, a SAP és a VMware. A Knative 1.0 kiadása a fejlesztői API stabilizálódását jelenti, amely ezentúl nem fog változni és megőrzi a visszafelé kompatibilitást. A projekt kódja Go nyelven íródott, és az Apache 2.0 licenc alatt terjesztik.
A Knative által javasolt serverless alkalmazásfejlesztési modell további absztrakciós szintet biztosít a felhőszolgáltatásokhoz, lehetővé téve a funkciók szolgáltatásként való végrehajtását (FaaS, Functions as a Service). A serverless modell lényege, hogy a fejlesztő a logikát különálló funkciók szintjén valósítja meg, anélkül, hogy a szükséges infrastruktúra létrehozásával és kezelésével kellene foglalkoznia, és anélkül, hogy konkrét szerveralkalmazásokhoz vagy a működtetésükhöz szükséges felhői környezetekhez lenne kötve.
A fejlesztés nem monolitikus alkalmazások létrehozásával történik, hanem egy kis funkciókészlet előkészítése révén, amelyek közül mindegyik egy adott esemény feldolgozására szolgál, és önállóan képes működni, függetlenül a környezettől (stateless, az eredmény nem függ a korábbi állapottól és a fájlrendszer tartalmától). A funkciók csak szükség esetén indulnak el, és az események feldolgozása után azonnal befejezhetik a működésüket, azaz a mikroszolgáltatásokkal ellentétben nem igényelnek folyamatosan elérhető, inaktívan futó környezeteket, amelyek erőforrásokat fogyasztanak.
A Knative platform automatikusan indítja a konténereket igény szerint, elhelyezi bennük az előkészített funkciókat, kezeli azokat és biztosítja a szükséges környezetek skálázását a funkciók végrehajtásához. A platform saját infrastruktúráján is telepíthető, külső felhőszolgáltatásoktól függetlenül. A futtatáshoz csak Kubernetes szükséges. Támogatást nyújt számos népszerű keretrendszerhez, beleértve a Django-t, a Ruby on Rails-t és a Spring-et. A platform működésének irányítására parancssori felület is használható.
A platform két fő komponenst biztosít:
- Kubernetes nélküli konténerek futtatására szolgáló megoldás automatikus hálózati konfigurációval, útvonalirányítással, változások követésével (a telepített kód és beállítások pillanatképének létrehozása) és a szükséges skálázási szint fenntartásával (egészen a podok számának nullára csökkentéséig inaktivitás esetén). A fejlesztő csak a logikára összpontosít, minden, ami a futtatással kapcsolatos, a platformra hárul. A hálózati interakciók és a kérésirányítás szervezésére az Ambassador, Contour, Kourier, Gloo és Istio hálózati alrendszerei használhatók. Támogatott a HTTP/2, a gRPC és a WebSocket.
- Eventing – egy általános eseménykezelő, szállító és kezelő rendszer. Lehetővé teszi aszinkron működő alkalmazások létrehozását, számítási erőforrások csatolásával az adatfolyamokhoz objektummodellek és eseményfeldolgozási mechanizmusok segítségével.
Forrás: opennet.ru
