En rask guide til Knative Serverless Framework for nybegynnere

Serverløse rammer er etterspurt de siste årene og har vært vitne til økt bruk blant utviklere.

Ikke desto mindre er containerbaserte applikasjoner allerede populære, og det samme er Kubernetes blant bedrifter.

Kubernetes er uten tvil et flott verktøy med godt potensial. Økosystemet vokser også med en rekke nye verktøy og de nyeste teknologiene, for eksempel Knative, som har kraften til å gjøre Kubernetes enda bedre.

Knative ble introdusert for å overvinne situasjoner som fører til feil og etablere en kjernestandard for skyplattformer og skybasert orkestrering.

Med andre ord kan det Knative serverløse rammeverket passe en bedrifts behov mye bedre enn andre skybaserte serverløse distribusjoner.

I denne veiledningen vil jeg snakke om Knative, fordelene, brukstilfeller, installasjonsprosedyre, arbeidsprosedyre og mer.

Her går vi!

Hva er Knative?

Knative er et Kubernetes-basert serverløst rammeverk som først ble utviklet av Google. Den laster og kjører serverløse funksjoner basert på bedriftens krav, og minimerer dermed avfall. Det er et åpen kildekode-prosjekt som legger til komponenter for å distribuere, kjøre og administrere serverløse applikasjoner på Kubernetes.

Hovedformålet med Knative serverløse rammeverk er å administrere standardene for orkestrering på tvers av plattformer. Dette implementeres ved å integrere funksjonen for oppretting av containere, automatisk skalering, hendelsesmodeller og administrasjon av arbeidsbelastning.

Tidligere var det en rekke andre åpen kildekode-løsninger enn Knative. Hver løsning har sin distribusjonsmåte, noe som kan forårsake markedsfragmentering siden det er mangel på standardisert praksis. Dette betyr at det er nødvendig å velge en spesifikk leverandør hvis du vil ha en bestemt systemfunksjon.

Imidlertid begynte migrasjonsproblemer å komme til fronten. Og for å unngå slike problemer ble det Knative serverløse rammeverket introdusert. Så hvis du sliter med å innlemme noen oppgaver, kan Knative effektivt gjøre det innenfor den Kubernetes-baserte pipeline.

Knative har tre deler:

  • Knative Build: Den bygger containerbilder og gjør dem tilgjengelige fra kildekoden.
  • Knative Servering: Den bruker Istio og Kubernetes for å koble til og distribuere disse containerbildene gjennom de tilordnede infrastrukturressursene.
  • Knative Eventing: Den lar brukere definere hendelsestriggere og lar brukere assosiere hendelsestriggere med containeriserte funksjoner.

Når Knative identifiserer en hendelse, definerer den den tilknyttede prosessen for å kjøre den på forespørsel. Med Knative er det ikke nødvendig å tildele containernoder, klynger og poder for arbeid siden Knative forplikter vertsressurser bare når en gitt prosess kjører. På denne måten balanserer Knative serverløse og containerfordeler.

Kjernekonsepter for Knative

La oss diskutere hovedkonseptene til Knative Serverless Framework og hvordan de relaterer seg til Knative-primitivene.

Bygge

Knative-bygging hjelper til med å utnytte og utvide de eksisterende Kubernetes» primitiver, slik at du kan kjøre på containerbygg fra opprinnelsen. Den aktiverer kildekoden fra avhengighetene og depotet, bygger containerbilder og registrerer dem.

arrangementer

Arrangementet hjelper deg med å skape bedre kommunikasjon mellom løst sammenkoblede eventforbrukere og produsenter for å bygge den arrangementsdrevne arkitekturen. Knative setter disse hendelsene i en kø som måtte utføres automatisk uten utviklerens skript.

  Hvordan fungerer laser- og lampeprojektorer, og hvilke passer for deg?

Senere leveres disse arrangementene til containerne. Den sender deretter feeds til arrangementsprodusentene for å utføre oppgaver. Dette vil redusere utviklerens arbeidsmengde med å lage kode for tilkoblingsetablering.

Funksjoner

