Yakanaka maitiro ekuvaka

Hei Habr!

Tichifunga nezvezviitiko zvazvino nekuda kwekoronavirus, akati wandei masevhisi eInternet atanga kuwana akawedzera mutoro. Semuyenzaniso, Imwe yeUK retail cheni yakangomisa yayo yepamhepo yekuodha saiti., nokuti pakanga pasina kukwana kwakakwana. Uye hazvigoneke nguva dzose kumhanyisa sevha nekungowedzera zvimwe zvine simba zvishandiso, asi zvikumbiro zvevatengi zvinofanirwa kugadziriswa (kana ivo vanoenda kune vanokwikwidza).

Muchikamu chino ini ndichataura muchidimbu nezvemaitiro akakurumbira ayo achakubvumidza iwe kugadzira inokurumidza uye inoshivirira sevhisi. Nekudaro, kubva muzvirongwa zvinogoneka zvebudiriro, ini ndakasarudza chete izvo zviri parizvino nyore kushandisa. Kune chimwe nechimwe chinhu, iwe unogona kunge uine akagadzirira-akagadzirwa maraibhurari, kana iwe une mukana wekugadzirisa dambudziko uchishandisa gore chikuva.

Horizontal scaling

Iyo iri nyore uye inonyanya kuzivikanwa pfungwa. Sezvineiwo, iwo akajairika maviri mitoro yekugovera zvirongwa ndeye yakachinjika uye yakatwasuka kuyera. Muchiitiko chekutanga iwe unobvumira masevhisi kuti afambe achienderana, nekudaro achigovera mutoro pakati pavo. Muchipiri iwe unoodha maseva ane simba kana kukwidziridza kodhi.

Semuenzaniso, ini ndichatora abstract Cloud faira kuchengetedza, kureva, imwe analogue yeOwnCloud, OneDrive, zvichingodaro.

Mufananidzo wakajairwa wedunhu rakadaro uri pazasi, asi unongoratidza kuoma kwehurongwa. Mushure mezvose, isu tinoda neimwe nzira kuwiriranisa masevhisi. Chii chinoitika kana mushandisi akachengeta faira kubva pahwendefa uye wozoda kuiona kubva pafoni?

Yakanaka maitiro ekuvaka
Musiyano uripo pakati pematanho: mu vertical scaling, isu takagadzirira kuwedzera simba remanodhi, uye muhorizontal scaling, takagadzirira kuwedzera node nyowani kugovera mutoro.

CQRS

Command Query Responsibility Segregation Iyo nzira yakakosha, sezvo ichibvumira vatengi vakasiyana kwete chete kubatana kune akasiyana masevhisi, asi zvakare kugamuchira imwechete chiitiko hova. Mabhenefiti ayo haana kujeka kune yakapusa application, asi yakakosha zvakanyanya (uye yakapusa) yebasa rakabatikana. Izvo zvakakosha: inopinda uye inobuda data inoyerera haifanirwe kupindirana. Kureva kuti, haugone kutumira chikumbiro uye kutarisira mhinduro; pachinzvimbo, unotumira chikumbiro kushumiro A, asi gamuchira mhinduro kubva kune sevhisi B.

Bhonasi yekutanga yeiyi nzira kugona kutyora chinongedzo (mupfungwa yakakura yezwi) paunenge uchiita chikumbiro chakareba. Semuyenzaniso, ngatitorei mamwe kana mashoma mwero kutevedzana:

  1. Mutengi akatumira chikumbiro kune server.
  2. Sevha yakatanga nguva yakareba yekugadzirisa.
  3. Sevha yakapindura mutengi nemugumisiro.

Ngatimbofungidzira kuti muchikamu che2 kubatana kwakaputsika (kana network yakabatanidzwa zvakare, kana mushandisi akaenda kune imwe peji, achityora kubatana). Muchiitiko ichi, zvichave zvakaoma kuti sevha itumire mhinduro kumushandisi neruzivo rwekuti chii chaizvo chakaitwa. Uchishandisa CQRS, kutevedzana kuchave kwakasiyana zvishoma:

  1. Mutengi akanyoresa kuti agadzirise.
  2. Mutengi akatumira chikumbiro kune server.
  3. Sevha yakapindura "chikumbiro chagamuchirwa."
  4. Sevha yakapindura nemhedzisiro kuburikidza nechiteshi kubva pane "1".

