Sveiki, Habr. TieÅ”i tagad OTUS ir atvÄrta uzÅemÅ”ana jaunajam kursam. . Pirms kursa sÄkuma vÄlos ar jums dalÄ«ties ar savu autordarbu.
Ievads
ArhitektÅ«ras stila izvÄle ir viens no galvenajiem tehniskajiem lÄmumiem informÄcijas sistÄmas izveidÄ. Å ajÄ rakstu sÄrijÄ es piedÄvÄju apskatÄ«t populÄrÄkos lietojumprogrammu arhitektÅ«ras stilus un atbildÄt uz jautÄjumu, kurÄ gadÄ«jumÄ kurÅ” arhitektÅ«ras stils ir visvairÄk vÄlams. IzklÄstot informÄciju, es cenÅ”os veidot loÄ£isku secÄ«bu, kas izskaidro arhitektÅ«ras stilu attÄ«stÄ«bu no monolÄ«tiem lÄ«dz mikroservisiem.
Mazliet vÄstures
Ja jÅ«s mÄÄ£inÄsiet uzdot jautÄjumu izstrÄdÄtÄjiem: "KÄpÄc ir nepiecieÅ”ami mikropakalpojumi?", tad saÅemsiet visdažÄdÄkÄs atbildes. JÅ«s dzirdÄsiet, ka mikropakalpojumi uzlabo mÄrogojamÄ«bu, vienkÄrÅ”o koda izpratni, uzlabo kļūmju toleranci, dažreiz var dzirdÄt, ka tie ļauj "sakÄrtot kodu". ApskatÄ«sim vÄsturi, lai saprastu, kÄdu mÄrÄ·i bija paredzÄjusi mikropakalpojumu raÅ”anÄs.
Ja runÄjam Ä«si, tad mikropakalpojumi mÅ«su paÅ”reizÄjÄ izpratnÄ radÄs Å”Ädi: 2011. gadÄ Džeimss LjÅ«iss, analizÄjot dažÄdu uzÅÄmumu darbus, pievÄrsa uzmanÄ«bu jaunÄ modeļa "micro-app" raÅ”anÄs nepiecieÅ”amÄ«bai, kas optimizÄja SOA, paÄtrinot pakalpojumu izsniegÅ”anu. Nedaudz vÄlÄk, 2012. gadÄ, arhitektÅ«ras samita laikÄ Å”is modelis tika pÄrdÄvÄts par mikropakalpojumu. TÄdÄjÄdi sÄkotnÄjais mÄrÄ·is, ievieÅ”ot mikropakalpojumus, bija uzlabot tÄ saucamo time to market.
Mikropakalpojumu aktualitÄte sasniedza virsotni 2015. gadÄ. PÄc dažÄm pÄtÄ«jumu atziÅÄm neviena konference nevarÄja iztikt bez ziÅojuma par mikropakalpojumiem. Pat vairÄkas konferences tika veltÄ«tas tikai mikropakalpojumiem. Tagad ļoti daudzi projekti sÄkas ar Ŕī arhitektÅ«ras stila pielietoÅ”anu, bet, ja projektÄ ir liels mantojuma kods, tad noteikti notiek aktÄ«va migrÄcija uz mikropakalpojumiem.
Neskatoties uz iepriekÅ” minÄto, lÄ«dz Å”im diezgan neliels skaits izstrÄdÄtÄju var definÄt jÄdzienu "mikropakalpojums". Bet par to mÄs runÄsim nedaudz vÄlÄk...
Monolīts
ArhitektÅ«ras stils, kas ir pretstats mikropakalpojumiem, ir monolÄ«ts (jeb "viss vienÄ"). Par monolÄ«tu stÄstÄ«t, iespÄjams, nav jÄgas, tÄpÄc es uzreiz uzskaitīŔu Ŕī arhitektÅ«ras stila trÅ«kumus, kas rosinÄja turpmÄkas arhitektÅ«ras stilu attÄ«stÄ«bas: lielums, saistÄ«tÄ«ba, izsniegÅ”ana, mÄrogojamÄ«ba, uzticamÄ«ba un stÄ«vums. ZemÄk es piedÄvÄju iepazÄ«ties ar katru no trÅ«kumiem atseviŔķi.
IzmÄrs
MonolÄ«ts ir ļoti liels. Un parasti tas sazinÄs ar ļoti plaÅ”u datu bÄzi. Lietojums kļūst pÄrÄk liels, lai to varÄtu saprast viens izstrÄdÄtÄjs. Ar monolÄ«tu var labi strÄdÄt tikai tie, kuri ir pavadÄ«juÅ”i pietiekami daudz laika pie Ŕī koda, savukÄrt iesÄcÄji pavadÄ«s ļoti daudz laika, mÄÄ£inot saprast monolÄ«tu, un nav garantijas, ka viÅi to izdarÄ«s. Parasti, strÄdÄjot ar monolÄ«tu, vienmÄr ir kÄds ānosacÄ«tsā vecÄkais, kurÅ” pazÄ«st monolÄ«tu vairÄk vai mazÄk labi un iedod norÄdÄ«jumus citiem jauniem izstrÄdÄtÄjiem visÄ gadÄ vai pusotra laikÄ. Protams, Å”Äds nosacÄ«ts vecÄkais ir vienÄ«gÄ atteices vieta, un viÅa aizieÅ”ana var novest pie monolÄ«ta bojÄjuma.
Saistība
MonolÄ«ts ir āliels dubļu kamolsā (big ball of mud), kurÄ izmaiÅas var novest pie neparedzamÄm sekÄm. Veicot izmaiÅas vienÄ vietÄ, var sabojÄt monolÄ«tu citÄ (tieÅ”i tÄpÄc saka āja pÄderÄ, rekur atslÄdzÄsā). Tas saistÄ«ts ar to, ka komponenti monolÄ«tÄ ir ļoti sarežģīti un, galvenais, neacÄ«mredzami saistÄ«ti.
IzvietoŔana
MonolÄ«ta izvietoÅ”ana, Åemot vÄrÄ sarežģītÄs saistÄ«bas starp tÄ komponentiem, ir ilgs process ar savu rituÄlu. Å is rituÄls parasti nav pilnÄ«gi standartizÄts un tiek nodots āno mutes mutÄā.
MÄrogojamÄ«ba
MonolÄ«ta moduļi var bÅ«t konfliktÄjoÅ”as prasÄ«bas attiecÄ«bÄ uz resursiem, tÄpÄc ir nepiecieÅ”ams meklÄt kompromisu attiecÄ«bÄ uz aparatÅ«ru. IedomÄjieties, ka jÅ«su monolÄ«ts sastÄv no pakalpojumiem A un B. Pakalpojums A ir prasÄ«gs attiecÄ«bÄ uz cietÄ diska izmÄru, bet pakalpojums B ā attiecÄ«bÄ uz operatÄ«vo atmiÅu. Å ÄdÄ gadÄ«jumÄ vai nu dators, uz kura tiek uzstÄdÄ«ts monolÄ«ts, jÄatbilst abu pakalpojumu prasÄ«bÄm, vai arÄ« bÅ«s jÄsamazina kÄds no pakalpojumiem manuÄli.
VÄl viens piemÄrs (klasiskÄks): pakalpojums A ir daudz populÄrÄks nekÄ pakalpojums B, tÄpÄc jÅ«s vÄlaties, lai pakalpojumu A bÅ«tu 100, bet pakalpojumu B ā 10. Atkal divi varianti: vai nu izvietojam 100 pilnvÄrtÄ«gus monolÄ«tus, vai kÄdos no tiem manuÄli bÅ«s jÄsamazina pakalpojumi B.
Uzticamība
TÄ kÄ visi pakalpojumi atrodas kopÄ, ja monolÄ«ts sabrÅ«k, sabrÅ«k visi pakalpojumi uzreiz. PatiesÄ«bÄ, iespÄjams, tas nav tik slikti, vismaz nebÅ«s daļÄju traucÄjumu sadalÄ«tÄ sistÄmÄ, bet no otras puses, kļūdas dÄļ funkcionalitÄtÄ, ko izmanto 0.001% lietotÄju, jÅ«s varat zaudÄt visus savas sistÄmas lietotÄjus.
Kustība
Å emot vÄrÄ monolÄ«ta izmÄru, ir grÅ«ti pÄriet uz jaunÄm tehnoloÄ£ijÄm. TÄ rezultÄtÄ, atseviŔķa uzdevuma veidoÅ”anÄs izvÄlÄÅ”anÄs saglabÄt to paÅ”u nosacÄ«to senioru. IzvÄlÄtais tehnoloÄ£iju kaudze projekta sÄkumÄ var kļūt par ŔķÄrsli, kas kavÄ produkta attÄ«stÄ«bu.
SecinÄjums
NÄkamajÄ reizÄ mÄs runÄsim par to, kÄ cilvÄki mÄÄ£inÄja atrisinÄt minÄtÄs problÄmas, pÄrejot uz komponentiem un SOA.
LasÄ«t vÄl:
Avots: habr.com