En funksjon er en uavhengig distribusjonsenhet og en Knative-serveringstjeneste, som en mikrotjeneste. Koden er skrevet for å utføre en enkelt oppgave, for eksempel:

  • Behandling av en fil i en database
  • Lagre en bruker i en database
  • Utføre et planlagt arbeid

Knative serverløse rammeverk er designet for å la deg utvikle og distribuere funksjoner effektivt og administrere dem.

Plugins

Utvid eller overskriv enkelt funksjonaliteten til Knative serverløse rammeverk ved hjelp av plugins. Hver serverless.yml-fil inneholder en plugin-egenskap som inneholder ulike plugins.

Ressurser

Ressurser er de Knative serverløse infrastrukturkomponentene som funksjonen din bruker, inkludert:

  • AWS SQS-hendelseskilde
  • En planlagt oppgave (kjør hvert 5. minutt, 10. minutt osv.)
  • En Kafka-begivenhetskilde

Og mer.

Tjenester

Tjenester er som et prosjekt. Derfor er en tjeneste det Knative serverløse rammeverkets organisasjonsenhet. Selv om du kan ha mange tjenester for én applikasjon, kan du tenke på tjenesten som en prosjektfil.

Det er der du vil være i stand til å definere funksjonene, hendelsene og ressursene, alt i en enkelt fil med tittelen serverless.yml, serverless.json eller serverless.js. Når du distribuerer tjenestene med det serverløse rammeverket, distribueres alt i filen samtidig.

Servering

Knative-servering er bygget i Istio og Kubernetes som støtter applikasjonsdistribusjon. Det muliggjør rask utvikling av serverløse beholdere, nettverksprogrammering og automatisk skalering for Istio-komponenter. Knative-servering anser containere som en skalerbar tjeneste som kan variere fra én forekomst til mange containerforekomster.

Funksjoner av Knative

La oss diskutere noen av funksjonene til Knative serverløse rammeverk:

  • Knative er et Kubernetes-basert serverløst rammeverk som lar deg distribuere tjenester til Kubernetes.
  • Den integrerer enkelt Knative med det støttede miljøet
  • Utviklere kan bruke Kubernetes API direkte ved hjelp av Knative for å distribuere serverløse tjenester
  • Det gjør det mulig for brukere å utløse serverløse tjenester ved hjelp av arrangementssystemet til Knative

Hvordan fungerer Knative?

Knative serverløst rammeverk fungerer som et hendelsesstyringssegment og kobler sammen Istio og Kubernetes. Kubernetes jobber som orkestrator for mikrotjenester og containere. Istio, på den annen side, er en åpen kildekode-mesh-teknologi som bringer ulike komponenter sammen for å samhandle med brukeren og seg selv.

Knative gir brukere flere komponenter målrettet for å utføre grunnleggende daglige arbeid. Disse komponentene brukes igjen og igjen i en rekke bruksområder. En utvikler kan bruke et hvilket som helst programmeringsspråk. Derfor trenger du ikke spesifikk kunnskap om språk, da Knative kun gjenkjenner containerbilder.

Det er tre komponenter i det Knative serverløse rammeverket som er nøklene til dets funksjon.

Bygge nye containere

Byggekomponenten er ansvarlig for å bygge nye containere. Den kan konvertere kildekoder til en beholder. Knative kan konfigureres for å møte forretningsspesifikke behov.

Først trekker Knative ut kildekoden fra biblioteket som Github. Deretter legges underliggende avhengigheter til slik at koden kjører effektivt. Containerbilder konstrueres deretter og legges i filer som Kubernetes-plattformen har tilgang til.

Beholderen gjøres tilgjengelig for utviklere som bruker Kubernetes og Knative. Dermed bygges containere så lenge opprinnelsen til koden er kjent.

  Horizonate er et datosentrert oppgavestyringsverktøy for små team

Servering eller drift av plattformen