Yakanaka maitiro ekuvaka

Sezvauri kuona, chirongwa chacho chakanyanya kuoma. Uyezve, iyo intuitive yekukumbira-mhinduro nzira inoshaikwa pano. Nekudaro, sezvauri kuona, kutyora kwekubatanidza paunenge uchigadzira chikumbiro hakuzotungamira mukukanganisa. Uyezve, kana mushandisi akabatana nebasa kubva kune akati wandei maturusi (semuenzaniso, kubva parunhare mbozha uye kubva pahwendefa), unogona kuve nechokwadi chekuti mhinduro inouya kune ese maturusi.

Sezvineiwo, iyo kodhi yekugadzirisa mameseji anouya inova yakafanana (kwete 100%) zvese zvezviitiko zvakafurirwa nemutengi pachayo, uye kune zvimwe zviitiko, kusanganisira izvo kubva kune vamwe vatengi.

Nekudaro, muchokwadi tinowana imwe bhonasi nekuda kwekuti unidirectional kuyerera kunogona kubatwa mune inoshanda maitiro (uchishandisa RX uye yakafanana). Uye izvi zvatova zvakakomba kuwedzera, sezvo muchidimbu application yacho inogona kuitwa yakanyatso shanda, uye zvakare kushandisa inoshanda maitiro. Kune mapurogiramu emafuta, izvi zvinogona kuchengetedza zvakanyanya kusimudzira uye kutsigira zviwanikwa.

Kana tikabatanidza nzira iyi nekuyera kwakatwasuka, saka sebhonasi tinowana kugona kutumira zvikumbiro kune imwe sevha uye kugamuchira mhinduro kubva kune imwe. Saka, mutengi anogona kusarudza sevhisi yakamunakira, uye system mukati ichiri kukwanisa kugadzirisa zviitiko nemazvo.

Chiitiko Sourcing

Sezvaunoziva, chimwe chezvinhu zvikuru zvegadziriro yakagoverwa ndiko kusavapo kwekamwe nguva, chikamu chakajairika chakakosha. Kune imwe nzira, iwe unogona kuita kuwiriranisa (pane imwecheteyo mutexes), mukati maune chokwadi chekuti hapana mumwe munhu ari kuita iyi kodhi. Nekudaro, izvi zvine njodzi kune yakagovaniswa sisitimu, sezvo ichizoda pamusoro, uye ichaurayawo kunaka kwese kwekuyera - zvese zvikamu zvicharamba zvakamirira imwe.

Kubva pano tinowana chokwadi chakakosha - kukurumidza kugoverwa sisitimu haigone kuwiriraniswa, nekuti ipapo isu tichaderedza kuita. Kune rumwe rutivi, isu tinowanzoda kumwe kuwirirana pakati pezvikamu. Uye nokuda kweizvi unogona kushandisa nzira nayo pakupedzisira kuenderana, uko kunovimbiswa kuti kana pasina kuchinja kwemashoko kweimwe nguva yenguva mushure mekugadzirisa kwekupedzisira ("pakupedzisira"), mibvunzo yose ichadzorera iyo yekupedzisira yakagadziridzwa kukosha.

Izvo zvakakosha kuti unzwisise kuti kune yekare dhatabhesi inowanzoshandiswa kusimba kwakasimba, apo node imwe neimwe ine ruzivo rwakafanana (izvi zvinowanzowanikwa munyaya iyo kutengeserana kunofungidzirwa kusimbiswa chete mushure mokunge sevha yechipiri yapindura). Kune kumwe kuzorora pano nekuda kwemazinga ekuzviparadzanisa nevamwe, asi pfungwa yakajairika inoramba yakafanana - unogona kurarama munyika yakanyatsoenderana.

Zvisinei, ngatidzokerei kubasa rekutanga. Kana chikamu chegadziriro chinogona kuvakwa ne pakupedzisira kuenderana, ipapo tinogona kugadzira dhayagiramu inotevera.

Yakanaka maitiro ekuvaka

