Kapangidwe ka Mapulogalamu ndi Kapangidwe Kachitidwe: Chithunzi Chachikulu ndi Maupangiri Othandizira

Moni anzanu.

Lero tikukupatsirani kuti muganizirepo zomasulira nkhani ya Tugberk Ugurlu, yemwe adayesetsa kufotokoza mwachidule mfundo zopangira mapulogalamu amakono. Nazi zomwe wolemba akunena mwachidule za iye mwini:

Kapangidwe ka Mapulogalamu ndi Kapangidwe Kachitidwe: Chithunzi Chachikulu ndi Maupangiri Othandizira
Popeza ndizosatheka kufotokoza m'nkhani ya habro mutu waukulu kwambiri ngati mapangidwe a zomangamanga + mapangidwe a 2019, timalimbikitsa osati zolemba za Bambo Uruglu zokha, komanso maulalo ambiri omwe adawaphatikizamo. Ngati mukufuna, tidzasindikiza malemba apadera kwambiri okhudza mapangidwe a machitidwe ogawidwa.

Kapangidwe ka Mapulogalamu ndi Kapangidwe Kachitidwe: Chithunzi Chachikulu ndi Maupangiri Othandizira

Chithunzithunzi Isaac Smith kuchokera ku Unsplash

Ngati simunakumanepo ndi zovuta zotere monga kupanga pulogalamu yamapulogalamu kuyambira pachiyambi, ndiye mukayamba ntchito yotereyi, nthawi zina sizidziwika bwino komwe mungayambire. Ndikukhulupirira kuti choyamba muyenera kujambula malire kuti mukhale ndi lingaliro lochulukirapo kapena lochepa la zomwe mukufuna kupanga, ndiyeno pindani manja anu ndikugwira ntchito mkati mwa malirewo. Monga poyambira, mutha kutenga chinthu kapena ntchito (yomwe mumakonda kwambiri) ndikuwona momwe mungachitire. Mutha kudabwa ndi momwe mankhwalawa amawonekera mosavuta, komanso kuchuluka kwake komwe kuli nawo. Osayiwala: zosavuta - kawirikawiri zovuta, ndipo zili bwino.

Ndikuganiza kuti upangiri wabwino kwambiri womwe ndingapereke kwa aliyense amene wayamba kupanga dongosolo ndi awa: musaganize! Kuyambira pachiyambi, muyenera kufotokoza mfundo zomwe zimadziwika za dongosolo lino ndi ziyembekezo zomwe zikugwirizana nazo. Nawa mafunso abwino omwe mungafunse kuti akuthandizeni kuti muyambe kupanga mapangidwe anu:

  • Kodi ndi vuto liti lomwe tikuyesera kuthetsa?
  • Kodi chiwerengero chapamwamba cha ogwiritsa ntchito chomwe chidzalumikizana ndi dongosolo lathu ndi chiyani?
  • Tidzagwiritsa ntchito njira zotani zolembera ndi kuwerenga?
  • Ndi milandu yanji yomwe ikuyembekezeka kulephera, tithana nayo bwanji?
  • Kodi ziyembekezo zotani pa kusasinthika kwadongosolo ndi kupezeka?
  • Kodi mukuyenera kuganizira zofunikira zilizonse zokhudzana ndi kutsimikizira kwakunja ndi malamulo mukamagwira ntchito?
  • Ndi mitundu yanji ya data yomwe tidzasunga?

Awa ndi mafunso ochepa chabe omwe akhala othandiza kwa ine komanso magulu omwe ndakhala ndikuchita nawo zaka zambiri zaukadaulo. Ngati mukudziwa mayankho a mafunsowa (ndi ena aliwonse omwe ali ogwirizana ndi zomwe muyenera kugwirira ntchito), ndiye kuti mutha kuyang'ana pang'onopang'ono zaukadaulo wavutoli.

Khazikitsani mulingo woyamba

