Awọn bulọọki ile ti awọn ohun elo ti a pin. Odo isunmọ

Awọn bulọọki ile ti awọn ohun elo ti a pin. Odo isunmọ

Aye ko duro jẹ. Ilọsiwaju ṣẹda awọn italaya imọ-ẹrọ tuntun. Ni ibamu pẹlu awọn ibeere iyipada, faaji ti awọn eto alaye gbọdọ dagbasoke. Loni a yoo sọrọ nipa faaji ti o dari iṣẹlẹ, concurrency, concurrency, asynchrony, ati bii o ṣe le gbe ni alafia pẹlu gbogbo eyi ni Erlang.

Ifihan

Da lori iwọn ti eto apẹrẹ ati awọn ibeere fun rẹ, awa, awọn olupilẹṣẹ, yan ọna ti paarọ alaye ninu eto naa. Ni ọpọlọpọ igba, lati ṣeto ibaraenisepo ti awọn iṣẹ, aṣayan iṣẹ le jẹ ero pẹlu alagbata, fun apẹẹrẹ, da lori RabbitMQ tabi kafka. Ṣugbọn nigbakan ṣiṣan awọn iṣẹlẹ, SLA ati ipele iṣakoso lori eto jẹ iru pe fifiranṣẹ ti a ti ṣetan ko dara fun wa. Nitoribẹẹ, o le ṣe idiju eto naa diẹ sii nipa gbigbe ojuse fun Layer gbigbe ati iṣelọpọ iṣupọ, fun apẹẹrẹ lilo ZeroMQ tabi nanomsg. Ṣugbọn ti eto naa ba ni iṣelọpọ to ati awọn agbara ti iṣupọ Erlang boṣewa kan, lẹhinna ọran ti iṣafihan ohun elo afikun nilo ikẹkọ alaye ati idalare eto-ọrọ.

Koko-ọrọ ti awọn ohun elo pinpin ifaseyin jẹ gbooro pupọ. Lati tọju laarin ọna kika nkan naa, koko-ọrọ ti ijiroro oni yoo jẹ awọn agbegbe isokan ti a ṣe sori Erlang/Elixir. Eto ilolupo Erlang/OTP gba ọ laaye lati ṣe imuse faaji ifaseyin pẹlu iye ti o kere ju. Ṣugbọn ni eyikeyi ọran, a yoo nilo Layer fifiranṣẹ.

Ipilẹ ilana

Apẹrẹ bẹrẹ pẹlu asọye awọn ibi-afẹde ati awọn ihamọ. Ibi-afẹde akọkọ kii ṣe ni agbegbe ti idagbasoke nitori idagbasoke. A nilo lati gba ohun elo to ni aabo ati iwọn lori ipilẹ eyiti a le ṣẹda ati, pataki julọ, dagbasoke awọn ohun elo ode oni ti awọn ipele oriṣiriṣi: bẹrẹ lati awọn ohun elo olupin ẹyọkan ti n ṣiṣẹ awọn olugbo kekere kan, eyiti o le dagbasoke nigbamii sinu awọn iṣupọ ti o to 50. -60 apa, ipari pẹlu awọn federations iṣupọ. Nitorinaa, ibi-afẹde akọkọ ni lati mu awọn ere pọ si nipa idinku idiyele ti idagbasoke ati nini ti eto ikẹhin.

Jẹ ki a ṣe afihan awọn ibeere akọkọ 4 fun eto ikẹhin:

  • Сiṣẹlẹ-Oorun.
    Eto naa ṣetan nigbagbogbo lati kọja nipasẹ ṣiṣan ti awọn iṣẹlẹ ati ṣe awọn iṣe pataki;
  • Мscalability.
    Awọn bulọọki kọọkan le jẹ iwọn ni inaro ati petele. Gbogbo eto gbọdọ jẹ o lagbara ti idagbasoke petele ailopin;
  • Оifarada ẹbi.
    Gbogbo awọn ipele ati gbogbo awọn iṣẹ yẹ ki o ni anfani lati bọsipọ laifọwọyi lati awọn ikuna;
  • Гẹri esi akoko.
    Akoko jẹ niyelori ati awọn olumulo ko yẹ ki o duro gun ju.

