Awọn ilana ayaworan ti o rọrun

Hey Habr!

Ni ina ti awọn iṣẹlẹ lọwọlọwọ nitori coronavirus, nọmba kan ti awọn iṣẹ Intanẹẹti ti bẹrẹ lati gba ẹru pọ si. Fun apere, Ọkan ninu awọn ẹwọn soobu UK nirọrun da aaye aṣẹ lori ayelujara rẹ duro., nitori nibẹ wà ko to agbara. Ati pe kii ṣe nigbagbogbo ṣee ṣe lati yara olupin kan nipa fifi awọn ohun elo ti o lagbara diẹ sii, ṣugbọn awọn ibeere alabara gbọdọ wa ni ilọsiwaju (tabi wọn yoo lọ si awọn oludije).

Ninu nkan yii Emi yoo sọ ni ṣoki nipa awọn iṣe olokiki ti yoo gba ọ laaye lati ṣẹda iṣẹ ifarada iyara ati ẹbi. Sibẹsibẹ, lati awọn eto idagbasoke ti o ṣeeṣe, Mo yan awọn ti o wa lọwọlọwọ rọrun lati lo. Fun nkan kọọkan, o ni awọn ile-ikawe ti a ti ṣetan, tabi o ni aye lati yanju iṣoro naa nipa lilo pẹpẹ awọsanma.

Irẹjẹ petele

Ojuami ti o rọrun julọ ati olokiki julọ. Ni aṣa, awọn ero pinpin fifuye meji ti o wọpọ julọ jẹ iwọn petele ati inaro. Ninu ọran akọkọ o gba awọn iṣẹ laaye lati ṣiṣẹ ni afiwe, nitorinaa pinpin ẹru laarin wọn. Ni awọn keji o paṣẹ awọn olupin ti o lagbara diẹ sii tabi mu koodu naa pọ si.

Fun apẹẹrẹ, Emi yoo gba ibi ipamọ faili awọsanma áljẹbrà, iyẹn ni, diẹ ninu afọwọṣe ti OwnCloud, OneDrive, ati bẹbẹ lọ.

Aworan boṣewa ti iru iyika kan wa ni isalẹ, ṣugbọn o ṣe afihan idiju ti eto naa nikan. Lẹhinna, a nilo lati muuṣiṣẹpọ awọn iṣẹ naa. Kini yoo ṣẹlẹ ti olumulo ba fi faili pamọ lati tabulẹti ati lẹhinna fẹ lati wo lati foonu naa?

Awọn ilana ayaworan ti o rọrun
Iyatọ laarin awọn isunmọ: ni iṣiro inaro, a ti ṣetan lati mu agbara awọn apa pọ sii, ati ni iwọn petele, a ti ṣetan lati fi awọn apa tuntun kun lati pin kaakiri fifuye naa.

CQRS

Pipaṣẹ Ìbéèrè Ojúṣe Apẹẹrẹ ti o ṣe pataki pupọ, nitori o gba awọn alabara oriṣiriṣi laaye kii ṣe lati sopọ si awọn iṣẹ oriṣiriṣi nikan, ṣugbọn tun gba awọn ṣiṣan iṣẹlẹ kanna. Awọn anfani rẹ ko han gbangba fun ohun elo ti o rọrun, ṣugbọn o ṣe pataki pupọ (ati rọrun) fun iṣẹ ti o nšišẹ. Koko-ọrọ rẹ: awọn ṣiṣan data ti nwọle ati ti njade ko yẹ ki o ṣe agbedemeji. Iyẹn ni, o ko le fi ibeere ranṣẹ ki o nireti esi; dipo, o fi ibeere ranṣẹ si iṣẹ A, ṣugbọn gba esi lati iṣẹ B.

Ipilẹṣẹ akọkọ ti ọna yii ni agbara lati fọ asopọ (ninu ọrọ ti o gbooro) lakoko ṣiṣe ibeere pipẹ. Fun apẹẹrẹ, jẹ ki a mu diẹ sii tabi kere si ọkọọkan boṣewa:

  1. Onibara fi ibeere ranṣẹ si olupin naa.
  2. Olupin naa bẹrẹ akoko ṣiṣe pipẹ.
  3. Olupin naa dahun si alabara pẹlu abajade.

