Iibhloko zokwakha zezicelo ezisasaziweyo. Zero uqikelelo

Iibhloko zokwakha zezicelo ezisasaziweyo. Zero uqikelelo

Ihlabathi alimi ngxi. Inkqubela phambili idala imingeni emitsha yezobuchwepheshe. Ngokuhambelana neemfuno eziguqukayo, ulwakhiwo lweenkqubo zolwazi kufuneka luguquke. Namhlanje siza kuthetha malunga noyilo oluqhutywa ngumnyhadala, i-concurrency, i-concurrency, i-asynchrony, kunye nokuba ungaphila njani ngoxolo nayo yonke le nto e-Erlang.

Intshayelelo

Ngokuxhomekeke kubungakanani benkqubo eyiliweyo kunye neemfuno zayo, thina, abaphuhlisi, sikhetha indlela yokutshintshiselana ngolwazi kwinkqubo. Kwiimeko ezininzi, ukulungelelanisa ukusebenzisana kweenkonzo, inketho yokusebenza ingaba yiskimu kunye nomthengisi, umzekelo, ngokusekelwe kwi-RabbitMQ okanye i-kafka. Kodwa ngamanye amaxesha ukuhamba kweziganeko, i-SLA kunye nenqanaba lokulawula inkqubo injalo ukuba imiyalezo esele ilungile ayifanelekanga kuthi. Ngokuqinisekileyo, unokwenza nzima inkqubo encinci ngokuthatha uxanduva loluhlu lwezothutho kunye nokwakhiwa kweqela, umzekelo usebenzisa i-ZeroMQ okanye i-nanomsg. Kodwa ukuba inkqubo ine-output eyaneleyo kunye nezakhono zeqela eliqhelekileyo le-Erlang, ngoko umba wokwazisa iziko elongezelelweyo ufuna uphononongo oluneenkcukacha kunye nokulungiswa kwezoqoqosho.

Isihloko sezicelo ezisasazwayo ezisebenzayo sibanzi kakhulu. Ukugcina ngaphakathi kwifomathi yenqaku, umxholo wengxoxo yanamhlanje uya kuba ziimeko ezifanayo ezakhiwe e-Erlang/Elixir. I-Erlang/OTP ecosystem ikuvumela ukuba uphumeze ulwakhiwo olusebenzayo kunye nomyinge omncinci womzamo. Kodwa kuyo nayiphi na imeko, siya kufuna umaleko womyalezo.

Isiseko sethiyori

Uyilo luqala ngokuchaza iinjongo kunye nemiqobo. Eyona njongo iphambili ayikho kwindawo yophuhliso ngenxa yophuhliso. Kufuneka sifumane isixhobo esikhuselekileyo nesinokwehla ngokwesiseko esinokusenza kwaye, okona kubaluleke kakhulu, siphuhlise usetyenziso lwangoku lwamanqanaba ahlukeneyo: ukuqala kwizicelo zomncedisi omnye osebenzela abaphulaphuli abancinci, abanokuthi kamva baphuhlise babe ngamaqela ukuya kuthi ga kwi-50. -60 iindawo, eziphela ngemibutho emanyeneyo. Ngaloo ndlela, injongo ephambili kukwandisa inzuzo ngokunciphisa iindleko zophuhliso kunye nobunini benkqubo yokugqibela.

Makhe sigxininise iimfuneko ezi-4 eziphambili zenkqubo yokugqibela:

  • Π‘ejolise kumsitho.
    Inkqubo ihlala ilungele ukudlula ukuhamba kweziganeko kunye nokwenza izenzo eziyimfuneko;
  • Мscalability.
    Iibhloko zomntu ngamnye zinokulinganiswa ngokuthe nkqo nangokuthe tye. Yonke inkqubo kufuneka ibe nako ukukhula okuthe tye okungapheliyo;
  • Оukunyamezela iimpazamo.
    Onke amanqanaba kunye nazo zonke iinkonzo kufuneka zikwazi ukubuyisela ngokuzenzekelayo kwiintsilelo;
  • Π“ixesha lokuphendula eliqinisekisiweyo.
    Ixesha lixabisekile kwaye abasebenzisi akufanele balinde ixesha elide.

