En hurtig guide til Knative Serverless Framework for begyndere

Serverløse rammer er efterspurgt i de sidste par år og har været vidne til øget adoption blandt udviklere.

Ikke desto mindre er containerbaserede applikationer allerede populære, og det samme er Kubernetes blandt virksomheder.

Kubernetes er uden tvivl et fantastisk værktøj med et godt potentiale. Dets økosystem vokser også med en række nye værktøjer og de nyeste teknologier, såsom Knative, som har magten til at gøre Kubernetes endnu bedre.

Knative blev introduceret for at overvinde situationer, der fører til fiasko og etablere en kernestandard for cloud-platforme og cloud-native orkestrering.

Med andre ord kan Knative-serverløse rammer passe bedre til en virksomheds behov end andre cloud-baserede serverløse implementeringer.

I denne guide vil jeg tale om Knative, dets fordele, use cases, installationsprocedure, arbejdsprocedure og mere.

Nu sker det!

Hvad er Knative?

Knative er et Kubernetes-baseret serverløst framework, der først blev udviklet af Google. Den indlæser og kører serverløse funktioner baseret på en virksomheds krav og minimerer derved spild. Det er et open source-projekt, der tilføjer komponenter til at implementere, køre og administrere serverløse applikationer på Kubernetes.

Det primære formål med den Knative serverløse ramme er at administrere standarderne for orkestrering på tværs af platforme. Dette implementeres ved at integrere funktionen af ​​containeroprettelse, automatisk skalering, hændelsesmodeller og arbejdsbelastningsstyring.

Tidligere var der en række andre open source-løsninger end Knative. Hver løsning har sin måde at implementere på, hvilket kan forårsage markedsfragmentering, da der er mangel på standardiseret praksis. Det betyder, at det er nødvendigt at vælge en specifik udbyder, hvis du ønsker en bestemt systemfunktion.

Migrationsproblemer begyndte dog at komme til fronten. Og for at undgå sådanne problemer blev Knative-serverløse rammer introduceret. Så hvis du kæmper for at inkorporere nogen opgaver, kan Knative effektivt gøre det inden for den Kubernetes-baserede pipeline.

Knative har tre stykker:

  • Knative Build: Det bygger containerbilleder og gør dem tilgængelige fra kildekoden.
  • Knative Servering: Den bruger Istio og Kubernetes til at forbinde og implementere disse containerbilleder gennem de tildelte infrastrukturressourcer.
  • Knative Eventing: Det giver brugerne mulighed for at definere hændelsesudløsere og lader brugere forbinde hændelsesudløsere med containeriserede funktioner.

Når Knative identificerer en begivenhed, definerer den den tilknyttede proces til at køre den efter behov. Med Knative er der ingen grund til at allokere containernoder, klynger og pods til arbejde, da Knative kun forpligter hostingressourcer, når en given proces kører. På denne måde balancerer Knative serverløse og containerfordele.

Knatives kernebegreber

Lad os diskutere Knative Serverless Frameworks hovedkoncepter, og hvordan de vedrører de Knative primitiver.

Byg

Knative-building hjælper med at udnytte og udvide de eksisterende Kubernetes’ primitiver, så du kan køre på container builds fra oprindelsen. Det aktiverer kildekoden fra afhængighederne og depotet, bygger containerbilleder og registrerer dem.

Begivenheder

Arrangementet hjælper dig med at skabe bedre kommunikation mellem løst koblede eventforbrugere og producenter til at bygge den begivenhedsdrevne arkitektur. Knative sætter disse begivenheder i en kø, der skulle udføres automatisk uden udviklerens script.

  Sådan tjekker du, hvornår en titel forlader Netflix

Senere bliver disse arrangementer leveret til containerne. Det sender derefter feeds til begivenhedsproducenterne for at udføre opgaver. Dette vil reducere udviklerens arbejdsbyrde med at skabe kode til oprettelse af forbindelse.

Funktioner

