Serverless nema racks

Serverless nema racks
Serverless haisi yekusavapo kwesevha. Iyi haisi mhondi yemidziyo kana maitiro anopfuura. Iyi inzira nyowani yekuvaka masisitimu mumakore. Muchinyorwa chanhasi tichabata padhizaini yeServerless application, ngationei basa rinoitwa neServerless sevhisi uye mapurojekiti akavhurwa sosi. Chekupedzisira, ngatitaure nezve nyaya dzekushandisa Serverless.

Ini ndoda kunyora sevha chikamu chechishandiso (kana kunyangwe online chitoro). Iyi inogona kunge iri chat, sevhisi yekutsikisa zvirimo, kana chiyero chekutakura. Chero zvazvingava, pachave nekuwanda kwemusoro: iwe uchafanirwa kugadzirira zvivakwa, tarisa kutsamira kwekushandisa, uye funga nezve iyo host inoshanda system. Ipapo iwe unozofanirwa kugadzirisa zvidiki zvidiki zvisingakanganise kushanda kweimwe yakasara yemonolith. Zvakanaka, ngatisakanganwe nezvekuyera pasi pemutoro.

Zvakadini kana tikatora ephemeral midziyo, mune inodiwa inotsamira yakatoiswa kare, uye midziyo pachayo yakaparadzaniswa kubva kune imwe neimwe uye kubva kune iyo host OS? Isu tichagovanisa iyo monolith kuita mamicroservices, imwe neimwe inogona kuvandudzwa uye kuyerwa yakazvimirira yevamwe. Nekuisa iyo kodhi mumudziyo wakadaro, ndinogona kuimhanyisa pane chero zvivakwa. Zvatova nani.

Ko kana iwe usingade kugadzirisa midziyo? Ini handidi kufunga nezve kuyera application. Ini handidi kubhadhara midziyo isina basa inomhanya kana mutoro uri pasevhisi uri mushoma. Ndinoda kunyora kodhi. Tarisa pane bhizinesi pfungwa uye uuye nezvigadzirwa kumusika nekumhanya kwechiedza.

Pfungwa dzakadaro dzakandisvitsa ku serverless computing. Serverless munyaya iyi zvinoreva kwete kusavapo kwemuviri kwemaseva, asi kusavapo kwemusoro wekugadzirisa zvivakwa.

Pfungwa yacho ndeyekuti application logic yakaputswa kuita yakazvimirira mabasa. Vane chimiro chechiitiko. Basa rimwe nerimwe rinoita "microtask" imwe chete. Zvese zvinodikanwa kubva kumugadziri kurodha mabasa mukoni yakapihwa nemupi wegore uye nekuabatanidza nezviitiko masosi. Iyo kodhi ichaitwa painodiwa mumudziyo wakagadzirirwa otomatiki, uye ini ndichabhadhara chete yenguva yekuuraya.

Ngationei kuti maitiro ekuvandudza application achaita sei izvozvi.

Kubva kudivi remugadziri

Pakutanga takatanga kutaura nezve application yechitoro chepamhepo. Mune nzira yechinyakare, iyo huru logic yehurongwa inoitwa ne monolithic application. Uye sevha ine application inogara ichimhanya, kunyangwe pasina mutoro.

Kuti tiende kune serverless, tinopwanya application kuita microtasks. Isu tinonyora basa redu kune mumwe nemumwe wavo. Iwo mabasa akazvimirira kubva kune mumwe uye haachengete ruzivo rwenyika (isina nyika). Angatonyorwa nemitauro yakasiyana. Kana mumwe wavo "akadonha", iyo application yese haizomira. Iyo application architecture ichaita seizvi:

Serverless nema racks
Iyo kupatsanurwa kuita mabasa muServerless kwakafanana nekushanda nemamicroservices. Asi microservice inogona kuita akati wandei mabasa, uye basa rinofanirwa kuita rimwe chete. Ngatimbofungidzira kuti basa nderekuunganidza zviverengero uye kuzviratidzira pakukumbira kwemushandisi. Munzira yemicroservice, basa rinoitwa nesevhisi imwe ine mapoinzi maviri ekupinda: kunyora nekuverenga. Mune serverless komputa, aya achave maviri akasiyana mabasa asina hukama kune mumwe nemumwe. Mugadziri anochengetedza zviwanikwa zvekombuta kana, semuenzaniso, nhamba dzichivandudzwa kakawanda kupfuura dzadzinotorwa.

