Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Bawo ni gbogbo eniyan! A ni awọn iroyin nla, OTUS n ṣe ifilọlẹ ikẹkọ lẹẹkansi ni Oṣu Karun "Oluṣakoso Software", ni asopọ pẹlu eyiti a pin awọn ohun elo ti o wulo pẹlu rẹ ni aṣa aṣa.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Ti o ba ti wa gbogbo nkan microservices yii laisi aaye eyikeyi, iwọ yoo dariji fun ironu pe o jẹ ajeji diẹ. Pipin ohun elo kan si awọn ajẹkù ti o sopọ nipasẹ nẹtiwọọki kan dandan tumọ si fifi awọn ipo ifarada ẹbi idiju si eto ti o pin kaakiri.

Botilẹjẹpe ọna yii jẹ bibu rẹ sinu ọpọlọpọ awọn iṣẹ ominira, ibi-afẹde ipari jẹ pupọ diẹ sii ju nini awọn iṣẹ wọnyẹn ṣiṣẹ lori awọn ẹrọ oriṣiriṣi. A n sọrọ nibi nipa ibaraenisepo pẹlu agbaye ita, eyiti o tun pin kaakiri ni pataki rẹ. Kii ṣe ni ori imọ-ẹrọ, ṣugbọn dipo ni ori ti ilolupo eda abemi ti o ni ọpọlọpọ eniyan, awọn ẹgbẹ, awọn eto, ati ọkọọkan awọn apakan wọnyi gbọdọ ṣe iṣẹ rẹ bakan.

Awọn ile-iṣẹ, fun apẹẹrẹ, jẹ akojọpọ awọn ọna ṣiṣe pinpin ti o ṣe alabapin lapapọ si aṣeyọri ti ibi-afẹde kan. A ti kọju otitọ yii fun awọn ewadun, igbiyanju lati ṣaṣeyọri iṣọkan nipasẹ awọn faili FTPing tabi lilo awọn irinṣẹ iṣọpọ ile-iṣẹ lakoko ti o fojusi awọn ibi-afẹde ti o ya sọtọ tiwa. Ṣugbọn pẹlu dide awọn iṣẹ, ohun gbogbo yipada. Awọn iṣẹ ti ṣe iranlọwọ fun wa lati wo oju-ọrun ati rii agbaye ti awọn eto agbedemeji ti o ṣiṣẹ papọ. Bibẹẹkọ, lati le ṣiṣẹ ni aṣeyọri, o jẹ dandan lati ṣe idanimọ ati ṣe apẹrẹ awọn agbaye oriṣiriṣi oriṣiriṣi meji: agbaye ita, nibiti a gbe ni ilolupo ti ọpọlọpọ awọn iṣẹ miiran, ati ti ara ẹni, agbaye inu, nibiti a ti ṣe ijọba nikan.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Ayé tí a pín kiri yìí yàtọ̀ sí èyí tí a dàgbà nínú rẹ̀ tí a sì mọ̀ sí. Awọn ilana ti iṣelọpọ iṣelọpọ monolithic ibile ko duro si ibawi. Nitorinaa gbigba awọn eto wọnyi ni ẹtọ jẹ nipa diẹ sii ju ṣiṣẹda aworan atọka funfun ti o tutu tabi ẹri itunu ti imọran. Koko-ọrọ ni lati rii daju pe iru eto kan nṣiṣẹ ni aṣeyọri lori igba pipẹ. Da, awọn iṣẹ ti wa ni ayika oyimbo fun awọn akoko, biotilejepe won wo o yatọ si. Awọn ẹkọ SOA ni o tun wulo, ani ti igba pẹlu Docker, Kubernetes ati die-die shabby hipster irungbọn.

Nitorinaa loni a yoo wo bii awọn ofin ti yipada, idi ti a nilo lati tun ronu ọna ti a sunmọ awọn iṣẹ ati data ti wọn fi ranṣẹ si ara wa, ati idi ti a yoo nilo awọn irinṣẹ oriṣiriṣi patapata lati ṣe.

