Amabhulokhi wokwakha wezinhlelo zokusebenza ezisabalalisiwe. Ukulinganisa kukaziro

Amabhulokhi wokwakha wezinhlelo zokusebenza ezisabalalisiwe. Ukulinganisa kukaziro

Umhlaba awumile. Inqubekelaphambili idala izinselele ezintsha zobuchwepheshe. Ngokuhambisana nezidingo eziguqukayo, ukwakheka kwezinhlelo zolwazi kufanele kuguquke. Namuhla sizokhuluma ngezakhiwo eziqhutshwa umcimbi, ukuhambisana, ukuhlangana, i-asynchrony, nokuthi ungaphila kanjani ngokuthula nakho konke lokhu e-Erlang.

Isingeniso

Ngokuya ngosayizi wesistimu eklanyelwe kanye nezidingo zayo, thina, abathuthukisi, sikhetha indlela yokudlulisa ulwazi ohlelweni. Ezimweni eziningi, ukuhlela ukusebenzisana kwezinsizakalo, inketho yokusebenza ingaba uhlelo nomthengisi, isibonelo, ngokusekelwe ku-RabbitMQ noma i-kafka. Kodwa ngezinye izikhathi ukugeleza kwemicimbi, i-SLA kanye nezinga lokulawula uhlelo kufana nokuthi imilayezo eyenziwe ngomumo ayifanele thina. Yebo, ungakwazi ukuhlanganisa uhlelo kancane ngokuthatha isibopho sesendlalelo sezokuthutha kanye nokwakheka kweqoqo, isibonelo usebenzisa i-ZeroMQ noma i-nanomsg. Kodwa uma isistimu inokuphuma okwanele namandla eqoqo elijwayelekile le-Erlang, khona-ke udaba lokwethula ibhizinisi elingeziwe ludinga ukucwaninga okuningiliziwe nokulungiswa kwezomnotho.

Isihloko sezinhlelo zokusebenza ezisabalalisiwe ezisebenzayo sibanzi kakhulu. Ukugcina ngaphakathi kwefomethi ye-athikili, isihloko sengxoxo yanamuhla kuzoba izindawo ezifanayo kuphela ezakhiwe ku-Erlang/Elixir. I-Erlang/OTP ecosystem ikuvumela ukuthi usebenzise i-architecture esebenzayo ngenani elincane lomzamo. Kodwa kunoma yikuphi, sizodinga ungqimba lwemiyalezo.

Isisekelo setiyetha

Idizayini iqala ngokuchaza izinjongo nezithiyo. Umgomo oyinhloko awukho endaweni yentuthuko ngenxa yentuthuko. Kudingeka sithole ithuluzi elivikelekile nelinokwehla esisekelweni esingakwazi ukulidala futhi, okubaluleke kakhulu, sithuthukise izinhlelo zokusebenza zesimanje zamazinga ahlukahlukene: kusukela kuzinhlelo zokusebenza zeseva eyodwa ezinikeza izethameli ezincane, kamuva ezingakhula zibe amaqoqo afika kwangu-50. -60 amanodi, agcina ngemifelandawonye yamaqoqo. Ngakho, umgomo oyinhloko ukukhulisa inzuzo ngokunciphisa izindleko zokuthuthukiswa kanye nobunikazi besistimu yokugcina.

Ake sigqamise izimfuneko ezi-4 eziyinhloko zesistimu yokugcina:

  • Π‘okuqondiswe kumcimbi.
    Uhlelo luhlala lulungele ukudlula ukugeleza kwemicimbi futhi lwenze izenzo ezidingekayo;
  • Мscalability.
    Amabhulokhi angawodwana angakalwa ngokuqondile nangokuvundlile. Lonke uhlelo kumele lukwazi ukukhula okuvundlile okungapheli;
  • Оukubekezelelana kwamaphutha.
    Wonke amazinga nawo wonke amasevisi kufanele akwazi ukuphinde alulame ngokuzenzakalelayo ekuhlulekeni;
  • Π“isikhathi sokuphendula esiqinisekisiwe.
    Isikhathi sibalulekile futhi abasebenzisi akufanele balinde isikhathi eside.

