Hababka dhismaha ee habboon

Haye Habr!

Marka la eego dhacdooyinka hadda jira ee uu sababay coronavirus, tiro ka mid ah adeegyada internetka ayaa bilaabay inay helaan culays kordhay. Tusaale ahaan, Mid ka mid ah silsiladaha tafaariiqda ee UK ayaa si fudud u joojiyay goobtii wax ka dalban lahayd ee internetka., sababtoo ah ma jirin awood ku filan. Mar walbana suurtagal maaha in la dedejiyo server-ka iyadoo si fudud loogu daro qalab awood badan, laakiin codsiyada macmiilka waa in la farsameeyaa (ama waxay aadi doonaan tartamayaasha).

Maqaalkan waxaan si kooban uga hadli doonaa dhaqamada caanka ah ee kuu ogolaanaya inaad abuurto adeeg degdeg ah oo khalad ah. Si kastaba ha ahaatee, laga bilaabo qorshayaasha horumarinta ee suurtogalka ah, waxaan doortay oo kaliya kuwa hadda jira fududahay in la isticmaalo. Shay kasta, waxaad haysataa maktabad diyaarsan, ama waxaad haysataa fursad aad ku xalliso dhibaatada adigoo isticmaalaya madal daruureed.

Miisaanka toosan

Qodobka ugu fudud uguna caansan. Caadiyan, labada qorshe ee qaybinta culayska ugu caansan waa miisaan toosan iyo mid toosan. Marka ugu horeysa waxaad ogolanaysaa in adeegyadu ay si isbarbar socdaan u socdaan, markaasaad u qaybinaysaa culayska dhexdooda. In labaad waxaad dalbataa server ka awood badan ama aad hagaajiso koodka.

Tusaale ahaan, waxaan qaadan doonaa kaydinta faylka daruuriga ah ee aan la taaban karin, taas oo ah, analoog qaar ka mid ah OwnCloud, OneDrive, iyo wixii la mid ah.

Sawirka caadiga ah ee wareegga noocan oo kale ah ayaa ka hooseeya, laakiin kaliya waxay muujinaysaa kakanaanta nidaamka. Ka dib oo dhan, waxaan u baahanahay inaan si uun u wada shaqayno adeegyada. Maxaa dhacaya haddii isticmaaluhu uu faylka ka badbaadiyo kiniinka oo uu rabo inuu ka eego taleefanka?

Hababka dhismaha ee habboon
Farqiga u dhexeeya hababka: miisaanka tooska ah, waxaan diyaar u nahay inaan kordhinno awoodda qanjidhada, iyo qiyaasta qulqulka, waxaan diyaar u nahay inaan ku darno qanjidhada cusub si loo qaybiyo culeyska.

CQRS

Kala saaridda Mas'uuliyadda Weydiinta Amarka Nidaam aad u muhiim ah, maadaama ay u ogolaato macaamiisha kala duwan ma aha oo kaliya inay ku xidhmaan adeegyo kala duwan, laakiin sidoo kale inay helaan dhacdooyin isku mid ah. Faa'iidooyinkeedu si cad uguma cadda codsiga fudud, laakiin aad bay muhiim ugu tahay (oo fudud) adeeg mashquul ah. Nuxurkeeda: socodka xogta soo galaysa iyo tan baxaysa waa in aanay is gelin. Taasi waa, ma diri kartid codsi oo ma filan kartid jawaab; beddelkeeda, waxaad u dirtaa codsi adeegga A, laakiin ka hel jawaabta adeegga B.

Gunnada ugu horreysa ee habkani waa awoodda jebinta xidhiidhka (macnaha ballaadhan ee ereyga) marka la fulinayo codsi dheer. Tusaale ahaan, aynu soo qaadano tiro badan ama ka yar oo isku xigxiga caadiga ah:

  1. Macmiilku wuxuu codsi u diray server-ka.
  2. Seerfarku waxa uu bilaabay habayn dheer.
  3. Server-ku waxa uu ugu jawaabay macmiilka natiijada.

