Mikroservizzi: x'inhuma, għaliex huma u meta għandhom jiġu implimentati

Jien ridt nikteb artiklu dwar is-suġġett tal-arkitettura tal-mikroservizz għal żmien twil, iżda żewġ punti baqgħu jwaqqfuni - aktar ma kont nidħol fis-suġġett, aktar deherli li dak li naf huwa ovvju, u dak li nagħmel' t know jeħtieġ li jiġi studjat u studjat. Min-naħa l-oħra, naħseb li diġà hemm xi ħaġa x’tiddiskuti fost udjenza wiesgħa. Allura opinjonijiet alternattivi huma milqugħa.

Il-Liġi ta' Conway u r-relazzjoni bejn in-negozju, l-organizzazzjoni u s-sistema tal-informazzjoni

Għal darb'oħra nippermetti lili nnifsi nikkwota:

"Kull organizzazzjoni li tfassal sistema (fis-sens wiesa') tirċievi disinn li l-istruttura tiegħu tirreplika l-istruttura tat-timijiet f'dik l-organizzazzjoni."
— Melvyn Conway, 1967

Fl-opinjoni tiegħi, din il-liġi hija aktar probabbli li tirrelata mal-fattibilità tal-organizzazzjoni ta' negozju, aktar milli direttament mas-sistema tal-informazzjoni. Ħa nispjega b'eżempju. Ejja ngħidu li għandna opportunità ta 'negozju pjuttost stabbli b'ċiklu ta' ħajja ta 'tali tul li jagħmel sens li torganizza intrapriża (din mhix typo, iżda jogħġobni ħafna dan it-terminu li seraq). Naturalment, is-sistema ta' appoġġ ta 'dan in-negozju se jikkorrispondi b'mod organizzattiv u proċesswali għal dan in-negozju.

Orjentazzjoni kummerċjali ta' sistemi ta' informazzjoni

Mikroservizzi: x'inhuma, għaliex huma u meta għandhom jiġu implimentati

Ħa nispjega b'eżempju. Ejja ngħidu li hemm opportunità ta 'negozju biex torganizza negozju li jbiegħ pizza. Fil-verżjoni V1 (ejja nsejħulha pre-informazzjoni), il-kumpanija kienet pizzeria, cash register, u servizz ta’ konsenja. Din il-verżjoni kienet ħajja twila f'kundizzjonijiet ta 'varjabbiltà ambjentali baxxa. Imbagħad il-verżjoni 2 ġiet biex tissostitwiha - aktar avvanzata u kapaċi tuża sistema ta 'informazzjoni fil-qalba tagħha għan-negozju b'arkitettura monolitika. U hawn, fl-opinjoni tiegħi, hemm sempliċement inġustizzja terribbli fir-rigward tal-monoliti - allegatament arkitettura monolitika ma tikkorrispondix mal-mudell tan-negozju tad-dominju. Iva, kieku dan kien hekk, is-sistema ma tkunx tista' taħdem għal kollox - f'kontradizzjoni mal-istess liġi u sens komun ta' Conway. Le, l-arkitettura monolitika hija konsistenti bis-sħiħ mal-mudell tan-negozju f'dan l-istadju ta 'żvilupp tan-negozju - Jien, ovvjament, infisser l-istadju meta s-sistema tkun diġà nħolqot u bdiet topera. Huwa fatt assolutament mill-isbaħ li irrispettivament mill-approċċ arkitettoniku, kemm il-verżjoni tal-arkitettura orjentata lejn is-servizz 3 kif ukoll il-verżjoni tal-arkitettura tal-mikroservizzi N se jaħdmu tajjeb bl-istess mod. X'inhi l-qabda?

Kollox jiċċirkola, kollox jinbidel, jew il-mikroservizzi huma mezz biex tiġi miġġielda l-kumplessità?

Qabel ma nkomplu, ejja nħarsu lejn xi kunċetti żbaljati dwar l-arkitettura tal-mikroservizz.

Proponenti tal-użu ta’ approċċ ta’ mikroservizz spiss jargumentaw li l-qsim ta’ monolitu f’mikroservizzi jissimplifika l-approċċ tal-iżvilupp billi jnaqqas il-bażi tal-kodiċi tas-servizzi individwali. Fl-opinjoni tiegħi, din id-dikjarazzjoni hija bla sens. Serjament, l-interazzjoni ovvja fi ħdan kodiċi monolitiku u omoġenju tidher ikkumplikata? Kieku dan kien verament il-każ, il-proġetti kollha inizjalment jinbnew bħala mikroservizzi, filwaqt li l-prattika turi li l-migrazzjoni minn monolith għal mikroservizzi hija ħafna aktar komuni. Il-kumplessità ma tisparixxix; sempliċement tiċċaqlaq minn moduli individwali għal interfaces (kemm jekk huma data buses, RPC, APIs, u protokolli oħra) u sistemi ta 'orkestrazzjoni. U dan huwa diffiċli!

