Kompania Google prezantoi versionin stabil të platformës Knative 1.0, e cila është krijuar për të ndihmuar në ndërtimin e infrastrukturës së përpunimeve pa server, e cila vendoset mbi sistemin e izolimit të konteinerëve në bazë të platformës Kubernetes. Përveç Google, në zhvillimin e Knative po marrin pjesë gjithashtu kompani të tilla si IBM, Red Hat, SAP dhe VMware. Lëshimi i Knative 1.0 shënoi stabilizimin e API-së për zhvillimin e aplikacioneve, e cila tani do të ruajë kompatibilitetin prapa dhe nuk do të ndryshojë më. Kodi i projektit është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.
Modeli pa server i zhvillimit të aplikacioneve i ofruar në Knative ofron një nivel shtesë abstraksioni për sistemet cloud, duke lejuar që funksionet të ekzekutohen si shërbime (FaaS, Functions as a Service). Thelbi i modelit pa server është që zhvilluesi implementon logjikën në nivelin e funksioneve të veçanta, pa u shqetësuar për krijimin dhe menaxhimin e infrastrukturës për ekzekutimin e aplikacioneve, dhe pa u lidhur me aplikacione serverësh të caktuar dhe mjediset cloud që janë të nevojshme për funksionimin e tyre.
Zhvillimi kryhet pa krijimin e aplikacioneve monolitike në nivel të përgatitjes së një grupi të vogël funksionesh të veçanta, secili prej të cilëve ofron përpunimin e një ngjarjeje të caktuar dhe është i ndërtuar për të punuar në mënyrë të veçuar pa u lidhur me mjedisin (stateless, rezultati nuk varet nga gjendja e kaluar dhe përmbajtja e FS). Funksionet fillohen vetëm kur është e nevojshme dhe pas përpunimit të ngjarjes mund të përfundojnë menjëherë punën e tyre, domethënë, ndryshe nga mikrosherbimet, nuk kërkohet që mjediset të jenë gjithmonë të aktivizuara, duke shpenzuar burime pa nevojë.
Platforma Knative aktivizon automatikisht kontejnerët kur është e nevojshme, vendos në to funksionet e përgatitura, organizon menaxhimin dhe siguron shkallëzimin e mjediseve të nevojshme për të ekzekutuar këto funksione. Platforma mund të vendoset në kapacitetet e saj pa u lidhur me shërbime të jashtme cloud. Për të filluar, kërkohet vetëm Kubernetes. Sigurohen mjete për mbështetje të kornizave të ndryshme, duke përfshirë Django, Ruby on Rails dhe Spring. Një ndërfaqe e komandës mund të përdoret për të menaxhuar funksionimin e platformës.
Platforma ofron dy komponente kryesore:
- Shërbimi për lançimin e konteinerëve pa server në Kubernetes me konfigurim automatik të ndërveprimit rrjetor, ruterizimin, ndjekjen e ndryshimeve (krijimi i snapshot-eve të kodit të vendosur dhe konfigurimeve) dhe ruajtjen e nivelit të nevojshëm të shpërndarjes (përfshirë reduktimin e numrit të pod-ëve në zero kur nuk ka aktivitet). Zhvilluesi përqendrohet vetëm në logjikën, ndërsa platforma merret me çdo gjë tjetër lidhur me ekzekutimin. Për organizimin e ndërveprimit rrjetor dhe ruterizimin e kërkesave mund të përdoren nënshkrime rrjetore si Ambassador, Contour, Kourier, Gloo dhe Istio. Ka mbështetje për HTTP/2, gRPC dhe WebSockets.
- Eventing është një sistem universalis i abonimit (prishjes së trajtuesve), dërgimit dhe menaxhimit të ngjarjeve. Lejon krijimin e aplikacioneve që punojnë asinkronisht duke lidhur burimet llogaritëse me fluxet e të dhënave përmes modelit të objektit dhe mekanizmit të trajtimit të ngjarjeve.
Burimi: opennet.ru