Jẹ ki a fojuinu pe ni aaye 2 asopọ naa ti bajẹ (tabi nẹtiwọọki tun tun sopọ, tabi olumulo lọ si oju-iwe miiran, fifọ asopọ naa). Ni idi eyi, yoo ṣoro fun olupin naa lati fi esi ranṣẹ si olumulo pẹlu alaye nipa ohun ti a ti ṣe deede. Lilo CQRS, ọkọọkan yoo jẹ iyatọ diẹ:

  1. Onibara ti ṣe alabapin si awọn imudojuiwọn.
  2. Onibara fi ibeere ranṣẹ si olupin naa.
  3. Olupin naa dahun “ibeere gba.”
  4. Olupin naa dahun pẹlu abajade nipasẹ ikanni lati aaye "1".

Awọn ilana ayaworan ti o rọrun

Bi o ti le rii, ero naa jẹ diẹ sii idiju. Pẹlupẹlu, ọna-idahun ibeere ogbon inu ti nsọnu nibi. Sibẹsibẹ, bi o ti le rii, fifọ asopọ lakoko ṣiṣe ibeere kan kii yoo ja si aṣiṣe. Pẹlupẹlu, ti o ba jẹ pe ni otitọ olumulo ti sopọ si iṣẹ lati awọn ẹrọ pupọ (fun apẹẹrẹ, lati foonu alagbeka ati lati tabulẹti), o le rii daju pe esi wa si awọn ẹrọ mejeeji.

O yanilenu, koodu fun sisẹ awọn ifiranṣẹ ti nwọle di kanna (kii ṣe 100%) mejeeji fun awọn iṣẹlẹ ti o ni ipa nipasẹ alabara funrararẹ, ati fun awọn iṣẹlẹ miiran, pẹlu awọn ti awọn alabara miiran.

Bibẹẹkọ, ni otitọ a gba ẹbun afikun nitori otitọ pe ṣiṣan unidirectional le ṣe mu ni ara iṣẹ-ṣiṣe (lilo RX ati iru). Ati pe eyi jẹ afikun pataki tẹlẹ, nitori ni pataki ohun elo le ṣe ifaseyin patapata, ati tun lo ọna iṣẹ ṣiṣe. Fun awọn eto ọra, eyi le ṣafipamọ pataki idagbasoke ati awọn orisun atilẹyin.

Ti a ba darapọ ọna yii pẹlu iwọn petele, lẹhinna bi ẹbun a gba agbara lati firanṣẹ awọn ibeere si olupin kan ati gba awọn idahun lati ọdọ miiran. Nitorinaa, alabara le yan iṣẹ ti o rọrun fun u, ati pe eto inu yoo tun ni anfani lati ṣe ilana awọn iṣẹlẹ ni deede.

Alagbase iṣẹlẹ

Bi o ṣe mọ, ọkan ninu awọn ẹya akọkọ ti eto pinpin ni isansa ti akoko ti o wọpọ, apakan pataki ti o wọpọ. Fun ilana kan, o le ṣe amuṣiṣẹpọ kan (lori awọn mutexes kanna), laarin eyiti o ni idaniloju pe ko si ẹlomiran ti n ṣiṣẹ koodu yii. Bibẹẹkọ, eyi lewu fun eto pinpin, nitori pe yoo nilo oke, ati pe yoo tun pa gbogbo ẹwa ti irẹjẹ - gbogbo awọn paati yoo tun duro fun ọkan.

Lati ibi yii a gba otitọ pataki kan - eto pinpin iyara ko le muuṣiṣẹpọ, nitori lẹhinna a yoo dinku iṣẹ ṣiṣe. Lori awọn miiran ọwọ, a igba nilo kan awọn aitasera laarin irinše. Ati fun eyi o le lo ọna pẹlu bajẹ aitasera, Nibi ti o ti wa ni ẹri wipe ti o ba ti nibẹ ni o wa ti ko si data ayipada fun diẹ ninu awọn akoko lẹhin ti awọn ti o kẹhin imudojuiwọn ("bajẹ"), yoo gbogbo awọn ibeere pada awọn ti o kẹhin imudojuiwọn iye.