Ndikutanthauza chiyani ndikunena kuti "zoyambira" apa? Kwenikweni, m'masiku athu ano, mavuto ambiri pamakampani opanga mapulogalamu "amatha" kuthetsedwa pogwiritsa ntchito njira zomwe zilipo kale. Chifukwa chake, poyang'ana malowa, mumapeza chiyambi pomwe mukukumana ndi zovuta zomwe wina adayenera kuthana nazo musanakumane. Musaiwale kuti mapulogalamu amalembedwa kuti athetse mavuto a bizinesi ndi ogwiritsa ntchito, choncho timayesetsa kuthetsa vutoli molunjika komanso mophweka (kuchokera kwa wogwiritsa ntchito). N’chifukwa chiyani tiyenera kukumbukira zimenezi? Mwinamwake mu dongosolo lanu logwirizanitsa mumakonda kuyang'ana njira zothetsera mavuto onse, chifukwa mukuganiza kuti, "Ndine wopanga mapulogalamu amtundu wanji ngati nditsatira machitidwe kulikonse"? Pamenepo, luso pano likupanga zisankho zakuti ndi chiyani. Zoonadi, aliyense wa ife amayenera kulimbana ndi mavuto apadera nthaΕ΅i ndi nthaΕ΅i, omwe ali vuto lenileni. Komabe, ngati gawo lathu loyambirira likufotokozedwa momveka bwino, ndiye kuti timadziwa zomwe tingagwiritsire ntchito mphamvu zathu: kufunafuna njira zomwe takonzekera kuti tithetse vuto lomwe lakhazikitsidwa patsogolo pathu, kapena kuliphunzira mozama ndi kumvetsa mozama.

Ndikuganiza kuti ndatha kukutsimikizirani kuti ngati katswiri amvetsetsa molimba mtima zomwe zida zamapulogalamu ena odabwitsa zili, ndiye kuti chidziwitsochi chidzakhala chofunikira kwambiri pakuzindikira luso la mmisiri wa zomangamanga ndikupanga maziko olimba pantchito iyi.

Chabwino, ndiye tiyambire pati? U Donna Martina Pali posungira pa GitHub yotchedwa system-design-primer, komwe mungaphunzire momwe mungapangire machitidwe akuluakulu, komanso kukonzekera zoyankhulana pamutuwu. Malo osungiramo zinthu ali ndi gawo lokhala ndi zitsanzo zomanga zenizeni, kumene, makamaka, amaganiziridwa momwe amayendera mapangidwe a machitidwe awo makampani ena odziwika bwinomwachitsanzo Twitter, Uber, etc.

Komabe, tisanapitirire kuzinthu izi, tiyeni tiwone bwinobwino zovuta za zomangamanga zomwe timakumana nazo pochita. Izi ndizofunikira chifukwa muyenera kufotokoza zambiri zavuto louma komanso lamitundu yambiri, ndiyeno kulithetsa mwadongosolo la malamulo omwe akugwira ntchito mu dongosolo loperekedwa. Jackson Gabbard, wogwira ntchito wakale wa Facebook, analemba Kanema wa mphindi 50 wokhudza zoyankhulana zamakina, pomwe adafotokoza zomwe adakumana nazo poyesa mazana a ofunsira. Ngakhale kuti vidiyoyi imayang'ana kwambiri pa mapangidwe akuluakulu a machitidwe ndi njira zopambana zomwe zili zofunika kwambiri pofufuza munthu woti akhale ndi udindo wotere, idzagwirabe ntchito monga chidziwitso cha zinthu zomwe zili zofunika kwambiri popanga machitidwe. Ndikupangiranso mwachidule vidiyo iyi.

Pangani chidziwitso chokhudza kusunga ndi kupeza deta

Nthawi zambiri, lingaliro lanu la momwe mumasungira ndikubweza deta yanu pakanthawi yayitali zimakhudza kwambiri magwiridwe antchito. Chifukwa chake, muyenera kumvetsetsa kaye zolemba zomwe zikuyembekezeredwa ndikuwerenga mawonekedwe adongosolo lanu. Ndiye muyenera kukhala okhoza kuyesa zizindikiro izi ndikupanga zisankho molingana ndi zowunika zomwe zapangidwa. Komabe, mutha kuchita bwino ndi ntchitoyi pokhapokha mutamvetsetsa njira zomwe zilipo kale zosungira. Kwenikweni, izi zikutanthauza chidziwitso cholimba chokhudzana ndi kusankha kwa database.

