Kev xaiv ntawm architectural style (Part 2)

Nyob zoo, Habr. Niaj hnub no kuv txuas ntxiv cov ntawv tshaj tawm uas kuv tau sau tshwj xeeb rau kev pib ntawm cov kwj tshiab ntawm chav kawm. "Software Architect".

Taw qhia

Kev xaiv ntawm architectural style yog ib qho ntawm cov kev txiav txim siab tseem ceeb thaum tsim cov ntaub ntawv. Nyob rau hauv cov kab lus no, kuv tawm tswv yim los txheeb xyuas cov qauv kev tsim vaj tsev nrov tshaj plaws rau kev siv lub tsev thiab teb cov lus nug ntawm seb qhov twg yog qhov zoo tshaj plaws architectural style. Nyob rau hauv tus txheej txheem ntawm kev nthuav qhia, kuv yuav sim kos ib lub laj thawj uas piav qhia txog kev txhim kho cov qauv vaj tsev ntawm monoliths mus rau microservices.

Π’ zaum kawg Peb tau hais txog lub monolith thiab tuaj txog qhov xaus tias lub monolith muaj ntau yam teeb meem: qhov loj me, kev sib txuas, kev xa tawm, scalability, kev ntseeg siab thiab rigidity.

Lub sij hawm no kuv npaj siab los tham txog qhov muaj peev xwm ntawm kev teeb tsa ib qho kev teeb tsa ntawm cov qauv / tsev qiv ntawv (cov khoom siv-taw qhia kom pom zoo) lossis cov kev pabcuam (kev pabcuam-oriented architecture).

Component-oriented architecture

Component-oriented architecture cuam tshuam nrog kev ua haujlwm raws li cov txheej txheem uas tuaj yeem siv tau rau hauv ob qho tib si tam sim no thiab yav tom ntej. Thaum rhuav tshem cov txheej txheem rau hauv cov khoom, cov hauv qab no raug coj mus rau hauv tus account: lawv cov reusability, lawv hloov pauv, cov ntsiab lus ywj pheej, extensibility, encapsulation thiab kev ywj pheej.

Nrog rau kev siv cov khoom kom raug, qhov teeb meem ntawm "pob loj ntawm av" (loj loj + siab coupling) raug daws, thiab cov khoom siv lawv tus kheej tuaj yeem yog ob qho tib si sib dhos (modules, tsev qiv ntawv) thiab xa mus (cov kev pabcuam). Kev xa tawm cov chav nyob tsis yog ib txwm ua raws li cov txheej txheem khiav: piv txwv li, daim ntawv thov lub vev xaib thiab cov ntaub ntawv raug xa mus ua ke.

Feem ntau, monoliths yog tsim los ua ib txheej ntawm modules. Txoj hauv kev no ua rau kev txhim kho kev ywj pheej, tab sis cov teeb meem ntawm kev ywj pheej scaling thiab xa mus, kev ua txhaum cai thiab kev ywj pheej los ntawm tag nrho cov txheej txheem thev naus laus zis tseem nyob. Tias yog vim li cas lub module yog ib feem ntawm kev ywj pheej.

Qhov teeb meem loj tshaj plaws nrog xws li monolith yog qhov kev faib rau hauv cov modules yog qhov tseeb thiab tuaj yeem tawg yooj yim los ntawm cov neeg tsim khoom. Ib qho tseem ceeb module yuav tshwm sim, uas maj mam hloov mus rau hauv cov khib nyiab pov tseg, daim duab ntawm kev vam khom ntawm cov modules yuav loj tuaj, thiab lwm yam. Txhawm rau zam cov teeb meem zoo li no, kev txhim kho yuav tsum tau ua los ntawm pab pawg neeg paub tab, lossis nyob rau hauv kev taw qhia ntawm "tus kws tsim qauv" uas koom nrog kev tshuaj xyuas puv sijhawm thiab tuav tes ntawm cov neeg tsim khoom uas ua txhaum cov qauv kev xav.

Lub "zoo tagnrho" monolith yog ib txheej ntawm cov logically sib cais modules, txhua tus uas saib rau hauv nws tus kheej database.

Service-oriented architecture

Yog hais tias lub kaw lus yuav tsum tau koom ua ke nyob rau hauv daim ntawv ntawm ib tug txheej ntawm cov kev pab cuam, ces peb tham txog ib tug kev pab cuam-oriented architecture. Nws cov hauv paus ntsiab lus yog cov neeg siv-centric daim ntawv thov kev sib cuam tshuam, kev lag luam kev pabcuam rov qab siv dua, thev naus laus zis kev ywj pheej, thiab kev ywj pheej (kev ywj pheej evolution, scalability, thiab deployment).

Service-oriented architecture (SOA = service oriented architecture) daws tag nrho cov teeb meem uas tau txheeb xyuas ntawm lub monolith: tsuas yog ib qho kev pabcuam cuam tshuam thaum muaj kev hloov pauv, thiab API tau txhais tau zoo txhawb nqa zoo ntawm cov khoom siv.

Tab sis tsis yog txhua yam zoo li no: SOA tsim teeb meem tshiab. Kev hu xov tooj los ntawm cov chaw taws teeb yog kim dua li cov neeg hauv zos, thiab kev faib cov luag haujlwm ntawm cov khoom tau dhau los ua tus nqi kim dua.

Los ntawm txoj kev, qhov muaj peev xwm ntawm kev xa tawm ywj pheej yog qhov tseem ceeb ntawm kev pabcuam. Yog tias cov kev pabcuam yuav tsum tau muab xa mus ua ke lossis, ntxiv rau, nyob rau hauv ib ntu, ces lub kaw lus tsis tuaj yeem suav tias yog kev pabcuam. Nyob rau hauv cov ntaub ntawv no, lawv tham txog ib tug faib monolith (xws li ib tug anti-pattern tsis tsuas yog los ntawm qhov pom ntawm SOA, tab sis kuj los ntawm qhov pom ntawm microservice architecture).

Kev pabcuam-oriented architecture tau txais kev txhawb nqa zoo los ntawm cov neeg tsim vaj tsev thiab cov neeg muag khoom. Qhov no txhais tau hais tias muaj ntau yam kev kawm thiab cov ntawv pov thawj, cov qauv tsim tau zoo. Cov tom kawg suav nrog, piv txwv li, lub tsheb npav ua lag luam uas paub zoo (ESB = lub tsheb npav ua lag luam). Nyob rau tib lub sijhawm, ESB yog lub hnab ntim khoom los ntawm cov neeg muag khoom; nws tsis tas yuav tsum tau siv hauv SOA.

Qhov nrov ntawm kev pabcuam-taw qhia txog kev tsim qauv tau nce mus txog xyoo 2008, tom qab ntawd nws pib poob qis, uas tau dhau los ua qhov ua tau zoo dua tom qab qhov tshwm sim ntawm microservices (~ 2015).

xaus

Tom qab peb tau tham txog qhov muaj peev xwm ntawm kev teeb tsa cov ntaub ntawv nyob rau hauv daim ntawv ntawm cov kev pabcuam thiab cov qauv, kuv xav kom thaum kawg txav mus rau cov qauv ntawm microservice architecture thiab ua tib zoo saib xyuas qhov sib txawv ntawm microservice architecture thiab kev pabcuam-oriented architecture hauv ntu tom ntej.

Kev xaiv ntawm architectural style (Part 2)

Tau qhov twg los: www.hab.com

Ntxiv ib saib