Ranti itan iwin atijọ nipa “Ẹnjini kekere ti o le”? Ni ibere fun eto ti a ṣe apẹrẹ lati jade kuro ni ipele apẹrẹ ati ni ilọsiwaju, ipilẹ rẹ gbọdọ pade awọn ibeere to kere julọ SMOG.

Ojuami diẹ sii ni afikun si fifiranṣẹ bi ohun elo amayederun ati ipilẹ fun gbogbo awọn iṣẹ: irọrun ti lilo fun awọn olupilẹṣẹ.

Iṣẹlẹ-Oorun

Fun ohun elo kan lati dagba lati olupin kan si iṣupọ kan, faaji rẹ gbọdọ ṣe atilẹyin isọpọ alaimuṣinṣin. Awoṣe asynchronous pade ibeere yii. Ninu rẹ, olufiranṣẹ ati olugba ṣe abojuto nipa fifuye alaye ti ifiranṣẹ ati maṣe yọ ara rẹ lẹnu nipa gbigbe ati ipa-ọna laarin eto naa.

Scalability

Scalability ati ṣiṣe eto wa ni atẹle si ara wọn. Awọn paati ohun elo gbọdọ ni anfani lati lo gbogbo awọn orisun to wa. Ni imunadoko diẹ sii a le lo agbara ati pe o dara julọ awọn ọna ṣiṣe wa, owo ti o dinku ti a na lori ohun elo.

Laarin ẹrọ kan, Erlang ṣẹda agbegbe ifigagbaga pupọ. Dọgbadọgba laarin concurrency ati parallelism ni a le ṣeto nipasẹ yiyan nọmba awọn okun ẹrọ ti o wa si Erlang VM ati nọmba awọn oluṣeto ti o lo awọn okun wọnyi.
Awọn ilana Erlang ko pin ipinlẹ ati ṣiṣẹ ni ipo ti kii ṣe idinamọ. Eyi n pese lairi kekere ti o kere ju ati iṣelọpọ giga ju awọn ohun elo ti o da lori ìdènà ibile. Eto iṣeto Erlang ṣe idaniloju ipinfunni ododo ti Sipiyu ati IO, ati isansa ti idinamọ gba ohun elo laaye lati dahun paapaa lakoko awọn ẹru oke tabi awọn ikuna.

Ni ipele iṣupọ, iṣoro pẹlu sisọnu tun wa. O ṣe pataki ki gbogbo awọn ero inu iṣupọ jẹ kojọpọ deede ati pe nẹtiwọki ko ni apọju. Jẹ ki a foju inu wo ipo kan: awọn ilẹ ijabọ olumulo lori awọn iwọntunwọnsi ti nwọle (haproxy, nginx, ati bẹbẹ lọ), wọn pin awọn ibeere ṣiṣe ni boṣeyẹ bi o ti ṣee laarin ṣeto awọn ẹhin ti o wa. Laarin awọn amayederun ohun elo, iṣẹ ti n ṣe imuse wiwo ti o nilo jẹ maili to kẹhin ati pe yoo nilo lati beere nọmba awọn iṣẹ miiran lati dahun si ibeere akọkọ. Awọn ibeere inu tun nilo ipa-ọna ati iwọntunwọnsi.
Lati ṣakoso awọn ṣiṣan data ni imunadoko, fifiranṣẹ gbọdọ pese awọn idagbasoke pẹlu wiwo lati ṣakoso ipa-ọna ati iwọntunwọnsi fifuye. Ṣeun si eyi, awọn olupilẹṣẹ yoo ni anfani, ni lilo awọn ilana microservice (alakopọ, aṣoju, ẹwọn, ẹka, ati bẹbẹ lọ), lati yanju awọn iṣoro boṣewa mejeeji ati awọn ti o ṣọwọn dide.