Serveringskomponenten er ansvarlig for driften av plattformen. Det involverer:

  • Konfigurasjon: Konfigurasjonen er sikker ved administrasjon av flere versjoner av tjenesten. Hver gang det er en distribusjon av den nye funksjonen til en container, lagrer Knative den eksisterende versjonen og oppretter en ny med de siste endringene og funksjonene. Dessuten definerer Knative tilstanden til en tjeneste.
  • Auto-skalering: For å bedre fungere serverløse beholdere, må du være i stand til å autoskalere beholderne enten opp eller ned. Knative kan autoskalere tjenester til mange om nødvendig.
  • Intelligent tjenesteruting: Det er en viktig del av Knative-arbeidsmekanismen. Den lar utviklere styre flyten og mengden trafikk til forskjellige eksisterende versjoner av mikrotjenestene. Mens vi introduserer nye funksjoner og blågrønne distribusjonsstrategier, kan intelligent tjenesteruting brukes.

Den lar deg eksponere en brøkdel av brukerne for den siste testingen og versjonen og gradvis rute enorm trafikk til den nye versjonen.

Eventing for å definere funksjoner

Eventing-komponenten til Knative er ansvarlig for å beskrive funksjonen til Knative. Det lar deg definere driften av containerne basert på hendelser. Ulike hendelser utløser spesifikke funksjoner til containere.

Utviklere kan definere hendelsestriggerne og de tilhørende beholderne for å la Knative gjøre jobben sin. Knative håndterer listen over arrangementer og levering av arrangementene.

Fordeler med Knative

Knative leverer tjenester som ruteadministrasjon, trinnvis utgivelse og tjenestetilkobling. Det har et stort fellesskap. La oss diskutere hvordan Knative påvirker selskaper til å ta i bruk denne teknologien.

  • I motsetning til andre løsninger har Knative standard arrangementer og er kompatibel med FaaS-løsningen. Den tilbyr et CloudEvent-standardrammeverk som hjelper til med å designe serverløs arkitektur.
  • Selv om Knative ikke er en PaaS, lar den deg lage en serverløs PaaS med den serverløse orkestreringsplattformen.
  • Knative har en fullverdig og moden serverløs design.
  • Den støtter kryssplattformer og gir deg en universell standard blant skyleverandører for å eliminere sjansen for å binde leverandører med en spesifikk løsning.

  • Knative gir en fleksibel ramme.
  • Den støtter proporsjonale faseutgivelser.
  • Du kan oppleve det serverløse økosystemet i et containerisert miljø.
  • Knative fjerner pålitelighet på administrasjon og verktøy.
  • Du kan raskt migrere til andre skyleverandører som er integrert med Knative ved å implementere Kubernetes.
  • Den tilbyr en forespørselsdrevet beregningsmodell.
  • Den lar deg administrere arbeidsflyter som en tjeneste.
  • Med Knative kan du behandle IoT-data, kjøre tilgjengelighetssjekker og validere konfigurasjoner av sikkerhetsgruppene dine.
  • Det lar utviklere fokusere på kodingen og la dem lage iterativ kode raskt.
  • Det sikrer at utviklere vil inkludere nye versjoner.
  • Knatives hendelsesbaserte modell hjelper med å implementere design, inkludert abonnement, tilkobling til det eksterne systemet og registrering.

Utfordringer med Knative (og noen løsninger)

Effektivitetsutfordringer

Et Knative Framework som støtter riktige applikasjoner gir bedre ytelse til en minimal kostnad. En feil blanding av applikasjoner kan imidlertid resultere i høyere kostnader og underutnyttede containerressurser. Dette kan føre til dårlig applikasjonsytelse, som er den største utfordringen med Knative serverløs distribusjon.

Dermed kan en ressurspool av dårlig størrelse eller feil applikasjoner ødelegge mange Knative-fordeler.

Du kan overvinne denne utfordringen ved å utføre tester for å verifisere ressursmengder og blandingen av applikasjoner på Knative. Mål hendelsesbelastningene ved å dimensjonere gjennomsnittlig og maksimal belastning for hver og anslå det totale ressursforbruket. Gjenta dette for flere applikasjoner for å opprette og kjøre en prøvekonfigurasjon for å validere estimatene.

  12 beste vertsplattformer for det tyske markedet

Funksjonelle utfordringer

