Dewis arddull pensaernïol (rhan 2)

Helo, Habr. Heddiw rwy’n parhau â chyfres o gyhoeddiadau a ysgrifennais yn benodol ar gyfer dechrau ffrwd newydd o’r cwrs. "Pensaer Meddalwedd".

Cyflwyniad

Mae'r dewis o arddull pensaernïol yn un o'r penderfyniadau technegol sylfaenol wrth adeiladu system wybodaeth. Yn y gyfres hon o erthyglau, rwy'n bwriadu dadansoddi'r arddulliau pensaernïol mwyaf poblogaidd ar gyfer ceisiadau adeiladu ac ateb y cwestiwn pryd pa arddull bensaernïol sydd fwyaf ffafriol. Yn y broses o gyflwyno, byddaf yn ceisio llunio cadwyn resymegol sy'n esbonio datblygiad arddulliau pensaernïol o fonolithau i ficrowasanaethau.

В y tro diwethaf gwnaethom ymdrin â'r monolith a daethom i'r casgliad bod gan y monolith nifer o broblemau: maint, cysylltedd, lleoli, scalability, dibynadwyedd ac anhyblygedd.

Y tro hwn rwy'n bwriadu siarad am y posibiliadau o drefnu system fel set o fodiwlau/llyfrgelloedd (pensaernïaeth sy'n canolbwyntio ar gydrannau) neu wasanaethau (pensaernïaeth sy'n canolbwyntio ar wasanaethau).

Pensaernïaeth sy'n canolbwyntio ar gydrannau

Mae pensaernïaeth sy'n canolbwyntio ar gydrannau yn golygu gweithredu system fel set o gydrannau y gellir eu defnyddio mewn prosiectau cyfredol ac yn y dyfodol. Wrth rannu system yn gydrannau, mae'r canlynol yn cael eu hystyried: pa mor aml y gellir eu hailddefnyddio, pa mor hawdd yw eu disodli, annibyniaeth yn y cyd-destun, estynadwyedd, amgáu ac annibyniaeth.

Gyda defnydd cywir o gydrannau, mae problem y “belen fawr o faw” (maint mawr + cyplu uchel) yn cael ei datrys, a gall y cydrannau eu hunain fod yn unedau cydosod (modiwlau, llyfrgelloedd) ac yn unedau lleoli (gwasanaethau). Nid yw unedau lleoli bob amser yn cael eu mapio i'r broses redeg: er enghraifft, mae cymhwysiad gwe a chronfa ddata yn cael eu defnyddio gyda'i gilydd.

Yn fwyaf aml, datblygir monolithau fel set o fodiwlau. Mae'r dull hwn yn arwain at ddatblygiad annibynnol, ond erys problemau graddio a defnyddio annibynnol, goddefgarwch diffygion ac annibyniaeth o'r pentwr technoleg cyffredinol. Dyna pam mae'r modiwl yn gydran rhannol annibynnol.

Y broblem fwyaf gyda monolith o'r fath yw bod y rhaniad yn fodiwlau yn gwbl resymegol a gall datblygwyr ei thorri'n hawdd. Gall modiwl craidd ymddangos, sy'n troi'n dymp sbwriel yn raddol, gall y graff o ddibyniaethau rhwng modiwlau dyfu, ac ati. Er mwyn osgoi problemau o'r fath, dylai datblygiad gael ei wneud naill ai gan dîm aeddfed iawn, neu o dan arweiniad "pensaer" sy'n cymryd rhan mewn adolygiad cod amser llawn ac yn curo dwylo datblygwyr sy'n torri'r strwythur rhesymegol.

Mae'r monolith “delfrydol” yn set o fodiwlau wedi'u gwahanu'n rhesymegol, gyda phob un ohonynt yn edrych i mewn i'w gronfa ddata ei hun.

Pensaernïaeth sy'n canolbwyntio ar wasanaethau

Os yw'r system i fod i gael ei threfnu ar ffurf set o wasanaethau, yna rydym yn sôn am bensaernïaeth sy'n canolbwyntio ar wasanaethau. Ei egwyddorion yw rhyngweithrededd cymwysiadau sy'n canolbwyntio ar y defnyddiwr, ailddefnyddio gwasanaethau busnes, annibyniaeth stac technoleg, ac ymreolaeth (esblygiad annibynnol, graddadwyedd a defnydd).

Mae pensaernïaeth sy'n canolbwyntio ar wasanaeth (SOA = pensaernïaeth sy'n canolbwyntio ar wasanaeth) yn datrys holl broblemau monolith a nodwyd: dim ond un gwasanaeth sy'n cael ei effeithio pan fydd newid yn digwydd, ac mae API wedi'i ddiffinio'n dda yn cefnogi amgáu cydrannau'n dda.

Ond nid yw popeth mor llyfn: mae SOA yn creu problemau newydd. Mae galwadau o bell yn ddrytach na rhai lleol, ac mae ailddosbarthu cyfrifoldebau rhwng cydrannau wedi dod yn llawer drutach.

Gyda llaw, mae'r posibilrwydd o leoli'n annibynnol yn nodwedd bwysig iawn o'r gwasanaeth. Os oes rhaid defnyddio gwasanaethau gyda'i gilydd neu, ar ben hynny, mewn dilyniant penodol, yna ni ellir ystyried bod y system yn wasanaeth-ganolog. Yn yr achos hwn, maent yn siarad am monolith dosbarthedig (yn cael ei ystyried yn gwrth-batrwm nid yn unig o safbwynt SOA, ond hefyd o safbwynt pensaernïaeth microservice).

Mae pensaernïaeth sy'n canolbwyntio ar wasanaethau yn cael ei chefnogi'n dda gan y gymuned bensaernïol a gwerthwyr. Mae hyn yn awgrymu presenoldeb llawer o gyrsiau ac ardystiadau, patrymau datblygedig. Mae'r olaf yn cynnwys, er enghraifft, y bws gwasanaeth menter adnabyddus (ESB = bws gwasanaeth menter). Ar yr un pryd, mae ESB yn fagiau gan werthwyr; nid oes rhaid ei ddefnyddio mewn SOA o reidrwydd.

Cyrhaeddodd poblogrwydd pensaernïaeth sy'n canolbwyntio ar wasanaethau ei anterth tua 2008, ac ar ôl hynny dechreuodd ddirywio, a ddaeth yn sylweddol fwy dramatig ar ôl dyfodiad microwasanaethau (~2015).

Casgliad

Ar ôl i ni drafod y posibiliadau o drefnu systemau gwybodaeth ar ffurf gwasanaethau a modiwlau, rwy'n bwriadu symud ymlaen yn olaf at egwyddorion pensaernïaeth microwasanaeth a rhoi sylw arbennig i'r gwahaniaeth rhwng pensaernïaeth microwasanaeth a phensaernïaeth sy'n canolbwyntio ar wasanaethau yn y rhan nesaf.

Dewis arddull pensaernïol (rhan 2)

Ffynhonnell: hab.com

Ychwanegu sylw