Mabasa asina server anofanirwa kuitwa munguva pfupi (timeout), iyo inotemerwa nemupi webasa. Semuenzaniso, yeAWS nguva yekubuda imaminitsi gumi nemashanu. Izvi zvinoreva kuti mabasa anogara kwenguva refu achafanirwa kuchinjwa kuti aenderane nezvinodiwa - izvi ndizvo zvinosiyanisa Serverless kubva kune mamwe matekinoroji anozivikanwa nhasi (containers uye Platform seSevhisi).

Isu tinopa chiitiko kune yega yega basa. Chiitiko chinokonzeresa chiito:

Chiitiko
Chiito icho basa rinoita

Mufananidzo wechigadzirwa waiswa kunzvimbo inochengeterwa.
Dzvinya chifananidzo uye uise kune dhairekitori

Kero yechitoro chemuviri yakagadziridzwa mudhatabhesi
Isa nzvimbo itsva mumamepu

Mutengi anobhadhara zvinhu
Tanga kubhadhara kubhadhara

Zviitiko zvinogona kuve zvikumbiro zveHTTP, kutenderera data, mitsara yemameseji, zvichingodaro. Zviitiko zvinyorwa shanduko kana kuitika kwedata. Mukuwedzera, mabasa anogona kukonzerwa ne timer.

Iyo dhizaini yakagadziriswa, uye application yakapotsa yave isina server. Zvadaro tinoenda kumupi webasa.

Kubva kudivi remupi

Kazhinji, serverless komputa inopihwa nevegore sevhisi vanopa. Vanodaidzwa zvakasiyana: Azure Mabasa, AWS Lambda, Google Cloud Functions, IBM Cloud Functions.

Isu tichashandisa sevhisi kuburikidza nemupi wekoni kana account yako pachako. Basa rekodhi rinogona kutorwa mune imwe yenzira dzinotevera:

  • nyora kodhi mune akavakirwa-mukati edhita kuburikidza newebhu console,
  • dhawunirodha archive nekodhi,
  • shanda neruzhinji kana yakavanzika git repositories.

Pano tinogadzirisa zviitiko zvinodana basa. Maseti ezviitiko anogona kusiyana kune vakasiyana vanopa.

Serverless nema racks

Mupi akavaka uye otomatiki Basa seSevhisi (FaaS) sisitimu pazvivakwa zvayo:

  1. Iyo kodhi yebasa inopera mukuchengetedza padivi remupi.
  2. Kana chiitiko chikaitika, midziyo ine nharaunda yakagadzirirwa inoiswa otomatiki pane server. Chimwe nechimwe chiitiko chine chigadziko chayo chega.
  3. Kubva pakuchengetedza, basa racho rinotumirwa kumudziyo, rakaverengwa, uye rinodzorera chigumisiro.
  4. Huwandu hwezviitiko zvakafanana zviri kukura - nhamba yemidziyo iri kukura. Iyo system inoyera yega. Kana vashandisi vakasawana basa racho, rinenge risisaite.
  5. Mupi anogadzirisa nguva isina basa yemidziyo - kana panguva ino mabasa asingaonekwi mumudziyo, inoparadzwa.

Nenzira iyi tinowana Serverless kunze kwebhokisi. Isu tichabhadhara iyo sevhisi tichishandisa iyo yekubhadhara-se-iwe-enda modhi uye chete kune iwo mabasa anoshandiswa, uye chete kwenguva iyo iwo akashandiswa.

Kusuma vanogadzira sevhisi, vanopa vanopa kusvika kumwedzi gumi nemiviri yekuyedzwa kwemahara, asi dzikamisa iyo yakazara computation nguva, nhamba yezvikumbiro pamwedzi, mari kana mashandisiro emagetsi.

Mukana mukuru wekushanda nemupi wekupa kugona kusanetseka nezve zvivakwa (maseva, chaiwo muchina, midziyo). Kune chikamu chayo, mupi anogona kuita FaaS ese ari maviri achishandisa ayo ekuvandudza uye kushandisa yakavhurika-sosi maturusi. Ngatikurukureizve nezvadzo.

Kubva kudivi rakavhurika sosi

Iyo yakavhurika-sosi nharaunda yanga ichishanda nesimba pane Serverless maturusi kwemakore akati wandei apfuura. Vatambi vemusika vakakura vanobatsirawo mukusimudzira mapuratifomu asina server:

  • Google inopa vanogadzira chishandiso chayo chakavhurika-sosi - knative. IBM, RedHat, Pivotal uye SAP yakabatanidzwa mukuvandudzika kwayo;
  • IBM akashanda paServerless platform OpenWhisk, iyo yakazove chirongwa cheApache Foundation;
  • Microsoft zvishoma akavhura kodhi yepuratifomu Azure Mabasa.

