Kompania Google shpalli një version stabil të platformës Knative 1.0, e cila është e destinuar për krijimin e infrastrukturës së computing pa serverë, e cila ndërtohet mbi sistemin e izolimit të konteinerëve të bazuar në Kubernetes. Përveç Google, në zhvillimin e Knative marrin pjesë gjithashtu kompani si IBM, Red Hat, SAP dhe VMware. Publikimi i Knative 1.0 shënoi stabilizimin e API-së për zhvillimin e aplikacioneve, e cila tani do të mbetet e pandryshuar dhe do të ruajë përputhshmërinë e prapme. 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 të ofruar nga Knative siguron një nivel të shtuar abstraksioni për sistemet cloud, duke lejuar ekzekutimin e funksioneve si shërbime (FaaS, Functions as a service). Thelbi i modelit pa serverë është se zhvilluesi zbatojnë 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ë veçantë dhe mjediset cloud të nevojshme për funksionimin e tyre.
Zhvillimi bëhet pa krijimin e aplikacioneve monolitike në nivelin e përgatitjes së një grupi të vogël funksionesh të veçanta, secila prej të cilave siguron përpunimin e një eventi të caktuar dhe është e dizajnuar për të punuar në mënyrë të veçantë pa u lidhur me mjedisin (stateless, rezultati nuk varet nga gjendja e kaluar dhe përmbajtja e sistemit të skedarëve). Funksionet aktivizohen vetëm kur është e nevojshme dhe pas përpunimit të eventit mund të përfundojnë menjëherë punën e tyre, pra ndryshe nga mikroshërbimet, nuk kërkohet që mjediset e aktivizuara të jenë gjithmonë të pranishme duke konsumuar burime në mënyrë pasive.
Platforma Knative aktivizon vetë kontejnerët sipas nevojës, vendos në to funksionet e përgatitura, organizon menaxhimin dhe siguron shkallëzimin e mjediseve të nevojshme për ekzekutimin e këtyre funksioneve. Platforma mund të implementohet në kapacitetet e saj pa u lidhur me shërbime cloud të jashtme. Për aktivizimin e saj kërkohet vetëm Kubernetes. Ofron mjete për mbështetje të kornizave të ndryshme standarde, duke përfshirë Django, Ruby on Rails dhe Spring. Për menaxhimin e punës së platformës mund të përdoret një ndërfaqe komande.
Platforma ofron dy komponentë kryesorë:
- Shërbimi për nisjen e konteinerëve pa server në Kubernetes me konfigurimin automatik të ndërveprimit rrjetor, drejtimin, ndjekjen e ndryshimeve (krijimin e snapshot-eve të kodit dhe konfigurimeve të vendosur) dhe mbajtjen e niveleve të nevojshme të shkallëzimit (madje deri në uljen e numrit të pod-eve në zero në mungesë aktiviteti). Zhvilluesi përqendrohet vetëm në logjikën, ndërsa platforma merret me gjithçka tjetër që ka të bëjë me ekzekutimin. Për organizimin e ndërveprimit rrjetor dhe drejtimin e kërkesave mund të përdoren nënshkallët rrjetore Ambassador, Contour, Kourier, Gloo dhe Istio. Pjesa mbështet HTTP/2, gRPC dhe WebSockets.
- Eventing është një sistem universalis i përngjitjes (bashkëngjitjes së trajtuesve), shpërndarjes dhe menaxhimit të ngjarjeve. Lejon krijimin e aplikacioneve që funksionojnë asinkronisht, duke bashkëngjitur burimet llogaritëse në rrjedhat e të dhënave përmes modelit objektiv dhe mekanizmit të përpunimit të ngjarjeve.
Burimi: opennet.ru