Zvinhu zvakakosha zveiyi nzira:

  • Chikumbiro chega chega chinouya chinoiswa mumutsara mumwe.
  • Paunenge uchigadzirisa chikumbiro, sevhisi inogona zvakare kuisa mabasa mune mamwe mitsetse.
  • Chiitiko chega chega chinouya chine chiziviso (chinodiwa pakubvisa).
  • Mutsara unoshanda zvinoenderana ne "append chete" chirongwa. Iwe haugone kubvisa zvinhu kubva mairi kana kuzvironga patsva.
  • Mutsara unoshanda zvinoenderana neFIFO chirongwa (ndine hurombo netautology). Kana iwe uchida kuita parallel execution, saka pane imwe nhanho iwe unofanirwa kufambisa zvinhu kune akasiyana mitsara.

Rega ndikuyeuchidze kuti tiri kufunga nezvenyaya yekuchengetedza faira yepamhepo. Muchiitiko ichi, iyo system ichaita seizvi:

Yakanaka maitiro ekuvaka

Izvo zvakakosha kuti masevhisi ari mudhayagiramu haareve hazvo sevha yakaparadzana. Kunyange maitiro angave akafanana. Chimwe chinhu chakakosha: ideologically, zvinhu izvi zvakapatsanurwa nenzira yekuti horizontal scaling inogona kuiswa nyore.

Uye kune vashandisi vaviri dhizaini ichaita seizvi (masevhisi akagadzirirwa vashandisi vakasiyana anoratidzwa nemavara akasiyana):

Yakanaka maitiro ekuvaka

Mabhonasi kubva musanganiswa wakadaro:

  • Masevhisi ekugadzirisa ruzivo akaparadzaniswa. Mitsetse yakapatsanurwawo. Kana isu tichida kuwedzera system throughput, saka isu tinongoda kuvhura mamwe masevhisi pane mamwe maseva.
  • Kana isu tikagamuchira ruzivo kubva kumushandisi, isu hatifanirwe kumirira kusvika iyo data yachengetwa zvachose. Pane kudaro, isu tinongoda kupindura "ok" uye zvishoma nezvishoma tanga kushanda. Panguva imwecheteyo, mutsara unotsvedzerera kunze kwepamusoro, sezvo kuwedzera chinhu chitsva kuchiitika nekukurumidza, uye mushandisi haafanire kumirira kuti ipfuure yakakwana kuburikidza nekutenderera kwese.
  • Semuenzaniso, ndakawedzera sevhisi yekubvisa iyo inoedza kubatanidza mafaera akafanana. Kana ikashanda kwenguva yakareba mu1% yezviitiko, mutengi haazozvioni (ona pamusoro), iyo yakakura pamwe chete, sezvo isu tisisadiwi kuti tive XNUMX% kukurumidza uye kuvimbika.

Nekudaro, izvo zvisingabatsiri zvinoonekwa nekukurumidza:

  • Sisitimu yedu yakarasa kusimba kwayo. Izvi zvinoreva kuti kana, semuenzaniso, iwe uchinyorera kune akasiyana masevhisi, saka ne theoretically unogona kuwana imwe nyika (sezvo imwe yemasevhisi ingave isina nguva yekugamuchira chiziviso kubva kumutsara wemukati). Sezvimwe mhedzisiro, sisitimu yacho haina nguva yakafanana. Ndiko kuti, hazvibviri, semuenzaniso, kuronga zviitiko zvese nekungosvika nguva, sezvo wachi pakati pemaseva dzingasave synchronous (uyezve, panguva imwe chete pamaseva maviri ndeye utopia).
  • Hapana zviitiko zvino zvinogona kungodzoserwa kumashure (sezvaigona kuitwa nedatabase). Pane kudaro, iwe unofanirwa kuwedzera chiitiko chitsva - chiitiko chemuripo, iyo ichashandura mamiriro ekupedzisira kune anodiwa. Semuenzaniso kubva kunzvimbo yakafanana: pasina kunyorazve nhoroondo (iyo yakaipa mune dzimwe nguva), haugone kudzoreredza kuzvipira mu git, asi unogona kuita yakakosha. rollback commit, izvo chaizvoizvo zvinongodzorera chimiro chekare. Nekudaro, zvese zvisizvo kuzvipira uye kudzosera kumashure zvicharamba zviri munhoroondo.
  • Iyo data schema inogona kuchinja kubva pakusunungurwa kuenda kusunungurwa, asi zviitiko zvekare hazvichakwanisi kuvandudzwa kune chiyero chitsva (sezvo zviitiko zvisingakwanisi kuchinjwa musimboti).