Il-vantaġġ li tuża munzell eteroġenju huwa wkoll dubjuż. Mhux se nargumenta li dan huwa possibbli wkoll, imma fir-realtà rari jseħħ (B'ħarsa 'l quddiem - dan għandu jiġri - iżda aktar bħala konsegwenza milli vantaġġ).

Iċ-ċiklu tal-ħajja tal-prodott u ċ-ċiklu tal-ħajja tas-servizz

Agħti ħarsa oħra lejn id-dijagramma t'hawn fuq. Mhux ta 'kumbinazzjoni li nnota ċ-ċiklu tal-ħajja li qed jonqos ta' verżjoni separata ta 'negozju - f'kundizzjonijiet moderni, hija l-aċċelerazzjoni tat-tranżizzjoni ta' negozju bejn il-verżjonijiet li hija deċiżiva għas-suċċess tiegħu. Is-suċċess ta 'prodott huwa ddeterminat mill-veloċità tal-ittestjar tal-ipoteżi tan-negozju fih. U hawn, fl-opinjoni tiegħi, jinsab il-vantaġġ ewlieni tal-arkitettura tal-mikroservizz. Imma ejja mmorru fl-ordni.

Ejja ngħaddu għall-istadju li jmiss fl-evoluzzjoni tas-sistemi tal-informazzjoni - għall-arkitettura orjentata lejn is-servizz tas-SOA. Għalhekk, f'ċertu punt aħna enfasizzat fil-prodott tagħna servizzi ta’ ħajja twila - ħajja twila fis-sens li meta tiċċaqlaq bejn verżjonijiet ta' prodott, hemm ċans li ċ-ċiklu tal-ħajja tas-servizz ikun itwal miċ-ċiklu tal-ħajja tal-verżjoni li jmiss tal-prodott. Ikun loġiku li ma nibdluxhom xejn - aħna Dak li huwa importanti huwa l-veloċità tat-tranżizzjoni għall-verżjoni li jmiss. Imma sfortunatament, aħna mġiegħla nagħmlu bidliet kostanti fis-servizzi - u hawn kollox jaħdem għalina, prattiki DevOps, kontejners, eċċ - dak kollu li jiġi f'moħħna. Iżda dawn għadhom mhumiex mikroservizzi!

Mikroservizzi bħala mezz biex tiġi miġġielda l-kumplessità... ġestjoni tal-konfigurazzjoni

U hawnhekk nistgħu finalment nimxu fuq ir-rwol li jiddefinixxi l-mikroservizzi - dan huwa approċċ li jissimplifika l-ġestjoni tal-konfigurazzjoni tal-prodott. F'aktar dettall, il-funzjoni ta 'kull mikroservizz tiddeskrivi eżattament il-funzjoni tan-negozju ġewwa l-prodott skond il-mudell tad-dominju - u dawn huma affarijiet li jgħixu mhux f'verżjoni ta' ħajja qasira, iżda f'opportunità ta 'negozju għal ħajja twila. U t-tranżizzjoni għall-verżjoni li jmiss tal-prodott iseħħ litteralment inosservat - inti tibdel/iżżid mikroservizz wieħed, u forsi biss l-iskema tal-interazzjoni tagħhom, u f'daqqa waħda ssib ruħek fil-futur, u tħalli warajha biki kompetituri li jkomplu jaqbżu bejn verżjonijiet ta ' monoliti tagħhom. Issa immaġina li hemm volum pjuttost kbir ta 'mikroservizzi b'interfaces predefiniti u kapaċitajiet tan-negozju. U inti tiġi u tibni l-istruttura tal-prodott tiegħek minn mikroservizzi lesti - sempliċement billi tfassal dijagramma, pereżempju. Prosit - għandek pjattaforma - u issa tista 'tiġbed in-negozju għalik innifsek. Ħolm Ħolm.

Sejbiet

  • L-arkitettura tas-sistema għandha tkun iddeterminata miċ-ċiklu tal-ħajja tal-komponenti tagħha. Jekk komponent jgħix f'verżjoni tal-prodott, m'hemm l-ebda skop li tiżdied il-kumplessità tas-sistema bl-użu ta 'approċċ ta' mikroservizz.
  • L-arkitettura tal-mikroservizz għandha tkun ibbażata fuq il-mudell tad-dominju - minħabba li l-opportunità tan-negozju hija l-aktar dominju li jgħix
  • Il-prattiki ta' konsenja (prattiċi DevOps) u l-orkestrazzjoni huma wieħed mill-aktar importanti għall-arkitettura tal-mikroservizz - għar-raġuni li ż-żieda fir-rata tal-bidla tal-komponenti tpoġġi talbiet akbar fuq il-veloċità u l-kwalità tal-kunsinna.

Sors: www.habr.com

Żid kumment