Microservices: ew çi ne, çima ew in û kengê têne bicîh kirin

Min dixwest ji bo demek dirêj gotarek li ser mijara mîmariya mîkro-xizmetê binivîsim, lê du tiştan min rawestand - her ku ez ketim nav mijarê, bêtir ji min re xuya bû ku tiştê ku ez dizanim eşkere ye, û ya ku ez nakim. T zanîn hewce ye ku were xwendin û lêkolîn kirin. Ji hêla din ve, ez difikirim ku jixwe di nav temaşevanek berfireh de tiştek heye ku were nîqaş kirin. Ji ber vê yekê ramanên alternatîf bi xêr hatin.

Qanûna Conway û têkiliya di navbera karsazî, rêxistin û pergala agahdariyê de

Careke din ez ê destûrê bidim xwe ku bibêjim:

"Her rêxistinek ku pergalek dîzayn dike (di wateya berfireh de) dê sêwiranek werbigire ku strûktûra tîmê di wê rêxistinê de dubare dike."
- Melvyn Conway, 1967

Bi dîtina min, ev qanûn ji bilî ku rasterast bi pergala agahdariyê ve girêdayî ye, bêtir bi fezîbiliya rêxistinkirina karsaziyek ve girêdayî ye. Ez bi mînakekê vebêjim. Ka em bibêjin firsendek karsaziyek me ya bi îstîqrar heye bi çerxa jiyanek wusa dirêj ku meriv birêxistinkirina pargîdaniyek maqûl e (ev ne xeletiyek tîpî ye, lê ez ji vê peyva ku min dizî bi rastî hez dikim). Bi xwezayî, pergala piştgirî ya vê karsaziyê dê ji hêla rêxistinî û pêvajoyê ve bi vê karsaziyê re têkildar be.

Awayê karsaziyê ya pergalên agahdariyê

Microservices: ew çi ne, çima ew in û kengê têne bicîh kirin

Ez bi mînakekê vebêjim. Ka em bêjin fersendek karsaziyek heye ku meriv karsaziyek firotanê pizza organîze bike. Di guhertoya V1-ê de (ka em jê re bibêjin agahdariya pêş-agahiyê), pargîdanî pizzerya, tomarokek dravê û karûbarek radestkirinê bû. Ev guherto di şert û mercên guhezbariya kêm a jîngehê de demek dirêj bû. Dûv re guhertoya 2 hate şûna wê - pêşkeftîtir û karibe pergala agahdariyê di bingeha xwe de ji bo karsaziya bi mîmariya yekparêz bikar bîne. Û li vir, bi dîtina min, bi tenê neheqiyek tirsnak di derheqê monolîtan de heye - tê îdiakirin ku mîmariya monolîtîk bi modela karsaziya domainê re têkildar nabe. Erê, heke wusa bûya, dê pergal bi tevahî nikaribe bixebite - li dijî heman qanûn û hişmendiya hevpar a Conway. Na, mîmariya monolîtîk di vê qonaxa pêşkeftina karsaziyê de bi tevahî bi modela karsaziyê re hevaheng e - ez, bê guman, mebesta min qonaxa ku pergal jixwe hatî çêkirin û xebitandin e. Rastiyek bêkêmasî ye ku bêyî nêzîkatiya mîmarî, hem guhertoya mîmariya karûbar-xizmetkar 3 û hem jî guhertoya mîmariya mîkro-xizmeta N dê bi heman rengî baş bixebitin. Çi girtina?

Her tişt diherike, her tişt diguhere, an mîkroxizmet amûrek ji bo şerkirina tevliheviyê ne?

Berî ku em bidomînin, werin em li hin têgînên xelet di derheqê mîmariya mîkroxizmetê de binihêrin.

Alîgirên karanîna nêzîkatiyek mîkroxizmetê bi gelemperî nîqaş dikin ku şikandina yekdestiyek di nav mîkroservisan de bi kêmkirina bingeha kodê ya karûbarên kesane ve nêzîkatiya pêşkeftinê hêsan dike. Bi dîtina min ev gotin tam bêwate ye. Bi giranî, pêwendiya eşkere ya di hundurê kodek monolît û homojen de tevlihev xuya dike? Ger ev bi rastî wusa bûya, dê hemî proje di destpêkê de wekî mîkroxizmet werin çêkirin, di heman demê de pratîk destnîşan dike ku koçberiya ji monolîtek berbi mîkroxizmetê pirtir e. Tevlihevî ji holê ranabe; ew bi tenê ji modulên kesane berbi navbeynkaran ve diçe (çi otobusên daneyê, RPC, API, û protokolên din be) û pergalên organîzekirinê. Û ev zehmet e!