Ma Databases amatha kuganiziridwa ngati ma data omwe ndi okhazikika komanso okhazikika. Choncho, chidziwitso cha mapangidwe a deta chiyenera kukhala chothandiza kwambiri kwa inu posankha nkhokwe inayake. Mwachitsanzo, Redis ndi seva yopangira data yomwe imathandizira mitundu yosiyanasiyana yamakhalidwe. Zimakuthandizani kuti mugwire ntchito ndi ma data monga mindandanda ndi ma seti, ndikuwerenga ma data pogwiritsa ntchito ma aligorivimu odziwika bwino, mwachitsanzo, LRU, kukonza ntchito yotereyi mokhazikika komanso yopezeka kwambiri.

Kapangidwe ka Mapulogalamu ndi Kapangidwe Kachitidwe: Chithunzi Chachikulu ndi Maupangiri Othandizira

Chithunzithunzi Samuel Zeller kuchokera ku Unsplash

Mukakhala ndi chidziwitso chokwanira cha njira zosiyanasiyana zosungira deta, pitirizani kuphunzira kusasinthasintha kwa deta ndi kupezeka. Choyamba, muyenera kumvetsetsa Chithunzi cha CAP osachepera m'mawu ambiri, ndiyeno pukuta chidziwitso ichi poyang'anitsitsa machitidwe okhazikika kusasinthasintha ΠΈ kupezeka. Mwanjira iyi, mumvetsetsa bwino za gawoli ndikumvetsetsa kuti kuwerenga ndi kulemba ndizovuta ziwiri zosiyana, iliyonse ili ndi zovuta zake. Pokhala ndi kusinthasintha pang'ono komanso kupezeka, mutha kuwonjezera magwiridwe antchito ndikuwonetsetsa kuti deta yanu ikuyenda bwino pamapulogalamu anu.

Pomaliza, pomaliza kukambirana za nkhani zosunga deta, tiyeneranso kutchula caching. Kodi iyenera kuthamanga nthawi imodzi pa kasitomala ndi seva? Ndi data yanji yomwe idzakhale mu cache yanu? Ndipo chifukwa chiyani? Kodi mumakonza bwanji kusavomerezeka kwa cache? Kodi zizichitika pafupipafupi, pakanthawi zina? Ngati inde, kangati? Ndikupangira kuyamba kuphunzira nawo mitu iyi gawo lotsatira zomwe tazitchulazo za kamangidwe kadongosolo.

Njira Zolumikizirana

Machitidwe amapangidwa ndi zigawo zosiyanasiyana; Izi zitha kukhala njira zosiyanasiyana zomwe zikuyenda mkati mwa node yofanana, kapena makina osiyanasiyana omwe akuyenda pamagawo osiyanasiyana a netiweki yanu. Zina mwazinthuzi zomwe zili mkati mwamaneti yanu zitha kukhala zachinsinsi, koma zina ziyenera kukhala zapagulu komanso zotseguka kwa ogula kuti azipeza kuchokera kunja.

Ndikofunikira kuwonetsetsa kulumikizana kwazinthu izi wina ndi mzake, komanso kusinthanitsa chidziwitso pakati pa dongosolo lonse ndi dziko lakunja. Pankhani ya mapangidwe a machitidwe, apanso tikukumana ndi zovuta zatsopano komanso zapadera. Tiyeni tione mmene angakhalire othandiza asynchronous ntchito ikuyenda, ndi pNjira zosiyanasiyana zoyankhulirana zilipo.

Kapangidwe ka Mapulogalamu ndi Kapangidwe Kachitidwe: Chithunzi Chachikulu ndi Maupangiri Othandizira

