Google esitles Knative 1.0 stabiilset väljalaskmist, mis on mõeldud serverita arvutuste infrastruktuuri loomiseks, mis on juurutatud Kubernetesel põhineva konteinerite isoleerimissüsteemi peale. Lisaks Googlest osalevad Knative'i arendamisel ka sellised ettevõtted nagu IBM, Red Hat, SAP ja VMware. Knative 1.0 väljaanne tähistab API stabiliseerimist rakenduste arendamiseks, mis ei muutu enam ning säilitab tagasipöördumise ühilduvuse. Projekti kood on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi all.
Knative'i pakutav serverita rakenduste arendusmudel (serverless) annab täiendava abstraktsiooni tasandi pilvesüsteemidele, võimaldades funktsioonide töötlemist teenustena (FaaS, Functions as a Service). Serverita mudeli olemus on see, et arendaja rakendab loogika üksikute funktsioonide tasemel, ilma et peaks muretsema rakenduste käitamiseks vajaliku infrastruktuuri loomise ja haldamise üle ega kinnituma konkreetsetele serveripõhistele rakendustele või nende toimimiseks vajalikele pilvekeskkondadele.
Arendamine toimub ilma monoliitsete rakenduste loomata, keskendudes väikeste eraldiseisvate funktsioonide kogumile, millest igaüks tagab kindla sündmuse töötlemise ja on mõeldud iseseisvaks tööks, ilma keskkonnaga seotud sõltuvusteta (stateless, tulemus ei sõltu varasest olekust ja failisüsteemi sisust). Funktsioonid käivitatakse ainult vajaduse tekkimisel ning saavad pärast sündmuse töötlemist koheselt lõpetada oma töö, st erinevalt mikroteenustest ei ole pidevalt käivitatud keskkondi, mis tarbiksid ressursse tühikäigul, vaja.
Knative platvorm käivitab konteinerid automaatselt vastavalt vajadusele, paigutab neisse ettevalmistatud funktsioonid, korraldab haldust ja tagab keskkondade skaleerimise, mis on vajalik nende funktsioonide täitmiseks. Platvormi saab kasutada oma ressursse, ilma et oleks seotud välistest pilveteenustest. Käivitamiseks on vajalik ainult Kubernetes. Pakutakse vahendeid erinevate standardsete raamistikute toetamiseks, sealhulgas Django, Ruby on Rails ja Spring. Platvormi haldamiseks võib kasutada käsurida.
Platvorm pakub kahte põhikomponenti:
- Serving, et käivitada serveriteta konteinerid Kuberneteses automaatse võrgustiku seadistamise, marsruutimise, muudatuste jälgimise (paigutatud koodi ja seadete ärakirjade loomine) ning vajaliku skaleerimise taseme säilitamisega (kuni pod-ide arvu vähendamiseni nullini, kui tegevust ei toimu). Arendaja keskendub ainult loogikale, kõik, mis on seotud täitmisega, on platvormi vastutus. Võrgustiku seadistamiseks ja päringute marsruutimise korraldamiseks võivad kasutada võrgualused süsteemid nagu Ambassador, Contour, Kourier, Gloo ja Istio. Toetatakse HTTP/2, gRPC ja WebSocketse.
- Eventing on universaalne tellimissüsteem (käsitlejate kinnitamine), sündmuste saatmine ja haldamine. See võimaldab luua asünkroonselt töötavaid rakendusi, kinnitades arvutusressursid andmevoogudele objekti mudeli ja sündmuste töötlemismehhanismi abil.
Allikas: opennet.ru