O ṣe pataki lati ni oye pe fun awọn apoti isura infomesonu Ayebaye o jẹ igbagbogbo lo lagbara aitasera, nibiti ipade kọọkan ti ni alaye kanna (eyi nigbagbogbo ni aṣeyọri ninu ọran nibiti a ti ka idunadura naa mulẹ nikan lẹhin idahun olupin keji). Awọn isinmi diẹ wa nibi nitori awọn ipele ipinya, ṣugbọn imọran gbogbogbo wa kanna - o le gbe ni agbaye ibaramu patapata.

Sibẹsibẹ, jẹ ki a pada si iṣẹ atilẹba. Ti o ba ti apa ti awọn eto le ti wa ni itumọ ti pẹlu bajẹ aitasera, lẹhinna a le ṣe apẹrẹ ti o tẹle.

Awọn ilana ayaworan ti o rọrun

Awọn ẹya pataki ti ọna yii:

  • Kọọkan ti nwọle ìbéèrè ti wa ni gbe ni ọkan ti isinyi.
  • Lakoko ṣiṣe ibeere kan, iṣẹ naa le tun gbe awọn iṣẹ-ṣiṣe si awọn isinyi miiran.
  • Iṣẹlẹ kọọkan ti nwọle ni idanimọ kan (eyiti o jẹ pataki fun yiyọkuro).
  • Awọn ti isinyi ideologically ṣiṣẹ ni ibamu si awọn "append nikan" eni. O ko le yọ awọn eroja kuro ninu rẹ tabi tunto wọn.
  • Ti isinyi ṣiṣẹ ni ibamu si ero FIFO (binu fun tautology). Ti o ba nilo lati ṣe ipaniyan ni afiwe, lẹhinna ni ipele kan o yẹ ki o gbe awọn nkan lọ si awọn ila ti o yatọ.

Jẹ ki n leti pe a n ṣe akiyesi ọran ti ipamọ faili ori ayelujara. Ni ọran yii, eto naa yoo dabi iru eyi: +

Awọn ilana ayaworan ti o rọrun

O ṣe pataki ki awọn iṣẹ inu aworan atọka naa ko tumọ si olupin lọtọ. Paapaa ilana naa le jẹ kanna. Ohun miiran jẹ pataki: arosọ, awọn nkan wọnyi ti yapa ni ọna ti iwọn petele le ṣee lo ni rọọrun.

Ati fun awọn olumulo meji aworan atọka naa yoo dabi eyi (awọn iṣẹ ti a pinnu fun awọn olumulo oriṣiriṣi jẹ itọkasi ni awọn awọ oriṣiriṣi):

Awọn ilana ayaworan ti o rọrun

Awọn imoriri lati iru apapo:

  • Awọn iṣẹ ṣiṣe alaye ti yapa. Awọn ila ti wa ni tun niya. Ti a ba nilo lati mu iwọn ọna ṣiṣe pọ si, lẹhinna a kan nilo lati ṣe ifilọlẹ awọn iṣẹ diẹ sii lori awọn olupin diẹ sii.
  • Nigba ti a ba gba alaye lati ọdọ olumulo kan, a ko ni lati duro titi data yoo fi pamọ patapata. Ni ilodi si, a kan nilo lati dahun “ok” ati lẹhinna bẹrẹ iṣẹ ni diėdiė. Ni akoko kanna, isinyi n yọ awọn oke giga jade, nitori fifi ohun tuntun kan waye ni iyara, ati pe olumulo ko ni lati duro fun igbasilẹ pipe nipasẹ gbogbo ọmọ.
  • Gẹgẹbi apẹẹrẹ, Mo ṣafikun iṣẹ iyọkuro kan ti o gbiyanju lati dapọ awọn faili kanna. Ti o ba ṣiṣẹ fun igba pipẹ ni 1% awọn ọran, alabara kii yoo ṣe akiyesi rẹ (wo loke), eyiti o jẹ afikun nla, nitori a ko nilo lati jẹ iyara XNUMX% ati igbẹkẹle.