Chithunzithunzi Tony Stoddard kuchokera ku Unsplash

Pokonzekera kulankhulana ndi dziko lakunja, nthawi zonse ndizofunikira kwambiri chitetezo, zomwe zimafunikanso kuchitidwa mozama ndi kutsata mwakhama.

Kugawa kwa kulumikizana

Sindikutsimikiza kuti kuyika mutuwu m'gawo lina kudzawoneka ngati koyenera kwa aliyense. Komabe, ndipereka lingaliro ili mwatsatanetsatane apa, ndipo ndikukhulupirira kuti zomwe zili m'gawoli zikufotokozedwa molondola ndi mawu akuti "kugawa kulumikizana".

Machitidwe amapangidwa mwa kugwirizanitsa bwino zigawo zambiri, ndipo kuyankhulana kwawo nthawi zambiri kumakonzedwa motsatira ndondomeko zokhazikitsidwa, mwachitsanzo, TCP ndi UDP. Komabe, ma protocol amenewa nthawi zambiri amakhala osakwanira kukwaniritsa zofunikira zonse zamakono, zomwe nthawi zambiri zimagwiritsidwa ntchito pansi pa katundu wambiri komanso zimadalira kwambiri zosowa za ogwiritsa ntchito. Nthawi zambiri zimakhala zofunikira kupeza njira zogawira maulumikizidwe kuti athe kuthana ndi zolemetsa zoterezi pamakina.

Kugawa kumeneku kumachokera pa odziwika bwino domain name system (DNS). Dongosolo loterolo limalola masinthidwe a mayina a domain monga zolemetsa zozungulira robin ndi njira zopangira latency kuti zithandizire kugawa katunduyo.

Katundu kusanja ndizofunikira kwambiri, ndipo pafupifupi makina onse akuluakulu apaintaneti omwe timagwira nawo masiku ano amakhala kumbuyo kwa chowongolera chimodzi kapena zingapo. Ma balancers amathandizira kugawa zopempha zamakasitomala pazopezeka zingapo. Zowongolera katundu zimabwera mu ma hardware ndi mapulogalamu, komabe, pochita, nthawi zambiri mumayenera kuthana ndi mapulogalamu, mwachitsanzo. Hapo ΠΈ ELB. Reverse proxies Conceptually komanso ofanana kwambiri ndi katundu balancers, ngakhale pali osiyanasiyana pakati woyamba ndi wachiwiri zosiyana zosiyana. Kusiyana kumeneku kuyenera kuganiziridwa popanga dongosolo malinga ndi zosowa zanu.

Muyeneranso kudziwa za maukonde operekera zinthu (CDN). CDN ndi netiweki yogawidwa padziko lonse lapansi ya ma seva oyimira omwe amapereka zidziwitso kuchokera ku ma node omwe ali pafupi ndi wogwiritsa ntchito. Ma CDN ndi abwino kugwiritsa ntchito ngati mumagwira ntchito ndi mafayilo osasunthika olembedwa mu JavaScript, CSS ndi HTML. Kuphatikiza apo, ntchito zamtambo zomwe zimapereka oyang'anira magalimoto ndizofala masiku ano, mwachitsanzo, Azure Traffic Manager, kukupatsani kugawa kwapadziko lonse ndikuchepetsa latency mukamagwira ntchito ndi zinthu zamphamvu. Komabe, mautumikiwa nthawi zambiri amakhala othandiza ngati mukuyenera kugwira ntchito ndi mawebusayiti opanda malire.

Tiye tikambirane zamalingaliro abizinesi. Kupanga malingaliro abizinesi, kuyenda kwa ntchito ndi zigawo

Choncho, tinakwanitsa kukambirana mbali zosiyanasiyana za dongosolo. Mwinamwake, wogwiritsa ntchito saganiziranso zazinthu zonsezi za dongosolo lanu ndipo, moona, samasamala za izo nkomwe. Wogwiritsa ntchito ali ndi chidwi ndi momwe zimakhalira kuyanjana ndi dongosolo lanu, zomwe zingatheke pochita izi, komanso momwe dongosololi limachitira malamulo a ogwiritsa ntchito, momwe likuchitira ndi deta ya ogwiritsa ntchito.