Encapsulation kii yoo jẹ ọrẹ rẹ nigbagbogbo

Microservices le ṣiṣẹ ominira ti kọọkan miiran. Ohun-ini yii ni o fun wọn ni iye ti o ga julọ. Ohun-ini kanna gba awọn iṣẹ laaye lati ṣe iwọn ati dagba. Kii ṣe pupọ ni ori ti iwọn si awọn quadrillions ti awọn olumulo tabi awọn petabytes ti data (botilẹjẹpe awọn le ṣe iranlọwọ nibẹ paapaa), ṣugbọn ni ori ti iwọn ni awọn ofin ti eniyan bi awọn ẹgbẹ ati awọn ajọ ti n dagba nigbagbogbo.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Sibẹsibẹ, ominira jẹ idà oloju meji. Iyẹn ni, iṣẹ funrararẹ le ṣiṣẹ ni irọrun ati nipa ti ara. Ṣugbọn ti iṣẹ kan ba ni imuse laarin iṣẹ kan ti o nilo lilo iṣẹ miiran, lẹhinna a pari ni nini lati ṣe awọn ayipada si awọn iṣẹ mejeeji ni akoko kanna. Ninu monolith eyi rọrun lati ṣe, o kan ṣe ayipada kan ki o firanṣẹ lati tu silẹ, ṣugbọn ninu ọran mimuuṣiṣẹpọ awọn iṣẹ ominira yoo jẹ awọn iṣoro diẹ sii. Iṣọkan laarin awọn ẹgbẹ ati awọn iyipo idasilẹ npa agility run.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Gẹgẹbi apakan ti ọna boṣewa, wọn kan gbiyanju lati yago fun awọn iyipada opin-si-opin didanubi, pinpin iṣẹ ṣiṣe ni kedere laarin awọn iṣẹ. Iṣẹ ami ami ẹyọkan le jẹ apẹẹrẹ to dara nibi. O ni ipa asọye kedere ti o ṣe iyatọ rẹ lati awọn iṣẹ miiran. Iyapa mimọ yii tumọ si pe ni agbaye ti awọn ibeere iyipada ni iyara lori awọn iṣẹ ti o wa ni ayika rẹ, iṣẹ ami ami ẹyọkan ko ṣeeṣe lati yipada. O wa laarin ipo ti o ni opin muna.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Iṣoro naa ni pe ni agbaye gidi, awọn iṣẹ iṣowo ko le ṣetọju iyapa mimọ kanna ti awọn ipa ni gbogbo igba. Fun apẹẹrẹ, awọn iṣẹ iṣowo kanna n ṣiṣẹ si iye ti o tobi julọ pẹlu data ti o wa lati awọn iṣẹ miiran ti o jọra. Ti o ba ni ipa ninu soobu ori ayelujara, lẹhinna ṣisẹ aṣẹ sisan, katalogi ọja tabi alaye olumulo yoo di ibeere fun ọpọlọpọ awọn iṣẹ rẹ. Ọkọọkan awọn iṣẹ naa yoo nilo iraye si data yii lati ṣiṣẹ.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ
Pupọ julọ awọn iṣẹ iṣowo pin ṣiṣan data kanna, nitorinaa iṣẹ wọn jẹ ibaraenisepo nigbagbogbo.

Bayi a wa si aaye pataki kan ti o yẹ lati sọrọ nipa. Lakoko ti awọn iṣẹ n ṣiṣẹ daradara fun awọn paati amayederun ti o ṣiṣẹ lọpọlọpọ ni ipinya, ọpọlọpọ awọn iṣẹ iṣowo pari ni isọpọ pupọ diẹ sii ni pẹkipẹki.

Dichotomi data

Awọn isunmọ ti o da lori iṣẹ le ti wa tẹlẹ, ṣugbọn wọn ṣi ko ni oye si bi o ṣe le pin awọn oye nla ti data laarin awọn iṣẹ.