En funktion er en uafhængig implementeringsenhed og en Knative-serveringstjeneste, som en mikrotjeneste. Dens kode er skrevet til at udføre en enkelt opgave, såsom:

  • Behandling af en fil i en database
  • Lagring af en bruger i en database
  • Udførelse af et planlagt arbejde

Knative serverløse rammer er designet til at lade dig udvikle og implementere funktioner effektivt og administrere dem.

Plugins

Udvid eller overskriv nemt funktionaliteten af ​​den Knative serverløse ramme ved hjælp af plugins. Hver serverless.yml-fil indeholder en plugin-egenskab, der indeholder forskellige plugins.

Ressourcer

Ressourcer er de Knative serverløse infrastrukturkomponenter, som din funktion bruger, herunder:

  • AWS SQS begivenhedskilde
  • En planlagt opgave (kør hvert 5. minut, 10. minut osv.)
  • En Kafka-begivenhedskilde

Og mere.

Tjenester

Tjenester er som et projekt. Derfor er en tjeneste den Knative serverløse rammes organisationsenhed. Selvom du kan have mange tjenester til en applikation, kan du tænke på tjenesten som en projektfil.

Det er her, du vil være i stand til at definere funktioner, hændelser og ressourcer, alt sammen i en enkelt fil med titlen serverless.yml, serverless.json eller serverless.js. Når du implementerer tjenesterne med den serverløse ramme, implementeres alt i filen på én gang.

Betjener

Knative-serving er bygget i Istio og Kubernetes, der understøtter applikationsimplementering. Det muliggør hurtig udvikling af serverløse containere, netværksprogrammering og automatisk skalering til Istio-komponenter. Knative-serving betragter containere som en skalerbar service, der kan variere fra én forekomst til mange containerforekomster.

Funktioner af Knative

Lad os diskutere nogle af funktionerne i den Knative serverløse ramme:

  • Knative er en Kubernetes-baseret serverløs ramme, der lader dig implementere tjenester til Kubernetes.
  • Det integrerer nemt Knative med det understøttede miljø
  • Udviklere kan direkte bruge Kubernetes API ved hjælp af Knative til at implementere serverløse tjenester
  • Det gør det muligt for brugere at udløse serverløse tjenester ved hjælp af eventing-systemet fra Knative

Hvordan fungerer Knative?

Knative serverløse rammer fungerer som et begivenhedsstyringssegment og forbinder Istio og Kubernetes. Kubernetes fungerer som orkestrator for mikrotjenester og containere. Istio, på den anden side, er en open source mesh-teknologi, der samler forskellige komponenter for at interagere med brugeren og dem selv.

Knative giver brugerne flere komponenter, der er målrettet til at udføre det grundlæggende daglige arbejde. Disse komponenter bruges igen og igen i en række forskellige applikationer. En udvikler kan bruge et hvilket som helst programmeringssprog. Derfor kræver du ikke specifik viden om sprog, da Knative kun genkender containerbilleder.

Der er tre komponenter i den Knative serverløse ramme, der er nøglerne til dens funktion.

Bygning af nye containere

Byggekomponenten er ansvarlig for at bygge nye containere. Det kan konvertere kildekoder til en container. Knative kan konfigureres til at opfylde forretningsspecifikke behov.

Først trækker Knative kildekoden ud fra biblioteket som Github. Derefter tilføjes underliggende afhængigheder, så koden kører effektivt. Containerbilleder konstrueres derefter og lægges i filer, som Kubernetes-platformen kan få adgang til.

Containeren gøres tilgængelig for udviklere, der bruger Kubernetes og Knative. Containere bygges således, så længe kodens oprindelse er kendt.

  Sådan rettes DirecTV fejlkode 775

Servering eller drift af platformen