Monga mutu wa nkhaniyi ukusonyezera, ndimati ndilankhule za kamangidwe ka mapulogalamu ndi kamangidwe kadongosolo. Chifukwa chake, sindinakonzekere kubisa mawonekedwe a mapulogalamu omwe amafotokoza momwe zida zamapulogalamu zimapangidwira. Komabe, ndikamaganizira kwambiri za izi, zimandiwonekeranso kuti mzere pakati pa mapangidwe a mapulogalamu ndi machitidwe omanga ndi osowa kwambiri, ndipo mfundo ziwirizi zimagwirizana kwambiri. Tiyeni titenge mwachitsanzo kulembetsa zochitika (kufufuza zochitika). Mukangotengera kapangidwe kamangidwe kameneka, kadzakhudza pafupifupi gawo lililonse la dongosolo lanu: kusungidwa kwanthawi yayitali, kuchuluka kwa kusasinthika komwe kumatengera mudongosolo lanu, mawonekedwe a zigawo zake, ndi zina zambiri. Chifukwa chake, ndidaganiza zotchulanso machitidwe ena omanga omwe amagwirizana mwachindunji ndi malingaliro abizinesi. Ngakhale kuti nkhaniyi iyenera kudzichepetsera pamndandanda wosavuta, ndikukulimbikitsani kuti muidziwe bwino ndikuganizira malingaliro okhudzana ndi machitidwewa. Nazi:

Njira zogwirira ntchito

Ndizokayikitsa kwambiri kuti mudzapezeka kuti muli pa projekiti monga otenga nawo mbali omwe ali ndi udindo wokonza dongosolo. M'malo mwake, mudzayenera kuyanjana ndi anzanu ogwira nawo ntchito mkati ndi kunja kwa ntchito yanu. Pankhaniyi, mungafunike kuwunika mayankho aukadaulo omwe mwasankhidwa ndi anzanu, kuzindikira zosowa zamabizinesi ndikumvetsetsa momwe mungagwirizanitsire ntchito.

Kapangidwe ka Mapulogalamu ndi Kapangidwe Kachitidwe: Chithunzi Chachikulu ndi Maupangiri Othandizira

Chithunzithunzi Kaleidico kuchokera ku Unsplash

Gawo loyamba ndikukulitsa kumvetsetsa kolondola komanso kogawana komwe cholinga chabizinesi chomwe mukuyesera kukwaniritsa ndi zomwe zikuyenda zomwe muyenera kuthana nazo. Njira zowonetsera magulu, makamaka zochitika zamkuntho (kuwononga zochitika) kumathandizira kufulumizitsa njirayi ndikuwonjezera mwayi wanu wopambana. Ntchitoyi ikhoza kuchitika musanayambe kapena mutatha kufotokozera malire a ntchito zanu, ndiyeno kuzama pamene mankhwalawo akukula. Kutengera kuchuluka kwa kusasinthika komwe kudzakwaniritsidwe apa, mutha kupanganso chinenero chofala chifukwa cha zochepa zomwe mumagwira ntchito. Mukafuna kulankhula za kamangidwe ka dongosolo lanu, mukhoza kupeza zothandiza Chithunzi cha C4, zoperekedwa Simon Brown, makamaka pamene mufunikira kumvetsetsa kuchuluka kwa mmene mudzafunikira kuloΕ΅a m’tsatanetsatane wa vutolo, kuwona m’maganizo mwanu zinthu zimene mukufuna kulankhula.

Mwina pali ukadaulo wina wokhwima pamutuwu womwe ulibe phindu kuposa Domain Driven Design. Komabe, mwanjira ina timabwereranso pakumvetsetsa gawo la phunzirolo, kotero chidziwitso ndi chidziwitso m'munda Domain-Driven Design ziyenera kukhala zothandiza kwa inu.

Source: www.habr.com

Kuwonjezera ndemanga