Ụdị ụkpụrụ ụlọ dị mma

Ndewo, Habr!

N'iburu n'uche ihe ndị na-eme ugbu a n'ihi coronavirus, ọtụtụ ọrụ ịntanetị amalitela ịnata ibu ibu. Ọmụmaatụ, Otu n'ime ụdọ ndị na-ere ahịa UK kwụsịrị saịtị ịtụ ahịa n'ịntanetị., n'ihi na enweghị ike zuru ezu. Ma ọ bụghị mgbe niile ka ọ ga-ekwe omume ịme ngwa ngwa nkesa site na ịtinye ngwá ọrụ dị ike karị, mana a ghaghị ịhazi arịrịọ ndị ahịa (ma ọ bụ na ha ga-aga ndị asọmpi).

N'isiokwu a, m ga-ekwu okwu nkenke banyere omume ndị a ma ama nke ga-enye gị ohere ịmepụta ọrụ ngwa ngwa na mmejọ. Agbanyeghị, site na atụmatụ mmepe enwere ike, ahọpụtara m naanị ndị dị ugbu a mfe iji. Maka ihe ọ bụla, ị nwere ụlọ akwụkwọ ndị emebere, ma ọ bụ na ị nwere ohere iji dozie nsogbu ahụ site na iji ikpo okwu igwe ojii.

Ntụle kwụ ọtọ

Ihe kachasị mfe na nke a maara nke ọma. Dị ka ọ na-adịkarị, atụmatụ nkesa ibu abụọ a na-ahụkarị bụ nha kwụ ọtọ na kwụ ọtọ. Ke akpa ikpe ị na-ahapụ ọrụ ka ọ na-agba ọsọ n'otu aka ahụ, si otú ahụ kesaa ibu n'etiti ha. Nke abụọ ị na-atụ iwu sava dị ike karịa ma ọ bụ bulite koodu ahụ.

Dịka ọmụmaatụ, m ga-ewere nchekwa faịlụ igwe ojii nkịtị, ya bụ, ụfọdụ analọg nke OwnCloud, OneDrive, na ndị ọzọ.

Foto ọkọlọtọ nke sekit dị otú ahụ dị n'okpuru ebe a, ma ọ na-egosipụta naanị mgbagwoju anya nke usoro ahụ. E kwuwerị, anyị kwesịrị imekọrịta ọrụ ndị ahụ. Kedu ihe ga - eme ma ọ bụrụ na onye ọrụ na - echekwa faịlụ na mbadamba ma chọọ ile ya na ekwentị?

Ụdị ụkpụrụ ụlọ dị mma
Ọdịiche dị n'etiti ụzọ: na nkwụsị nke kwụ ọtọ, anyị dị njikere ịbawanye ike nke ọnụ ọnụ, na n'ikiri ụkwụ kwụ ọtọ, anyị dị njikere ịgbakwunye ọnụ ọhụrụ iji kesaa ibu ahụ.

CQRS

Nkewa Ọrụ Ajụjụ Iwu Ụkpụrụ dị oke mkpa, ebe ọ na-enye ndị ahịa dị iche iche ohere ọ bụghị nanị iji jikọọ na ọrụ dị iche iche, kamakwa ịnweta otu iyi egwu. Uru ya abụghị ihe doro anya maka ngwa dị mfe, mana ọ dị oke mkpa (ma dị mfe) maka ọrụ n'aka. Ihe kachasị mkpa ya: data na-abata na nke na-apụ apụ ekwesịghị ịgbakọ. Ya bụ, ịnweghị ike izipu arịrịọ wee tụọ anya nzaghachi; kama, ị na-eziga arịrịọ na ọrụ A, mana nweta nzaghachi site na ọrụ B.

