Mikropakalpojumi: kas tie ir, kāpēc tie ir un kad tos ieviest

Jau sen gribēju uzrakstÄ«t rakstu par mikropakalpojumu arhitektÅ«ras tēmu, taču mani apturēja divas lietas - jo dziļāk iedziļinājos tēmā, jo vairāk man Ŕķita, ka tas, ko es zinu, ir paÅ”saprotami, un tas, ko es zinu. t zināt, ir jāpēta un jāmācās. No otras puses, es domāju, ka jau ir par ko apspriest plaÅ”u auditoriju. Tāpēc alternatÄ«vi viedokļi ir apsveicami.

Konveja likums un attiecības starp biznesu, organizāciju un informācijas sistēmu

Vēlreiz atļauÅ”os citēt:

"Jebkura organizācija, kas izstrādā sistēmu (plaŔā nozÄ«mē), saņems dizainu, kura struktÅ«ra atkārto Ŕīs organizācijas komandu struktÅ«ru."
ā€” Melvins Konvejs, 1967. gads

Manuprāt, Å”is likums drÄ«zāk saistās ar biznesa organizÄ“Å”anas iespējamÄ«bu, nevis tieÅ”i ar informācijas sistēmu. Ä»aujiet man paskaidrot ar piemēru. Teiksim, mums ir diezgan stabila biznesa iespēja ar tādu dzÄ«ves ciklu, ka ir jēga organizēt uzņēmumu (Ŕī nav drukas kļūda, bet man ļoti patÄ«k Å”is manis nozagtais termins). Protams, Ŕī biznesa atbalsta sistēma organizatoriski un procesuāli atbildÄ«s Å”im biznesam.

Informācijas sistēmu biznesa orientācija

Mikropakalpojumi: kas tie ir, kāpēc tie ir un kad tos ieviest

Ä»aujiet man paskaidrot ar piemēru. Pieņemsim, ka pastāv biznesa iespēja organizēt biznesu, kas pārdod picu. V1 versijā (sauksim to par iepriekŔēju informāciju) uzņēmums bija picērija, kases aparāts un piegādes serviss. Å Ä« versija bija ilgstoÅ”a zemas vides mainÄ«guma apstākļos. Pēc tam to aizstāja 2. versija ā€“ progresÄ«vāka un spēj izmantot informācijas sistēmu savā pamatā uzņēmējdarbÄ«bai ar monolÄ«tu arhitektÅ«ru. Un Å”eit, manuprāt, ir vienkārÅ”i briesmÄ«ga netaisnÄ«ba attiecÄ«bā uz monolÄ«tiem - it kā monolÄ«ta arhitektÅ«ra neatbilst domēna biznesa modelim. Jā, ja tas tā bÅ«tu, sistēma vispār nevarētu darboties ā€“ pretrunā ar to paÅ”u Konveja likumu un veselo saprātu. Nē, monolÄ«tā arhitektÅ«ra pilnÄ«bā atbilst biznesa modelim Å”ajā biznesa attÄ«stÄ«bas stadijā - es, protams, domāju posmu, kad sistēma jau ir izveidota un nodota ekspluatācijā. Tas ir absolÅ«ti brÄ«niŔķīgs fakts, ka neatkarÄ«gi no arhitektÅ«ras pieejas vienlÄ«dz labi darbosies gan uz servisu orientētās arhitektÅ«ras versija 3, gan mikropakalpojumu arhitektÅ«ras versija N. Kāds ir loms?

Viss plūst, viss mainās, vai arī mikropakalpojumi ir līdzeklis, lai cīnītos pret sarežģītību?

Pirms turpinām, aplūkosim dažus nepareizus priekŔstatus par mikropakalpojumu arhitektūru.

Mikropakalpojumu pieejas izmantoÅ”anas atbalstÄ«tāji bieži apgalvo, ka monolÄ«ta sadalÄ«Å”ana mikropakalpojumos vienkārÅ”o attÄ«stÄ«bas pieeju, samazinot atseviŔķu pakalpojumu kodu bāzi. Manuprāt, Å”is apgalvojums ir pilnÄ«gs absurds. Ja nopietni, acÄ«mredzamā mijiedarbÄ«ba monolÄ«tā un viendabÄ«gā kodā Ŕķiet sarežģīta? Ja tas tā patieŔām bÅ«tu, visi projekti sākotnēji tiktu veidoti kā mikropakalpojumi, savukārt prakse rāda, ka migrācija no monolÄ«ta uz mikropakalpojumiem ir daudz izplatÄ«tāka. SarežģītÄ«ba nepazÅ«d; tā vienkārÅ”i pāriet no atseviŔķiem moduļiem uz saskarnēm (datu kopnēm, RPC, API vai citiem protokoliem) un orÄ·estrÄ“Å”anas sistēmām. Un tas ir grÅ«ti!