Serveringskomponenten er ansvarlig for driften af ​​platformen. Det involverer:

  • Konfiguration: Konfigurationen er sikker ved håndtering af flere versioner af tjenesten. Hver gang der er en implementering af den nye funktion i en container, gemmer Knative den eksisterende version og opretter en ny med de seneste ændringer og funktioner. Desuden definerer Knative tilstanden af ​​en tjeneste.
  • Auto-skalering: For bedre at kunne fungere serverløse containere skal du være i stand til at autoskalere containerne enten op eller ned. Knative kan autoskalere tjenester til mange, hvis det er nødvendigt.
  • Intelligent service routing: Det er en vigtig del af Knative arbejdsmekanisme. Det lader udviklere styre flowet og mængden af ​​trafik til forskellige eksisterende versioner af mikrotjenesterne. Mens der introduceres nye funktioner og blå-grønne implementeringsstrategier, kan intelligent service routing bruges.

Det giver dig mulighed for at udsætte en brøkdel af brugerne for den seneste test og version og gradvist dirigere stor trafik til den nye version.

Eventing for at definere funktioner

Eventing-komponenten i Knative er ansvarlig for at beskrive Knatives funktion. Det giver mulighed for at definere driften af ​​containerne baseret på begivenheder. Forskellige hændelser udløser specifikke funktioner af containere.

Udviklere kan definere hændelsesudløsere og de tilhørende containere for at lade Knative gøre sit job. Knative håndterer listen over arrangementer og levering af arrangementerne.

Fordele ved Knative

Knative leverer tjenester som rutestyring, trinvis frigivelse og serviceforbindelse. Det kan prale af et stort fællesskab. Lad os diskutere, hvordan Knative påvirker virksomheder til at tage denne teknologi i brug.

  • I modsætning til andre løsninger har Knative standard events og er kompatibel med FaaS løsningen. Det tilbyder en CloudEvent-standardramme, der hjælper med at designe serverløs arkitektur.
  • Selvom Knative ikke er en PaaS, giver den dig mulighed for at skabe en serverløs PaaS med den serverløse orkestreringsplatform.
  • Knative har et fuldgyldigt og modent serverløst design.
  • Det understøtter cross-platform og giver dig en universel standard blandt cloud-udbydere for at eliminere chancen for at binde leverandører med en specifik løsning.

  • Knative giver fleksible rammer.
  • Det understøtter proportionale faseudgivelser.
  • Du kan opleve det serverløse økosystem i et containeriseret miljø.
  • Knative fjerner pålidelighed på styring og værktøj.
  • Du kan hurtigt migrere til andre cloud-udbydere, der er integreret med Knative, ved at implementere Kubernetes.
  • Det tilbyder en anmodningsdrevet beregningsmodel.
  • Det giver dig mulighed for at administrere arbejdsgange som en service.
  • Med Knative kan du behandle IoT-data, køre tilgængelighedstjek og validere konfigurationer af dine sikkerhedsgrupper.
  • Det giver udviklere mulighed for at fokusere på kodningen og lade dem oprette iterativ kode hurtigt.
  • Det sikrer, at udviklere vil inkorporere nye versioner.
  • Knatives begivenhedsbaserede model hjælper med at implementere design, herunder abonnement, tilslutning til det eksterne system og registrering.

Udfordringer ved Knative (og nogle løsninger)

Effektivitetsudfordringer

Et Knative Framework, der understøtter korrekte applikationer, giver bedre ydeevne til en minimal pris. En ukorrekt blanding af applikationer kan dog resultere i højere omkostninger og underudnyttede containerressourcer. Dette kan føre til dårlig applikationsydelse, hvilket er den største udfordring ved Knative serverløs implementering.

En dårlig størrelse ressourcepulje eller forkerte applikationer kan således ødelægge mange Knative-fordele.

Du kan overvinde denne udfordring ved at udføre test for at verificere ressourcemængder og blandingen af ​​applikationer på Knative. Mål hændelsesbelastningerne ved at dimensionere de gennemsnitlige og maksimale belastninger for hver og estimer det samlede forbrug af ressourcer. Gentag dette for flere applikationer for at oprette og køre en prøvekonfiguration for at validere estimaterne.

  Dit tastaturs medietaster fungerer i alle moderne webbrowsere

Funktionelle udfordringer