Khumbula intsomi endala malunga "Injini encinci enokuthi"? Ukuze inkqubo eyiliweyo iphume ngempumelelo kwinqanaba leprototype kwaye ibe yinkqubela phambili, isiseko sayo kufuneka sihlangabezane neemfuno ezincinci I-SMOG.

Enye ingongoma yongezwa kwimiyalezo njengesixhobo seziseko ezingundoqo kunye nesiseko sazo zonke iinkonzo: ukusebenziseka lula kwabaprogram.

Ijolise kumsitho

Ukuze isicelo sikhule ukusuka kumncedisi omnye ukuya kwiqela, ulwakhiwo lwalo kufuneka luxhase ukudityaniswa okukhululekileyo. Imodeli ye-asynchronous ihlangabezana nale mfuneko. Kuyo, umthumeli kunye nommkeli ukhathalela malunga nomthwalo wolwazi lomyalezo kwaye ungakhathazeki malunga nokuhanjiswa kunye nomzila ngaphakathi kwenkqubo.

Ukubaleka

I-scalability kunye nokusebenza kakuhle kwenkqubo kusecaleni komnye nomnye. Amacandelo esicelo kufuneka akwazi ukusebenzisa zonke izixhobo ezikhoyo. Okukhona sinokubusebenzisa ngokufanelekileyo umthamo kunye neendlela zethu zokusetyenzwa kakuhle, kokukhona sichitha imali encinci kwizinto zokusebenza.

Ngaphakathi kumatshini omnye, u-Erlang wenza imeko-bume enokhuphiswano oluphezulu. Ibhalansi phakathi kweconcurrency kunye neparallelism inokumiselwa ngokukhetha inani lemisonto yendlela yokusebenza ekhoyo kwi-Erlang VM kunye nenani labacwangcisi abasebenzisa le misonto.
Iinkqubo ze-Erlang azibelani ngombuso kwaye zisebenza ngendlela engathinteliyo. Oku kubonelela nge-latency ephantsi kunye ne-throughput ephezulu kunezicelo zendabuko ezisekelwe ekuthinteleni. Umcwangcisi ka-Erlang uqinisekisa ulwabiwo olufanelekileyo lwe-CPU kunye ne-IO, kwaye ukungabikho kokuthintela kuvumela isicelo ukuba siphendule nangexesha lomthwalo ophakamileyo okanye ukusilela.

Kwinqanaba leqela, ingxaki yokulahlwa ikhona. Kubalulekile ukuba bonke oomatshini abakwi-cluster balayishwe ngokulinganayo kwaye inethiwekhi ayilayishwanga kakhulu. Makhe sicinge ngemeko: i-traffic traffic ifika kwi-balancers engenayo (i-haproxy, nginx, njl,njl), basasaza izicelo zokucubungula ngokulinganayo kangangoko phakathi kweseti yee-backends ezikhoyo. Ngaphakathi kweziseko ezingundoqo zesicelo, inkonzo ephumeza ujongano olufunekayo yimayile kuphela yokugqibela kwaye kuya kufuneka icele inani lezinye iinkonzo ukuphendula isicelo sokuqala. Izicelo zangaphakathi zikwafuna ukuthungwa kunye nokulinganisa.
Ukulawula ngokufanelekileyo ukuhamba kwedatha, imiyalezo kufuneka ibonelele abaphuhlisi nge-interface yokulawula umzila kunye nokulinganisa umthwalo. Ndiyabulela kule nto, abaphuhlisi baya kukwazi, ukusebenzisa iipatheni ze-microservice (i-aggregator, i-proxy, ikhonkco, isebe, njl njl), ukusombulula zombini iingxaki ezisemgangathweni kunye nezo zingafane zivele.