Sibẹsibẹ, awọn alailanfani ti han lẹsẹkẹsẹ:

  • Eto wa ti padanu aitasera ti o muna. Eyi tumọ si pe ti, fun apẹẹrẹ, o ṣe alabapin si awọn iṣẹ oriṣiriṣi, lẹhinna ni imọ-jinlẹ o le gba ipo ti o yatọ (niwon ọkan ninu awọn iṣẹ le ma ni akoko lati gba ifitonileti lati isinyi inu). Bi abajade miiran, eto naa ko ni akoko ti o wọpọ. Iyẹn ni, ko ṣee ṣe, fun apẹẹrẹ, lati to gbogbo awọn iṣẹlẹ lasan nipasẹ akoko dide, nitori awọn aago laarin awọn olupin le ma jẹ amuṣiṣẹpọ (ni afikun, akoko kanna lori awọn olupin meji jẹ utopia).
  • Ko si awọn iṣẹlẹ ti o le yiyi pada nirọrun (bii o ṣe le ṣe pẹlu data data kan). Dipo, o nilo lati ṣafikun iṣẹlẹ tuntun - iṣẹlẹ biinu, eyi ti yoo yi awọn ti o kẹhin ipinle si awọn ti a beere ọkan. Gẹgẹbi apẹẹrẹ lati agbegbe ti o jọra: laisi atunkọ itan (eyiti o buru ni awọn igba miiran), iwọ ko le yi adehun pada ni git, ṣugbọn o le ṣe pataki kan rollback ṣẹ, eyi ti o kan pada awọn atijọ ipinle. Sibẹsibẹ, mejeeji ti ṣe aṣiṣe ati yiyi pada yoo wa ninu itan-akọọlẹ.
  • Eto data le yipada lati itusilẹ si idasilẹ, ṣugbọn awọn iṣẹlẹ atijọ kii yoo ni anfani lati ṣe imudojuiwọn si boṣewa tuntun (niwọn igba ti awọn iṣẹlẹ ko le yipada ni ipilẹ).

Bi o ti le rii, Iṣẹlẹ Sourcing ṣiṣẹ daradara pẹlu CQRS. Pẹlupẹlu, imuse eto pẹlu awọn ila ti o munadoko ati irọrun, ṣugbọn laisi ipinya awọn ṣiṣan data, ti nira tẹlẹ ninu funrararẹ, nitori iwọ yoo ni lati ṣafikun awọn aaye amuṣiṣẹpọ ti yoo yomi gbogbo ipa rere ti awọn ila. Lilo awọn ọna mejeeji ni ẹẹkan, o jẹ dandan lati ṣatunṣe koodu eto diẹ diẹ. Ninu ọran wa, nigbati o ba nfi faili ranṣẹ si olupin naa, idahun wa nikan “ok”, eyiti o tumọ si pe “iṣẹ fifi faili naa pamọ.” Ni deede, eyi ko tumọ si pe data ti wa tẹlẹ lori awọn ẹrọ miiran (fun apẹẹrẹ, iṣẹ iyọkuro le tun atọka naa kọ). Sibẹsibẹ, lẹhin igba diẹ, alabara yoo gba ifitonileti kan ni ara ti “faili X ti fipamọ.”

Nitorina na:

  • Nọmba awọn ipo fifiranṣẹ faili n pọ si: dipo Ayebaye “fifiranṣẹ ti o firanṣẹ,” a gba meji: “faili naa ti ṣafikun si isinyi lori olupin” ati “faili naa ti fipamọ ni ibi ipamọ.” Igbẹhin tumọ si pe awọn ẹrọ miiran le ti bẹrẹ gbigba faili naa tẹlẹ (atunṣe fun otitọ pe awọn ila ṣiṣẹ ni awọn iyara oriṣiriṣi).
  • Nitori otitọ pe alaye ifisilẹ bayi wa nipasẹ awọn ikanni oriṣiriṣi, a nilo lati wa pẹlu awọn solusan lati gba ipo sisẹ ti faili naa. Bi abajade eyi: ko dabi idahun ibeere Ayebaye, alabara le tun bẹrẹ lakoko ṣiṣe faili naa, ṣugbọn ipo sisẹ yii funrararẹ yoo jẹ deede. Pẹlupẹlu, nkan yii n ṣiṣẹ, ni pataki, jade kuro ninu apoti. Bi abajade: a wa ni ifarada diẹ sii ti awọn ikuna.

