Tere, Habr. Just nĂŒĂŒd on OTUSis avatud uus kursuse voog. . Kursuse alguses tahan jagada teiega oma autorilugu.
Sissejuhatus
Arhitektuuristiili valik on ĂŒks peamisi tehnilisi otsuseid teabe sĂŒsteemi loomisel. Selles artiklite seerias kĂ€sitleme kĂ”ige populaarsemaid rakenduste arhitektuuristiile ja vastame kĂŒsimusele, millal on milline arhitektuuristiil kĂ”ige eelistatum. KĂ€sitlen loogilist ahelat, mis selgitab arhitektuuristiilide arengut monoliitsetest mikroteenustele.
Enne kui liigume edasi
Kui proovite kĂŒsida arendajatelt: âMiks on mikroteenused vajalikud?â, siis saate kĂ”ige erinevamaid vastuseid. Kuulete, et mikroteenused parandavad skaleeritavust, lihtsustavad koodi mĂ”istmist, suurendavad usaldusvÀÀrsust, vahel vĂ”ite kuulda, et nad vĂ”imaldavad âkoodi puhastadaâ. Vaatame ajaloos tagasi, et mĂ”ista, millist eesmĂ€rki mikroteenuste loomine jĂ€rgnes.
LĂŒhidalt öeldes tekkisid mikroteenused meie tĂ€napĂ€evases mĂ”istes jĂ€rgmiselt: 2011. aastal mĂ€rkis James Lewis, analĂŒĂŒsides erinevate ettevĂ”tete töid, uue mustri âmicro-appâ tekkimist, mis optimeeris SOA teenuste juurutamise kiirusest. Veidi hiljem, 2012. aastal, nimetati arhitektuurisummitil muster mikroteenuseks. Seega oli mikroteenuste rakendamise algne eesmĂ€rk parandada kurikuulsat time to market.
Mikroteenuste laine oli 2015. aastal vĂ€ga populaarne. MĂ”nede uuringute kohaselt ei möödunud ĂŒkski konverents ilma mikroteenuste teemalise ettekandeta. Veel enam, mĂ”ned konverentsid keskendusid ainult mikroteenustele. Praegu algavad vĂ€ga paljud projektid selle arhitektuuristiili rakendamisega, ja kui projekt sisaldab suures mahus pĂ€randkoodi, siis tĂ”enĂ€oliselt toimub aktiivne ĂŒleminek mikroteenustele.
Hoolimata eeltoodust suudab veel ĂŒsna vĂ€ike arv arendajaid mÀÀratleda mĂ”istet âmikroteenusâ. Kuid sellest rÀÀgime natuke hiljem...
Monoliit
Mikroteenustele vastanduv arhitektuuristiil on monoliit (vĂ”i âkĂ”ik ĂŒhesâ). Selles stiilis pole mĂ”tet rÀÀkida monoliidist, seetĂ”ttu loetlen kohe selle arhitektuuristiili puudused, mis initsieerisid edasise arhitektuuristiilide arengu: suurus, seotus, juurutamine, skaleeritavus, usaldusvÀÀrsus ja jĂ€ikus. Allpool tutvustan kĂ”iki puudusi eraldi.
Suurus
Monoliit on vĂ€ga suur. Ja see suhtleb tavaliselt vĂ€ga suure andmebaasiga. Rakendus muutub liiga suureks, et seda saaks ĂŒksi mĂ”ista. Monoliidiga saavad hĂ€sti töötada ainult need, kes on selle koodiga piisavalt kaua aega veetnud, samas kui algajad kulutavad vĂ€ga palju aega proovides monoliidiga toime tulla, ja ei ole kindel, et nad saavad sellega jagu. TĂŒĂŒpiliselt on monoliidi töös alati mingi âtinglikâ vanem, kes tunneb monoliiti enam-vĂ€hem hĂ€sti ja hoiab uued arendajad aasta vĂ”i pooleteise jooksul kĂ€puli. Loomulikult on selline tinglik vanem ainsaks rikke punktiks, ja tema lahkumine vĂ”ib tuua kaasa monoliidi hĂ€vimise.
Seos
Monoliit esindab âsuur must keraâ (big ball of mud), mille muutmine vĂ”ib tuua ettearvamatuid tagajĂ€rgi. Muute ĂŒhes kohas, vĂ”ib kahjustada monoliiti teises kohas (just see âkĂ”rva sĂŒgamine, *@ kukkus mahaâ). See on seotud sellega, et monoliidi komponendid omavad vĂ€ga keerulisi ja mis kĂ”ige tĂ€htsam, mitte selgeid seoseid.
TÔhustamine
Monoliidi tÔhustamine on oma komponentide vaheliste keeruliste seoste tÔttu pikk protsess koos oma rituaaliga. Selline rituaal ei ole tavaliselt tÀielikult standardiseeritud ja seda edastatakse "suust suhu".
Skaleeritavus
Monoliidi moodulitel vĂ”ivad olla konfliktseid vajadusi ressursside osas, mistĂ”ttu on vajalik leida kompromiss riistvara osas. Kujutage ette, et teie monoliit koosneb teenustest A ja B. Teenus A nĂ”uab suurt kĂ”vakettamahtu, samas kui teenus B nĂ”uab palju mĂ€lu. Sellisel juhul peab masin, kuhu monoliit paigaldatakse, toetama mĂ”lema teenuse nĂ”udmisi, vĂ”i tuleb kĂ€sitsi ĂŒks teenustest vĂ€lja lĂŒlitada.
Veel ĂŒks nĂ€ide (klassikalisem): teenus A on palju populaarsem kui teenus B, seega soovite, et teenuseid A oleks 100 ja teenuseid B oleks 10. Taaskord kaks varianti: kas paigaldame 100 tĂ€isfunktsionaalset monoliiti vĂ”i tuleb mĂ”nes neist kĂ€sitsi teenused B vĂ€lja lĂŒlitada.
UsaldusvÀÀrsus
Kuna kĂ”ik teenused on koos, siis kui monoliit ebaĂ”nnestub, ebaĂ”nnestuvad kĂ”ik teenused korraga. Tegelikult pole see vĂ”ib-olla nii halb, kuna jaotatud sĂŒsteemis ei esine osalisi tĂ”rkeid, kuid teisest kĂŒljest vĂ”ite kaotada kĂ”ik oma sĂŒsteemi kasutajad, sest tĂ”rge funktsionaalsuses, mida kasutab 0,001% kasutajatest.
Kangus
Monoliidi suuruse tĂ”ttu on keeruline ĂŒle minna uutele tehnoloogiatele. Selle tagajĂ€rjel tĂ”useb eraldi ĂŒlesanne hoida alles tegemisolevat tingimuslikku senior'i. Projekti alguses valitud tehnoloogia virn vĂ”ib osutuda takistuseks toote arengule.
KokkuvÔte
JĂ€rgmine kord rÀÀgime sellest, kuidas inimesed on pĂŒĂŒdnud neid probleeme lahendada, liikudes komponentide ja SOA suunas.
Loe edasi:
Allikas: habr.com
