Cloud Funktiounen vs Kubernetes Engine

Aktualiséiert Aug 2019.

Google senger Computernline-Up bitt vill grouss Wiel. Zwee vun de beschten Technologien op GCP sinn Kubernetes Engine a Cloud Funktiounen. Béid si mächteg an als Entwéckler ass et einfach ze Cloud Funktiounen ze standardéieren well et vill administrativ Aarbecht aus mengen Hänn hëlt. Dës administrativ Aarbecht, och wann deklarativ yaml Dateien ass e wichtegen Aspekt fir de Kubernetes Engine ze konfiguréieren.

D'Original Viraussetzung fir dësen Artikel war en Entwéckler deen mech einfach gefrot huet, "wéini wéilt Dir Kubernetes iwwer Cloud Funktiounen wielen?". Et ass eng Fro déi ech vill selwer considéréiert hunn zënter ech mat deenen zwee geschafft hunn, an dofir mengen ech, datt dee beschte Wee fir dat ze handelen ass Standard Cloud Cloud Funktiounen an erkläert d'Fäll wou Kubernetes Engine eng besser Wiel wier. Während ech kee Grond katalogiséieren, sinn hei déi uewen e puer déi bei der Wiel vu Kubernetes spillen.

3 Sprooche schneide se net

Wann Dir Cloud Funktiounen am Moment benotzt, hutt Dir nëmmen dräi Entwécklungsëmfeld fir ze wielen an dat sinn Node.js, Python, a Go. Dëst ass eng onheemlech Technologie an et ass mächteg.

Kubernetes Engine bitt Iech Fräiheet well d'Pods déi Dir schaaft sinn isoléiert Ëmfeld déi all Sprooch a Runtime kënne lafen. Dir kënnt e .NET Buttek sinn a braucht C # ze leeschten. Ech hunn d'Iddi fir de Core Foundation Bibliothéike vun Apple an engem Service ze begeeschteren. Dëse Service muss a Swift geschriwwe ginn. Dëst sinn nëmmen e puer vun de Fäll, déi eng aner Sprooch a Set vun Kaderen involvéiere kënnen. An der Zukunft ënnerstëtzen Cloud Funktiounen méi vun dësen Technologien, awer dat wäert e puer Joer daueren ier et an der Produktioun ass.

Geschwindegkeet

Geschwindegkeet, an ech mengen elo, net an 200 ms. Dëst ass e fundamentalen Ënnerscheed. Et ginn Fäll, wann Dir just wëllt Donnéeën kréien an et iergendwou drécken. Wann eng Cloud Funktioun net fir eng gewëssen Zäit benotzt gëtt da ginn all Fäll vun där Funktioun ausgeschalt. Dëst ass eng gutt Saach, Dir bezuelt näischt wann Dir se net benotzt. Wéi och ëmmer, et kënnen Fäll sinn, wou Dir einfach net op déi kal Startzäit waart. Wann dat net eng Optioun ass, da wäert de Kubernetes Äre Réck hunn, Dir sidd scho e Stärekoup an Dir kënnt e puer Pods hunn fir dee bestëmmte Service ze lafen, prett fir an Aktioun ze sprangen wann d'Nout entstinn.

Heavy Veraarbechtung a grouss Aarbechtslaaschten

D'Funktioune si super fir verschidde Servicer mateneen ze verbannen. Wéi och ëmmer, si si net fir schwéier oder laang lafen Aufgaben geduecht. Si sinn kuerz op CPU a Memory verglach mam Compute, Kubernetes, an App Engine. Si hunn eng vill méi séier Zäitzäit bei 5 Minutten, wat heescht datt d'Aarbechte séier musse gemaach ginn an Dir musst séier vun der Funktioun zréckkommen.

Plus et handelt net schwéier Lasten. Wann Dir vill Bildveraarbechtung oder Big Data Analyse op enger Wollekfunktioun maacht, da sidd Dir an Ierger. Mat Kubernetes Engine hutt Dir d'Fäegkeet fir Pods ze scalaen op Basis vu verschiddene Parameteren wéi héich CPU, Memory, etc. Mat Cloud Funktiounen hutt Dir net d'Fäegkeet CPU ze wielen an d'Erënnerung Allocatioun ass zimmlech niddereg am Verglach mat deenen aneren Computerd Servicer.