Ṣatunṣe

Gẹgẹbi a ti ṣalaye loke, awọn eto orisun iṣẹlẹ ko ni aitasera to muna. Eyi tumọ si pe a le lo ọpọlọpọ awọn ibi ipamọ laisi imuṣiṣẹpọ laarin wọn. Ni isunmọ si iṣoro wa, a le:

  • Lọtọ awọn faili nipa iru. Fun apẹẹrẹ, awọn aworan/fidio le jẹ iyipada ati ọna kika ti o munadoko diẹ sii le ṣee yan.
  • Awọn akọọlẹ lọtọ nipasẹ orilẹ-ede. Nitori ọpọlọpọ awọn ofin, eyi le nilo, ṣugbọn ero faaji yii n pese iru aye laifọwọyi

Awọn ilana ayaworan ti o rọrun

Ti o ba fẹ gbe data lati ibi ipamọ kan si omiiran, lẹhinna awọn ọna boṣewa ko to mọ. Laanu, ninu ọran yii, o nilo lati da isinyi duro, ṣe ijira, ati lẹhinna bẹrẹ. Ni ọran gbogbogbo, data ko le gbe “lori fifo”, ​​sibẹsibẹ, ti isinyi iṣẹlẹ ba wa ni ipamọ patapata, ati pe o ni awọn aworan ti awọn ipinlẹ ibi ipamọ iṣaaju, lẹhinna a le tun awọn iṣẹlẹ ṣiṣẹ bi atẹle:

  • Ni Orisun Iṣẹlẹ, iṣẹlẹ kọọkan ni idanimọ tirẹ (apere, ti kii dinku). Eyi tumọ si pe a le ṣafikun aaye kan si ibi ipamọ - id ti eroja ti o kẹhin.
  • A ṣe pidánpidán awọn ti isinyi ki gbogbo awọn iṣẹlẹ le wa ni ilọsiwaju fun orisirisi ominira ipamọ (akọkọ ni ọkan ninu eyi ti awọn data ti wa ni tẹlẹ ti o ti fipamọ, ati awọn keji jẹ titun, sugbon si tun sofo). Ti isinyi keji, dajudaju, ko ti ni ilọsiwaju sibẹsibẹ.
  • A ṣe ifilọlẹ isinyi keji (iyẹn, a bẹrẹ awọn iṣẹlẹ atunṣe).
  • Nigbati isinyi tuntun ba ṣofo (iyẹn ni, iyatọ akoko apapọ laarin fifi ohun kan kun ati gbigba pada jẹ itẹwọgba), o le bẹrẹ yiyipada awọn oluka si ibi ipamọ tuntun.

Bii o ti le rii, a ko ni, ati pe ko tun ni, aitasera to muna ninu eto wa. Iṣeduro iṣẹlẹ nikan wa, iyẹn ni, iṣeduro pe awọn iṣẹlẹ ti wa ni ilọsiwaju ni ilana kanna (ṣugbọn o ṣee ṣe pẹlu awọn idaduro oriṣiriṣi). Ati pe, ni lilo eyi, a le ni irọrun gbe data laisi didaduro eto naa si apa keji ti agbaiye.

Nitorinaa, tẹsiwaju apẹẹrẹ wa nipa ibi ipamọ ori ayelujara fun awọn faili, iru faaji tẹlẹ fun wa ni nọmba awọn imoriri:

  • A le gbe awọn nkan sunmọ awọn olumulo ni ọna ti o ni agbara. Ni ọna yii o le mu didara iṣẹ dara si.
  • A le fipamọ diẹ ninu awọn data laarin awọn ile-iṣẹ. Fun apẹẹrẹ, awọn olumulo ile-iṣẹ nigbagbogbo nilo data wọn lati wa ni ipamọ si awọn ile-iṣẹ data iṣakoso (lati yago fun jijo data). Nipasẹ sharding a le ṣe atilẹyin eyi ni irọrun. Ati pe iṣẹ naa paapaa rọrun ti alabara ba ni awọsanma ibaramu (fun apẹẹrẹ, Azure ara ti gbalejo).
  • Ati ohun pataki julọ ni pe a ko ni lati ṣe eyi. Lẹhin gbogbo ẹ, lati bẹrẹ pẹlu, a yoo ni idunnu pupọ pẹlu ibi ipamọ kan fun gbogbo awọn akọọlẹ (lati bẹrẹ ṣiṣẹ ni iyara). Ati pe ẹya pataki ti eto yii ni pe botilẹjẹpe o gbooro, ni ipele ibẹrẹ o rọrun pupọ. O kan ko ni lati kọ koodu lẹsẹkẹsẹ ti o ṣiṣẹ pẹlu awọn laini ominira lọtọ miliọnu kan, ati bẹbẹ lọ. Ti o ba jẹ dandan, eyi le ṣee ṣe ni ojo iwaju.