Sezvauri kuona, Chiitiko Sourcing inoshanda nemazvo neCQRS. Zvakare, kuita hurongwa hune hunoshanda uye hunoenderana mitsara, asi pasina kupatsanura kuyerera kwedata, kwatove kwakaoma pachayo, nekuti iwe uchafanirwa kuwedzera mapoinzi ekuwiriranisa anozokanganisa iyo yese yakanaka mhedzisiro yemitsara. Kushandisa nzira mbiri kamwechete, zvakakosha kugadzirisa zvishoma purogiramu yepurogiramu. Muchiitiko chedu, pakutumira faira kune sevha, mhinduro inouya chete "ok", izvo zvinongoreva kuti "kushanda kwekuwedzera faira kwakachengetwa." Zvekare, izvi hazvireve kuti iyo data yatovepo pane mamwe maturusi (semuenzaniso, iyo deduplication sevhisi inogona kuvakazve index). Nekudaro, mushure menguva yakati, mutengi anogashira chiziviso muchimiro che "faira X rachengetwa."

Semagumo:

  • Huwandu hwemafaira ekutumira mastatus huri kuwedzera: pachinzvimbo che "faira yakatumirwa," tinowana maviri: "faira rakawedzerwa pamutsetse pane sevha" uye "faira rakachengetedzwa mukuchengetedza." Iyo yekupedzisira inoreva kuti mamwe maturusi anogona kutotanga kugamuchira iyo faira (yakagadziriswa nekuda kwekuti mitsetse inoshanda nekumhanya kwakasiyana).
  • Nekuda kwekuti ruzivo rwekutumira ikozvino rwunouya nenzira dzakasiyana, isu tinofanirwa kuuya nemhinduro kuti tigamuchire mamiriro ekugadzirisa faira. Nekuda kweizvi: kusiyana neyekare yekukumbira-mhinduro, mutengi anogona kutangwa patsva paanenge achigadzira iyo faira, asi chimiro cheichi kugadzirisa pachacho chichave chaicho. Uyezve, chinhu ichi chinoshanda, kunyanya, kunze kwebhokisi. Semhedzisiro: isu tave kunyanya kushivirira pakukundikana.

sharding

Sezvatsanangurwa pamusoro apa, masisitimu ekutsvagisa zviitiko haana kunyatsoenderana. Izvi zvinoreva kuti tinogona kushandisa akati wandei ekuchengetedza pasina kuwiriranisa pakati pawo. Kusvika padambudziko redu, tinogona:

  • Kuparadzanisa mafaira nemhando. Semuyenzaniso, mapikicha/mavhidhiyo anogona kuchekwa uye mamwe maitiro anoshanda anogona kusarudzwa.
  • Kupatsanura maakaundi nenyika. Nekuda kwemitemo yakawanda, izvi zvinogona kudikanwa, asi chirongwa chekuvaka ichi chinopa mukana wakadaro otomatiki

Yakanaka maitiro ekuvaka

Kana iwe uchida kuendesa data kubva kune imwe chengetedzo kuenda kune imwe, saka nzira dzakajairika hadzichakwane. Nehurombo, mune iyi kesi, iwe unofanirwa kumisa mutsara, ita kutama, uye wobva watanga. Muzhinji, data haigone kutamiswa "pane nhunzi", zvisinei, kana mutsara wechiitiko wakachengetwa zvachose, uye uine mapikicha enzvimbo dzakapfuura dzekuchengetera, saka tinogona kudzokorora zviitiko nenzira inotevera:

  • MuChiitiko Source, chiitiko chega chega chine chiziviso chayo (chaizvo, chisingadzike). Izvi zvinoreva kuti isu tinogona kuwedzera munda kune yekuchengetedza - id yechinhu chekupedzisira chakagadziriswa.
  • Isu tinodzokorora mutsara kuitira kuti zviitiko zvese zvigadziriswe kune akati wandei akazvimirira ekuchengetedza (yekutanga ndiyo inochengeterwa data, uye yechipiri inyowani, asi isina chinhu). Mutsara wechipiri, hongu, hausati wagadziriswa.
  • Isu tinotangisa mutsara wechipiri (ndiko kuti, tinotanga kudzokorora zviitiko).
  • Kana iyo mutsara mutsva usina chinhu (ndiko kuti, avhareji yenguva musiyano pakati pekuwedzera chinhu uye kuchidzosa chinogamuchirwa), unogona kutanga kushandura vaverengi kune nyowani yekuchengetedza.