Aan qiyaasno in barta 2aad xiriirku uu go'ay (ama shabakadii dib ayaa loo xiray, ama isticmaaluhu wuxuu aaday bog kale, oo jebiyey xiriirka). Xaaladdan oo kale, way ku adkaan doontaa server-ku inuu u soo diro jawaabta isticmaalaha macluumaadka ku saabsan waxa dhabta ah ee la farsameeyay. Isticmaalka CQRS, tixdu wax yar bay ka duwanaan doontaa:

  1. Macmiilku waxa uu iska diiwaan galiyay wararka
  2. Macmiilku wuxuu codsi u diray server-ka.
  3. Seerfarku wuxuu ku jawaabay "codsi waa la aqbalay."
  4. Server-ku wuxuu kaga jawaabay natiijadii kanaalka barta "1".

Hababka dhismaha ee habboon

Sida aad arki karto, nidaamku wuu yara adag yahay. Waxaa intaa dheer, habka codsiga-jawaabcelinta dareenka leh ayaa halkan ka maqan. Si kastaba ha ahaatee, sida aad arki karto, go'a xiriirinta marka la farsameynayo codsiga ma horseedi doono qalad. Waxaa intaa dheer, haddii dhab ahaantii isticmaaluhu uu ku xiran yahay adeegga dhowr qalab (tusaale ahaan, telefoonka gacanta iyo kiniiniga), waxaad hubin kartaa in jawaabtu ku timaado labada qalab.

Waxa xiisaha lihi leh, koodhka habaynta farriimaha soo socdaa waxa uu noqonayaa isku mid (ma aha 100%) labadaba dhacdooyinka uu saameeyay macmiilka laftiisa, iyo dhacdooyinka kale, oo ay ku jiraan kuwa macaamiisha kale.

Si kastaba ha ahaatee, dhab ahaantii waxaan helnaa gunno dheeraad ah sababtoo ah xaqiiqda ah in qulqulka jihada ah lagu maareyn karo qaab shaqeynaya (iyadoo la adeegsanayo RX iyo kuwa la mid ah). Tanina mar horeba waa mid halis ah, maadaama nuxurka codsiga uu noqon karo mid si buuxda u falceliya, iyo sidoo kale iyadoo la adeegsanayo hab shaqeynaya. Barnaamijyada dufanka leh, tani waxay si weyn u badbaadin kartaa horumarinta iyo ilaha taageerada.

Haddi aan isku darno habkan oo leh miisaan toosan, ka dib gunno ahaan waxaan helnaa awoodda aan u dirno codsiyada hal server oo aan ka helno jawaabaha mid kale. Sidaa darteed, macmiilku wuxuu dooran karaa adeegga ku habboon isaga, iyo nidaamka gudaha ayaa weli awood u leh inuu si sax ah u socodsiiyo dhacdooyinka.

Isha Dhacdada

Sida aad ogtahay, mid ka mid ah sifooyinka ugu muhiimsan ee nidaamka qaybinta waa maqnaanshaha waqti caadi ah, qayb muhiim ah oo caadi ah. Hal nidaam, waxaad samayn kartaa isku-dubbarid (isku-dheellitir la mid ah), kaas oo aad ku hubinayso in qofna aanu fulinayn koodkan. Si kastaba ha noqotee, tani waxay khatar u tahay nidaamka qaybsan, maadaama ay u baahan doonto dusha sare, waxayna sidoo kale dili doontaa dhammaan quruxda miisaanka - dhammaan qaybaha ayaa weli sugi doona hal.

Laga soo bilaabo halkan waxaan ka helnaa xaqiiqo muhiim ah - nidaamka degdega ah ee loo qaybiyo lama wada socon karo, sababtoo ah markaa waxaan yareyn doonaa waxqabadka. Dhanka kale, waxaan inta badan u baahanahay joogtayn gaar ah oo u dhexeeya qaybaha. Taasna waxaad u isticmaali kartaa habka joogtayn aakhirka, halkaasoo lagu dammaanad qaadayo in haddii aysan jirin wax isbeddel ah oo xog ah muddo wakhti ah ka dib cusboonaysiinta ugu dambeysay ("ugu dambeyntii"), dhammaan weydiimaha waxay soo celin doonaan qiimihii ugu dambeeyay ee la cusbooneysiiyay.

