Cloud Aðgerðir vs Kubernetes Engine

Uppfært ágúst 2019.

Reiknilína Google býður upp á mikið af frábærum kostum. Tvö bestu tæknin á GCP eru Kubernetes vél og ský aðgerðir. Báðir eru kraftmiklir og sem verktaki er auðvelt að sjálfgefið Cloud Aðgerðir vegna þess að það tekur mikla stjórnunarvinnu úr mínum höndum. Þessi stjórnsýslu vinna, að vísu yfirlýsandi yaml skrár, er mikilvægur þáttur í að stilla Kubernetes Engine.

Upphafleg forsenda þessarar greinar var að verktaki spurði mig einfaldlega „hvenær myndirðu velja Kubernetes fram yfir skýjaðgerðir?“. Það er spurning sem ég hef íhugað mikið sjálfur síðan ég vann með báðum þessum, og þess vegna held ég að besta leiðin til að takast á við þetta sé að nota Cloud Functions sjálfgefið og skýra frá tilvikum þar sem Kubernetes Engine væri betra val. Þó að ég skrái ekki allar ástæður, eru hér helstu sem spila í því að velja Kubernetes.

3 tungumál ætla ekki að skera það niður

Þegar þú notar Cloud Aðgerðir í augnablikinu hefurðu aðeins þrjú þróunarumhverfi til að velja úr og það er Node.js, Python og Go. Þetta er ótrúleg tækni og hún er öflug.

Kubernetes Engine býður þér frelsi vegna þess að belgurinn sem þú ert að búa til er einangrað umhverfi sem getur keyrt hvaða tungumál og tíma sem er. Þú gætir verið .NET verslun og þarft að nýta C #. Ég hef skemmt mér með þá hugmynd að nota Core Foundation bókasöfnin frá Apple í þjónustu. Þessa þjónustu verður að skrifa á Swift. Þetta eru aðeins nokkur tilvik sem geta falist í því að nota annað tungumál og umgjörð. Í framtíðinni munu Cloud Functions styðja meira af þessari tækni, en það mun taka nokkuð mörg ár áður en hún er í framleiðslu.

Hraði

Hraði, og ég meina núna, ekki í 200 ms. Þetta er grundvallarmunur. Dæmi eru um að þú viljir bara fá gögn og ýta þeim einhvers staðar. Ef skýjaaðgerð er ekki notuð í einhvern tíma þá eru öll tilvik þessarar aðgerðar lokuð. Þetta er góður hlutur, þú borgar ekki neitt ef þú ert ekki að nota það. Hins vegar geta verið tilvik þar sem þú vilt bara ekki bíða eftir þessum kalda upphafstíma. Ef það er ekki valkostur þá mun Kubernetes hafa bakið á þér, þú ert nú þegar þyrping og þú getur látið nokkra fræbelga hlaupa fyrir þá tilteknu þjónustu sem er tilbúin til að fara í aðgerð þegar þörf krefur.

Mikil vinnsla og mikið vinnuálag

Aðgerðir eru frábærar til að tengja ýmsa þjónustu saman. Hins vegar eru þær ekki ætlaðar til þungra eða langvinnra verkefna. Það er stutt í CPU og minni miðað við Compute, Kubernetes og App Engine. Þeir hafa mun fljótari tíma tími til 5 mínútur sem þýðir að vinna þarf fljótt og þú þarft að snúa aftur úr aðgerðinni.

Auk þess höndlar það ekki mikið álag. Ef þú ætlar að gera mikið af myndvinnslu eða stórgagnagreiningum í skýjaaðgerð lendir þú í vandræðum. Með Kubernetes Engine hefurðu getu til að mæla belg sem byggist á ýmsum breytum, svo sem mikilli CPU, minni osfrv. Með skýjaaðgerðum hefurðu ekki getu til að velja CPU og minniúthlutunin er frekar lítil miðað við aðrar tölvuþjónustur.

Boðunarbrjálæði

Hversu oft kallarðu á aðgerðina? Er það eitt hundrað eða hundrað þúsund sinnum á dag? Það er öðruvísi ef skýjaaðgerðin þín er að treysta á kveikjara gagnabúss, á þeim tímapunkti er það þess virði að sætta sig við skýjaaðgerðina. Hins vegar, ef þú ert að reyna að byggja upp þjónustu sem verður að staðfesta tölvupóst eða einfaldlega inntaka gríðarlegt magn gagna, þá er það þess virði að skoða Kubernetes. Í fyrsta lagi geturðu alltaf haft nokkra belg í gang svo þú ert að draga úr töfum á þjónustunni. Í öðru lagi er hluti af verðinu með Cloud Functions hversu oft aðgerð er beitt. Með Kubernetes ertu fær um að kvarða upp í fleiri tilvik á álagstímum en mælikvarða aftur niður. Það skiptir ekki máli hvort þjónustunni sé beitt tíu þúsund sinnum, á þessum tímapunkti ertu að borga fyrir fjölda hnúta og belg sem þú ert að keyra sem mun draga úr heildarkostnaði þínum.

Microservice samskipti

Að lokum höfum við samskipti milli þjónustu og þjónustu. Cloud aðgerðir hafa nokkrar virkilega öflugar kallar fyrir bæði Firebase og GCP. Til dæmis er hægt að setja upp Cloud Pub / Sub kveikja eða kveikja á annarri aðgerð með því að hlaða skrám upp í Cloud Storage. Að auki höfum við HTTP kallara sem eru gagnlegar til að búa til vefkroka.

En hvað ef þú ert með nokkrar þjónustur sem ekki þarf að koma af stað, en þú vilt bara að þeir tali saman? Um þessar mundir er í raun ekki árangursrík nálgun þegar þú notar Cloud Aðgerðir. Hugsaðu um dreifingarferlið eitt og sér. Með Cloud Aðgerðir er þetta fyrirferðarmikið þegar þú byrjar að uppfæra fullt af þjónustu á Google Cloud. Á sama tíma ertu einfaldlega að hlaða upp stillingum þínum með Kubernetes og Kubernetes er að tryggja að umhverfið gangi rétt fyrir þig. Já, það er miklu meiri vinna fyrirfram til að búa til yaml skrárnar, en þá er það mjög einfalt að halda þeim innviðum í gangi.

Á endanum fer það eftir því hvað þú ert að byggja og hverjar þarfir þínar eru, en ef þú ert að púsla með hugmyndina um að hringja í marga HTTP virka kallara sem byggist á einu símtali í Cloud Aðgerðir þínar þá ættirðu að stíga til baka og spyrja sjálfan þig hvort Kubernetes sé betri kostur fyrir 90% samskiptin sem eiga sér stað.

Þessi listi er ekki tæmandi og hann er örugglega opinn fyrir túlkun. Aftur er það byggt á þörfum þínum sem fyrirtæki og stofnun. Kubernetes er enn að vaxa hratt og það eru ekki allir með verktaki / teymi til staðar sem getur stjórnað Kubernetes Engine verkefni fyrir þá. Aftur á móti, kannski hefur þú mikið af .NET Core þjónustu sem þú vilt nota og Cloud Aðgerðir munu ekki klippa hana vegna þess að þú þarft að nota Node.js, Python eða Go. Það er alltaf þess virði að taka skref til baka og hugsa um mismunandi tækni sem leikið er og hvernig við getum skuldsett þá til að vera eins afkastamikill og mögulegt er.

James Wilson er verktaki sem byggir dreifikerfi með Go og Google Cloud. Hann er líka Pluralsight rithöfundur og þú getur skoðað námskeiðin hans hér.