Mwachitsanzo, nditenga kusungirako mafayilo amtambo, ndiko kuti, analogue ya OwnCloud, OneDrive, ndi zina zotero.
Chithunzi chokhazikika cha dera lotereli chili pansipa, koma chimangowonetsa zovuta za dongosololi. Kupatula apo, tiyenera mwanjira ina synchronize misonkhano. Kodi chimachitika ndi chiyani ngati wogwiritsa ntchito asunga fayilo pa piritsi ndiyeno akufuna kuti awone kuchokera pafoni?
Kusiyanitsa pakati pa njirazi: pakukweza kowongoka, ndife okonzeka kuwonjezera mphamvu ya node, ndipo muzitsulo zopingasa, ndife okonzeka kuwonjezera ma node atsopano kuti tigawire katunduyo.
Mtengo wa CQRS
Kugawikana kwa Udindo wa Command Query Njira yofunika kwambiri, chifukwa imalola makasitomala osiyanasiyana kuti asamangolumikizana ndi mautumiki osiyanasiyana, komanso kuti alandire zochitika zomwezo. Zopindulitsa zake sizowoneka bwino pakugwiritsa ntchito kosavuta, koma ndizofunikira kwambiri (komanso zosavuta) pa ntchito yotanganidwa. Zofunikira zake: mayendedwe obwera ndi otuluka asamadutse. Ndiko kuti, simungatumize pempho ndikuyembekezera kuyankha; m'malo mwake, mumatumiza pempho ku service A, koma kulandira yankho kuchokera ku service B.
Mu Chochitika Chochitika, chochitika chilichonse chimakhala ndi chizindikiritso chake (chabwino, chosachepera). Izi zikutanthauza kuti titha kuwonjezera gawo posungira - id ya chinthu chomaliza chomwe chakonzedwa.
Timabwereza mzerewu kuti zochitika zonse zitha kukonzedwa pazosungira zingapo zodziyimira pawokha (yoyamba ndi yomwe deta idasungidwa kale, ndipo yachiwiri ndi yatsopano, koma yopanda kanthu). Mzere wachiwiri, ndithudi, sunakonzedwe panobe.
Monga mukuonera, tinalibe, ndipo tiribe, kusasinthasintha kokhazikika mu dongosolo lathu. Pali kukhazikika kokhazikika, ndiko kuti, chitsimikizo chakuti zochitika zimakonzedwa mwanjira yomweyo (koma mwina ndi kuchedwa kosiyana). Ndipo, pogwiritsa ntchito izi, titha kusamutsa deta mosavuta popanda kuyimitsa makinawo kupita mbali ina ya dziko lapansi.
Chifukwa chake, kupitiliza chitsanzo chathu chosungira mafayilo pa intaneti, zomanga zotere zimatipatsa kale mabonasi angapo:
Titha kusuntha zinthu pafupi ndi ogwiritsa ntchito mwanjira yamphamvu. Mwanjira iyi mutha kukweza mautumiki.
Tikhoza kusunga zina m'makampani. Mwachitsanzo, ogwiritsa ntchito Enterprise nthawi zambiri amafuna kuti deta yawo isungidwe m'malo otetezedwa (kupewa kutayikira kwa data). Kupyolera mu kugawa titha kuthandizira izi mosavuta. Ndipo ntchitoyi ndi yosavuta ngati kasitomala ali ndi mtambo wogwirizana (mwachitsanzo, Azure self host).
Ndipo chofunikira kwambiri ndikuti sitiyenera kuchita izi. Kupatula apo, poyambira, tingakhale okondwa kwambiri ndi chosungira chimodzi cha maakaunti onse (kuti tiyambe kugwira ntchito mwachangu). Ndipo chofunika kwambiri cha dongosololi ndi chakuti ngakhale kuti ndi yowonjezera, pa gawo loyamba ndi losavuta. Simufunikanso kulemba nambala yomwe imagwira ntchito ndi mizere yodziyimira payokha miliyoni, ndi zina. Ngati ndi kotheka, izi zikhoza kuchitika m'tsogolomu.
Static Content Hosting
Mfundo iyi ikhoza kuwoneka ngati yodziwikiratu, koma ndiyofunikirabe kuti pakhale pulogalamu yodzaza kwambiri. Chofunikira chake ndi chosavuta: zonse zomwe zili zokhazikika zimagawidwa osati kuchokera ku seva yomweyo komwe ntchitoyo ili, koma kuchokera kwapadera odzipereka ku ntchitoyi. Zotsatira zake, izi zimachitika mwachangu (zoyenera nginx zimatumizira mafayilo mwachangu komanso motsika mtengo kuposa seva ya Java). + Zomangamanga za CDN (Chiyanjano Chothandizira) imatilola kuti tipeze mafayilo athu pafupi ndi ogwiritsa ntchito, zomwe zimakhala ndi zotsatira zabwino pakugwira ntchito ndi ntchitoyi.
Chitsanzo chosavuta komanso chodziwika bwino chazomwe zili zokhazikika ndi zolemba ndi zithunzi za tsamba. Chilichonse chiri chophweka ndi iwo - amadziwika pasadakhale, ndiye zosungirako zimayikidwa ku ma seva a CDN, kuchokera kumene amagawidwa kwa ogwiritsa ntchito mapeto.
Komabe, zenizeni, pazokhazikika, mutha kugwiritsa ntchito njira yofananira ndi kamangidwe ka lambda. Tiyeni tibwerere ku ntchito yathu (kusungira mafayilo pa intaneti), momwe tiyenera kugawira mafayilo kwa ogwiritsa ntchito. Njira yosavuta ndiyo kupanga ntchito yomwe, pa pempho lililonse la wogwiritsa ntchito, imayang'ana zofunikira zonse (chilolezo, ndi zina zotero), ndikutsitsa fayilo mwachindunji kuchokera kusungirako kwathu. Choyipa chachikulu cha njirayi ndikuti zinthu zokhazikika (ndi fayilo yokhala ndi kusinthidwa kwina, kwenikweni, zokhazikika) zimagawidwa ndi seva yomweyo yomwe ili ndi malingaliro abizinesi. M'malo mwake, mutha kupanga chithunzi chotsatirachi:
Seva imapereka ulalo wotsitsa. Itha kukhala ya fomu file_id + kiyi, pomwe kiyi ndi siginecha yaying'ono ya digito yomwe imapereka ufulu wopeza gwero kwa maola 24 otsatira.
Fayilo imagawidwa ndi nginx yosavuta ndi izi:
Content caching. Popeza ntchitoyi imatha kupezeka pa seva yosiyana, tadzisiyira tokha nkhokwe yamtsogolo ndikutha kusunga mafayilo onse aposachedwa kwambiri pa disk.
Kuyang'ana kiyi pa nthawi yopanga kugwirizana
Mwachidziwitso: kukhamukira zokhutira. Mwachitsanzo, ngati tikakamiza mafayilo onse muutumiki, ndiye kuti titha kumasula molunjika mugawoli. Zotsatira zake: Opaleshoni za IO zimachitika pomwe zikuyenera. Wosunga zakale ku Java atha kugawa zokumbukira zambiri, koma kulemberanso ntchito yokhala ndi malingaliro abizinesi mu Rust/C ++ zikhalidwe sikungakhale kothandiza. Kwa ife, njira zosiyanasiyana (kapena ntchito) zimagwiritsidwa ntchito, chifukwa chake titha kulekanitsa malingaliro abizinesi ndi magwiridwe antchito a IO.
Njira zonsezi zidadziwika kale. VK yomweyo yakhala ikugwiritsa ntchito lingaliro la Static Content Hosting kuwonetsa zithunzi. Masewera ambiri a pa intaneti amagwiritsa ntchito Sharding scheme kugawa osewera m'magawo kapena kusiyanitsa malo amasewera (ngati dziko lokha ndi limodzi). Njira Yopezera Zochitika imagwiritsidwa ntchito mwachangu mu imelo. Ntchito zambiri zamalonda zomwe zimalandiridwa nthawi zonse zimamangidwa pa njira ya CQRS kuti athe kusefa zomwe zalandilidwa. Chabwino, kukweza kopingasa kwagwiritsidwa ntchito m'mautumiki ambiri kwa nthawi yayitali.
Komabe, chofunika kwambiri, machitidwe onsewa akhala osavuta kugwiritsa ntchito masiku ano (ngati ali oyenera, ndithudi). Mitambo imapereka Sharding ndi makulitsidwe opingasa nthawi yomweyo, zomwe ndizosavuta kuposa kuyitanitsa ma seva odzipatulira osiyanasiyana m'malo osiyanasiyana a data nokha. CQRS yakhala yophweka kwambiri, pokhapokha chifukwa cha chitukuko cha malaibulale monga RX. Pafupifupi zaka 10 zapitazo, tsamba losowa limatha kuthandizira izi. Event Sourcing ndiyosavuta kwambiri kukhazikitsa chifukwa cha zotengera zopangidwa kale ndi Apache Kafka. Zaka 10 zapitazo izi zikadakhala zatsopano, tsopano ndizofala. N'chimodzimodzinso ndi Static Content Hosting: chifukwa cha matekinoloje osavuta (kuphatikizapo mfundo yakuti pali zolemba zambiri komanso mndandanda waukulu wa mayankho), njirayi yakhala yosavuta.
Zotsatira zake, kukhazikitsidwa kwa njira zingapo zomangira zovuta tsopano kwakhala kosavuta, zomwe zikutanthauza kuti ndi bwino kuziyang'anira pasadakhale. Ngati mu ntchito ya zaka khumi imodzi mwa njira zomwe zili pamwambazi zidasiyidwa chifukwa cha kukwera mtengo kwa kukhazikitsa ndi kugwiritsira ntchito, tsopano, mu ntchito yatsopano, kapena pambuyo pokonzanso, mukhoza kupanga ntchito yomwe idzakhala yowonjezereka ( malinga ndi magwiridwe antchito) ndikukonzekera zopempha zatsopano kuchokera kwa makasitomala (mwachitsanzo, kuyika zambiri zaumwini).
Ndipo chofunika kwambiri: chonde musagwiritse ntchito njirazi ngati muli ndi pulogalamu yosavuta. Inde, iwo ndi okongola komanso osangalatsa, koma kwa malo omwe ali ndi maulendo apamwamba a anthu 100, nthawi zambiri mumatha kudutsa ndi monolith yachikale (osachepera kunja, chirichonse mkati chikhoza kugawidwa mu ma modules, etc.).