Waxaa muhiim ah in la fahmo in database-yada caadiga ah inta badan loo isticmaalo joogtayn xooggan, halkaas oo node kasta uu leeyahay macluumaad isku mid ah (tani inta badan waxaa lagu gaaraa kiiska marka macaamilka loo tixgeliyo in la aasaasay oo kaliya ka dib markii server labaad ka jawaabo). Waxaa jira xoogaa nasasho ah oo ay ugu wacan tahay heerarka go'doominta, laakiin fikradda guud ayaa weli ah sidii hore - waxaad ku noolaan kartaa adduun gebi ahaanba iswaafaqsan.

Si kastaba ha ahaatee, aan ku soo noqonno hawshii asalka ahayd. Haddii qayb ka mid ah nidaamka lagu dhisi karo joogtayn aakhirka, markaas waxaan dhisi karnaa jaantuskan soo socda.

Hababka dhismaha ee habboon

Tilmaamaha muhiimka ah ee habkan:

  • Codsi kasta oo yimaada waxa la gelinayaa hal saf.
  • Inta lagu guda jiro codsiga, adeeggu waxa kale oo laga yaabaa inuu hawl galo safaf kale.
  • Dhacdo kasta oo timaada waxay leedahay aqoonsi (kaas oo lagama maarmaan u ah ka-saarista).
  • Safka fikrad ahaan wuxuu u shaqeeyaa si waafaqsan nidaamka "append only". Ma ka saari kartid canaasirta ama dib uma habeyn kartid.
  • Safku wuxuu u shaqeeyaa si waafaqsan nidaamka FIFO (ka xumahay tautology). Haddii aad u baahan tahay inaad sameyso fulin isbarbar socda, markaa hal marxalad waa inaad walxaha u wareejisaa safaf kala duwan.

Aan ku xasuusiyo in aan tixgelineyno kiiska kaydinta faylka internetka. Xaaladdan oo kale, nidaamku wuxuu u ekaan doonaa sidan:

Hababka dhismaha ee habboon

Waa muhiim in adeegyada ku jira jaantusku aanay macnaheedu ahayn serfer gaar ah. Xataa hawshu waa isku mid. Arrin kale ayaa muhiim ah: fikrad ahaan, waxyaabahan ayaa loo kala soocay si sahal loo mariyo miisaan toosan.

Labada isticmaale jaantusku wuxuu u ekaan doonaa sidan (adeegyada loogu talagalay isticmaalayaasha kala duwan ayaa lagu muujiyey midabyo kala duwan):

Hababka dhismaha ee habboon

Gunooyinka laga helo isku-dhafkan oo kale:

  • Adeegyada habaynta macluumaadka waa la kala saaray. Safafka ayaa sidoo kale la kala saaray. Haddii aan u baahanahay inaan kordhino habka nidaamka, markaa waxaan u baahanahay kaliya inaan bilowno adeegyo badan server-yo badan.
  • Marka aan ka helno macluumaadka isticmaalaha, ma aha inaan sugno ilaa xogta si buuxda loo badbaadiyo. Taas lidkeeda, waxaan u baahanahay oo kaliya inaan ka jawaabno "ok" ka dibna si tartiib tartiib ah u bilowno shaqada. Isla mar ahaantaana, safku wuxuu sifeeyaa meelaha ugu sarreeya, maadaama lagu daro shay cusub si dhakhso ah ayey u dhacdaa, isticmaaluhuna uma baahna inuu sugo gudbin dhammaystiran oo wareeg ah oo dhan.
  • Tusaale ahaan, waxaan ku daray adeeg kala-saarid oo isku dayaya inuu isku daro faylal isku mid ah. Haddii ay muddo dheer ka shaqeyso 1% kiisaska, macmiilku si dhib leh ayuu u ogaan doonaa (eeg korka), taas oo ah mid weyn oo lagu daray, maadaama aan hadda loo baahnayn XNUMX% xawaare iyo kalsooni.