Alejo Akoonu Aimi

Aaye yi le dabi ohun kedere, sugbon o jẹ tun pataki fun kan diẹ ẹ sii tabi kere si boṣewa kojọpọ ohun elo. Koko-ọrọ rẹ rọrun: gbogbo akoonu aimi ni a pin kaakiri kii ṣe lati olupin kanna nibiti ohun elo naa wa, ṣugbọn lati awọn ti o ṣe pataki ni pataki si iṣẹ yii. Bi abajade, awọn iṣẹ wọnyi ni a ṣe ni iyara (nginx ti o ni majemu n ṣe iranṣẹ awọn faili ni iyara ati ni gbowolori diẹ sii ju olupin Java lọ). Plus faaji CDN (Ibugbe Ifiranṣẹ Awọn akoonu) gba wa laaye lati wa awọn faili wa nitosi awọn olumulo ipari, eyiti o ni ipa rere lori irọrun ti ṣiṣẹ pẹlu iṣẹ naa.

Apeere ti o rọrun julọ ati boṣewa ti akoonu aimi jẹ ṣeto awọn iwe afọwọkọ ati awọn aworan fun oju opo wẹẹbu kan. Ohun gbogbo ni o rọrun pẹlu wọn - wọn mọ ni ilosiwaju, lẹhinna a gbe pamosi si awọn olupin CDN, lati ibiti wọn ti pin si awọn olumulo ipari.

Sibẹsibẹ, ni otitọ, fun akoonu aimi, o le lo ọna kan ti o jọra si faaji lambda. Jẹ ki a pada si iṣẹ-ṣiṣe wa (ibi ipamọ faili ori ayelujara), ninu eyiti a nilo lati pin awọn faili si awọn olumulo. Ojutu ti o rọrun julọ ni lati ṣẹda iṣẹ kan ti, fun ibeere olumulo kọọkan, ṣe gbogbo awọn sọwedowo pataki (aṣẹ, ati bẹbẹ lọ), ati lẹhinna ṣe igbasilẹ faili taara lati ibi ipamọ wa. Aila-nfani akọkọ ti ọna yii ni pe akoonu aimi (ati faili kan pẹlu atunyẹwo kan jẹ, ni otitọ, akoonu aimi) ti pin nipasẹ olupin kanna ti o ni oye iṣowo naa. Dipo, o le ṣe aworan atọka wọnyi:

  • Awọn olupin pese a download URL. O le jẹ ti bọtini fọọmu file_id +, nibiti bọtini jẹ ibuwọlu oni-nọmba kekere ti o funni ni ẹtọ lati wọle si orisun fun awọn wakati 24 to nbọ.
  • Faili naa ti pin nipasẹ nginx ti o rọrun pẹlu awọn aṣayan atẹle:
    • Iṣakojọpọ akoonu. Niwọn igba ti iṣẹ yii le wa lori olupin lọtọ, a ti fi ara wa silẹ ni ipamọ fun ọjọ iwaju pẹlu agbara lati ṣafipamọ gbogbo awọn faili ti o gbasilẹ tuntun lori disiki.
    • Ṣiṣayẹwo bọtini ni akoko ṣiṣẹda asopọ
  • Yiyan: sisanwọle akoonu processing. Fun apẹẹrẹ, ti a ba rọpọ gbogbo awọn faili ninu iṣẹ naa, lẹhinna a le ṣe ṣiṣi silẹ taara ni module yii. Bi abajade: Awọn iṣẹ IO ni a ṣe nibiti wọn jẹ. Ile ifi nkan pamosi ni Java yoo ni irọrun pin ọpọlọpọ iranti afikun, ṣugbọn atunkọ iṣẹ kan pẹlu ọgbọn iṣowo sinu awọn ipo Rust/C ++ le tun jẹ alaiṣe. Ninu ọran wa, awọn ilana oriṣiriṣi (tabi paapaa awọn iṣẹ) ni a lo, ati nitorinaa a le ṣe iyatọ iyatọ iṣowo ati awọn iṣẹ IO ni imunadoko.