Invitatioun Wahnsinn

Wéi vill Mol widderruff Dir op d'Funktioun? Ass et honnert oder honnertdausend Mol am Dag? Et ass anescht wann Är Cloudfunktioun op enger Feierbase-Datebank vertraut, an deem Punkt ass et derwäert sech fir d'Wollekfunktioun ze regelen. Wann Dir awer versicht e Service ze bauen deen amgaang ass E-Mailen ze validéieren oder einfach e massiven Betrag vun Daten ze konsuméieren, ass et derwäert Kubernetes ze berücksichtegen. Als éischt kënnt Dir ëmmer e puer Pods hunn, fir datt Dir eng latency am Service reduzéiert. Zweetens, mat Cloud Funktiounen Deel vum Präis ass wéi oft eng Funktioun opgeruff gëtt. Mat Kubernetes sidd Dir fäeg a méi Fäll während Spëtzestonnen ze skala wéi zréckgedréckt. Et ass egal ob Äre Service 10 dausend mol opgeruff gëtt, zu dësem Moment bezuelt Dir fir d'Zuel vun den Noden a Pods déi Dir leeft, déi Är Gesamtkäschte reduzéiere wäert.

Microservice Kommunikatioun

Endlech hu mir Service-to-Service Kommunikatioun. Cloud Funktiounen hunn e puer wierklech mächteg Trigger fir béid Firebase an GCP. Zum Beispill kënnt Dir e Cloud Pub / Sub Ausléiser opstellen oder eng aner Funktioun ausléisen andeems Dir Dateien op Cloud Storage eropluet. Zousätzlech hu mir HTTP Trigger déi hëllefe si Webhaken ze kreéieren.

Wat awer wann Dir verschidde Servicer hutt déi net ausgeléist musse ginn, awer Dir wëllt just datt se matenee schwätzen? De Moment schwätzt a kommunizéiert tëscht Servicer ass net wierklech eng effektiv Approche wann Dir Cloud Funktiounen benotzt. Denkt nëmmen un den Détachement Prozess. Mat Cloud Funktiounen ass dëst lästeg wéi Dir ufänkt eng ganz Rëtsch Servicer op Google Cloud ze aktualiséieren. Mëttlerweil, mat Kubernetes lued Dir einfach Är Konfiguratiounen erop a Kubernetes assuréiert datt d'Ëmfeld fir Iech richteg leeft. Jo, et gëtt vill méi Aarbecht am viraus fir d'yaml Dateien ze kreéieren, awer dann ass et super einfach dës Infrastruktur oprecht ze halen.

Schlussendlech hänkt et dovun of wat Dir baut a wat Är Besoinen sinn, awer wann Dir mat der Iddi jugéiert fir verschidde HTTP Funktioun Trigger ze baséieren op Basis vun engem Uruff an Är Cloud Funktiounen, da sollt Dir zréck trëppelen an Iech froen ob Kubernetes eng besser Optioun ass fir déi 90% Kommunikatioun déi geschitt ass.

Dës Lëscht ass net ustrengend an et ass definitiv op fir d'Interpretatioun. Erëm, et baséiert op Äre Besoinen als Firma an Organisatioun. Kubernetes wuessen ëmmer nach séier a net jiddereen huet en Entwéckler / Team op der Hand déi e Kubernetes Engine Projet fir si verwalten kann. Op der anerer Säit, vläicht hutt Dir vill .NET Core Servicer déi Dir wëllt ofginn a Cloud Funktiounen just net ofschneide well Dir Node.js, Python oder Go benotze muss. Et ass ëmmer derwäert e Schrëtt zréck ze huelen an iwwer déi verschidden Technologien um Spill ze denken a wéi mir se kënnen usetzen fir sou produktiv wéi méiglech ze sinn.

James Wilson ass en Entwéckler deen verdeelt Systemer baut mat Go a Google Cloud. Hien ass och e Pluralsight Autor an Dir kënnt seng Coursen hei kucken.