Iṣoro akọkọ ni pe data ati awọn iṣẹ ko ṣe iyatọ. Ni apa kan, encapsulation gba wa niyanju lati tọju data ki awọn iṣẹ le yapa si ara wọn ati dẹrọ idagbasoke wọn ati awọn iyipada siwaju sii. Ni apa keji, a nilo lati ni anfani lati pin larọwọto ati ṣẹgun data pinpin, gẹgẹ bi eyikeyi data miiran. Ojuami ni lati ni anfani lati bẹrẹ ṣiṣẹ lẹsẹkẹsẹ, ni ominira bi ninu eyikeyi eto alaye miiran.

Sibẹsibẹ, awọn ọna ṣiṣe alaye ni diẹ lati ṣe pẹlu ifasilẹ. Ni pato, o jẹ ohun idakeji. Awọn aaye data ṣe ohun gbogbo ti wọn le ṣe lati pese iraye si data ti wọn fipamọ. Wọn wa pẹlu wiwo asọye ti o lagbara ti o fun ọ laaye lati yi data pada bi o ṣe nilo. Iru iṣẹ ṣiṣe bẹẹ ṣe pataki ni ipele iwadii alakoko, ṣugbọn kii ṣe fun ṣiṣakoso idiju ti ndagba ti iṣẹ ti n dagba nigbagbogbo.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Ati nibi atayanyan kan dide. ilodi si. Dichotomy. Lẹhinna, awọn eto alaye jẹ nipa ipese data, ati awọn iṣẹ jẹ nipa fifipamọ.

Awọn agbara meji wọnyi jẹ ipilẹ. Wọn ṣe atilẹyin pupọ julọ ti iṣẹ wa, ija nigbagbogbo fun didara julọ ninu awọn eto ti a kọ.

Bi awọn eto iṣẹ ṣe ndagba ati ti dagbasoke, a rii awọn abajade ti dichotomy data ni ọpọlọpọ awọn ọna. Boya wiwo iṣẹ naa yoo dagba, pese iwọn iṣẹ ṣiṣe ti n pọ si nigbagbogbo ati bẹrẹ lati dabi ibi ipamọ data ti ile ti o nifẹ pupọ, tabi a yoo ni ibanujẹ ati ṣe diẹ ninu awọn ọna lati gba pada tabi gbe ni gbogbo awọn akojọpọ data lati iṣẹ si iṣẹ.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Ni Tan, ṣiṣẹda nkankan ti o dabi a Fancy homegrown database yoo ja si kan gbogbo ogun ti isoro. A kii yoo lọ sinu awọn alaye nipa idi ti o fi lewu pín database, jẹ ki a kan sọ pe o duro fun imọ-ẹrọ iye owo pataki ati iṣẹ ṣiṣe awọn ìṣoro fun ile-iṣẹ ti o n gbiyanju lati lo.

Ohun ti o buru ju ni pe awọn iwọn data pọ si awọn iṣoro aala iṣẹ. Awọn data pinpin diẹ sii wa laarin iṣẹ kan, eka diẹ sii ni wiwo yoo di ati pe yoo nira diẹ sii lati darapo awọn eto data ti o nbọ lati awọn iṣẹ oriṣiriṣi.

Ọna miiran ti yiyo ati gbigbe gbogbo awọn eto data tun ni awọn iṣoro rẹ. Ọna ti o wọpọ si ibeere yii dabi gbigbapada ati fifipamọ gbogbo iwe-ipamọ data, ati lẹhinna titọju ni agbegbe ni iṣẹ jijẹ kọọkan.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Iṣoro naa ni pe awọn iṣẹ oriṣiriṣi tumọ data ti wọn jẹ ni oriṣiriṣi. Data yii wa ni ọwọ nigbagbogbo. Wọn ti wa ni títúnṣe ati ki o ni ilọsiwaju tibile. Ni kiakia wọn dẹkun lati ni ohunkohun ni wọpọ pẹlu data ni orisun.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ
Awọn adakọ diẹ sii mutable, diẹ sii data naa yoo yatọ ni akoko pupọ.