Si kastaba ha ahaatee, khasaaraha ayaa isla markiiba la arki karaa:

  • Nidaamkayagu waxa uu lumiyay isku dheelitirnaantiisa adag. Tani waxay la macno tahay, haddii, tusaale ahaan, aad iska diiwaan geliso adeegyo kala duwan, markaas aragti ahaan waxaad heli kartaa gobol kale (maadaama mid ka mid ah adeegyada laga yaabo inuusan haysan waqti uu ku helo ogeysiis safka gudaha ah). Natiijo kale, nidaamku hadda ma laha waqti caadi ah. Taasi waa, waa wax aan suurtagal ahayn, tusaale ahaan, in dhammaan dhacdooyinka si fudud loo xalliyo wakhtiga imaatinka, sababtoo ah saacadaha u dhexeeya server-yada ma noqon karaan kuwo isku mid ah (sidoo kale, isla waqti isku mid ah labada server waa utopia).
  • Wax dhacdooyin ah hadda si fudud dib looguma rogi karo (sida lagu samayn karo xogta xogta). Taa beddelkeeda, waxaad u baahan tahay inaad ku darto dhacdo cusub - dhacdo magdhow ah, kaas oo u bedeli doona gobolka ugu dambeeya ee loo baahan yahay. Tusaale ahaan meel la mid ah: iyada oo aan dib loo qorin taariikhda (taas oo xun xaaladaha qaarkood), dib uma soo celin kartid ballan git, laakiin waxaad samayn kartaa mid gaar ah dib-u-noqoshada ballan, taas oo asal ahaan soo celinaysa xaaladdii hore. Si kastaba ha ahaatee, gefafka khaldan iyo dib-u-celinta labaduba waxay ahaan doonaan taariikhda.
  • Qorshaha xogta ayaa laga yaabaa inuu is beddelo siideynta oo uu sii daayo, laakiin dhacdooyinkii hore ma awoodo in lagu cusboonaysiiyo heerka cusub (maadaama dhacdooyinka aan la beddeli karin mabda'a ahaan).

Sida aad arki karto, Event Sourcing waxay si fiican ula shaqeysaa CQRS. Waxaa intaa dheer, hirgelinta nidaam leh safaf hufan oo ku habboon, laakiin iyada oo aan la kala saarin qulqulka xogta, waa horeba way adag tahay lafteeda, sababtoo ah waxaad u baahan doontaa inaad ku darto dhibco isku dhafan oo ka takhalusi doona dhammaan saameynta wanaagsan ee safafka. Codsashada labada habba hal mar, waxaa lagama maarmaan ah in wax yar la hagaajiyo code-ka barnaamijka. Xaaladeena, marka faylka loo diro server-ka, jawaabtu waxay timaadaa kaliya "ok", taas oo macnaheedu yahay kaliya "hawlgalka ku darista faylka waa la badbaadiyey." Si rasmi ah, tani macnaheedu maaha in xogta horeba looga heli karo aaladaha kale (tusaale ahaan, adeegga kala-saarista ayaa dib u dhisi kara tusaha). Si kastaba ha ahaatee, wakhti ka dib, macmiilku wuxuu heli doonaa ogeysiin qaabka "faylka X waa la badbaadiyey."

Natiijo ahaan:

  • Tirada xaaladaha soo dirida faylka ayaa sii kordheysa: halkii laga ahaan lahaa "faylka la diray", waxaan helnaa laba: "faylka waxaa lagu daray safka serverka" iyo "faylka waxaa lagu keydiyay kaydinta." Tan dambe waxay ka dhigan tahay in aaladaha kale ay mar hore bilaabi karaan helitaanka faylka (oo lagu hagaajiyay xaqiiqda ah in safafku ku shaqeeyo xawaare kala duwan).
  • Sababtoo ah xaqiiqda ah in macluumaadka soo gudbinta ay hadda ku yimaadaan wadooyin kala duwan, waxaan u baahanahay inaan la nimaadno xalalka si aan u helno heerka habaynta faylka. Natiijo ahaan tan: si ka duwan jawaabta codsiga-caadiga ah, macmiilka dib ayaa loo bilaabi karaa inta lagu jiro habaynta faylka, laakiin xaaladda habaynta lafteeda ayaa sax noqon doonta. Waxaa intaa dheer, shaygani wuxuu shaqeeyaa, asal ahaan, ka baxsan sanduuqa. Natiijo ahaan: hadda waxaan aad ugu dulqaadan nahay guuldarrooyinka.

Xaraashka

Sida kor lagu faahfaahiyey, nidaamyada soo saaridda dhacdada ayaa ka maqan joogtayn adag. Tani waxay ka dhigan tahay in aan isticmaali karno kayd badan iyada oo aan wax wada shaqayn ah dhexdooda. Markaan u soo dhowaano dhibaheena, waxaan awoodnaa:

  • Kala sooc faylasha nooc ahaan. Tusaale ahaan, sawiro/fiidyowyo waa la goyn karaa oo qaab hufan ayaa la dooran karaa.
  • Kala soocida akoonnada wadan ahaan. Sharciyo badan dartood, tan ayaa laga yaabaa in loo baahdo, laakiin nidaamka qaab dhismeedkan ayaa si toos ah u siinaya fursadan oo kale

Hababka dhismaha ee habboon

Haddii aad rabto inaad xogta ka wareejiso kaydka una wareejiso mid kale, markaa macnaha caadiga ah kuma filna. Nasiib darro, kiiskan, waxaad u baahan tahay inaad joojiso safka, sameyso socdaalka, ka dibna bilaw. Xaaladda guud, xogta laguma wareejin karo "duuqsi", si kastaba ha ahaatee, haddii safka dhacdada si buuxda loo kaydiyo, oo aad haysato sawir-qaadista goboladii hore ee kaydinta, markaa waxaan dib ugu celin karnaa dhacdooyinka sida soo socota:

  • Isha Dhacdada, dhacdo kastaa waxay leedahay aqoonsi u gaar ah (sida ugu fiican, aan hoos u dhicin). Tani waxay ka dhigan tahay inaan ku dari karno meel kaydinta - id ee curiyaha ugu dambeeya ee la warshadeeyay.
  • Waxaan isku duubnaa safka si dhammaan dhacdooyinka loogu habeeyo dhowr kayd oo madax-bannaan (ta koowaad waa tii xogta hore loogu kaydiyay, tan labaadna waa cusub tahay, laakiin weli madhan). Safka labaad, dabcan, weli lama hawlgelin.
  • Waxaan bilaabaynaa safka labaad (yacni, waxaan bilaabaynaa dib u daawaynta dhacdooyinka).
  • Marka safka cusubi uu yara maran yahay (taas oo ah, celceliska farqiga u dhexeeya ku darista curiyaha iyo soo saarida waa la aqbali karaa), waxaad bilaabi kartaa u beddelashada akhristayaasha kaydinta cusub.

Sida aad arki karto, ma aanan haysan, welina ma hayno, joogtaynta adag ee nidaamkayaga. Waxa jira kaliya joogteynta aakhirka, taas oo ah, dammaanad qaadka in dhacdooyinka loo habeeyey si isku mid ah (laakin waxaa suurtogal ah dib u dhacyo kala duwan). Anagoo adeegsanayna tan, waxaan si fudud ugu wareejin karnaa xogta anagoon nidaamka u joojinayn dhanka kale ee aduunka.

Markaa, sii wadida tusaalaheena ku saabsan kaydinta khadka tooska ah ee faylalka, qaab dhismeedka noocan oo kale ah ayaa durba na siiya tiro gunooyin ah:

  • Waxaan walxaha ugu dhawaan karnaa isticmaalayaasha si firfircoon. Sidan ayaad ku wanaajin kartaa tayada adeegga.
  • Waxaa laga yaabaa inaan ku kaydinno xogta qaar ka mid ah shirkadaha dhexdooda. Tusaale ahaan, isticmaalayaasha shirkaduhu waxay inta badan u baahan yihiin in xogtooda lagu kaydiyo xarumaha xogta la kontoroolo (si ay uga fogaadaan xogta daadsan). Iyadoo loo marayo shareing si fudud ayaan u taageeri karnaa tan. Hawshuna way ka sii fudud tahay haddii macmiilku leeyahay daruur ku habboon (tusaale ahaan, Azure is hosted).
  • Waxa ugu muhiimsanna waa in aynaan samayn tan. Ka dib oo dhan, si aan ku bilowno, waxaan aad ugu faraxsanaan lahayn hal kayd oo dhan xisaabaadka (si aad si dhakhso ah u bilowdo shaqada). Iyo qaabka ugu muhiimsan ee nidaamkani waa in kasta oo la ballaarin karo, marxaladda hore waa mid fudud. Kaliya maaha inaad si degdeg ah u qorto koodka la shaqeeya milyan oo saf oo kala duwan, iwm. Haddii loo baahdo, tan waxaa la samayn karaa mustaqbalka.

Martigelinta Mawduuca Joogtada ah

Dhibicdani waxay u ekaan kartaa mid cad, laakiin wali waxay lagama maarmaan u tahay in ka badan ama ka yar codsiga caadiga ah. Nuxurkeedu waa sahlan yahay: dhammaan waxyaabaha ku jira lama qaybiyo isla server-ka uu codsigu ku yaallo, laakiin kuwa gaar ah ayaa loo qoondeeyay hawshan. Natiijo ahaan, hawlgalladan si dhakhso ah ayaa loo fuliyaa (nginx shuruudi waxay u adeegtaa faylalka si ka dhakhso badan oo ka jaban server-ka Java). Lagu daray qaab dhismeedka CDNNetwork Delivery Content) waxay noo ogolaataa inaan helno faylashayada meel u dhow isticmaalayaasha dhamaadka, taas oo saameyn togan ku leh ku habboonaanta la shaqeynta adeegga.

