Kusarudza chimiro chekuvaka (chikamu 2)

Mhoro, Habr. Nhasi ndinoenderera mberi nenhevedzano yezvinyorwa zvandakanyora zvakanangana nekutanga kwerukova rutsva rwekosi. "Software Architect".

Nhanganyaya

Sarudzo yemaitiro ekuvaka ndeimwe yeakakosha tekinoroji sarudzo pakuvaka iyo ruzivo system. Mune ino nhevedzano yezvinyorwa, ini ndinokurudzira kuongorora anonyanya kufarirwa zvitaera zvekuvaka zvekushandisa uye kupindura mubvunzo wekuti ndeipi dhizaini yekuvaka inonyanya kufarirwa. Mukuita kwekuratidzira, ini ndichaedza kudhirowa cheni inonzwisisika inotsanangura kuvandudzwa kwezvitaera zvekuvaka kubva ku monoliths kuenda ku microservices.

Π’ nguva yekupedzisira takabata ne monolith uye takasvika pakugumisa kuti monolith ine nhamba yezvinetso: ukuru, kubatana, kutumirwa, scalability, kuvimbika uye kuoma.

Panguva ino ini ndinokurudzira kutaura nezvemikana yekuronga sisitimu seti yemamodules / maraibhurari (chikamu-inotungamirwa architecture) kana masevhisi (sevhisi-yakatarisana architecture).

Chikamu-yakatarisana nekuvaka

Kuvaka kwakatarisana nechikamu kunosanganisira kuita sisitimu seti yezvikamu zvinogona kushandiswa mune zvese zvazvino uye zveramangwana mapurojekiti. Pakuputsa hurongwa muzvikamu, zvinotevera zvinotariswa: kushandiswa zvakare, kutsiva kwavo, kusununguka kwechirevo, kuwedzera, encapsulation uye kusununguka.

Nekushandiswa kwakakodzera kwezvikamu, dambudziko re "bhora guru retsvina" (hukuru hukuru + hukuru hwekubatanidza) hunogadziriswa, uye zvikamu pachazvo zvinogona kuva zvose zvikamu zvegungano (modules, library) uye zvikwata zvekutumira (masevhisi). Deployment units haisi nguva dzose yakamepurwa kune yekumhanya maitiro: semuenzaniso, webhu application uye dhatabhesi zvinoiswa pamwechete.

Kazhinji, monoliths inogadzirwa seti yemamodules. Iyi nzira inotungamira mukusimudzira yakazvimirira, asi matambudziko ekuzvimiririra kuyera uye kuendesa, kukanganisa kushivirira uye kusununguka kubva kune yakazara tekinoroji stack inosara. Ndokusaka iyo module iri chikamu chakazvimirira chikamu.

Dambudziko guru nemonolith yakadaro nderekuti kupatsanurwa mumamodule kunonzwisisika uye kunogona kutyorwa nyore nyore nevagadziri. A core module inogona kuoneka, iyo zvishoma nezvishoma inoshanduka kuita marara, girafu yekutsamira pakati pemamodule inogona kukura, zvichingodaro. Kuti udzivise matambudziko akadaro, kusimudzira kunofanira kuitwa kana neboka rakakura kwazvo, kana pasi pekutungamirwa kwe "mugadziri" ari kuita nguva yakazara yekodhi kodhi uye anorova maoko evagadziri vanotyora zvine musoro chimiro.

Iyo "yakanaka" monolith seti yemamodule akapatsanurwa zvine musoro, imwe neimwe inotarisa mudura rayo.

Sevhisi-yakatarisana architecture

Kana iyo system inofanirwa kurongeka muchimiro cheseti yebasa, saka isu tiri kutaura nezve sevhisi-yakatarisana nekuvaka. Nheyo dzayo ndeye mushandisi-centric application interoperability, bhizinesi sevhisi kushandiswazve, tekinoroji stack kusununguka, uye kuzvimiririra (yakazvimirira shanduko, scalability, uye kutumirwa).

Sevhisi-yakatarisana architecture (SOA = service oriented architecture) inogadzirisa matambudziko ese akaonekwa e monolith: sevhisi imwe chete inobatwa kana shanduko ikaitika, uye yakanyatsotsanangurwa API inotsigira yakanaka encapsulation yezvikamu.

Asi hazvisi zvese zvakatsetseka: SOA inogadzira matambudziko matsva. Kufona kure kure kunodhura kupfuura dzemuno, uye kugoverazve mabasa pakati pezvikamu zvave kudhura zvakanyanya.

Nenzira, mukana wekuzvimiririra kutumirwa chinhu chakakosha chebasa. Kana masevhisi achifanira kuiswa pamwe chete kana, uyezve, mune imwe nhevedzano, saka iyo system haigone kutorwa sebasa-yakatarisana. Muchiitiko ichi, vanotaura nezve monolith yakagoverwa (inotaridzirwa anti-pattern kwete chete kubva pakuona kweSOA, asiwo kubva pakuona kwe microservice architecture).

Sevhisi-yakatarisana yekuvaka inotsigirwa zvakanaka nenharaunda yekuvaka uye vatengesi. Izvi zvinoreva kuvapo kwemakosi mazhinji uye zvitupa, mapatani akagadzirwa zvakanaka. Iyo yekupedzisira inosanganisira, semuenzaniso, inozivikanwa bhizinesi sevhisi bhazi (ESB = bhizinesi rebasa bhazi). Panguva imwecheteyo, ESB ibhegi kubva kune vatengesi; hazvifanirwe kushandiswa muSOA.

Kukurumbira kwekuvaka-kwakatarisana nekuvaka kwakakwira kusvika 2008, mushure mezvo kwakatanga kudzikira, izvo zvakazonyanya kushamisa mushure mekuuya kwemicroservices (~ 2015).

mhedziso

Mushure mekunge takurukura nezvemikana yekuronga masisitimu eruzivo nenzira yemasevhisi uye mamodule, ini ndinokurudzira kuti ndienderere mberi kune misimboti ye microservice architecture uye kunyatso tarisisa musiyano uripo pakati pemicroservice architecture uye sevhisi-yakatarisana nekuvaka muchikamu chinotevera.

Kusarudza chimiro chekuvaka (chikamu 2)

Source: www.habr.com

Voeg