Lati jẹ ki ọrọ buru si, iru data bẹẹ nira lati ṣe atunṣe ni ẹhin (MDM Eyi ni ibiti o ti le wa si igbala gaan). Ni otitọ, diẹ ninu awọn iṣoro imọ-ẹrọ aibikita ti awọn iṣowo koju dide lati inu data aibikita ti o pọ si lati ohun elo si ohun elo.

Lati wa ojutu kan si iṣoro yii, a nilo lati ronu oriṣiriṣi nipa data pinpin. Wọn gbọdọ di awọn nkan kilasi akọkọ ni awọn ile-iṣọ ti a kọ. Pat Helland pe iru data bẹẹ ni "ita", ati pe eyi jẹ ẹya pataki pupọ. A nilo encapsulation ki a ko ṣe afihan awọn iṣẹ inu ti iṣẹ kan, ṣugbọn a nilo lati jẹ ki o rọrun fun awọn iṣẹ lati wọle si data pinpin ki wọn le ṣe awọn iṣẹ wọn ni deede.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Iṣoro naa ni pe ọna bẹni ko ṣe pataki loni, nitori bẹni awọn atọkun iṣẹ, tabi fifiranṣẹ, tabi aaye data Pipin nfunni ni ojutu ti o dara fun ṣiṣẹ pẹlu data ita. Awọn atọkun iṣẹ ko dara fun paṣipaarọ data ni eyikeyi iwọn. Fifiranṣẹ n gbe data lọ ṣugbọn ko tọju itan rẹ, nitorina data di ibajẹ lori akoko. Awọn aaye data Pipin fojusi pupọ lori aaye kan, eyiti o da ilọsiwaju duro. A ko ṣeeṣe ki a di sinu ọna ti ikuna data:

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ
Ayika ti data ikuna

Awọn ṣiṣan: ọna isọdọtun si data ati awọn iṣẹ

Bi o ṣe yẹ, a nilo lati yi ọna awọn iṣẹ ṣiṣẹ pẹlu data pinpin. Ni aaye yii, boya ọna ti dojukọ dichotomy ti a mẹnuba, nitori ko si eruku idan ti a le wọn si ori rẹ lati jẹ ki o parẹ. Bibẹẹkọ, a le tun ronu iṣoro naa ki o de adehun kan.

Ifiweranṣẹ yii jẹ pẹlu iwọn kan ti aarin. A le lo ẹrọ ti a pin kaakiri nitori pe o pese igbẹkẹle, awọn ṣiṣan iwọn. Ni bayi a fẹ awọn iṣẹ lati ni anfani lati darapọ mọ ati ṣiṣẹ lori awọn okun ti o pin wọnyi, ṣugbọn a fẹ lati yago fun Awọn iṣẹ Ọlọrun ti aarin ti eka ti o ṣe sisẹ yii. Nitorinaa, aṣayan ti o dara julọ ni lati kọ iṣelọpọ ṣiṣan sinu iṣẹ alabara kọọkan. Ni ọna yii, awọn iṣẹ yoo ni anfani lati darapo awọn eto data lati awọn orisun oriṣiriṣi ati ṣiṣẹ pẹlu wọn ni ọna ti wọn nilo.

Ọna kan lati ṣaṣeyọri ọna yii jẹ nipasẹ lilo pẹpẹ ṣiṣanwọle. Awọn aṣayan pupọ lo wa, ṣugbọn loni a yoo wo Kafka, nitori lilo Sisẹ Sisanwọle Stateful rẹ gba wa laaye lati yanju iṣoro ti a gbekalẹ daradara.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Lilo ọna ṣiṣe gedu ti o pin gba wa laaye lati tẹle ọna ti a tẹ daradara ati lo fifiranṣẹ lati ṣiṣẹ pẹlu iṣẹlẹ-ìṣó faaji. Ọna yii ni a gbero lati pese igbelowọn ati ipin ti o dara julọ ju ẹrọ idahun ibeere nitori pe o funni ni iṣakoso ṣiṣan si olugba dipo olufiranṣẹ. Sibẹsibẹ, fun ohun gbogbo ni igbesi aye yii o ni lati sanwo, ati nibi o nilo alagbata kan. Ṣugbọn fun awọn ọna ṣiṣe nla, iṣowo-pipa jẹ tọ si (eyiti o le ma jẹ ọran fun ohun elo wẹẹbu apapọ rẹ).