De funktionelle udfordringer ved Knative kunne være:

  • Knative afhænger af funktioner, der passer til en statsløs model. Det betyder, at der ikke gemmes data i selve komponenten. Udvikling af funktionerne er ikke en svær fase, men det kræver et lille skift i tilgangen, hvilket betyder, at en enkelt fejl kan ødelægge softwarens ydeevne.
  • Forretningsdata består af transaktioner i flere trin, og statsløse funktioner opretholder kontekst på tværs af alle trin. Knative har ikke den mulighed, som de offentlige cloud-serverløse værktøjer kan.

Regelmæssig overvågning og rettelse af problemer kan hjælpe dig med at holde din præstation på anstændige resultater.

Operationelle udfordringer

Sammenlignet med de serverløse tilbud i en offentlig sky er der en driftsudfordring med Knative. Administratorer kontrollerer ikke de underliggende servere med den offentlige sky. Men de bliver nødt til at administrere servere sammen med Kubernetes, containere, Knative og Istio selv.

Knative udvider driften og udviklingskompleksiteten minimalt for de virksomheder, der allerede har forpligtet sig til Kubernetes og containere. De, der er engageret i service mesh og mikrotjenester, vil finde Knative en naturlig forlængelse.

Brug Cases of Knative

For applikationer, der giver anledning til et variabelt antal begivenheder, der holder sig inden for eller over tidsbestemte grænser, er Knative bedst for dem. Specifikke brugstilfælde af Knative serverless framework inkluderer:

Begivenhedsorienteringen er afgørende. Hvis it-teams ikke kan forestille sig en applikation som en række begivenheder i stedet for transaktioner, er Knative muligvis ikke et godt valg af funktionelle og effektivitetsmæssige årsager.

Forudsætninger og installation af Knative

Som vi ser i ovenstående afsnit, er Knative et sæt komponenter som eventing og servering, der kører på en service mesh og workload orkestreringsklynge. Der er kommandolinjeværktøjer, som vi skal installere for ligetil betjening. Derfor har vi brug for et par afhængigheder for at sikre, at vi kan fortsætte med installationen.

Forudsætninger

Der er flere muligheder for at installere Kubernetes. Docker Desktop kommer til at muliggøre en nem Kubernetes-klynge, der tjener forskellige formål. Den enkle tilgang er at bruge Kubernetes i Docker til at køre Kubernetes-klyngen sammen med Docker-beholderknuderne. Den bekvemme måde at arbejde med klyngen på er at bruge kommandolinjeværktøjet Knative.

Knative CLI tilbyder en nem og hurtig grænseflade til at skabe sine ressourcer. Det hjælper med komplekse opgaver som trafikopdeling og autoskalering. Den bekvemme måde er at downloade den kompatible binære fil fra GitHub-siden.

Installation

Når vi har alle forudsætninger, kan vi fortsætte med at installere komponenterne. Til udviklingsmiljøet er der et quickstart plugin. Pluginnet hjælper med at installere en lokal Knative-klynge ved hjælp af Knative-klienten. Du kan downloade quickstart-plugin’et fra den officielle udgivelsesside.

Konklusion: Knatives fremtid

Knative har erstattet serverløs computing ved at levere automatisk skalering af applikationer. Det har en betydelig indvirkning på det interoperable og modulære system.

I fremtiden forventes det, at Knative vil dække nuværende mangler og blive en af ​​de mest effektive teknologier til at køre den serverløse arkitektur.

Knative teknologi er mere indflydelsesrig for udviklere ved at se på dens fordele frem for serverløse alternativer. Knative hjælper dig med at spare en god tid ved at erstatte behovet for at bygge og vedligeholde Kubernetes-udvidelserne. Udviklere er ret tilfredse med Knative-teknologien, da den er nem at bruge og et godt alternativ til serverløse løsninger.

Så hvis du ønsker at maksimere kraften i Kubernetes-miljøet i dine cloud-arbejdsgange, skal du bruge Knative-teknologi og selv være vidne til fordelene.