Kieze fan in arsjitektoanyske styl (diel 2)

Hallo, Habr. Hjoed gean ik troch mei in searje publikaasjes dy't ik spesjaal skreau foar it begjin fan in nije stream fan 'e kursus. "Software-arsjitekt".

Ynlieding

De kar fan arsjitektoanyske styl is ien fan 'e fûnemintele technyske besluten by it bouwen fan in ynformaasjesysteem. Yn dizze searje artikels stel ik foar om de populêrste arsjitektoanyske stilen te analysearjen foar bouwapplikaasjes en beantwurdzje de fraach wannear hokker arsjitektoanyske styl it meast de foarkar is. Yn it proses fan presintaasje sil ik besykje in logyske keatling te tekenjen dy't de ûntwikkeling fan arsjitektoanyske stilen ferklearret fan monoliten oant mikrotsjinsten.

В Lêste kear wy behannele de monolyt en kamen ta de konklúzje dat de monolyt hat in oantal problemen: grutte, ferbining, ynset, scalability, betrouberens en rigidity.

Dizze kear stel ik foar om te praten oer de mooglikheden fan it organisearjen fan in systeem as in set fan modules/biblioteken (komponint-rjochte arsjitektuer) of tsjinsten (tsjinstrjochte arsjitektuer).

Component-rjochte arsjitektuer

Komponent-rjochte arsjitektuer omfettet it útfieren fan in systeem as in set fan komponinten dy't brûkt wurde kinne yn sawol aktuele as takomstige projekten. By it ôfbrekken fan in systeem yn komponinten wurdt rekken holden mei it folgjende: har werbrûkberens, har ferfangberens, kontekstûnôfhinklikens, útwreidzjen, ynkapseling en ûnôfhinklikens.

Mei it goede gebrûk fan komponinten wurdt it probleem fan 'e "grutte bal fan smoargens" (grutte grutte + hege koppeling) oplost, en de komponinten sels kinne sawol assemblage-ienheden (modules, biblioteken) en ynset-ienheden (tsjinsten) wêze. Ynset-ienheden wurde net altyd yn kaart brocht oan it rinnende proses: bygelyks in webapplikaasje en in databank wurde tegearre ynset.

Meastentiids wurde monoliten ûntwikkele as in set fan modules. Dizze oanpak liedt ta ûnôfhinklike ûntwikkeling, mar de problemen fan ûnôfhinklike skaalfergrutting en ynset, fouttolerânsje en ûnôfhinklikens fan 'e algemiene technologystack bliuwe. Dêrom is de module in foar in part selsstannige komponint.

It grutste probleem mei sa'n monolith is dat de ferdieling yn modules suver logysk is en kin maklik troch ûntwikkelders skeind wurde. In kearnmodule kin ferskine, dy't stadichoan feroaret yn in jiskefet, de grafyk fan ôfhinklikens tusken modules kin groeie, ensfh. Om foar te kommen sokke problemen, ûntwikkeling moat wurde útfierd itsij troch in hiel folwoeksen team, of ûnder de begelieding fan in "arsjitekt" dy't dwaande is mei full-time koade review en slacht de hannen fan ûntwikkelders dy't skeine de logyske struktuer.

De "ideale" monolith is in set fan logysk skieden modules, elk fan dy sjocht yn syn eigen database.

Service-rjochte arsjitektuer

As it systeem moat wurde organisearre yn 'e foarm fan in set fan tsjinsten, dan hawwe wy it oer in tsjinst-rjochte arsjitektuer. De prinsipes binne ynteroperabiliteit fan brûkerssintraal applikaasjes, werbrûk fan saaklike tsjinsten, ûnôfhinklikens fan technologystapel, en autonomy (ûnôfhinklike evolúsje, skalberens en ynset).

Service-rjochte arsjitektuer (SOA = tsjinst rjochte arsjitektuer) lost alle identifisearre problemen fan in monolith: mar ien tsjinst wurdt beynfloede as in feroaring bart, en in goed definiearre API stipet goede ynkapseling fan komponinten.

Mar net alles is sa glêd: SOA soarget foar nije problemen. Opropen op ôfstân binne djoerder dan lokale, en de ferdieling fan ferantwurdlikheden tusken komponinten is signifikant djoerder wurden.

Trouwens, de mooglikheid fan ûnôfhinklike ynset is in heul wichtich skaaimerk fan 'e tsjinst. As tsjinsten tegearre of boppedat yn in bepaalde folchoarder ynset wurde moatte, dan kin it systeem net as tsjinstrjochte beskôge wurde. Yn dit gefal, se prate oer in ferspraat monolith (beskôge in anty-patroan net allinnich út it eachpunt fan SOA, mar ek út it eachpunt fan microservice arsjitektuer).

Service-rjochte arsjitektuer wurdt goed stipe troch de arsjitektoanyske mienskip en leveransiers. Dit ymplisearret de oanwêzigens fan in protte kursussen en sertifikaten, goed ûntwikkele patroanen. De lêste omfettet bygelyks de bekende bedriuwstsjinstbus (ESB = enterprise service bus). Tagelyk is ESB in bagaazje fan leveransiers; it hoecht net needsaaklik te wurde brûkt yn SOA.

De populariteit fan tsjinstrjochte arsjitektuer berikte in hichtepunt om 2008 hinne, wêrnei't it begon te sakjen, wat nei de komst fan mikrotsjinsten (~ 2015) signifikant dramatysker waard.

konklúzje

Nei't wy de mooglikheden besprutsen hawwe fan it organisearjen fan ynformaasjesystemen yn 'e foarm fan tsjinsten en modules, stel ik foar om úteinlik oer te gean nei de begjinsels fan mikroservicearsjitektuer en spesjaal omtinken te jaan oan it ferskil tusken mikroservicearsjitektuer en tsjinstrjochte arsjitektuer yn it folgjende diel.

Kieze fan in arsjitektoanyske styl (diel 2)

Boarne: www.habr.com

Add a comment