De funksjonelle utfordringene til Knative kan være:

  • Knative avhenger av funksjoner som passer til en statsløs modell. Dette betyr at ingen data blir lagret i selve komponenten. Utvikling av funksjonene er ikke en vanskelig fase, men det krever en liten endring i tilnærmingen, noe som betyr at en enkelt feil kan ødelegge programvarens ytelse.
  • Forretningsdata består av transaksjoner i flere trinn, og statsløse funksjoner opprettholder kontekst på tvers av alle trinnene. Knative har ikke den muligheten som de offentlige skyserverløse verktøyene kan gjøre.

Regelmessig overvåking og fiksing av problemer kan hjelpe deg med å holde ytelsen på anstendige resultater.

Operasjonelle utfordringer

Sammenlignet med de serverløse tilbudene i en offentlig sky, er det en driftsutfordring med Knative. Administratorer kontrollerer ikke de underliggende serverne med den offentlige skyen. Men de må administrere servere sammen med Kubernetes, containere, Knative og Istio selv.

Knative utvider driften og utviklingskompleksiteten minimalt for selskapene som allerede har forpliktet seg til Kubernetes og containere. De som er forpliktet til service mesh og mikrotjenester vil finne Knative som en naturlig utvidelse.

Bruk Cases of Knative

For applikasjoner som gir opphav til et variabelt antall hendelser som holder seg innenfor eller over tidsbestemte grenser, er Knative best for dem. Spesifikke brukstilfeller av Knative serverløse rammeverk inkluderer:

Arrangementsorienteringen er avgjørende. Hvis IT-team ikke kan forestille seg en applikasjon som en serie hendelser i stedet for transaksjoner, er Knative kanskje ikke et godt valg av funksjonelle og effektivitetsmessige årsaker.

Forutsetninger og installasjon av Knative

Som vi ser i seksjonene ovenfor, er Knative et sett med komponenter som eventing og servering som kjører på en servicemesh og arbeidsbelastningsorkestreringsklynge. Det er kommandolinjeverktøy som vi må installere for enkel drift. Derfor trenger vi noen få avhengigheter for å sikre at vi kan fortsette med installasjonen.

Forutsetninger

Det er flere alternativer for å installere Kubernetes. Docker Desktop kommer for å aktivere en enkel Kubernetes-klynge som tjener forskjellige formål. Den enkle tilnærmingen er å bruke Kubernetes i Docker for å kjøre Kubernetes-klyngen sammen med Docker-beholdernodene. Den praktiske måten å jobbe med klyngen på er å bruke Knative-kommandolinjeverktøyet.

Knative CLI tilbyr et enkelt og raskt grensesnitt for å lage ressursene. Det hjelper i komplekse oppgaver som trafikkdeling og autoskalering. Den praktiske måten er å laste ned den kompatible binære filen fra GitHub-siden.

Installasjon

Når vi har alle forutsetninger, kan vi fortsette å installere komponentene. For utviklingsmiljøet er det en hurtigstart-plugin. Pluginet hjelper med å installere en lokal Knative-klynge ved å bruke Knative-klienten. Du kan laste ned hurtigstart-plugin fra den offisielle utgivelsessiden.

Konklusjon: The Future of Knative

Knative har erstattet serverløs databehandling ved å tilby automatisk skalering av applikasjoner. Det har en betydelig innvirkning på det interoperable og modulære systemet.

I fremtiden forventes det at Knative vil dekke nåværende mangler og bli en av de mest effektive teknologiene for å kjøre den serverløse arkitekturen.

Knativ teknologi er mer innflytelsesrik for utviklere ved å se på fordelene fremfor serverløse alternativer. Knative vil hjelpe deg å spare mye tid ved å erstatte behovet for å bygge og vedlikeholde Kubernetes-utvidelsene. Utviklere er ganske fornøyd med Knative-teknologien siden den er enkel å bruke og et flott alternativ til serverløse løsninger.

Så hvis du ønsker å maksimere kraften til Kubernetes-miljøet i skyarbeidsflytene dine, ta i bruk Knative-teknologi og se fordelene selv.