Een beknopte handleiding voor Knative Serverless Framework voor beginners

Serverloze frameworks zijn de laatste jaren in trek en zijn getuige geweest van een toenemende acceptatie onder ontwikkelaars.

Desalniettemin zijn op containers gebaseerde applicaties al populair, net als Kubernetes onder bedrijven.

Kubernetes is zonder twijfel een geweldige tool met veel potentieel. Het ecosysteem groeit ook met een verscheidenheid aan nieuwe tools en de nieuwste technologieën, zoals Knative, dat de kracht heeft om Kubernetes nog beter te maken.

Knative is geïntroduceerd om situaties die tot mislukking leiden te overwinnen en een kernstandaard vast te stellen voor cloudplatforms en cloud-native orkestratie.

Met andere woorden, het serverloze framework van Knative past veel beter bij de behoeften van een bedrijf dan andere cloudgebaseerde serverloze implementaties.

In deze gids zal ik het hebben over Knative, de voordelen, use cases, installatieprocedure, werkprocedure en meer.

Daar gaan we!

Wat is Knative?

Knative is een op Kubernetes gebaseerd serverloos framework dat voor het eerst werd ontwikkeld door Google. Het laadt en voert serverloze functies uit op basis van de vereisten van een bedrijf, waardoor verspilling wordt geminimaliseerd. Het is een open-sourceproject dat componenten toevoegt voor het implementeren, uitvoeren en beheren van serverloze applicaties op Kubernetes.

Het primaire doel van het serverloze framework van Knative is het beheren van de standaarden voor platformonafhankelijke orkestratie. Dit wordt geïmplementeerd door de functie van het maken van containers, automatisch schalen, gebeurtenismodellen en werkbelastingbeheer te integreren.

Eerder waren er verschillende open-sourceoplossingen anders dan Knative. Elke oplossing heeft zijn eigen manier van inzetten, wat kan leiden tot marktfragmentatie omdat er een gebrek is aan gestandaardiseerde praktijken. Dit betekent dat het kiezen van een specifieke provider noodzakelijk is als u een bepaalde systeemfunctie wilt.

Migratieproblemen begonnen echter naar voren te komen. En om dergelijke problemen te voorkomen, werd het Knative serverless framework geïntroduceerd. Dus als je moeite hebt om taken op te nemen, kan Knative dit efficiënt doen binnen de op Kubernetes gebaseerde pijplijn.

Knative heeft drie stukken:

  • Knative Build: het bouwt containerafbeeldingen en maakt ze beschikbaar vanuit de broncode.
  • Knative Serving: het gebruikt Istio en Kubernetes om deze container-images te verbinden en te implementeren via de toegewezen infrastructuurbronnen.
  • Knative Eventing: Hiermee kunnen gebruikers de gebeurtenistriggers definiëren en kunnen gebruikers de gebeurtenistriggers associëren met gecontaineriseerde functies.

Telkens wanneer Knative een gebeurtenis identificeert, definieert het het bijbehorende proces om het op aanvraag uit te voeren. Met Knative is het niet nodig om containerknooppunten, clusters en pods toe te wijzen voor werk, aangezien Knative hostingbronnen alleen vastlegt wanneer een bepaald proces wordt uitgevoerd. Op deze manier balanceert Knative serverless en containervoordelen.

Kernconcepten van Knative

Laten we de belangrijkste concepten van het Knative Serverless Framework bespreken en hoe deze betrekking hebben op de Knative-primitieven.

Bouwen

Knative-building helpt de bestaande primitieven van Kubernetes te gebruiken en uit te breiden, zodat u vanaf de oorsprong op container-builds kunt draaien. Het maakt de broncode van de afhankelijkheden en repository mogelijk, bouwt containerafbeeldingen op en registreert ze.

Evenementen

Het evenement helpt je bij het creëren van betere communicatie tussen losjes gekoppelde evenementconsumenten en producenten voor het bouwen van de evenementgestuurde architectuur. Knative plaatst deze gebeurtenissen in een wachtrij die automatisch moest worden uitgevoerd zonder het script van de ontwikkelaar.

  Een video maken op een Chromebook

Later worden deze gebeurtenissen bij de containers afgeleverd. Het stuurt vervolgens feeds naar de gebeurtenisproducenten om taken uit te voeren. Dit vermindert de werklast van de ontwikkelaar bij het maken van code voor het tot stand brengen van verbindingen.