Khumbula inganekwane endala ethi β€œInjini encane engakwazi”? Ukuze isistimu eklanyelwe iphume ngempumelelo esigabeni se-prototype futhi iqhubeke, isisekelo sayo kufanele sihlangabezane nezidingo ezincane I-SMOG.

Elinye iphuzu lengeziwe emilayezweni njengethuluzi lengqalasizinda kanye nesisekelo sazo zonke izinsiza: ukusetshenziswa kalula kwabahleli bohlelo.

Okuqondiswe kumcimbi

Ukuze uhlelo lokusebenza lukhule ukusuka kuseva eyodwa ukuya kuqoqo, ukwakheka kwalo kufanele kusekele ukuhlangana okuxekethile. Imodeli ye-asynchronous ihlangabezana nale mfuneko. Kuyo, umthumeli nomamukeli unakekela mayelana nomthwalo wolwazi womlayezo futhi ungakhathazeki ngokudluliswa nokuthuthwa kwesistimu ngaphakathi kwesistimu.

I-Scalability

Ukuqina nokusebenza kahle kwesistimu kusondelene. Izingxenye zohlelo lokusebenza kufanele zikwazi ukusebenzisa zonke izinsiza ezitholakalayo. Uma singakwazi ukusebenzisa umthamo ngendlela egculisayo kanye nezindlela zethu zokucubungula ezisezingeni eliphezulu, imali esiyichitha kumishini.

Ngaphakathi komshini owodwa, u-Erlang udala indawo enokuncintisana kakhulu. Ibhalansi phakathi kwe-concurrency nokufana ingasethwa ngokukhetha inombolo yochungechunge lwesistimu yokusebenza etholakala ku-Erlang VM kanye nenani labahleli abasebenzisa lolu chungechunge.
Izinqubo ze-Erlang azihlanganisi isimo futhi zisebenza kumodi engavimbeli. Lokhu kunikeza ukubambezeleka okuphansi kanye nokusebenza okuphezulu kunezinhlelo zokusebenza ezisekelwe ekuvimbeni ezivamile. Isihleli sika-Erlang siqinisekisa ukwabiwa okufanele kwe-CPU ne-IO, futhi ukungabikho kokuvinjwa kuvumela uhlelo lokusebenza ukuthi luphendule ngisho naphakathi kwemithwalo emikhulu noma ukwehluleka.

Ezingeni le-cluster, inkinga yokulahlwa nayo ikhona. Kubalulekile ukuthi yonke imishini eku-cluster ilayishwe ngokulinganayo nokuthi inethiwekhi ayilayishiwe ngokweqile. Ake sicabange ngesimo: ithrafikhi yabasebenzisi ihlala kumabhalansi angenayo (haproxy, nginx, njll), basabalalisa izicelo zokucubungula ngokulinganayo ngangokunokwenzeka phakathi kwesethi yama-backend atholakalayo. Ngaphakathi kwengqalasizinda yesicelo, isevisi esebenzisa isixhumi esibonakalayo esidingekayo iyimayela lokugcina kuphela futhi izodinga ukucela inani lezinye izinsiza ukuze iphendule esicelweni sokuqala. Izicelo zangaphakathi nazo zidinga umzila nokulinganisa.
Ukuze uphathe ngempumelelo ukugeleza kwedatha, imilayezo kufanele inikeze onjiniyela isixhumi esibonakalayo ukuze baphathe umzila nokulinganisa kokulayisha. Ngenxa yalokhu, abathuthukisi bazokwazi, besebenzisa amaphethini we-microservice (i-aggregator, i-proxy, iketango, igatsha, njll), ukuxazulula zombili izinkinga ezijwayelekile kanye nalezo ezingavamile ukuvela.