Budiriro zvakare iri kuenderera mberi munzira ye serverless masisitimu. Kubeless и Kuzvitsaura akaiswa mukati mekare-akagadzirirwa Kubernetes masumbu, OpenFaaS inoshanda neKubernetes uye Docker Swarm. Iyo dhizaini inoita senge yerudzi rwemutongi - pakukumbira, inogadzirira nharaunda yekumhanya mukati mesumbu, yobva yatanga basa ipapo.

Maframework anosiya nzvimbo yekumisikidza chishandiso kuti chienderane nezvido zvako. Saka, muKubeless, mugadziri anogona kugadzirisa basa rekuita nguva yekubuda (iyo yakasarudzika kukosha ndeye 180 masekonzi). Fission, mukuyedza kugadzirisa dambudziko rekutanga rinotonhora, rinopa zano rekuchengeta mamwe midziyo ichimhanya nguva dzese (kunyangwe izvi zvinosanganisira mutengo wekudzikira nguva). Uye OpenFaaS inopa seti yezvinokonzeresa kune ese kuravira uye ruvara: HTTP, Kafka, Redis, MQTT, Cron, AWS SQS, NATs nevamwe.

Mirayiridzo yekutanga inogona kuwanikwa muzvinyorwa zvepamutemo zvemafuremu. Kushanda navo kunoda kuve nehunyanzvi hushoma pane kana uchishanda neanopa - uku ndiko kugona kuvhura Kubernetes cluster kuburikidza neCLI. Kunyanya, sanganisira mamwe maturusi akavhurika-sosi (semuenzaniso, Kafka queue maneja).

Zvisinei nekuti tinoshanda sei neServerless - kuburikidza nemupi wekupa kana kushandisa yakavhurika-sosi, isu tinogashira akati wandei mabhenefiti uye nekuipa kweServerless maitiro.

Kubva pakuona kwezvakanaka uye zvisingabatsiri

Serverless inovandudza mazano emudziyo wemidziyo uye microservice nzira, umo zvikwata zvinogona kushanda mumitauro yakawanda pasina kusungirirwa papuratifomu imwe. Kuvaka sisitimu kunorerutswa uye zvikanganiso zviri nyore kugadzirisa. Microservice architecture inokutendera iwe kuti uwedzere hutsva hutsva kune system nekukurumidza zvakanyanya kupfuura mune iyo monolithic application.

Serverless inoderedza nguva yekusimudzira zvakanyanya, kubvumira mugadziri kuti atarise chete pane bhizinesi rekushandisa uye kukodha. Nekuda kweizvozvo, nguva yekushambadza zvebudiriro inoderedzwa.

Sebhonasi, tinowana otomatiki kuyera mutoro, uye isu tinobhadhara chete zviwanikwa zvinoshandiswa uye chete panguva yazvinoshandiswa.

Kufanana nechero tekinoroji, Serverless ine zvayakaipira.

Semuenzaniso, kukanganisa kwakadaro kungave kutonhora kwekutanga nguva (paavhareji inosvika 1 sekondi yemitauro yakaita seJavaScript, Python, Go, Java, Ruby).

Kune rumwe rutivi, chaizvoizvo, kutonhora kwekutanga nguva kunobva pane zvakawanda zvakasiyana-siyana: mutauro umo basa rakanyorwa, nhamba yemaraibhurari, chiyero chekodhi, kutaurirana nezvimwe zviwanikwa (iyo dhatabhesi imwechete kana maseva ekusimbisa). Sezvo mugadziri anodzora aya akasiyana, anogona kuderedza nguva yekutanga. Asi kune rumwe rutivi, mugadziri haakwanisi kudzora nguva yekutanga yemudziyo - zvose zvinoenderana nemupi.

Kutanga kunotonhora kunogona kushanduka kuve kutanga kunodziya kana basa rikashandisazve mudziyo wakatangwa nechiitiko chakapfuura. Mamiriro ezvinhu aya anomuka muzviitiko zvitatu:

  • kana vatengi vachiwanzoshandisa sevhisi uye nhamba yekufona kune basa inowedzera;
  • kana mupi, chikuva kana chimiro chichikubvumira kuti uchengetedze mamwe midziyo inomhanya nguva dzose;
  • kana mugadziri achimhanyisa mabasa pane timer (taura yega maminetsi matatu).

Kune akawanda maapplication, kutonhora kutanga haisi dambudziko. Pano iwe unofanirwa kuvaka pane rudzi uye mabasa ebasa. Kunonoka kwekutanga kwesekondi haisi nguva dzose yakakosha kune bhizinesi application, asi inogona kuve yakakosha kumasevhisi ekurapa. Muchiitiko ichi, iyo serverless nzira ingangove isingachakodzeri.