ApÅ”aubāma ir arÄ« neviendabÄ«gas kaudzes izmantoÅ”anas priekÅ”rocÄ«ba. Es neapstrÄ«dÄ“Å”u, ka arÄ« tas ir iespējams, bet patiesÄ«bā tas notiek reti (skatoties uz priekÅ”u - tam vajadzētu notikt, bet drÄ«zāk kā sekas, nevis priekÅ”rocÄ«bas).

Produkta dzīves cikls un pakalpojuma dzīves cikls

Vēlreiz apskatiet iepriekÅ” redzamo diagrammu. Ne velti atzÄ«mēju atseviŔķas biznesa versijas dzÄ«ves cikla samazināŔanos - mÅ«sdienu apstākļos tieÅ”i biznesa pārejas starp versijām paātrinājums ir noteicoÅ”ais tā panākumiem. Produkta panākumus nosaka biznesa hipotēžu pārbaudes ātrums tajā. Un Å”eit, manuprāt, slēpjas galvenā mikropakalpojumu arhitektÅ«ras priekÅ”rocÄ«ba. Bet iesim kārtÄ«bā.

Pāriesim uz nākamo informācijas sistēmu evolÅ«cijas posmu ā€“ uz SOA servisu orientētu arhitektÅ«ru. Tātad, kādā noteiktā brÄ«dÄ« mēs izcēlām mÅ«su produktu ilgstoÅ”i pakalpojumi - ilgmūžīgs tādā nozÄ«mē, ka, pārvietojoties starp produkta versijām, pastāv iespēja, ka pakalpojuma dzÄ«ves cikls bÅ«s garāks nekā nākamās produkta versijas dzÄ«ves cikls. LoÄ£iski bÅ«tu tos nemaz nemainÄ«t ā€“ mēs SvarÄ«gs ir pārejas ātrums uz nākamo versiju. Bet diemžēl mēs esam spiesti pastāvÄ«gi mainÄ«t pakalpojumus - un Å”eit viss darbojas mÅ«su labā, DevOps prakse, konteinerizācija un tā tālāk - viss, kas ienāk prātā. Bet tie joprojām nav mikropakalpojumi!

Mikropakalpojumi kā līdzeklis cīņai pret sarežģītību... konfigurācijas pārvaldība

Un Å”eit mēs beidzot varam pāriet uz mikropakalpojumu noteicoÅ”o lomu - Ŕī ir pieeja, kas vienkārÅ”o produkta konfigurācijas pārvaldÄ«bu. SÄ«kāk katra mikropakalpojuma funkcija apraksta tieÅ”i biznesa funkciju produkta iekÅ”ienē atbilstoÅ”i domēna modelim - un tās ir lietas, kas dzÄ«vo nevis Ä«slaicÄ«gā versijā, bet gan ilgtermiņa biznesa iespējās. Un pāreja uz nākamo produkta versiju notiek burtiski nemanot - jÅ«s maināt/pievienojat vienu mikropakalpojumu un, iespējams, tikai to mijiedarbÄ«bas shēmu, un pēkŔņi jÅ«s nonākat nākotnē, atstājot aiz sevis raudoÅ”us konkurentus, kuri turpina lēkāt starp versijām. to monolÄ«ti. Tagad iedomājieties, ka ir diezgan liels mikropakalpojumu apjoms ar iepriekÅ” definētām saskarnēm un biznesa iespējām. Un jÅ«s nākat un veidojat sava produkta struktÅ«ru no gataviem mikropakalpojumiem ā€“ vienkārÅ”i uzzÄ«mējot, piemēram, diagrammu. Apsveicam, jums ir platforma, un tagad jÅ«s varat piesaistÄ«t biznesu sev. Sapņi Sapņi.

Atzinumi

  • Sistēmas arhitektÅ«ra jānosaka tās komponentu dzÄ«ves ciklam. Ja komponents atrodas produkta versijā, nav jēgas palielināt sistēmas sarežģītÄ«bu, izmantojot mikropakalpojumu pieeju.
  • Mikropakalpojumu arhitektÅ«ra jābalsta uz domēna modeli, jo biznesa iespēja ir visilgāk dzÄ«vojoÅ”ais domēns
  • Piegādes prakse (DevOps prakse) un orÄ·estrÄ“Å”ana ir viena no vissvarÄ«gākajām mikropakalpojumu arhitektÅ«rā ā€“ tāpēc, ka komponentu maiņas ātruma pieaugums izvirza paaugstinātas prasÄ«bas piegādes ātrumam un kvalitātei.

Avots: www.habr.com

Pievieno komentāru