Lati oju-ọna iṣowo, scalability jẹ ọkan ninu awọn irinṣẹ iṣakoso eewu. Ohun akọkọ ni lati ni itẹlọrun awọn ibeere alabara nipa lilo ohun elo to dara julọ:

  • Nigbati agbara ẹrọ ba pọ si bi abajade ilọsiwaju. Kii yoo ṣe laišišẹ nitori sọfitiwia aipe. Erlang awọn iwọn ni inaro daradara ati pe yoo nigbagbogbo ni anfani lati lo gbogbo awọn ohun kohun Sipiyu ati iranti ti o wa;
  • Ni awọn agbegbe awọsanma, a le ṣakoso iye ohun elo ti o da lori lọwọlọwọ tabi ẹru asọtẹlẹ ati SLA ẹri.

ifarada ẹbi

Ẹ jẹ́ ká gbé ọ̀rọ̀ méjì yẹ̀ wò: “Àwọn ìkùnà kò ṣe ìtẹ́wọ́gbà” àti “Ìkùnà yóò máa wà nígbà gbogbo.” Fun iṣowo kan, ikuna sọfitiwia tumọ si isonu ti owo, ati ohun ti o buru ju, isonu ti orukọ rere. Iwontunwonsi laarin awọn adanu ti o ṣee ṣe ati idiyele ti idagbasoke sọfitiwia ifarada-aṣiṣe, adehun le ṣee rii nigbagbogbo.

Ni igba kukuru, faaji kan ti o ṣafikun ifarada ẹbi n fipamọ owo lori rira awọn ojutu iṣupọ-selifu. Wọn jẹ gbowolori ati pe wọn tun ni awọn idun.
Ni igba pipẹ, faaji-ọlọdun ẹbi n sanwo fun ararẹ ni ọpọlọpọ igba ni gbogbo awọn ipele ti idagbasoke.
Fifiranṣẹ laarin ipilẹ koodu gba ọ laaye lati ṣiṣẹ ni awọn alaye ibaraenisepo ti awọn paati laarin eto ni ipele idagbasoke. Eyi jẹ irọrun iṣẹ-ṣiṣe ti idahun ati iṣakoso awọn ikuna, nitori gbogbo awọn paati pataki mu awọn ikuna, ati eto abajade mọ bi o ṣe le pada si deede lẹhin ikuna nipasẹ apẹrẹ.

Idahun

Laibikita awọn ikuna, ohun elo gbọdọ dahun si awọn ibeere ati pade SLA. Otitọ ni pe eniyan ko fẹ lati duro, nitorinaa awọn iṣowo gbọdọ ṣe deede ni ibamu. Awọn ohun elo diẹ sii ati siwaju sii ni a nireti lati ṣe idahun gaan.
Awọn ohun elo idahun ṣiṣẹ ni akoko gidi nitosi. Erlang VM nṣiṣẹ ni rirọ gidi-akoko mode. Fun diẹ ninu awọn agbegbe, gẹgẹbi iṣowo ọja, oogun, ati iṣakoso ohun elo ile-iṣẹ, ipo gidi-akoko lile jẹ pataki.
Awọn ọna ṣiṣe idahun ṣe ilọsiwaju UX ati ni anfani iṣowo naa.

Lakotan Lakotan

Nigbati o ba n gbero nkan yii, Mo fẹ lati pin iriri mi ti ṣiṣẹda alagbata fifiranṣẹ ati kikọ awọn ọna ṣiṣe eka ti o da lori rẹ. Ṣugbọn o tumq si ati imoriya apakan ni tan-jade lati wa ni oyimbo sanlalu.
Ni apakan keji ti nkan naa, Emi yoo sọrọ nipa awọn nuances ti imuse awọn aaye paṣipaarọ, awọn ilana fifiranṣẹ ati ohun elo wọn.
Ni apakan kẹta a yoo ṣe akiyesi awọn ọran gbogbogbo ti siseto awọn iṣẹ, ipa-ọna ati iwọntunwọnsi. Jẹ ki a sọrọ nipa ẹgbẹ iṣe ti scalability ati ifarada ẹbi ti awọn eto.

Ipari ti akọkọ apa.

Fọto @lucabravo.

orisun: www.habr.com

Fi ọrọìwòye kun