Iyo inotevera kukanganisa kweServerless inguva pfupi yehupenyu hwebasa (nguva yekubuda panguva iyo basa rinofanira kuitwa).

Asi, kana iwe uchifanira kushanda nemabasa ekugara kwenguva refu, unogona kushandisa hybrid architecture - sanganisa Serverless neimwe tekinoroji.

Haasi ese masisitimu achakwanisa kushanda achishandisa iyo Serverless scheme.

Mamwe maapplication acharamba achichengeta data uye nyika panguva yekuuraya. Mamwe magadzirirwo acharamba ari monolithic uye mamwe maficha achararama kwenguva refu. Nekudaro (semakore tekinoroji uyezve midziyo), Serverless tekinoroji ine ramangwana rakanaka.

Muchiitiko ichi, ndinoda kuenderera mberi zvakanaka kune nyaya yekushandisa Serverless nzira.

Kubva kudivi rekushandisa

Ye 2018, iyo muzana yeServerless kushandiswa yakakura kamwechete nehafu. Pakati pemakambani akatoita tekinoroji mumasevhisi avo pane hofori dzemusika dzakadai seTwitter, PayPal, Netflix, T-Mobile, Coca-Cola. Panguva imwecheteyo, iwe unofanirwa kunzwisisa kuti Serverless haisi panacea, asi chishandiso chekugadzirisa mamwe matambudziko:

  • Deredza resource downtime. Iko hakuna chikonzero chekugara uchichengeta muchina chaiwo wemasevhisi ane mashoma mafoni.
  • Gadzirisa data pane nhunzi. Dzvinya mapikicha, cheka kumashure, shandura vhidhiyo encoding, shanda neIoT sensors, ita masvomhu mabasa.
  • "Glue" mamwe masevhisi pamwe chete. Git repository ine zvirongwa zvemukati, chat bot muSlack neJira uye karenda.
  • Kudzikamisa mutoro. Ngatinyatsoongororai pano.

Toti pane service inokwezva vanhu makumi mashanu. Pasi payo pane virtual machine ine hardware isina simba. Nguva nenguva, mutoro webasa unowedzera zvakanyanya. Ipapo isina simba Hardware haigone kurarama.

Iwe unogona kusanganisira muyero muhurongwa hunozogovera mutoro, toti, pamakina matatu chaiwo. Panguva ino, hatigone kufanotaura nemazvo mutoro, saka tinochengeta humwe huwandu hwezviwanikwa huchimhanya "muchengetedzo." Uye isu tinobhadhara zvakanyanya kune downtime.

Mumamiriro ezvinhu akadaro, isu tinokwanisa kukwidziridza sisitimu kuburikidza neyakasanganiswa nzira: isu tinosiya imwe chaiyo muchina kuseri kwekuremerwa balancer uye tinoisa chinongedzo kune Serverless Endpoint ine mabasa. Kana mutoro wacho ukapfuura chikumbaridzo, mubhadhari anotanga zviitiko zvebasa zvinotora chikamu chekukumbira kugadzirisa.

Serverless nema racks
Nokudaro, Serverless inogona kushandiswa pazvinenge zvakakodzera kugadzirisa nhamba huru yezvikumbiro kwete kakawanda, asi zvakasimba. Muchiitiko ichi, kuita mabasa akati wandei kwemaminitsi gumi nemashanu kune pundutso pane kuchengetedza muchina chaiwo kana sevha nguva dzese.

Nezvese zvakanakira serverless komputa, usati waitwa, iwe unofanirwa kutanga waongorora iyo yekushandisa logic uye kunzwisisa kuti ndeapi matambudziko Serverless anogona kugadzirisa mune imwe nyaya.

Serverless uye Selectel

KuSelectel tatova basa rakareruka neKubernetes kuburikidza ne control panel yedu. Iye zvino tiri kuvaka yedu FaaS chikuva. Tinoda vanogadzira kuti vakwanise kugadzirisa matambudziko avo vachishandisa Serverless kuburikidza neiri nyore, inochinjika interface.

Kana iwe uine mazano ekuti chii chakakodzera FaaS chikuva chinofanirwa kunge chiri uye kuti unoda kushandisa sei Serverless mumapurojekiti ako, igovera ivo mune zvakataurwa. Isu tichatora zvishuwo zvako mukufunga kana uchigadzira chikuva.
 
Zvishandiso zvakashandiswa muchinyorwa:

Source: www.habr.com

Voeg