Tusaalaha ugu fudud uguna caadiga ah ee nuxurka taagan waa qoraallo iyo sawirro mareegaha. Wax walba waa ku fudud yihiin iyaga - horay ayaa loo yaqaan, ka dibna kaydka waxaa lagu dhejiyaa server-yada CDN, halkaas oo loo qaybiyo isticmaalayaasha dhamaadka.

Si kastaba ha noqotee, xaqiiqda, nuxurka taagan, waxaad isticmaali kartaa hab la mid ah qaab-dhismeedka lambda. Aan ku soo laabano hawshayada (Kaydinta faylalka khadka tooska ah), kaas oo aan ugu baahanahay inaan u qaybinno isticmaaleyaasha. Xalka ugu fudud waa in la abuuro adeeg, codsi kasta oo isticmaale ah, sameeyo dhammaan jeegaga lagama maarmaanka ah (ogolaanshaha, iwm.), ka dibna si toos ah uga soo dejisan faylka kaydintayada. Khasaaraha ugu weyn ee habkan waa nuxurka taagan (iyo fayl leh dib-u-eegis gaar ah, dhab ahaantii, nuxurka static) waxaa qaybiya isla server-ka kaas oo ka kooban macquulka ganacsiga. Taa beddelkeeda, waxaad samayn kartaa jaantuskan soo socda:

  • Seerfarku waxa uu bixiyaa URL soo-dejineed. Waxay noqon kartaa foomka file_id + furaha, halkaasoo furuhu uu yahay saxiix-yar oo dhijitaal ah kaas oo siinaya xaqa helitaanka agabka XNUMXka saacadood ee soo socda.
  • Faylka waxaa loo qaybiyaa nginx fudud oo leh xulashooyinka soo socda:
    • Kaydinta nuxurka Maadaama adeeggan uu ku yaallo server gaar ah, waxaan nafteena uga tagnay kayd mustaqbalka oo awood u leh inaan ku kaydino dhammaan faylalka ugu dambeeyay ee la soo dejiyey ee diskka.
    • Hubinta furaha wakhtiga abuurista xidhiidhka
  • Ikhtiyaar: socodsiinta nuxurka habaynta. Tusaale ahaan, haddii aan ku cadaadiyo dhammaan faylasha adeegga, markaa waxaan si toos ah u furi karnaa cutubkan. Natiijo ahaan: Hawlgallada IO waxaa lagu sameeyaa halka ay ka tirsan yihiin. Kaydka Java wuxuu si fudud u qoondayn doonaa xasuus badan oo dheeri ah, laakiin dib u qorida adeeg leh caqli-gal ganacsi shuruudaha Rust/C++ waxay sidoo kale noqon kartaa mid aan waxtar lahayn. Xaaladeena, habab kala duwan (ama xitaa adeegyo) ayaa loo adeegsadaa, sidaa darteed waxaan si wax ku ool ah u kala saari karnaa macquulnimada ganacsiga iyo hawlgallada IO.