Avantaja bikaranîna stûnek heterojen jî gumanbar e. Ez ê nîqaş nekim ku ev jî mimkun e, lê di rastiyê de ew kêm kêm çêdibe (Li pêş çavan - divê ev bibe - lê ji bilî wekî encamek ji avantajê).

Çîroka jiyana hilberê û çerxa jiyana karûbarê

Careke din li diagrama li jor binêre. Ne tesaduf e ku min bal kişand ser kêmbûna çerxa jiyanê ya guhertoyek veqetandî ya karsaziyek - di şert û mercên nûjen de, ew bilezkirina veguheztina karsaziyek di navbera guhertoyan de ye ku ji bo serkeftina wê diyarker e. Serkeftina hilberek bi leza ceribandina hîpotezên karsaziyê di wê de tê destnîşankirin. Û li vir, bi dîtina min, avantaja sereke ya mîmariya mîkroxizmetê heye. Lê em bi rêzê herin.

Ka em di pêşkeftina pergalên agahdariyê de derbasî qonaxa din bibin - berbi mîmariya karûbarê-oriented a SOA. Ji ber vê yekê, di hin xalan de me di hilberê xwe de ronî kir xizmetên demdirêj - demdirêj di vê wateyê de ku dema ku di navbera guhertoyên hilberek de digerin, şansek heye ku çerxa jiyanê ya karûbarê ji çerxa jiyanê ya guhertoya paşîn a hilberê dirêjtir be. Dê mentiqî be ku em wan qet neguherînin - em Ya girîng leza derbasbûna guhertoya din e. Lê mixabin, em neçar in ku guheztinên domdar di karûbaran de bikin - û li vir her tişt ji me re dixebite, pratîkên DevOps, konteynerkirin, û hwd - her tiştê ku tê bîra me. Lê ev hîn jî ne mîkroxizmet in!

Microservices wekî amûrek ji bo şerkirina tevliheviyê ... rêveberiya vesazkirinê

Û li vir em dikarin di dawiyê de biçin ser rola diyarker a mîkroxizmetan - ev nêzîkatiyek e ku rêveberiya veavakirina hilberê hêsan dike. Bi hûrgulî, fonksiyona her mîkroxizmetê tam fonksiyona karsaziyê ya di hundurê hilberê de li gorî modela domainê diyar dike - û ev tişt in ku ne di guhertoyek kurt de, lê di fersendek karsaziyek demdirêj de dijîn. Veguhastina guhertoya paşîn a hilberê bi rastî bêhemdî diqewime - hûn mîkroxizmetek diguhezînin/lê zêde dikin, û dibe ku tenê nexşeya danûstendina wan, û ji nişkê ve hûn xwe di pêşerojê de dibînin, li dû xwe hevrikên girîn ên ku berdewam dikin di navbera guhertoyên monolîtên wan. Naha bifikire ku hejmareke pir mezin a mîkroxizmetên bi navgînên pêşwext û kapasîteyên karsaziyê hene. Û hûn werin û avahiya hilbera xwe ji mîkroxizmetên amade ava bikin - bi tenê bi xêzkirina diagramek, mînakî. Pîrozbahî - we platformek heye - û naha hûn dikarin karsaziyê ji bo xwe bikişînin. Xewn Xewn.

vebiguherin

  • Divê mîmariya pergalê bi çerxa jiyana pêkhateyên wê ve were destnîşankirin. Ger pêkhateyek di nav guhertoyek hilberek de dijî, ti xalek tune ku tevliheviya pergalê bi karanîna nêzîkatiyek mîkroxizmetê zêde bike.
  • Divê mîmariya mîkroxizmetê li ser bingeha modela domainê be - ji ber ku derfeta karsaziyê domaina herî dirêj e
  • Pratîkên radestkirinê (pratîkên DevOps) û orkestrasyon ji bo mîmariya mîkroxizmetê yek ji wan ên herî girîng in - ji ber vê yekê ku zêdebûna rêjeya guherîna pêkhateyan daxwazên zêde li ser lez û kalîteya radestkirinê pêk tîne.

Source: www.habr.com

Add a comment