Functies

Een functie is een onafhankelijke implementatie-eenheid en een Knative-servingservice, zoals een microservice. De code is geschreven om een ​​enkele taak uit te voeren, zoals:

  • Een bestand in een database verwerken
  • Een gebruiker opslaan in een database
  • Een gepland werk uitvoeren

Knative serverless framework is ontworpen om u functies effectief te laten ontwikkelen, implementeren en beheren.

Plug-ins

De functionaliteit van het Knative serverless framework eenvoudig uitbreiden of overschrijven met behulp van plug-ins. Elk serverless.yml-bestand bevat een plug-in-eigenschap met verschillende plug-ins.

Bronnen

Resources zijn de serverloze infrastructuurcomponenten van Knative die uw functie gebruikt, waaronder:

  • Bron van AWS SQS-gebeurtenis
  • Een geplande taak (elke 5 minuten, 10 minuten, enz.)
  • Een Kafka-gebeurtenisbron

En meer.

Diensten

Diensten zijn als een project. Daarom is een service de organisatie-eenheid van het Knative serverless framework. Hoewel u veel services voor één toepassing kunt hebben, kunt u de service beschouwen als een projectbestand.

Hier kunt u de functies, gebeurtenissen en bronnen definiëren, allemaal in een enkel bestand met de titel serverless.yml, serverless.json of serverless.js. Wanneer u de services implementeert met het serverloze framework, wordt alles in het bestand in één keer geïmplementeerd.

Portie

Knative-serving is gebouwd in Istio en Kubernetes en ondersteunt applicatie-implementatie. Het maakt een snelle ontwikkeling van serverloze containers, netwerkprogrammering en automatische schaling voor Istio-componenten mogelijk. Knative-serving beschouwt containers als een schaalbare service die kan variëren van één instantie tot meerdere containerinstanties.

Kenmerken van Knative

Laten we enkele kenmerken van het serverloze framework van Knative bespreken:

  • Knative is een op Kubernetes gebaseerd serverloos framework waarmee u services op Kubernetes kunt implementeren.
  • Het integreert Knative eenvoudig met de ondersteunde omgeving
  • Ontwikkelaars kunnen Kubernetes API direct gebruiken met de hulp van Knative om serverloze services te implementeren
  • Het stelt gebruikers in staat om serverloze services te activeren met behulp van het eventingsysteem van Knative

Hoe werkt Knative?

Knative serverless framework werkt als een gebeurtenisbesturingssegment en verbindt Istio en Kubernetes. Kubernetes werkt als de orkestrator voor microservices en containers. Istio, aan de andere kant, is een open-source mesh-technologie die verschillende componenten samenbrengt om met de gebruiker en zichzelf te communiceren.

Knative biedt gebruikers meerdere componenten die gericht zijn op het uitvoeren van het dagelijkse basiswerk. Deze componenten worden keer op keer gebruikt in een verscheidenheid aan toepassingen. Een ontwikkelaar kan elke programmeertaal gebruiken. U hebt dus geen specifieke kennis van talen nodig, omdat Knative alleen containerafbeeldingen herkent.

Er zijn drie componenten van het serverloze framework van Knative die de sleutel zijn tot het functioneren ervan.

Nieuwe containers bouwen

De build-component is verantwoordelijk voor het bouwen van nieuwe containers. Het kan broncodes converteren naar een container. Knative kan worden geconfigureerd om aan bedrijfsspecifieke behoeften te voldoen.

Eerst haalt Knative de broncode uit de bibliotheek zoals Github. Vervolgens worden onderliggende afhankelijkheden toegevoegd, zodat de code effectief wordt uitgevoerd. Vervolgens worden containerimages geconstrueerd en in bestanden geplaatst waartoe het Kubernetes-platform toegang heeft.

De container wordt beschikbaar gesteld aan ontwikkelaars die Kubernetes en Knative gebruiken. Zo worden containers gebouwd zolang de herkomst van de code bekend is.

Het platform bedienen of runnen