Hababka dhismaha ee habboon

Qorshahani maaha mid la mid ah qaybinta nuxurka taagan (maadaama aynaan meel ku soo dhejin dhammaan xirmada taagan), laakiin dhab ahaantii, habkani wuxuu si sax ah uga walaacsan yahay qaybinta xogta aan beddeli karin. Waxaa intaa dheer, nidaamkan waxaa lagu soo koobi karaa kiisas kale oo aan nuxurku ahayn mid si fudud u taagan, laakiin loo matalli karo sida qaybo aan beddelmi karin oo aan la tirtiri karin (in kasta oo lagu dari karo).

Tusaale kale (xoojinta): haddii aad la shaqeysay Jenkins/TeamCity, markaa waxaad ogtahay in labada xalba ay ku qoran yihiin Java. Labaduba waa hab Java ah oo gacanta ku haya dhisidda orchestration iyo maareynta nuxurka labadaba. Gaar ahaan, labadooduba waxay leeyihiin hawlo ay ka mid yihiin "ka wareejinta fayl / fayl serverka." Tusaale ahaan: soo saarida artifacts, wareejinta koodka isha (marka wakiilku uusan si toos ah uga soo dejisan koodhka kaydka, laakiin server-ku u sameeyo isaga), gelitaanka diiwaannada. Dhammaan hawlahani waxay ku kala duwan yihiin culeyskooda IO. Taasi waa, waxay soo baxday in server-ka mas'uulka ka ah caqli-gal ganacsi ee adag ay tahay inuu isla markaa awood u yeesho inuu si wax ku ool ah u riixo qulqulka weyn ee xogta laftiisa. Iyo waxa ugu xiisaha badan ayaa ah in hawlgalkan oo kale loo wakiisho isla nginx si waafaqsan isla qorshe isku mid ah (marka laga reebo in furaha xogta lagu daro codsiga).