Sezvauri kuona, isu takanga tisina, uye tichiri tisina, kunyatsoenderana muhurongwa hwedu. Iko kunongozopedzisira kuenderana, ndiko kuti, vimbiso yekuti zviitiko zvinogadziriswa nenzira imwechete (asi pamwe nekunonoka kwakasiyana). Uye, tichishandisa izvi, tinogona kuendesa data nyore nyore pasina kumisa sisitimu kune rimwe divi repasi.

Nekudaro, kuenderera nemuenzaniso wedu nezve online kuchengetedza mafaera, chivakwa chakadaro chinototipa akati wandei mabhonasi:

  • Tinogona kufambisa zvinhu pedyo nevashandisi nenzira ine simba. Nenzira iyi unogona kuvandudza kunaka kwebasa.
  • Tinogona kuchengeta imwe data mukati memakambani. Semuenzaniso, vashandisi veBhizinesi vanowanzoda kuti data ravo richengetwe munzvimbo dzinodzorwa data (kudzivisa kudonha kwedata). Kuburikidza ne sharding tinogona kutsigira izvi zviri nyore. Uye basa racho rakatonyanya nyore kana mutengi aine gore rinoenderana (semuenzaniso, Azure self host).
  • Uye chinonyanya kukosha ndechekuti isu hatifanirwe kuita izvi. Mushure mezvose, kutanga, tingave tichifara nekuchengetedza kumwe chete kwemaakaundi ese (kutanga kushanda nekukurumidza). Uye chinhu chakakosha cheiyi sisitimu ndechekuti kunyangwe ichiwedzerwa, padanho rekutanga iri nyore. Haufanire kungonyora kodhi iyo inoshanda nemiriyoni yakaparadzana yakazvimirira mitsara, nezvimwe. Kana zvichidiwa, izvi zvinogona kuitwa mune ramangwana.

Static Content Hosting

Iyi poindi inogona kuita seyakajeka, asi ichiri kudikanwa kune yakawanda kana yakaderera yakajairwa application. Hunhu hwayo hwakareruka: zvese static zvemukati zvakagovaniswa kwete kubva kune imwechete server uko application iripo, asi kubva kune yakakosha yakatsaurirwa kune iri basa. Nekuda kweizvozvo, mashandiro aya anoitwa nekukurumidza (conditional nginx inoshandisa mafaera nekukurumidza uye isingadhure kupfuura server yeJava). Plus CDN architecture (Zvekutanga Dhirivhari Network) inotibvumira kuti tiwane mafaira edu pedyo nevashandisi vekupedzisira, iyo ine simba rakanaka pane nyore kwekushanda nebasa.

Iyo yakapfava uye yakanyanya mwero muenzaniso weiyo static content seti yezvinyorwa uye mifananidzo yewebhusaiti. Zvese zviri nyore navo - vanozivikanwa pachine nguva, ipapo archive inoiswa kumaseva eCDN, kubva kwaanogoverwa kune vashandisi vekupedzisira.