Ngokombono webhizinisi, i-scalability ingelinye lamathuluzi okulawula ubungozi. Into esemqoka ukwanelisa izicelo zamakhasimende ngokusebenzisa imishini:

  • Lapho amandla emishini enyuka ngenxa yenqubekelaphambili. Ngeke isebenze ngenxa yesofthiwe engaphelele. U-Erlang ukala kahle futhi uyohlale ekwazi ukusebenzisa wonke ama-CPU cores nenkumbulo etholakalayo;
  • Ezimweni zamafu, singaphatha inani lezinto zokusebenza kuye ngomthwalo wamanje noma obikezelwe kanye nesiqiniseko se-SLA.

ukubekezelelana kwamaphutha

Ake sicabangele ama-axioms amabili: β€œUkwehluleka akwamukeleki” kanye nokuthi β€œKuyohlala kukhona ukwehluleka.” Ebhizinisini, ukwehluleka kwesoftware kusho ukulahlekelwa yimali, futhi okubi nakakhulu, ukulahlekelwa isithunzi. Ukulinganisa phakathi kokulahlekelwa okungenzeka kanye nezindleko zokuthuthukisa isofthiwe ebekezelela amaphutha, ukuvumelana kungatholakala ngokuvamile.

Esikhathini esifushane, i-architecture ehlanganisa ukubekezelela amaphutha yonga imali ekuthengeni izixazululo zokuhlanganisa ngaphandle kweshelufu. Ayabiza futhi anezinambuzane.
Ngokuhamba kwesikhathi, i-architecture ebekezelela amaphutha izikhokhela izikhathi eziningi kuzo zonke izigaba zokuthuthuka.
Ukuthumela imiyalezo ngaphakathi kwesisekelo sekhodi kukuvumela ukuthi usebenze ngokuningiliziwe ukusebenzisana kwezingxenye ngaphakathi kwesistimu esigabeni sokuthuthuka. Lokhu kwenza kube lula umsebenzi wokuphendula nokuphatha ukwehluleka, njengoba zonke izingxenye ezibucayi zisingatha ukwehluleka, futhi uhlelo oluphumayo luyakwazi ukubuyela ngokuzenzakalelayo kokujwayelekile ngemva kokwehluleka ngokuklama.

Ukusabela

Kungakhathaliseki ukwehluleka, isicelo kufanele siphendule izicelo futhi sihlangabezane ne-SLA. Iqiniso liwukuthi abantu abafuni ukulinda, ngakho amabhizinisi kufanele azivumelanise ngokufanele. Izicelo ezengeziwe zilindeleke ukuthi ziphendule kakhulu.
Izinhlelo zokusebenza ezisabelayo zisebenza eduze nesikhathi sangempela. I-Erlang VM isebenza ngemodi yesikhathi sangempela esithambile. Kwezinye izindawo, njengokuhweba ngamasheya, imithi, nokulawulwa kwemishini yezimboni, imodi yesikhathi sangempela eqinile ibalulekile.
Amasistimu aphendulayo athuthukisa i-UX futhi azuzise ibhizinisi.

Isifinyezo sokuqala

Lapho ngihlela lesi sihloko, bengifuna ukwabelana ngolwazi lwami lokudala umthengisi wemiyalezo nokwakha amasistimu ayinkimbinkimbi asekelwe kuwo. Kodwa ingxenye yetiyori kanye neyokugqugquzela ivele yaba yinde kakhulu.
Engxenyeni yesibili ye-athikili, ngizokhuluma ngama-nuances wokusebenzisa amaphuzu okushintshanisa, amaphethini wemiyalezo kanye nokusetshenziswa kwawo.
Engxenyeni yesithathu sizocubungula izindaba ezijwayelekile zokuhlela izinsiza, umzila nokulinganisa. Ake sikhulume ngohlangothi olusebenzayo lwe-scalability kanye nokubekezelela amaphutha kwezinhlelo.

Ukuphela kwengxenye yokuqala.

Photography @lucabravo.

Source: www.habr.com

Engeza amazwana