Si kastaba ha ahaatee, haddii aan ku soo laabano nidaamkayaga, waxaan helnaa jaantus la mid ah:

Hababka dhismaha ee habboon

Sida aad arki karto, nidaamku wuxuu noqday mid aad u adag. Hadda kaliya maaha hab-raac yar oo kaydiya faylasha gudaha. Hadda waxa loo baahan yahay maaha taageerada ugu fudud, xakamaynta nooca API, iwm. Sidaa darteed, ka dib marka dhammaan jaantusyada la sawiro, waxa ugu wanaagsan in si faahfaahsan loo qiimeeyo haddii kordhintu ay u qalanto kharashka. Si kastaba ha noqotee, haddii aad rabto inaad awood u yeelatid inaad ballaariso nidaamka (oo ay ku jiraan inaad la shaqeyso tiro badan oo isticmaaleyaal ah), markaa waxaad u baahan doontaa inaad tagto xalal la mid ah. Laakiin, natiijadu waxay tahay, nidaamku qaab dhismeed ahaan diyaar ayuu u yahay culeyska kordhay (ku dhawaad ​​​​qayb kasta ayaa lagu dhejin karaa si siman). Nidaamka waa la cusboonaysiin karaa iyada oo aan la joojin (kaliya hawlgallada qaar ayaa yara gaabin doona).