Ego mbụ nke usoro a bụ ikike imebi njikọ (n'echiche sara mbara nke okwu) mgbe ị na-eme ogologo arịrịọ. Dịka ọmụmaatụ, ka anyị were usoro ọkọlọtọ ma ọ bụ karịa:

  1. Onye ahịa zitere arịrịọ na sava ahụ.
  2. Ihe nkesa ahụ malitere ogologo oge nhazi.
  3. Ihe nkesa ahụ zara onye ahịa ya nsonaazụ.

Ka anyị were ya na n'isi nke 2 njikọ ahụ agbajiri (ma ọ bụ netwọk netwọk ọzọ, ma ọ bụ onye ọrụ gara na ibe ọzọ, na-agbaji njikọ ahụ). N'okwu a, ọ ga-esi ike maka ihe nkesa ahụ iziga nzaghachi nye onye ọrụ na ozi gbasara ihe edoziziri. Iji CQRS, usoro ga-adịtụ iche:

  1. Onye ahịa ahụ edebanyela aha maka mmelite.
  2. Onye ahịa zitere arịrịọ na sava ahụ.
  3. Ihe nkesa ahụ zara “arịrịọ anabatara.”
  4. Ihe nkesa ahụ zara nsonaazụ site na ọwa site na isi "1".

Ụdị ụkpụrụ ụlọ dị mma

Dị ka ị pụrụ ịhụ, atụmatụ ahụ dị ntakịrị mgbagwoju anya. Ọzọkwa, usoro nzaghachi arịrịọ na-enweghị uche na-efu ebe a. Agbanyeghị, dịka ị na-ahụ, nkwụsị njikọ mgbe ị na-ahazi arịrịọ agaghị eduga na njehie. Ọzọkwa, ọ bụrụ n'ezie onye ọrụ ejikọrọ na ọrụ site na ngwaọrụ dị iche iche (dịka ọmụmaatụ, site na ekwentị mkpanaaka na site na mbadamba), ị nwere ike ijide n'aka na nzaghachi na-abịa na ngwaọrụ abụọ ahụ.

N'ụzọ na-akpali mmasị, koodu maka nhazi ozi mbata na-aghọ otu (ọ bụghị 100%) ma maka ihe omume ndị ahịa na-emetụta n'onwe ya, yana maka ihe omume ndị ọzọ, gụnyere ndị sitere na ndị ahịa ndị ọzọ.

Agbanyeghị, n'eziokwu, anyị na-enweta ego mgbakwunye n'ihi eziokwu ahụ bụ na enwere ike ijikwa unidirectional n'ụdị arụ ọrụ (iji RX na ndị yiri ya). Ma nke a abụrụlarị ihe dị mkpa gbakwunyere, ebe ọ bụ na n'eziokwu enwere ike ịme ngwa ngwa ahụ kpamkpam, yana iji usoro arụ ọrụ. Maka mmemme abụba, nke a nwere ike chekwaa mmepe na akụrụngwa nkwado nke ukwuu.

Ọ bụrụ na anyị ejikọta usoro a na nha nha nha, mgbe ahụ dị ka ego, anyị na-enweta ikike izipu arịrịọ na otu ihe nkesa wee nweta nzaghachi site na nke ọzọ. Ya mere, onye ahịa ahụ nwere ike ịhọrọ ọrụ dị ya mma, na usoro dị n'ime ya ka ga-enwe ike ịhazi ihe omume n'ụzọ ziri ezi.

Isi mmalite mmemme

Dị ka ị maara, otu n'ime ihe ndị bụ isi nke usoro kesara bụ enweghị oge a na-ahụkarị, ngalaba dị oke egwu. Maka otu usoro, ị nwere ike ime mmekọrịta (n'otu mutexes), n'ime nke ị ji n'aka na ọ nweghị onye ọzọ na-eme koodu a. Otú ọ dị, nke a dị ize ndụ maka usoro nkesa, ebe ọ ga-achọ n'elu, ọ ga-egbukwa ihe niile mara mma nke scaling - niile components ka ga-echere otu.

Site na ebe a anyị na-enweta eziokwu dị mkpa - enweghị ike ịmekọrịta usoro nkesa ngwa ngwa, n'ihi na mgbe ahụ, anyị ga-ebelata arụmọrụ. N'aka nke ọzọ, anyị na-achọkarị a ụfọdụ agbanwe agbanwe n'etiti components. Na nke a ị nwere ike iji obibia na n'ikpeazụ agbanwe agbanwe, ebe a na-ekwe nkwa na ọ bụrụ na enweghị mgbanwe data maka oge ụfọdụ mgbe emelitere ikpeazụ ("n'ikpeazụ"), ajụjụ niile ga-eweghachi uru ikpeazụ emelitere.