Ti alagbata ba jẹ iduro fun gige pinpin dipo eto fifiranṣẹ ibile, o le lo awọn ẹya afikun. Gbigbe naa le ṣe iwọn laini fere bii eto faili ti o pin kaakiri. Awọn data le wa ni ipamọ ni awọn akọọlẹ fun igba pipẹ, nitorina a gba kii ṣe paṣipaarọ ifiranṣẹ nikan, ṣugbọn tun ipamọ alaye. Ibi ipamọ iwọn laisi iberu ti ipo pinpin iyipada.

O le lẹhinna lo ṣiṣatunṣe ṣiṣan ipinlẹ lati ṣafikun awọn irinṣẹ data alaye si jijẹ awọn iṣẹ. Eyi jẹ imọran pataki pupọ. Lakoko ti data ti wa ni ipamọ ni awọn ṣiṣan pinpin ti gbogbo awọn iṣẹ le wọle si, apapọ ati sisẹ ti iṣẹ naa ṣe jẹ ikọkọ. Wọn wa ara wọn ti o ya sọtọ laarin ipo ti o ni opin muna.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ
Imukuro dichotomy data nipa yiya sọtọ ṣiṣan ipinlẹ alaileyipada. Lẹhinna ṣafikun iṣẹ ṣiṣe yii si gbogbo iṣẹ nipa lilo Ṣiṣẹda ṣiṣan Stateful.

Nitorinaa, ti iṣẹ rẹ ba nilo lati ṣiṣẹ pẹlu awọn aṣẹ, katalogi ọja, ile-itaja, yoo ni iwọle ni kikun: iwọ nikan ni iwọ yoo pinnu iru data lati ṣajọpọ, ibiti o le ṣe ilana ati bii o ṣe yẹ ki o yipada ni akoko pupọ. Bíótilẹ o daju wipe awọn data ti wa ni pín, ṣiṣẹ pẹlu awọn ti o ti wa ni patapata decentralized. O jẹ iṣelọpọ laarin iṣẹ kọọkan, ni agbaye nibiti ohun gbogbo n lọ ni ibamu si awọn ofin rẹ.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ
Pin data laisi ibajẹ iduroṣinṣin rẹ. Ṣe akopọ iṣẹ naa, kii ṣe orisun, ni gbogbo iṣẹ ti o nilo rẹ.

O ṣẹlẹ pe data nilo lati gbe ni ọpọ. Nigba miiran iṣẹ kan nilo ipilẹ data itan agbegbe kan ninu ẹrọ data data ti o yan. Ẹtan naa ni pe o le ṣe iṣeduro pe, ti o ba jẹ dandan, ẹda kan le tun pada lati orisun nipasẹ iraye si ẹrọ ti o pin kaakiri. Awọn asopọ ni Kafka ṣe iṣẹ nla ti eyi.