De dienende component is verantwoordelijk voor de werking van het platform. Het heeft betrekking op:

  • Configuratie: Configuratie is zeker bij het beheren van meerdere versies van de service. Elke keer dat er een nieuwe functie van een container wordt geïmplementeerd, slaat Knative de bestaande versie op en maakt een nieuwe met de laatste wijzigingen en functies. Bovendien definieert Knative de status van een service.
  • Automatisch schalen: om serverloze containers beter te laten werken, moet u de containers automatisch omhoog of omlaag kunnen schalen. Knative kan indien nodig services automatisch schalen naar velen.
  • Intelligente servicerouting: het is een belangrijk onderdeel van het werkingsmechanisme van Knative. Hiermee kunnen ontwikkelaars de stroom en hoeveelheid verkeer naar verschillende bestaande versies van de microservices sturen. Terwijl nieuwe functies en blauwgroene implementatiestrategieën worden geïntroduceerd, kan intelligente serviceroutering worden gebruikt.
  Wanneer u geen RAW-afbeeldingen mag maken

Hiermee kunt u een fractie van de gebruikers blootstellen aan de recente tests en versie en geleidelijk veel verkeer naar de nieuwe versie leiden.

Eventing om functies te definiëren

De eventingcomponent van Knative is verantwoordelijk voor het beschrijven van de functie van Knative. Het maakt het mogelijk om de werking van de containers te definiëren op basis van gebeurtenissen. Verschillende gebeurtenissen activeren specifieke functies van containers.

Ontwikkelaars kunnen de gebeurtenistriggers en de bijbehorende containers definiëren om Knative zijn werk te laten doen. Knative zorgt voor de lijst met evenementen en de levering van de evenementen.

Voordelen van Knative

Knative biedt services zoals routebeheer, gefaseerde release en serviceverbinding. Het heeft een enorme gemeenschap. Laten we bespreken hoe Knative bedrijven beïnvloedt om deze technologie te adopteren.

  • In tegenstelling tot andere oplossingen heeft Knative standaard evenementen en is het compatibel met de FaaS-oplossing. Het biedt een CloudEvent-standaardraamwerk dat helpt bij het ontwerpen van serverloze architectuur.
  • Hoewel Knative geen PaaS is, kunt u met het serverloze orkestratieplatform een ​​serverloze PaaS maken.
  • Knative heeft een volwaardig en volwassen serverloos ontwerp.
  • Het ondersteunt platformoverschrijdend en geeft u een universele standaard onder cloudproviders om de kans te elimineren om leveranciers aan een specifieke oplossing te binden.

  • Knative biedt een flexibel kader.
  • Het ondersteunt proportionele gefaseerde releases.
  • U kunt het serverloze ecosysteem ervaren in een gecontaineriseerde omgeving.
  • Knative verwijdert betrouwbaarheid op beheer en tooling.
  • U kunt snel migreren naar andere cloudproviders die zijn geïntegreerd met Knative door Kubernetes te implementeren.
  • Het biedt een verzoekgestuurd rekenmodel.
  • Hiermee kunt u workflows als een service beheren.
  • Met Knative kunt u IoT-gegevens verwerken, toegankelijkheidscontroles uitvoeren en configuraties van uw beveiligingsgroepen valideren.
  • Het stelt ontwikkelaars in staat zich te concentreren op de codering en ze snel iteratieve code te laten maken.
  • Het zorgt ervoor dat ontwikkelaars nieuwe versies zullen opnemen.
  • Het op gebeurtenissen gebaseerde model van Knative helpt bij het implementeren van ontwerpen, inclusief abonnement, verbinding met het externe systeem en registratie.

Uitdagingen van Knative (en sommige oplossingen)

Efficiëntie-uitdagingen

Een Knative Framework dat de juiste applicaties ondersteunt, zorgt voor betere prestaties tegen minimale kosten. Een onjuiste combinatie van applicaties kan echter leiden tot hogere kosten en onderbenutte containerresources. Dit kan leiden tot slechte applicatieprestaties, wat de grootste uitdaging is van Knative serverloze implementatie.

Een slechte resourcepool of verkeerde toepassingen kunnen dus veel Knative-voordelen tenietdoen.

U kunt deze uitdaging overwinnen door tests uit te voeren om de hoeveelheid bronnen en de mix van toepassingen op Knative te verifiëren. Meet de gebeurtenisbelastingen door de gemiddelde en maximale belasting voor elk te bepalen en het totale verbruik van hulpbronnen te schatten. Herhaal dit voor verschillende toepassingen om een ​​proefconfiguratie te maken en uit te voeren om de schattingen te valideren.

Functionele uitdagingen