Ọ dị mkpa ịghọta na maka ọdụ data kpochapụwo, a na-ejikarị ya eme ihe ike agbanwe agbanwe, ebe ọnụ ụzọ ọ bụla nwere otu ozi ahụ (nke a na-enwetakarị n'ọnọdụ ebe a na-ewere azụmahịa ahụ guzobe naanị mgbe ihe nkesa nke abụọ zara). Enwere ụfọdụ ntụrụndụ ebe a n'ihi ọkwa dịpụrụ adịpụ, mana echiche izugbe ka bụ otu - ị nwere ike ibi na ụwa zuru oke.

Agbanyeghị, ka anyị laghachi na ọrụ mbụ. Ọ bụrụ na akụkụ nke usoro nwere ike iji wuo ya n'ikpeazụ agbanwe agbanwe, mgbe ahụ, anyị nwere ike ịmepụta eserese na-esonụ.

Ụdị ụkpụrụ ụlọ dị mma

Akụkụ dị mkpa nke usoro a:

  • A na-etinye arịrịọ ọ bụla na-abata n'otu kwụ n'ahịrị.
  • Mgbe ị na-ahazi arịrịọ, ọrụ ahụ nwekwara ike idowe ọrụ n'ahịrị ndị ọzọ.
  • Ihe omume ọ bụla na-abata nwere ihe nchọpụta (nke dị mkpa maka mwepu).
  • Ahịrị kwụ n'ahịrị na-arụ ọrụ dịka atụmatụ "append only" siri dị. Ị nweghị ike iwepụ ihe na ya ma ọ bụ hazie ha.
  • Ahịrị ahụ na-arụ ọrụ dịka atụmatụ FIFO (ndo maka tautology). Ọ bụrụ na ịchọrọ ịme ogbugbu ndị yiri ya, mgbe ahụ, n'otu oge ị ga-ebuga ihe na ahịrị dị iche iche.

Ka m chetara gị na anyị na-atụle ihe gbasara nchekwa faịlụ n'ịntanetị. N'okwu a, usoro ahụ ga-adị ka nke a:

Ụdị ụkpụrụ ụlọ dị mma

Ọ dị mkpa na ọrụ ndị dị na eserese a apụtaghị na sava dị iche. Ọbụna usoro nwere ike ịbụ otu. Ihe ọzọ dị mkpa: n'echiche, a na-ekewa ihe ndị a n'ụzọ na-eme ka ọ dị mfe itinye ncha ncha.

Maka ndị ọrụ abụọ eserese ahụ ga-adị ka nke a (a na-egosipụta ọrụ ezubere maka ndị ọrụ dị iche iche na agba dị iche iche):

Ụdị ụkpụrụ ụlọ dị mma

Ego sitere na ngwakọta dị otú ahụ:

  • E kewapụrụ ọrụ nhazi ozi. E kewakwara ndị kwụ n'ahịrị. Ọ bụrụ na anyị chọrọ ịbawanye mmepụta nke sistemụ, mgbe ahụ, anyị kwesịrị ịmalite ọrụ ndị ọzọ na sava ndị ọzọ.
  • Mgbe anyị nwetara ozi n'aka onye ọrụ, anyị agaghị echere ruo mgbe echekwara data ahụ kpamkpam. N'ụzọ megidere nke ahụ, anyị kwesịrị ịza "ok" wee jiri nwayọọ nwayọọ malite ịrụ ọrụ. N'otu oge ahụ, kwụ n'ahịrị na-eme ka ọnụ ọgụgụ dị elu, ebe ọ bụ na ịtinye ihe ọhụrụ na-eme ngwa ngwa, onye ọrụ adịghịkwa echere maka njedebe zuru oke site na okirikiri dum.
  • Dịka ọmụmaatụ, agbakwunyere m ọrụ mwepu nke na-agbalị ijikọ faịlụ ndị yiri ya. Ọ bụrụ na ọ na-arụ ọrụ ogologo oge na 1% nke ikpe, onye ahịa ahụ agaghị achọpụta ya (lee n'elu), nke bụ nnukwu gbakwunyere, ebe ọ bụ na a chọghịzi ka anyị bụrụ XNUMX% ọsọ na ntụkwasị obi.

Agbanyeghị, a na-ahụ ọghọm ya ozugbo:

  • Usoro anyị tụfuru nkwụsi ike ya. Nke a pụtara na ọ bụrụ na, dịka ọmụmaatụ, ị debanyere aha na ọrụ dị iche iche, mgbe ahụ ị nwere ike ịnweta steeti dị iche iche (ebe ọ bụ na otu n'ime ọrụ ahụ nwere ike ọ gaghị enwe oge iji nweta ọkwa sitere na n'ahịrị n'ime). N'ihi nke ọzọ, usoro ahụ enweghị oge nkịtị. Nke ahụ bụ, ọ gaghị ekwe omume, dịka ọmụmaatụ, ịhazi ihe omume niile naanị site na oge mbata, ebe ọ bụ na clocks n'etiti sava nwere ike ọ gaghị emekọrịta (ọkwa, otu oge na sava abụọ bụ utopia).
  • Enweghị mmemme ọ bụla enwere ike ịtụgharị azụ azụ (dịka enwere ike ịme ya na nchekwa data). Kama, ịkwesịrị ịgbakwunye mmemme ọhụrụ - omume nkwụghachi ụgwọ, nke ga-agbanwe steeti ikpeazụ gaa na nke achọrọ. Dịka ọmụmaatụ site na mpaghara yiri ya: na-enweghị idegharị akụkọ ihe mere eme (nke dị njọ n'ọnọdụ ụfọdụ), ị nweghị ike iweghachite nkwa na git, mana ị nwere ike ịme ihe pụrụ iche. emeghachi azụ azụ, nke na-eweghachite steeti ochie. Otú ọ dị, ma mmejọ ahụ na-ezighị ezi na nlọghachi azụ ga-anọgide na akụkọ ihe mere eme.
  • Atụmatụ data nwere ike ịgbanwe site na ntọhapụ gaa ntọhapụ, mana ihe omume ochie agaghịzi enwe ike imelite ya na ọkọlọtọ ọhụrụ (ebe ọ bụ na enweghị ike ịgbanwe ihe omume na ụkpụrụ).

Dị ka ị na-ahụ, Event Sourcing na-arụ ọrụ nke ọma na CQRS. Ọzọkwa, mmejuputa atumatu a usoro na oru oma na adaba queues, ma na-enweghị ikewa data eruba, adịlarị ike n'onwe ya, n'ihi na ị ga-agbakwunyere ihe mmekọrịta ga- neutralize dum mma mmetụta nke queues. N'itinye ụzọ abụọ ahụ n'otu oge, ọ dị mkpa iji dozie koodu mmemme ahụ ntakịrị. N'ọnọdụ anyị, mgbe ị na-eziga faịlụ na ihe nkesa, nzaghachi na-abịa naanị "ọ dị mma", nke pụtara naanị na "echekwara ọrụ nke ịgbakwunye faịlụ ahụ." N'ezie, nke a apụtaghị na data adịlarị na ngwaọrụ ndị ọzọ (dịka ọmụmaatụ, ọrụ nkwụsịtụ nwere ike wughachi index). Agbanyeghị, mgbe oge ụfọdụ gachara, onye ahịa ga-enweta ọkwa n'ụdị “echekwala faịlụ X.”

N'ihi ya:

  • Ọnụ ọgụgụ nke faịlụ izipu statuses na-abawanye: kama "faịlụ ezitere," anyị na-enweta abụọ: "agbakwunyere faịlụ ahụ na kwụ n'ahịrị na ihe nkesa" yana "echekwara faịlụ ahụ na nchekwa." Nke ikpeazụ pụtara na ngwaọrụ ndị ọzọ nwere ike ịmalite ịnweta faịlụ ahụ (gbanwere maka eziokwu ahụ na queues na-arụ ọrụ na ọsọ ọsọ dị iche iche).
  • N'ihi n'eziokwu na ozi nrubeisi ugbu a na-abịa site na ọwa dị iche iche, anyị kwesịrị ịmepụta ihe ngwọta iji nweta ọnọdụ nhazi nke faịlụ ahụ. N'ihi nke a: n'adịghị ka nzaghachi arịrịọ nke kpochapụla, onye ahịa nwere ike ịmalitegharị mgbe ị na-ahazi faịlụ ahụ, mana ọnọdụ nhazi a n'onwe ya ga-adị mma. Ọzọkwa, ihe a na-arụ ọrụ, n'ezie, site na igbe. N'ihi ya: anyị na-enwekwu ndidi ugbu a maka ọdịda.

Nkọwa

Dị ka akọwara n'elu, usoro mmepụta ihe omume enweghị nkwekọ siri ike. Nke a pụtara na anyị nwere ike iji ọtụtụ nchekwa na-enweghị mmekọrịta ọ bụla n'etiti ha. N'ịbịakwute nsogbu anyị, anyị nwere ike:

  • Kewapụ faịlụ site na ụdị. Dịka ọmụmaatụ, enwere ike ịmegharị foto/vidiyo ma nwee ike ịhọrọ usoro dị mma karị.
  • Kewapụ akaụntụ site na obodo. N'ihi ọtụtụ iwu, nke a nwere ike ịchọrọ, mana atụmatụ ụlọ a na-enye ohere dị otú ahụ na-akpaghị aka

Ụdị ụkpụrụ ụlọ dị mma

Ọ bụrụ na ịchọrọ ịnyefe data site n'otu nchekwa gaa na nke ọzọ, mgbe ahụ ụkpụrụ ọkọlọtọ ezughị. N'ụzọ dị mwute, na nke a, ịkwesịrị ịkwụsị kwụ n'ahịrị, mee njem ahụ, wee malite ya. N'okwu n'ozuzu, enweghị ike ịnyefe data "na ofufe", Otú ọ dị, ọ bụrụ na echekwara kwụ n'ahịrị ihe omume ahụ kpamkpam, ma ị nwere foto nke steeti nchekwa gara aga, mgbe ahụ anyị nwere ike ịmegharị ihe omume ndị a:

  • Na Isi mmalite mmemme, mmemme ọ bụla nwere njirimara nke ya (nke ọma, anaghị ebelata). Nke a pụtara na anyị nwere ike itinye mpaghara na nchekwa - id nke ihe ikpeazụ edoziri.
  • Anyị na-emegharị kwụ n'ahịrị ka enwere ike ịhazi ihe omume niile maka ọtụtụ ebe nchekwa nọọrọ onwe ya (nke mbụ bụ nke echekwara data ahụ, nke abụọ bụ nke ọhụrụ, mana ọ ka tọgbọ chakoo). N'ezie, a naghị ahazi kwụ n'ahịrị nke abụọ.
  • Anyị na-amalite kwụ n'ahịrị nke abụọ (ya bụ, anyị na-amalite ịmegharị ihe omume).
  • Mgbe kwụ n'ahịrị ọhụrụ ahụ tọgbọrọ chakoo (ya bụ, nkezi oge dị iche n'etiti ịgbakwunye mmewere na iweghachi ya bụ ihe a na-anabata), ị nwere ike ịmalite ịtụgharị ndị na-agụ akwụkwọ na nchekwa ọhụrụ.

Dị ka ị pụrụ ịhụ, anyị enweghị, ma ka na-enweghị, siri ike anọgidesi na anyị usoro. A na-enwe naanị nkwụsi ike, ya bụ, nkwa na a na-ahazi ihe omume n'otu usoro (ma eleghị anya na-egbu oge dị iche iche). Na, n'iji nke a, anyị nwere ike ịnyefe data n'ụzọ dị mfe na-enweghị ịkwụsị usoro ahụ n'akụkụ nke ọzọ nke ụwa.

Yabụ, na-aga n'ihu n'ihe atụ anyị gbasara nchekwa n'ịntanetị maka faịlụ, ihe owuwu dị otú ahụ enyela anyị ọtụtụ ego:

  • Anyị nwere ike ibugharị ihe nso ndị ọrụ n'ụzọ siri ike. Otu a, ị nwere ike melite ogo ọrụ.
  • Anyị nwere ike ịchekwa ụfọdụ data n'ime ụlọ ọrụ. Dịka ọmụmaatụ, ndị ọrụ ụlọ ọrụ na-achọkarị ka echekwara data ha na ebe data a na-achịkwa (iji zere ntapu data). Site na sharding anyị nwere ike ịkwado nke a ngwa ngwa. Ọrụ ahụ dịkwa mfe ma ọ bụrụ na onye ahịa nwere igwe ojii dakọtara (dịka ọmụmaatụ, Azure onwe ya kwadoro).
  • Na ihe kacha mkpa bụ na anyị ekwesịghị ime nke a. E kwuwerị, ịmalite, anyị ga-enwe obi ụtọ na otu nchekwa maka akaụntụ niile (iji malite ịrụ ọrụ ngwa ngwa). Na akụkụ bụ isi nke usoro a bụ na ọ bụ ezie na ọ na-agbasawanye, na mbido mbụ ọ dị nnọọ mfe. Naanị ịkwesighi ide koodu ozugbo na-arụ ọrụ na nde mmadụ kwụ n'ahịrị nọọrọ onwe ya, wdg. Ọ bụrụ na ọ dị mkpa, enwere ike ime nke a n'ọdịnihu.

Bochum Ọdịnaya Static

Isi ihe a nwere ike iyi ihe doro anya, mana ọ ka dị mkpa maka ngwa eburu ọkọlọtọ ma ọ bụ karịa. Ihe kachasị mkpa ya dị mfe: a na-ekesa ọdịnaya niile static ọ bụghị site na otu ihe nkesa ebe ngwa ahụ dị, kama site na ndị pụrụ iche raara onwe ha nye kpọmkwem maka ọrụ a. N'ihi ya, a na-arụ ọrụ ndị a ngwa ngwa (nginx ọnọdụ na-ejere faịlụ ngwa ngwa na ọnụ ala karịa ihe nkesa Java). gbakwunyere ihe owuwu CDN (Nzipu Nwepụta ọdịnaya) na-enye anyị ohere ịchọta faịlụ anyị nso na ndị ọrụ njedebe, nke nwere mmetụta dị mma na ịdị mma nke ịrụ ọrụ na ọrụ ahụ.

Ihe atụ kachasị mfe na ọkọlọtọ nke ọdịnaya static bụ nhazi nke scripts na onyonyo maka weebụsaịtị. Ihe niile dị mfe na ha - a mara ha tupu oge eruo, mgbe ahụ, a na-ebugo ebe nchekwa na sava CDN, site na ebe a na-ekesa ha na ndị ọrụ njedebe.

Agbanyeghị, n'eziokwu, maka ọdịnaya kwụ ọtọ, ị nwere ike iji ụzọ yiri ihe owuwu lambda. Ka anyị laghachi na ọrụ anyị (nchekwa faịlụ n'ịntanetị), nke anyị kwesịrị ikesa faịlụ na ndị ọrụ. Ihe ngwọta kachasị mfe bụ ịmepụta ọrụ nke, maka arịrịọ onye ọrụ ọ bụla, na-eme nyocha niile dị mkpa (ikike, wdg), wee budata faịlụ ahụ ozugbo na nchekwa anyị. Ihe ọghọm dị na ụzọ a bụ na ọdịnaya static (na faịlụ nwere ụfọdụ ntụgharị bụ, n'ezie, ọdịnaya static) na-ekesa site na otu ihe nkesa nwere mgbagha azụmahịa. Kama, ị nwere ike ịme eserese a:

  • Ihe nkesa ahụ na-enye URL nbudata. Ọ nwere ike ịbụ nke igodo ụdị file_id +, ebe igodo bụ obere mbinye aka dijitalụ na-enye ikike ịnweta akụrụngwa maka awa 24 na-esote.
  • A na-ekesa faịlụ ahụ site na nginx dị mfe yana nhọrọ ndị a:
    • Ịchekwa ọdịnaya. Ebe ọ bụ na ọrụ a nwere ike dị na sava dị iche, anyị ahapụla onwe anyị ebe nchekwa maka ọdịnihu na ikike ịchekwa faịlụ niile ebudatara na diski.
    • Na-enyocha igodo n'oge ịmepụta njikọ
  • Nhọrọ: nhazi ọdịnaya gụgharia. Dịka ọmụmaatụ, ọ bụrụ na anyị mpikota onu faịlụ niile dị na ọrụ ahụ, anyị nwere ike ịmeghe ngwa ngwa na modul a. N'ihi ya: A na-arụ ọrụ IO ebe ha nwere. Onye nchekwa na Java ga-ekenye ọtụtụ ebe nchekwa n'ụzọ dị mfe, mana idegharị ọrụ na mgbagha azụmahịa n'ime ọnọdụ Rust/C++ nwekwara ike ghara ịdị irè. N'ọnọdụ anyị, a na-eji usoro dị iche iche (ma ọ bụ ọbụna ọrụ) eme ihe, yabụ anyị nwere ike kewapụ echiche azụmaahịa na arụmọrụ IO nke ọma.

Ụdị ụkpụrụ ụlọ dị mma

Atụmatụ a adịghị ka nkesa ọdịnaya static (ebe ọ bụ na anyị anaghị ebugo ngwugwu static ebe ọ bụla), mana n'eziokwu, usoro a na-emetụta nke ọma na ikesa data na-enweghị mgbanwe. Ọzọkwa, atụmatụ a nwere ike ịchịkọta ya na ikpe ndị ọzọ ebe ọdịnaya abụghị naanị ihe kwụ ọtọ, mana enwere ike gosipụta ya dị ka ihe mgbochi na-enweghị ike ihichapụ na enweghị ike ihichapụ (ọ bụ ezie na enwere ike ịgbakwunye ha).

Dị ka ihe atụ ọzọ (maka nkwado): ọ bụrụ na ị na-arụ ọrụ na Jenkins/TeamCity, mgbe ahụ ị maara na abụọ ngwọta e dere na Java. Ha abụọ bụ usoro Java nke na-ejikwa ma wuo orchestration na njikwa ọdịnaya. Karịsịa, ha abụọ nwere ọrụ dị ka "nyefee faịlụ / nchekwa site na ihe nkesa." Dị ka ihe atụ: na-enye artifacts, na-ebufe isi koodu (mgbe onye ọrụ anaghị ebudata koodu ozugbo na ebe nchekwa, ma ihe nkesa na-eme ya maka ya), nweta ndekọ. Ọrụ ndị a niile dị iche na ibu IO ha. Nke ahụ bụ, ọ na-apụta na ihe nkesa na-ahụ maka mgbagha azụmahịa dị mgbagwoju anya ga-enwe ike n'otu oge iji mee ka data buru ibu na-arụ ọrụ nke ọma site n'onwe ya. Ma ihe kacha adọrọ mmasị bụ na enwere ike ịnyefe ọrụ dị otú ahụ na nginx ahụ dịka otu atụmatụ ahụ siri dị (ma e wezụga na ekwesịrị ịgbakwunye igodo data na arịrịọ).

Agbanyeghị, ọ bụrụ na anyị laghachi na sistemụ anyị, anyị ga-enweta eserese yiri ya:

Ụdị ụkpụrụ ụlọ dị mma

Dị ka ị pụrụ ịhụ, usoro a aghọwo ihe mgbagwoju anya. Ugbu a ọ bụghị naanị obere usoro na-echekwa faịlụ na mpaghara. Ugbu a ihe achọrọ abụghị nkwado kachasị mfe, njikwa ụdị API, wdg. Ya mere, mgbe e dechara eserese niile, ọ kacha mma iji nyochaa n'ụzọ zuru ezu ma extensibility bara uru. Otú ọ dị, ọ bụrụ na ịchọrọ inwe ike ịgbasa usoro ahụ (gụnyere ịrụ ọrụ na ọnụ ọgụgụ buru ibu nke ndị ọrụ), mgbe ahụ ị ga-aga maka ngwọta ndị yiri ya. Ma, n'ihi nke a, usoro ahụ dị njikere maka ibu ibu (ihe fọrọ nke nta ka ọ bụrụ akụkụ ọ bụla nwere ike ịme ka ọ bụrụ ihe na-egbuke egbuke). Enwere ike imelite usoro ahụ n'akwụsịghị ya (naanị ụfọdụ arụmọrụ ga-ebelata ntakịrị).

Dị ka m kwuru na mmalite, ugbu a ọtụtụ ọrụ ịntanetị amalitela ịnata ibu ibu. Ụfọdụ n’ime ha malitekwara ịkwụsị ịrụ ọrụ nke ọma. N'ezie, usoro ndị ahụ dara kpọmkwem n'oge a na-azụ ahịa kwesịrị ịkpata ego. Nke ahụ bụ, kama ịnyefe nnyefe, kama ịtụ aro ndị ahịa "hazie usoro nnyefe gị maka ọnwa ndị na-abịanụ," usoro ahụ kwuru naanị "gaakwuru ndị asọmpi gị." N'ezie, nke a bụ ọnụahịa nke nrụpụta dị ala: mfu ga-eme kpọmkwem mgbe uru ga-adị elu.

nkwubi

Amara ụzọ ndị a niile na mbụ. Otu VK ahụ ejirila echiche nke Bochum Ọdịnaya Static iji gosipụta onyonyo. Ọtụtụ egwuregwu ịntanetị na-eji atụmatụ Sharding kewaa ndị egwuregwu n'ime mpaghara ma ọ bụ kewaa ebe egwuregwu (ọ bụrụ na ụwa n'onwe ya bụ otu). A na-eji usoro ị nweta mmemme na ozi-e. Ọtụtụ ngwa ahịa ebe a na-enweta data mgbe niile na-ewuli ya na usoro CQRS iji nwee ike nyochaa data enwetara. Ọfọn, a na-eji usoro nhazi kwụ ọtọ n'ọtụtụ ọrụ ruo ogologo oge.

Otú ọ dị, nke kachasị mkpa, usoro ndị a niile aghọwo ihe dị mfe itinye na ngwa ọgbara ọhụrụ (ọ bụrụ na ha kwesịrị ekwesị, n'ezie). Igwe ojii na-enye Sharding na nha nha ozugbo, nke dị mfe karịa ịtụnye sava raara onwe ya nye na ebe data dị iche iche n'onwe gị. CQRS aghọwo ihe dị mfe karị, ma ọ bụrụ na ọ bụ naanị n'ihi mmepe nke ụlọ akwụkwọ dị ka RX. Ihe dị ka afọ 10 gara aga, ebe nrụọrụ weebụ na-adịghị ahụkebe nwere ike ịkwado nke a. Event Sourcing dịkwa mfe nke ukwuu ịtọlite ​​​​ekele maka arịa emebere na Apache Kafka. Afọ 10 gara aga nke a gaara abụ ihe ọhụrụ, ugbu a ọ bụ ihe a na-ahụkarị. Ọ bụ otu ihe ahụ na Bochum Ọdịnaya Static: n'ihi teknụzụ dị mma karịa (gụnyere eziokwu ahụ bụ na enwere akwụkwọ zuru ezu na nnukwu nchekwa data azịza), ụzọ a aghọwo ihe dị mfe karị.

N'ihi ya, mmejuputa iwu nke ọtụtụ ụkpụrụ ụlọ dị mgbagwoju anya aghọwo ihe dị mfe ugbu a, nke pụtara na ọ ka mma ileru ya anya n'ihu. Ọ bụrụ na na a afọ iri ngwa otu n'ime ihe ngwọta n'elu gbahapụrụ n'ihi na elu na-eri nke mmejuputa iwu na ọrụ, ugbu a, na a ọhụrụ ngwa, ma ọ bụ mgbe refactoring, ị nwere ike ịmepụta a ọrụ nke ga-ama architecturally ma extensible ( n'ihe gbasara arụmọrụ) na njikere emere arịrịọ ọhụrụ sitere n'aka ndị ahịa (dịka ọmụmaatụ, iji wepụta data nkeonwe).

Na nke kachasị mkpa: biko ejila ụzọ ndị a ma ọ bụrụ na ị nwere ngwa dị mfe. Ee, ha mara mma ma na-adọrọ mmasị, mana maka saịtị nwere nleta kacha elu nke mmadụ 100, ị nwere ike nwetakarị monolith kpochapụwo (ọ dịkarịa ala n'èzí, ihe niile dị n'ime nwere ike kewaa na modul, wdg).

isi: www.habr.com

Tinye a comment