Ukusuka kwindawo yokujonga ishishini, i-scalability yenye yezixhobo zokulawula umngcipheko. Eyona nto iphambili kukwanelisa izicelo zabathengi ngokusebenzisa ngokugqibeleleyo izixhobo:

  • Xa amandla ezixhobo enyuka ngenxa yenkqubela phambili. Ayizukusebenza ngenxa yesoftware engafezekanga. U-Erlang ukala ngokuthe nkqo kwaye uya kuhlala ekwazi ukusebenzisa zonke iicores ze-CPU kunye nememori ekhoyo;
  • Kwiindawo zamafu, sinokulawula inani lezixhobo ngokuxhomekeke kumthwalo wangoku okanye oqikelelweyo kunye nesiqinisekiso se-SLA.

ukunyamezela iimpazamo

Makhe siqwalasele iingongoma ezimbini: β€œUkungaphumeleli akwamkelekanga” kunye β€œKuya kuhlala kukho ukungaphumeleli.” Kwishishini, ukungaphumeleli kwesoftware kuthetha ukulahlekelwa yimali, kwaye yintoni embi kakhulu, ukulahleka kwegama. Ukulinganisa phakathi kwelahleko enokwenzeka kunye neendleko zokuphuhlisa isofthiwe yokunyamezela iimpazamo, ukuhambelana kunokufunyanwa rhoqo.

Ngexesha elifutshane, i-architecture ebandakanya ukunyamezela iimpazamo kugcina imali ekuthengeni izisombululo ze-clustering ze-shelf. Ziyabiza kwaye zineencukuthu.
Ngexesha elide, i-architecture ekwazi ukumelana neziphene izihlawulela amaxesha amaninzi kuzo zonke izigaba zophuhliso.
Ukuthumela imiyalezo ngaphakathi kwesiseko sekhowudi ikuvumela ukuba usebenze ngokweenkcukacha ukusebenzisana kwamacandelo ngaphakathi kwenkqubo kwinqanaba lophuhliso. Oku kwenza lula umsebenzi wokuphendula nokulawula ukungaphumeleli, ekubeni onke amacandelo abalulekileyo aphatha ukungaphumeleli, kwaye inkqubo yesiphumo iyazi indlela yokubuyela ngokuzenzekelayo kwisiqhelo emva kokungaphumeleli ngokuyila.

Ukusabela

Ngaphandle kokungaphumeleli, isicelo kufuneka siphendule izicelo kwaye sihlangabezane ne-SLA. Inyaniso kukuba abantu abafuni ukulinda, ngoko ke amashishini kufuneka alungelelanise ngokufanelekileyo. Izicelo ezininzi nangakumbi zilindeleke ukuba ziphendule kakhulu.
Izicelo eziphendulayo zisebenza kufutshane nexesha lokwenyani. I-Erlang VM isebenza kwimowudi ethambileyo yexesha lokwenyani. Kwezinye iindawo, ezinje ngorhwebo lwesitokhwe, amayeza, kunye nolawulo lwezixhobo zefektri, imowudi yexesha lokwenyani ibalulekile.
Iinkqubo zokuphendula ziphucula i-UX kwaye zizuze ishishini.

Isiphumo sokuqala

Xa ucwangcisa eli nqaku, bendifuna ukwabelana ngamava am okudala umthengisi wemiyalezo kunye nokwakha iinkqubo ezinzima ezisekelwe kuyo. Kodwa inxalenye yethiyori kunye nenkuthazo iye yanda kakhulu.
Kwinxalenye yesibini yenqaku, ndiya kuthetha malunga nee-nuances zokuphumeza amanqaku otshintshiselwano, iipatheni zemiyalezo kunye nesicelo sabo.
Kwicandelo lesithathu siza kuthathela ingqalelo imiba jikelele yolungiselelo lweenkonzo, ukuhanjiswa kweendlela kunye nokulinganisa. Makhe sithethe ngecala elisebenzayo le-scalability kunye nokunyamezela iimpazamo kwiinkqubo.

Ukuphela kwenxalenye yokuqala.

photo @lucabravo.

umthombo: www.habr.com

Yongeza izimvo