Kusarudza chimiro chekuvaka (chikamu 1)

Mhoro, habr. Kunyoreswa kwekosi nyowani kwavhurwa izvozvi paOTUS "Software Architect". Manheru ekutanga kwekosi, ndinoda kugovana newe chinyorwa changu chepakutanga.

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.

A bit of history

Kana iwe ukaedza kubvunza vanogadzira: "Sei tichida microservices?", Iwe uchawana mhinduro dzakasiyana. Iwe uchanzwa kuti microservices inovandudza scalability, ita kuti kodhi ive nyore kunzwisisa, kuvandudza kukanganisa kushivirira, uye dzimwe nguva unonzwa kuti vanokubvumidza iwe "kuchenesa kodhi yako." Ngatitarisei nhoroondo kuti tinzwisise chinangwa chiri shure kwekubuda kwema microservices.

Muchidimbu, ma microservices mukunzwisisa kwedu kwazvino akasimuka seizvi: muna 2011, James Lewis, achiongorora basa remakambani akasiyana-siyana, akakwevera pfungwa pakubuda kweiyo nyowani "micro-app" pateni, iyo yakagadzirisa SOA maererano nekukasira kutumirwa kwe. masevhisi. Imwe nguva gare gare, muna 2012, pamusangano wezvivakwa, iyo pateni yakanzizve microservice. Nekudaro, chinangwa chekutanga chekuunza microservices yaive yekuvandudza iyo inozivikanwa nguva yekutengesa.

Microservices yaive pane hype wave muna 2015. Zvinoenderana nezvimwe zvidzidzo, hapana kana musangano mumwe chete wakapera pasina shumo pamusoro weiyo microservices. Uyezve, mamwe misangano yakatsaurirwa chete kune microservices. Mazuva ano, mapurojekiti mazhinji anotanga kushandisa iyi dhizaini yekuvaka, uye kana purojekiti iine matani enhaka kodhi, saka kutamira kune mamicroservices pamwe kuri kuitwa nesimba.

Pasinei nezvose zviri pamusoro, nhamba shoma yevagadziri vanogona kuramba vachitsanangura pfungwa ye "microservice". Asi tichazotaura nezvazvo gare gare ...

Monolith

Chimiro chekuvaka chinosiyanisa microservices ndiyo monolith (kana yese-mu-imwe). Zvichida hazvina musoro kutaura kuti monolith chii, saka ini ndichabva ndanyora zvipingamupinyi zveiyi dhizaini yekuvaka, iyo yakatanga kuvandudzwa kwemaitiro ekuvaka: saizi, yekubatanidza, kutumirwa, scalability, kuvimbika uye kusimba. Pazasi ini ndinokurudzira kuti nditarise pane chimwe nechimwe chezvikanganiso zvakasiyana.

zera

Iyo monolith yakakura kwazvo. Uye kazhinji inotaurirana nedatabase yakakura kwazvo. Chishandiso chinova chakakurisa kuti mugadziri anzwisise zvachose. Vaya chete vakapedza nguva yakawanda vachishanda pane iyi code vanogona kushanda zvakanaka ne monolith, apo vanotanga vachapedza nguva yakawanda vachiedza kuona monolith uye hapana chivimbo chokuti vachazvinzwisisa. Kazhinji, kana uchishanda ne monolith, pane nguva dzose kune "mamiriro" mukuru anoziva monolith zvakanyanya kana zvishoma uye anorova maoko evamwe vagadziri vatsva mukati megore nehafu. Nomuzvarirwo, akadaro ane mamiriro epamusoro inzvimbo imwe yekutadza, uye kuenda kwake kunogona kutungamirira kurufu rwemonolith.

Kubatana

Iyo monolith i "bhora guru rematope", shanduko iyo inogona kutungamirira kumigumisiro isingatarisirwi. Nekuita shanduko munzvimbo imwe, unogona kukuvadza monolith mune imwe (zvakafanana "wakakwenya nzeve yako, *@ wakadonha"). Izvi zvinokonzerwa nekuti zvikamu mu monolith zvine zvakanyanya kuoma uye, zvinonyanya kukosha, hukama husina kujeka.

Kuendeswa

Kuendesa monolith, nekuda kwehukama hwakaoma pakati pezvikamu zvayo, inzira yakareba ine tsika yayo. Muitiro wakadaro kazhinji hauna kuenzaniswa chose chose uye unopfuudzwa β€œnomuromo.”

Kukwanisika

Monolith modules inogona kunge iine zvinopokana zviwanikwa zvinodiwa, zvinoda kuti chibvumirano chiitwe maererano nehardware. Fungidzira kuti une monolith inosanganisira masevhisi A uye B. Sevhisi A iri kudiwa pahukuru hweiyo hard drive, uye sevhisi B iri kuda pa RAM. Muchiitiko ichi, ingave muchina wakaisirwa monolith unofanirwa kutsigira zvinodiwa zveese masevhisi, kana iwe uchafanirwa kudzima nemaoko, kudzima imwe yemasevhisi.

Mumwe muenzaniso (wakawanda wemhando yepamusoro): sevhisi A inonyanya kufarirwa pane sevhisi B, saka unoda kuti pave nesevhisi zana A, uye masevhisi gumi B. Zvekare, sarudzo mbiri: tingave tinoendesa zana akazara-akazara monoliths, kana pane mamwe ipapo. masevhisi B achafanirwa kuvharwa nemaoko.

Kuvimbika

Sezvo masevhisi ese ari pamwe chete, kana monolith ikadonha, masevhisi ese anowira kamwechete. Muchokwadi, izvi zvinogona kunge zvisina kushata, zvirinani hapazove nekutadza kwechikamu mune yakagoverwa system, asi kune rumwe rutivi, nekuda kwebug mukushanda iyo inoshandiswa ne0.001% yevashandisi, unogona kurasikirwa nevashandisi vese. ye system yako.

Inertia

Nekuda kwehukuru hwemonolith, zvakaoma kushandura kune hutsva tekinoroji. Nekuda kweizvozvo, kuchengetedza mukuru iyeye ibasa rakasiyana. Iyo tekinoroji stack yakasarudzwa pakutanga kweprojekiti inogona kuve bhuroka inotadzisa kuvandudzwa kwechigadzirwa.

mhedziso

Nguva inotevera tichazotaura nezvekuti vanhu vakaedza sei kugadzirisa matambudziko aya nekuenda kune zvikamu uye SOA.

Kusarudza chimiro chekuvaka (chikamu 1)

Verenga zvimwe:

Source: www.habr.com

Voeg