Nekudaro, muchokwadi, kune static zvemukati, unogona kushandisa nzira yakada kufanana nelambda architecture. Ngatidzokere kubasa redu (online faira kuchengetedza), umo tinoda kugovera mafaira kune vashandisi. Mhinduro yakapusa ndeyekuita sevhisi iyo, kune yega yega mushandisi chikumbiro, inoita zvese zvinodiwa cheki (mvumo, nezvimwewo), uye wozorodha iyo faira zvakananga kubva mudura redu. Chinhu chikuru chakashata cheiyi nzira ndechekuti static content (uye faira ine kumwe kudzokororwa, chokwadi, static content) inogoverwa neiyo imwechete server ine iyo bhizinesi logic. Pane kudaro, unogona kugadzira dhayagiramu inotevera:

  • Sevha inopa URL yekurodha. Inogona kunge iri yefomu file_id + kiyi, uko kiyi iri mini-digital siginecha inopa kodzero yekuwana sosi kwemaawa makumi maviri nemana anotevera.
  • Iyo faira inogoverwa ne nyore nginx ine zvinotevera sarudzo:
    • Content caching. Sezvo sevhisi iyi inogona kuwanikwa pane imwe sevha yakaparadzana, isu takazvisiira chengetedzo yeramangwana nekugona kuchengetedza ese achangoburwa mafaera pa diski.
    • Kutarisa kiyi panguva yekugadzira yekubatanidza
  • Sarudzo: kutenderera zvemukati kugadzirisa. Semuenzaniso, kana tikamanikidza mafaera ese ari musevhisi, saka tinogona kuita unzipping zvakananga mune ino module. Semhedzisiro: IO mashandiro anoitwa kwaanofanira. Anochengeta muJava anogovera zviri nyore yakawanda yekuwedzera ndangariro, asi kunyorazve sevhisi ine bhizinesi logic muRust / C ++ zvimiso zvinogonawo kusashanda. Kwatiri, maitiro akasiyana (kana kunyangwe masevhisi) anoshandiswa, uye nekudaro tinogona kunyatso kupatsanura bhizinesi logic uye IO mashandiro.

Yakanaka maitiro ekuvaka

Ichi chirongwa hachina kunyanya kufanana nekugovera static zvemukati (sezvo isu tisiri kurodha iyo yese static package pane imwe nzvimbo), asi muchokwadi, nzira iyi ine chekuita nekugovera data risingachinjike. Uyezve, chirongwa ichi chinogona kuve chakajairwa kune dzimwe nyaya uko zvirimo zvisiri kungomira, asi zvinogona kumiririrwa seti isingachinjiki uye isingadzime zvidhinha (kunyangwe zvichigona kuwedzerwa).

Semumwe muenzaniso (wekusimbisa): kana wakashanda neJenkins/TeamCity, saka unoziva kuti mhinduro dzese dzakanyorwa muJava. Ose ari maviri maitiro eJava anobata zvese kuvaka orchestration uye manejimendi emukati. Kunyanya, ivo vese vane mabasa akaita se "kutamisa faira / folda kubva kuseva." Semuenzaniso: kuburitsa zvigadzirwa, kuendesa sosi kodhi (apo mumiriri asingatore kodhi zvakananga kubva kune repository, asi sevha inomuitira iye), kuwana matanda. Mabasa ese aya anosiyana mumutoro wavo weIO. Ndokunge, zvinozoitika kuti sevha ine chekuita neakaomesesa bhizinesi logic inofanira panguva imwe chete kukwanisa kusunda zvakakura kuyerera kwedata kuburikidza pachayo. Uye chinonyanya kufadza ndechekuti oparesheni yakadai inogona kupihwa kune imwechete nginx zvinoenderana nechirongwa chakafanana (kunze kwekuti kiyi yedata inofanira kuwedzerwa kuchikumbiro).

Zvisinei, kana tikadzokera kuhurongwa hwedu, tinowana mufananidzo wakafanana:

Yakanaka maitiro ekuvaka

Sezvauri kuona, iyo system yave yakaoma zvakanyanya. Ikozvino haingori mini-maitiro anochengeta mafaera munharaunda. Zvino izvo zvinodikanwa hazvisi nyore rutsigiro, API vhezheni kutonga, nezvimwe. Naizvozvo, mushure mekunge madhayagiramu ese adhirowewa, zviri nani kuongorora zvakadzama kana kuwedzera kwakakodzera mutengo. Nekudaro, kana iwe uchida kukwanisa kuwedzera sisitimu (kusanganisira kushanda nenhamba yakatokura yevashandisi), saka iwe uchafanirwa kuenda kune dzakafanana mhinduro. Asi, semhedzisiro, iyo sisitimu yakagadzirira kugadzirira kuwedzera mutoro (chinenge chikamu chose chinogona kugadzirwa kuti chiwedzere kuyera). Iyo sisitimu inogona kuvandudzwa pasina kuimisa (kungodaro mamwe mashandiro anozodzikiswa zvishoma).