De functionele uitdagingen van Knative kunnen zijn:

  • Knative is afhankelijk van functies die passen in een staatloos model. Dit betekent dat er geen gegevens worden opgeslagen in het onderdeel zelf. Het ontwikkelen van de functies is geen moeilijke fase, maar vereist een kleine verschuiving in de aanpak, waardoor een enkele fout de prestaties van de software kan verpesten.
  • Bedrijfsgegevens bestaan ​​uit transacties met meerdere stappen en staatloze functies behouden de context van alle stappen. Knative heeft die mogelijkheid niet zoals de serverloze tools van de openbare cloud kunnen doen.
  Waarom "Animal Crossing" geweldig is, en waarom je het zou moeten spelen

Regelmatige monitoring en het oplossen van problemen kan u helpen uw prestaties op fatsoenlijke scores te houden.

Operationele uitdagingen

Vergeleken met het serverloze aanbod in een openbare cloud, is er een operationele uitdaging met Knative. Beheerders hebben geen controle over de onderliggende servers met de public cloud. Maar ze moeten servers beheren samen met Kubernetes, containers, Knative en Istio zelf.

Knative breidt de operatie- en ontwikkelingscomplexiteit minimaal uit voor de bedrijven die zich al hebben gecommitteerd aan Kubernetes en containers. Degenen die toegewijd zijn aan service mesh en microservices zullen Knative een natuurlijke uitbreiding vinden.

Gebruik gevallen van Knative

Voor toepassingen die aanleiding geven tot een variabel aantal gebeurtenissen die binnen of boven de vastgestelde limieten blijven, is Knative het beste voor hen. Specifieke use-cases van het Knative serverless framework zijn onder meer:

De evenementoriëntatie is essentieel. Als IT-teams zich een applicatie niet kunnen voorstellen als een reeks gebeurtenissen in plaats van transacties, is Knative om functionele en efficiëntieredenen misschien geen goede keuze.

Vereisten en installatie van Knative

Zoals we in de bovenstaande secties zien, is Knative een set componenten zoals eventing en serving die wordt uitgevoerd op een servicemesh en workload-orkestratiecluster. Er zijn hulpprogramma’s voor de opdrachtregel die we moeten installeren voor een eenvoudige bediening. We hebben dus een paar afhankelijkheden nodig om ervoor te zorgen dat we door kunnen gaan met de installatie.

Vereisten

Er zijn verschillende opties om Kubernetes te installeren. Docker Desktop maakt een eenvoudig Kubernetes-cluster mogelijk dat verschillende doelen dient. De eenvoudige benadering is om Kubernetes in Docker te gebruiken om het Kubernetes-cluster samen met de Docker-containerknooppunten uit te voeren. De handige manier om met het cluster te werken, is door de Knative-opdrachtregeltool te gebruiken.

De Knative CLI biedt een gemakkelijke en snelle interface voor het maken van zijn bronnen. Het helpt bij complexe taken zoals het splitsen van verkeer en automatisch schalen. De handige manier is om het compatibele binaire bestand te downloaden van de GitHub-pagina.

Installatie

Zodra we alle vereisten hebben, kunnen we doorgaan met het installeren van de componenten. Voor de ontwikkelomgeving is er een quickstart-plug-in. De plug-in helpt bij het installeren van een lokaal Knative-cluster met behulp van de Knative-client. U kunt de quickstart-plug-in downloaden van de officiële releasepagina.

Conclusie: de toekomst van Knative

Knative heeft serverloos computergebruik vervangen door applicaties automatisch te schalen. Het heeft een aanzienlijke impact op het interoperabele en modulaire systeem.

In de toekomst wordt verwacht dat Knative de huidige tekortkomingen zal dekken en een van de meest efficiënte technologieën zal worden om de serverloze architectuur uit te voeren.

Knative-technologie heeft meer invloed voor ontwikkelaars door te kijken naar de voordelen ervan ten opzichte van serverloze alternatieven. Knative helpt u veel tijd te besparen door de noodzaak voor het bouwen en onderhouden van de Kubernetes-extensies te vervangen. Ontwikkelaars zijn best tevreden met de Knative-technologie, omdat deze gemakkelijk te gebruiken is en een geweldig alternatief is voor serverloze oplossingen.

Dus als u de kracht van de Kubernetes-omgeving in uw cloudworkflows wilt maximaliseren, gebruik dan Knative-technologie en ervaar zelf de voordelen.

gerelateerde berichten