Awọn ilana ayaworan ti o rọrun

Eto yii ko jọra pupọ si pinpin akoonu aimi (niwọn igba ti a ko gbejade gbogbo package aimi nibikan), ṣugbọn ni otitọ, ọna yii jẹ deede pẹlu pinpin data alaileyipada. Pẹlupẹlu, ero yii le ṣe akopọ si awọn ọran miiran nibiti akoonu kii ṣe aimi lasan, ṣugbọn o le ṣe aṣoju bi ṣeto ti awọn bulọọki aileyipada ati ti kii ṣe paarẹ (botilẹjẹpe wọn le ṣafikun).

Gẹgẹbi apẹẹrẹ miiran (fun imuduro): ti o ba ti ṣiṣẹ pẹlu Jenkins/TeamCity, lẹhinna o mọ pe awọn solusan mejeeji ni a kọ ni Java. Mejeji ti wọn jẹ ilana Java kan ti o mu mejeeji kọ orchestration ati iṣakoso akoonu. Ni pataki, awọn mejeeji ni awọn iṣẹ ṣiṣe bii “gbigbe faili kan / folda lati olupin naa.” Gẹgẹbi apẹẹrẹ: fifun awọn ohun-ọṣọ, gbigbe koodu orisun (nigbati aṣoju ko ṣe igbasilẹ koodu taara lati ibi ipamọ, ṣugbọn olupin ṣe fun u), wiwọle si awọn akọọlẹ. Gbogbo awọn iṣẹ-ṣiṣe wọnyi yatọ ni ẹru IO wọn. Iyẹn ni, o wa ni pe olupin ti o ni iduro fun iṣaro iṣowo eka gbọdọ ni akoko kanna ni anfani lati Titari awọn ṣiṣan nla ti data nipasẹ ararẹ. Ati pe ohun ti o nifẹ julọ ni pe iru iṣẹ bẹ le jẹ aṣoju si nginx kanna ni ibamu si ero kanna (ayafi pe bọtini data yẹ ki o ṣafikun si ibeere naa).

Sibẹsibẹ, ti a ba pada si eto wa, a gba iru aworan atọka kan:

Awọn ilana ayaworan ti o rọrun

Bi o ti le rii, eto naa ti di idiju pupọ sii. Bayi kii ṣe ilana-kekere kan ti o tọju awọn faili ni agbegbe. Bayi ohun ti o nilo kii ṣe atilẹyin ti o rọrun julọ, iṣakoso ẹya API, ati bẹbẹ lọ. Nitorina, lẹhin ti gbogbo awọn aworan atọka ti a ti ya, o jẹ ti o dara ju lati akojopo ni apejuwe awọn boya extensibility jẹ tọ awọn iye owo. Sibẹsibẹ, ti o ba fẹ lati ni anfani lati faagun eto naa (pẹlu lati ṣiṣẹ pẹlu nọmba ti o tobi pupọ ti awọn olumulo), lẹhinna o yoo ni lati lọ fun iru awọn solusan. Ṣugbọn, bi abajade, eto naa ti ṣetan ni ọna ayaworan fun fifuye pọ si (fere gbogbo paati le jẹ cloned fun iwọn petele). Eto naa le ṣe imudojuiwọn laisi idaduro rẹ (nikan diẹ ninu awọn iṣẹ yoo fa fifalẹ diẹ).