Sezvandakataura pakutanga, ikozvino huwandu hwemasevhisi eInternet atanga kugamuchira wakawedzera mutoro. Uye vamwe vavo vakangotanga kurega kushanda zvakanaka. Muchokwadi, masisitimu akakundikana chaizvo panguva iyo bhizinesi raifanirwa kuita mari. Ndokunge, panzvimbo yekumisikidzwa kuendesa, panzvimbo yekupa zano kune vatengi "ronga kuendesa kwako kwemwedzi iri kuuya," sisitimu yacho yakangoti "enda kune vakwikwidzi vako." Muchokwadi, uyu ndiwo mutengo wekuderera kwechigadzirwa: kurasikirwa kuchaitika chaizvo kana purofiti ingave yakanyanya.

mhedziso

Nzira dzose idzi dzaizivikanwa kare. Iyo VK imwechete yagara ichishandisa iyo pfungwa yeStatic Content Hosting kuratidza mifananidzo. Mitambo yakawanda yepamhepo inoshandisa Sharding scheme kupatsanura vatambi mumatunhu kana kupatsanura nzvimbo dzemitambo (kana nyika pachayo iri imwe). Chiitiko Sourcing nzira inoshandiswa zvakanyanya mune email. Zvizhinji zvekutengesa zvikumbiro uko data rinogara richigamuchirwa rinovakwa panzira yeCQRS kuitira kuti ikwanise kusefa iyo data yakagamuchirwa. Zvakanaka, kuyera kuyera kwakashandiswa mumasevhisi mazhinji kwenguva yakareba.

Nekudaro, zvinonyanya kukosha, ese aya mapatani ave nyore kwazvo kushandisa mumashandisirwo emazuva ano (kana akakodzera, hongu). Makore anopa Sharding uye yakatwasuka kuyera ipapo, zviri nyore pane kuodha akasiyana akazvitsaurira maseva munzvimbo dzakasiyana dzedata iwe pachako. CQRS yave nyore, kana nekuda kwekuvandudzwa kwemaraibhurari akadai seRX. Anenge makore gumi apfuura, webhusaiti isingawanzo inogona kutsigira izvi. Chiitiko Sourcing zvakare zvakareruka zvinoshamisa kumisikidza kutenda kune akagadzirira-akagadzirwa midziyo neApache Kafka. 10 makore apfuura izvi zvingadai zvakave zvitsva, zvino zvakajairika. Zvakangofanana neStatic Content Hosting: nekuda kwehunyanzvi hwekuita tekinoroji (kusanganisira chokwadi chekuti pane zvinyorwa zvakadzama uye dhatabhesi hombe remhinduro), nzira iyi yatove nyore.

Nekuda kweizvozvo, kuisirwa kwezviverengeka zvakaomesesa zvekuvaka mapatani ikozvino kwave nyore, izvo zvinoreva kuti zviri nani kutarisisa pazviri pamberi. Kana muchikumbiro chemakore gumi ekare imwe yemhinduro dziri pamusoro yakasiiwa nekuda kwemutengo wakakura wekuita uye kushanda, ikozvino, mune nyowani application, kana mushure mekugadzirisa, unogona kugadzira sevhisi inenge yatove yekuvakisa zvese zviri kuwedzera ( maererano nekuita) uye yakagadzirira-yakagadzirirwa kune zvitsva zvikumbiro kubva kune vatengi (somuenzaniso, kugadzirisa data yega).

Uye zvinonyanya kukosha: ndapota usashandise nzira idzi kana uine application iri nyore. Ehe, iwo akanaka uye anonakidza, asi kune saiti ine peak kushanya kwevanhu 100, iwe unogona kazhinji kuwana neiyo classic monolith (kunyanya kunze, zvese zviri mukati zvinogona kukamurwa kuita modules, nezvimwewo).

Source: www.habr.com

Voeg