Nitorinaa, ọna ti a sọrọ loni ni ọpọlọpọ awọn anfani:

  • A lo data ni irisi awọn ṣiṣan ti o wọpọ, eyiti o le wa ni fipamọ sinu awọn akọọlẹ fun igba pipẹ, ati pe ẹrọ fun ṣiṣẹ pẹlu data ti o wọpọ jẹ wiwọ lile ni ipo kọọkan kọọkan, eyiti o fun laaye awọn iṣẹ lati ṣiṣẹ ni irọrun ati yarayara. Ni ọna yii, dichotomy ti data le jẹ iwọntunwọnsi.
  • Awọn data ti o nbọ lati awọn iṣẹ oriṣiriṣi le ni irọrun ni idapo sinu awọn eto. Eyi jẹ irọrun ibaraenisepo pẹlu data pinpin ati imukuro iwulo lati ṣetọju awọn iwe data agbegbe ni ibi ipamọ data.
  • Ṣiṣẹda ṣiṣan ti ipinlẹ nikan awọn caches data, ati pe orisun ti otitọ jẹ awọn akọọlẹ gbogbogbo, nitorinaa iṣoro ti ibajẹ data lori akoko ko le to.
  • Ni ipilẹ wọn, awọn iṣẹ jẹ idari data, afipamo pe laibikita awọn iwọn data ti n pọ si nigbagbogbo, awọn iṣẹ tun le dahun ni iyara si awọn iṣẹlẹ iṣowo.
  • Awọn ọran scalability ṣubu lori alagbata, kii ṣe awọn iṣẹ naa. Eyi ṣe pataki dinku idiju ti awọn iṣẹ kikọ, nitori ko si iwulo lati ronu nipa scalability.
  • Ṣafikun awọn iṣẹ tuntun ko nilo iyipada awọn atijọ, nitorinaa sisopọ awọn iṣẹ tuntun di irọrun.

Bi o ti le rii, eyi jẹ diẹ sii ju REST nikan lọ. A ti gba awọn irinṣẹ ti o fun ọ laaye lati ṣiṣẹ pẹlu data pinpin ni ọna ti a ti pin.

Kii ṣe gbogbo awọn apakan ni a bo ni nkan oni. A tun nilo lati ro ero bi a ṣe le ṣe iwọntunwọnsi laarin ilana idahun ibeere ati ilana ti o dari iṣẹlẹ. Ṣugbọn a yoo koju eyi nigba miiran. Awọn koko-ọrọ wa ti o nilo lati ni imọ siwaju sii, fun apẹẹrẹ, kilode ti Ṣiṣe ṣiṣanwọle Stateful jẹ dara julọ. A yoo sọrọ nipa eyi ni nkan kẹta. Ati pe awọn itumọ agbara miiran wa ti a le lo anfani ti a ba lo si wọn, fun apẹẹrẹ, Gangan Lọgan ti Processing. O jẹ oluyipada ere fun awọn eto iṣowo pinpin nitori pe o pese awọn iṣeduro iṣowo fun XA ni a ti iwọn fọọmu. Èyí la óò jíròrò nínú àpilẹ̀kọ kẹrin. Ni ipari, a yoo nilo lati lọ lori awọn alaye imuse ti awọn ipilẹ wọnyi.

Dichotomy data: atunlo ibatan laarin data ati awọn iṣẹ

Ṣugbọn fun bayi, o kan ranti eyi: dichotomy data jẹ agbara ti a koju nigba kikọ awọn iṣẹ iṣowo. Ati pe a gbọdọ ranti eyi. Ẹtan naa ni lati tan ohun gbogbo si ori rẹ ki o bẹrẹ itọju data pinpin bi awọn nkan akọkọ-kilasi. Ṣiṣẹda ṣiṣan ipinlẹ n pese adehun alailẹgbẹ fun eyi. O yago fun aarin “Awọn paati Ọlọrun” ti o da ilọsiwaju duro. Pẹlupẹlu, o ṣe idaniloju agility, scalability ati resiliency ti awọn opo gigun ti ṣiṣan data ati ṣafikun wọn si gbogbo iṣẹ. Nitorinaa, a le dojukọ ṣiṣan gbogbogbo ti aiji si eyiti eyikeyi iṣẹ le sopọ ati ṣiṣẹ pẹlu data rẹ. Eyi jẹ ki awọn iṣẹ jẹ iwọn diẹ sii, paarọ ati adase. Nitorinaa wọn kii yoo dara dara nikan lori awọn bọọdu funfun ati awọn idanwo ilewq, ṣugbọn wọn yoo tun ṣiṣẹ ati dagbasoke fun awọn ewadun.

Kọ ẹkọ diẹ sii nipa ẹkọ naa.

orisun: www.habr.com

Fi ọrọìwòye kun