Sida aan bilowgii hore u sheegay, hadda tiro ka mid ah adeegyada internetka ayaa bilaabay in ay helaan culays kordhay. Qaarkoodna waxay bilaabeen inay si sax ah u joojiyaan shaqada. Dhab ahaantii, nidaamyadu waxay ku fashilmeen si sax ah waqtigan markii ganacsigu u maleynayay inuu lacag sameeyo. Taasi waa, halkii dib u dhigista dib loo dhigi lahaa, halkii aad u soo jeedin lahayd macaamiisha "qorsheyso bixintaada bilaha soo socda," nidaamku wuxuu si fudud u yiri " u tag tartamayaashaada." Dhab ahaantii, kani waa qiimaha wax soo saarka hooseeya: khasaaruhu wuxuu si sax ah u dhici doonaa marka faa'iidada ugu badan tahay.

gunaanad

Dhammaan hababkaas hore ayaa loo yiqiin. Isla VK ayaa muddo dheer isticmaalaysay fikradda Hosting Content Hosting si ay u soo bandhigto sawirada. Qaar badan oo ka mid ah ciyaaraha khadka tooska ah ayaa isticmaala nidaamka Sharding si ay u kala qaybiyaan ciyaartoyda gobollada ama si ay u kala saaraan goobaha ciyaarta (haddii aduunka laftiisa uu mid yahay). Habka Isha Dhacdada waxa si firfircoon loogu isticmaalaa iimaylka. Inta badan codsiyada ganacsiga halka xogta si joogto ah loo helo ayaa dhab ahaantii lagu dhisay habka CQRS si ay u awoodaan inay sifeeyaan xogta la helay. Hagaag, miisaan toosan ayaa loo isticmaalay adeegyo badan muddo dheer.

Si kastaba ha ahaatee, tan ugu muhiimsan, dhammaan qaababkani waxay noqdeen kuwo aad u fudud in lagu dabaqo codsiyada casriga ah (haddii ay ku habboon yihiin, dabcan). Daruuruhu waxay isla markaaba bixiyaan Sharding iyo cabir toosan, taas oo aad uga fudud inaad ka dalbato adeegayaasha kala duwan ee xarumaha xogta ee kala duwan. CQRS waxay noqotay mid aad u fudud, haddii kaliya ay sabab u tahay horumarinta maktabadaha sida RX. Qiyaastii 10 sano ka hor, shabakad dhif ah ayaa tan taageeri karta. Soo-jeedinta Dhacdada sidoo kale si cajiib ah ayey u fududahay in la dejiyo iyada oo ay ugu wacan tahay weelasha diyaarsan ee Apache Kafka. 10 sano ka hor tani waxay ahaan lahayd hal-abuur, hadda waa wax iska caadi ah. Waxay la mid tahay Hosting Content: iyadoo ay ugu wacan tahay tignoolajiyada ku habboon (oo ay ku jiraan xaqiiqda ah inay jiraan dukumeenti faahfaahsan iyo xog badan oo jawaabo ah), habkani wuxuu noqday mid ka sii fudud.

Natiijo ahaan, hirgelinta tiro ka mid ah qaababka dhismaha ee adag ayaa hadda noqday mid aad u fudud, taas oo macnaheedu yahay inay fiicantahay in horay loo sii eego. Haddii codsiga toban sano jir ah mid ka mid ah xalalka kor ku xusan ayaa laga tagay sababtoo ah qiimaha sare ee hirgelinta iyo hawlgalka, hadda, codsi cusub, ama ka dib dib-u-cusboonaynta, waxaad abuuri kartaa adeeg horeba u noqon doona qaab dhismeed labadaba labadaba. marka la eego waxqabadka) iyo u diyaarsan codsiyada cusub ee macaamiisha (tusaale ahaan, si loo meeleeyo xogta shakhsiyeed).

Iyo tan ugu muhiimsan: fadlan ha isticmaalin hababkan haddii aad haysato codsi fudud. Haa, way qurux badan yihiin oo xiiso leh, laakiin goobta leh booqashada ugu sarreysa ee 100 qof, waxaad inta badan ku heli kartaa monolith classic (ugu yaraan dibadda, wax kasta oo gudaha ah ayaa loo qaybin karaa modules, iwm.).

Source: www.habr.com

Add a comment