Gẹgẹbi Mo ti sọ ni ibẹrẹ akọkọ, ni bayi nọmba awọn iṣẹ Intanẹẹti ti bẹrẹ lati gba fifuye pọ si. Ati pe diẹ ninu wọn bẹrẹ lati da iṣẹ duro ni deede. Ni otitọ, awọn eto naa kuna ni pipe ni akoko ti iṣowo yẹ lati ṣe owo. Iyẹn ni, dipo ifijiṣẹ idaduro, dipo didaba si awọn alabara “gbero ifijiṣẹ rẹ fun awọn oṣu to n bọ,” eto naa sọ nirọrun “lọ si awọn oludije rẹ.” Ni otitọ, eyi ni idiyele ti iṣelọpọ kekere: awọn adanu yoo waye ni deede nigbati awọn ere yoo ga julọ.

ipari

Gbogbo awọn ọna wọnyi ni a mọ tẹlẹ. VK kanna ti pẹ ni lilo imọran ti Alejo Akoonu Aimi lati ṣafihan awọn aworan. Pupọ ti awọn ere ori ayelujara lo ero Sharding lati pin awọn oṣere si awọn agbegbe tabi lati ya awọn ipo ere lọtọ (ti agbaye funrararẹ jẹ ọkan). Ilana Alagbase Iṣẹlẹ ti wa ni lilo ni itara ninu imeeli. Pupọ julọ awọn ohun elo iṣowo nibiti a ti gba data nigbagbogbo ni itumọ ti gangan lori ọna CQRS lati le ṣe àlẹmọ data ti o gba. O dara, wiwọn petele ti lo ni ọpọlọpọ awọn iṣẹ fun igba pipẹ.

Sibẹsibẹ, pataki julọ, gbogbo awọn ilana wọnyi ti di irọrun pupọ lati lo ni awọn ohun elo ode oni (ti wọn ba yẹ, dajudaju). Awọn awọsanma nfunni Sharding ati igbelowọn petele lẹsẹkẹsẹ, eyiti o rọrun pupọ ju pipaṣẹ awọn olupin iyasọtọ ti o yatọ ni awọn ile-iṣẹ data oriṣiriṣi funrararẹ. CQRS ti rọrun pupọ, ti o ba jẹ pe nitori idagbasoke awọn ile-ikawe bii RX. Nipa awọn ọdun 10 sẹhin, oju opo wẹẹbu toje le ṣe atilẹyin eyi. Iṣẹlẹ Sourcing tun jẹ iyalẹnu rọrun lati ṣeto ọpẹ si awọn apoti ti a ti ṣetan pẹlu Apache Kafka. Ni ọdun 10 sẹyin eyi yoo jẹ ĭdàsĭlẹ, bayi o jẹ ibi ti o wọpọ. O jẹ kanna pẹlu Alejo Akoonu Aimi: nitori awọn imọ-ẹrọ irọrun diẹ sii (pẹlu otitọ pe iwe alaye wa ati ibi ipamọ data nla ti awọn idahun), ọna yii ti di paapaa rọrun.

Bi abajade, imuse ti nọmba kan ti awọn ilana ayaworan ti o nipọn ti di bayi ti o rọrun pupọ, eyiti o tumọ si pe o dara lati wo ni pẹkipẹki ni ilosiwaju. Ti o ba jẹ pe ninu ohun elo ọmọ ọdun mẹwa ọkan ninu awọn ojutu ti o wa loke ni a kọ silẹ nitori idiyele giga ti imuse ati iṣẹ, ni bayi, ninu ohun elo tuntun, tabi lẹhin isọdọtun, o le ṣẹda iṣẹ kan ti yoo jẹ ti ayaworan tẹlẹ mejeeji extensible ( ni awọn ofin ti iṣẹ) ati ṣetan si awọn ibeere tuntun lati ọdọ awọn alabara (fun apẹẹrẹ, lati ṣe agbegbe data ti ara ẹni).

Ati pataki julọ: jọwọ ma ṣe lo awọn isunmọ wọnyi ti o ba ni ohun elo ti o rọrun. Bẹẹni, wọn lẹwa ati iwunilori, ṣugbọn fun aaye kan pẹlu ibewo ti o ga julọ ti awọn eniyan 100, o le gba nigbagbogbo pẹlu monolith Ayebaye (o kere ju ni ita, ohun gbogbo ti inu le pin si awọn modulu, bbl).

orisun: www.habr.com

Fi ọrọìwòye kun