Google har presentert en stabil utgivelse av Knative 1.0-plattformen, designet for å lage en serverløs datainfrastruktur utplassert på toppen av et containerisolasjonssystem basert på Kubernetes-plattformen. I tillegg til Google er også selskaper som IBM, Red Hat, SAP og VMware involvert i utviklingen av Knative. Utgivelsen av Knative 1.0 markerte stabiliseringen av applikasjonsutviklings-APIen, som fremover vil forbli uendret og forbli bakoverkompatibel. Prosjektkoden er skrevet i Go og distribuert under Apache 2.0-lisensen.
Den serverløse applikasjonsutviklingsmodellen som tilbys av Knative gir et ekstra abstraksjonsnivå for skysystemer, slik at funksjoner kan utføres som tjenester (FaaS, Functions as a service). Essensen av den serverløse modellen er at utvikleren implementerer logikk på nivå med individuelle funksjoner, uten å bekymre seg for å lage og administrere infrastrukturen for å kjøre applikasjoner, og uten å være knyttet til spesifikke serverapplikasjoner og skymiljøene som er nødvendige for driften.
Utvikling utføres uten å lage monolitiske applikasjoner på nivået med å forberede et sett med små individuelle funksjoner, som hver sikrer behandlingen av en spesifikk hendelse og er designet for å fungere separat uten referanse til miljøet (statløst, resultatet er ikke avhengig av forrige tilstand og innhold i filsystemet). Funksjoner lanseres kun når behovet oppstår og etter å ha behandlet hendelsen kan de umiddelbart fullføre arbeidet sitt, dvs. i motsetning til mikrotjenester, er det ingen krav til konstant tilstedeværelse av løpende miljøer som bruker ledige ressurser.
Knative-plattformen lanserer selv containere etter behov, plasserer forberedte funksjoner i dem, organiserer ledelsen og sørger for skalering av miljøene som kreves for å utføre disse funksjonene. Plattformen kan distribueres på egen hånd uten å være knyttet til eksterne skytjenester. Bare Kubernetes kreves for å kjøre. Verktøy er gitt for å støtte en rekke vanlige rammeverk, inkludert Django, Ruby on Rails og Spring. Kommandolinjegrensesnittet kan brukes til å kontrollere driften av plattformen.
Plattformen har to hovedkomponenter:
- Servering for å kjøre serverløse beholdere i Kubernetes med automatisk konfigurasjon av nettverkskommunikasjon, ruting, sporing av endringer (opprette øyeblikksbilder av vertskode og innstillinger) og opprettholde det nødvendige skaleringsnivået (opp til å redusere antall pods til null i fravær av aktivitet) . Utvikleren fokuserer kun på logikken alt relatert til utførelse håndteres av plattformen. For å organisere nettverksinteraksjon og ruteforespørsler kan nettverksundersystemene Ambassador, Contour, Kourier, Gloo og Istio brukes. Det er støtte for HTTP/2, gRPC og WebSockets.
- Eventing er et universelt system for abonnement (tilknytting av behandlere), levering og arrangementshåndtering. Lar deg lage asynkront kjørende applikasjoner ved å knytte dataressurser til datastrømmer ved hjelp av en objektmodell og hendelsesbehandlingsmekanisme.
Kilde: opennet.ru
