I-Software Architecture kanye Nedizayini Yezinhlelo: Isithombe Esikhulu Nomhlahlandlela Wensiza

Sanibonani bozakwethu.

Namuhla sinikeza ukuze ucabangele ukuhunyushwa kwe-athikili ka-Tugberk Ugurlu, othembise ukuveza ngevolumu encane izimiso zokuklama izinhlelo zesofthiwe zesimanje. Nakhu okushiwo umbhali ngaye ngamafuphi:

I-Software Architecture kanye Nedizayini Yezinhlelo: Isithombe Esikhulu Nomhlahlandlela Wensiza
Njengoba kungenakwenzeka neze ukumboza esihlokweni se-habro isihloko esikhulu kangaka njengamaphethini ezakhiwo + amaphethini wokuklama kusukela ngo-2019, asincomi kuphela umbhalo kaMnu Uruglu uqobo, kodwa futhi nezixhumanisi eziningi azifake ngomusa kuwo. Uma uthanda, sizoshicilela umbhalo okhethekile kakhulu mayelana nokuklanywa kwamasistimu asabalalisiwe.

I-Software Architecture kanye Nedizayini Yezinhlelo: Isithombe Esikhulu Nomhlahlandlela Wensiza

Isifinyezo Isaac Smith kusuka ku-Unsplash

Uma ungakaze ubhekane nezinselele ezifana nokuklama isistimu yesofthiwe kusukela ekuqaleni, khona-ke lapho uqala umsebenzi onjalo, ngezinye izikhathi akucaci ukuthi ungaqala kuphi. Ngikholwa ukuthi udinga kuqala ukudweba imingcele ukuze ube nombono oqinisekayo wokuthi uzoklama ini, bese ugoqa imikhono yakho bese usebenza kuleyo mingcele. Njengesiqalo, ungathatha umkhiqizo noma isevisi (okungcono kakhulu oyithanda ngempela) futhi uthole ukuthi ungayisebenzisa kanjani. Ungase umangale ukuthi lo mkhiqizo ubukeka ulula kangakanani, nokuthi uqukethe inkimbinkimbi engakanani. Ungakhohlwa: elula - ngokuvamile eyinkimbinkimbi, futhi kulungile.

Ngicabanga ukuthi iseluleko esihle kakhulu engingasinikeza noma ubani oqala ukuklama uhlelo yilesi: ungacabangi! Kusukela ekuqaleni, udinga ukucacisa amaqiniso aziwayo mayelana nalolu hlelo kanye nokulindelwe okuhambisana nalo. Nayi eminye imibuzo emihle ongayibuza ukukusiza ukuthi uqalise ngomklamo wakho:

  • Iyiphi inkinga esizama ukuyixazulula?
  • Ithini inani eliphakeme labasebenzisi abazosebenzisana nesistimu yethu?
  • Imaphi amaphethini okubhala nokufunda idatha esizowasebenzisa?
  • Yimaphi amacala okwehluleka alindelekile, sizowaphatha kanjani?
  • Yiziphi okulindelekile zokungaguquguquki kwesistimu nokutholakala?
  • Ingabe kufanele ucabangele noma yiziphi izidingo ezihlobene nokuqinisekiswa kwangaphandle kanye nesimiso lapho usebenza?
  • Yiziphi izinhlobo zedatha ebucayi esizozigcina?

Lena imibuzo embalwa nje ebe wusizo kimina nasemaqenjini engibambe iqhaza kuwo phakathi neminyaka yomsebenzi wobungcweti. Uma uzazi izimpendulo zale mibuzo (nanoma yimiphi eminye ehambisana nomxholo okufanele usebenze kuwo), ungangena kancane kancane ngemininingwane yobuchwepheshe yenkinga.

Setha izinga lokuqala

Ngiqonde ukuthini ngokuthi β€œisisekelo” lapha? Eqinisweni, ezikhathini zethu, izinkinga eziningi embonini yesoftware "zingaxazululwa" kusetshenziswa izindlela ezikhona kanye nobuchwepheshe. Ngokufanelekile, ngokuzulazula kule ndawo, uthola isiqalo esithile lapho ubhekene nezinkinga omunye umuntu obekumele azixazulule ngaphambi kwakho. Ungakhohlwa ukuthi izinhlelo zibhalelwe ukuxazulula izinkinga zebhizinisi nezabasebenzisi, ngakho-ke silwela ukuxazulula inkinga ngendlela eqondile nelula (ngokombono womsebenzisi). Kungani kubalulekile ukukhumbula lokhu? Mhlawumbe ohlelweni lwakho lokuxhumanisa uthanda ukubheka izixazululo eziyingqayizivele zazo zonke izinkinga, ngoba ucabanga ukuthi, "uhlobo luni lomhleli wezinhlelo uma ngilandela amaphethini yonke indawo"? Empeleni, ubuciko lapha benza izinqumo mayelana nokuthi kufanele wenzeni futhi wenzeni. Yiqiniso, ngamunye wethu kufanele abhekane nezinkinga eziyingqayizivele ngezikhathi ezithile, ngayinye yazo eyinselele yangempela. Kodwa-ke, uma izinga lethu lokuqala lichazwe ngokucacile, khona-ke siyazi ukuthi yini okufanele sisebenzise amandla ethu kukho: ukucinga izinketho esezilungile zokuxazulula inkinga ebekwe phambi kwethu, noma ukuqhubeka nokufunda futhi sithole ukuqonda okujulile.

Ngicabanga ukuthi ngikwazile ukukuqinisekisa ukuthi uma uchwepheshe eqonda ngokuzethemba ukuthi iyini ingxenye yezakhiwo zezinhlelo ze-software ezimangalisayo, lolu lwazi luzodingeka kakhulu ukuze uthole ubuciko bomakhi wezakhiwo kanye nokuthuthukisa isisekelo esiqinile kulo mkhakha.

Kulungile, ungaqala kuphi? U UDonna Martina Kukhona indawo yokugcina ku-GitHub ebizwa uhlelo-design-primer, lapho ungafunda khona ukuklama izinhlelo ezinkulu, kanye nokulungiselela izingxoxo ngalesi sihloko. Inqolobane inesigaba esinezibonelo izakhiwo zangempela, lapho, ikakhulukazi, kubhekwa indlela ababhekana ngayo nokuklama kwezinhlelo zabo ezinye izinkampani ezaziwayoisib. Twitter, Uber, njll.

Kodwa-ke, ngaphambi kokudlulela kule nto, ake sibhekisise izinselelo ezibaluleke kakhulu zezakhiwo esibhekana nazo ekusebenzeni. Lokhu kubalulekile ngoba kufanele ucacise izici EZININGI zenkinga enenkani nenezici eziningi, bese uyixazulula ngaphakathi kohlaka lwemithethonqubo esebenzayo ohlelweni olunikeziwe. UJackson Gabbard, owayeyisisebenzi sikaFacebook, wabhala Ividiyo yemizuzu engu-50 mayelana nezingxoxo zokuklama amasistimu, lapho alandisa khona ngokuhlangenwe nakho kwakhe kokuhlunga amakhulu abantu ababefake izicelo. Nakuba ividiyo igxila kakhulu ekwakhiweni kwesistimu enkulu kanye nenqubo yempumelelo ebalulekile lapho ufuna umuntu ozongenela isikhundla esinjalo, isazoqhubeka nokusebenza njengesisetshenziswa esibanzi sokuthi iziphi izinto ezibaluleke kakhulu lapho uklama amasistimu. Ngiphinde ngiphakamise isifinyezo le vidiyo.

Yakha ulwazi mayelana nokugcina kanye nokubuyisa idatha

Ngokuvamile, isinqumo sakho mayelana nendlela oyigcina futhi ubuyise ngayo idatha yakho ngokuhamba kwesikhathi sinomthelela obalulekile ekusebenzeni kwesistimu. Ngakho-ke, kufanele uqale uqonde ukubhala okulindelekile futhi ufunde izici zohlelo lwakho. Khona-ke udinga ukwazi ukuhlola lezi zinkomba futhi wenze ukukhetha ngokusekelwe ekuhloleni okwenziwe. Nokho, ungakwazi ukubhekana ngokuphumelelayo nalo msebenzi kuphela uma uqonda amaphethini akhona okulondoloza idatha. Empeleni, lokhu kusho ulwazi oluqinile oluhlobene ne ukukhethwa kwesizindalwazi.

Imininingo egciniwe ingacatshangwa njengezakhiwo zedatha ezingaka kakhulu futhi ezihlala isikhathi eside. Ngakho-ke, ulwazi lwezakhiwo zedatha kufanele lube usizo kakhulu kuwe lapho ukhetha isizindalwazi esithile. Ngokwesibonelo, Redis iyiseva yesakhiwo sedatha esekela izinhlobo ezahlukene zamanani. Ikuvumela ukuthi usebenze ngezakhiwo zedatha ezifana nezinhlu namasethi, futhi ufunde idatha usebenzisa ama-algorithm aziwa kakhulu, isibonelo, I-LRU, ukuhlela umsebenzi onjalo ngendlela ehlala isikhathi eside futhi efinyeleleka kakhulu.

I-Software Architecture kanye Nedizayini Yezinhlelo: Isithombe Esikhulu Nomhlahlandlela Wensiza

Isifinyezo USamuel Zeller kusuka ku-Unsplash

Uma usunokuqonda okwanele kwamaphethini ahlukahlukene okugcinwa kwedatha, qhubekela ekufundeni ukuvumelana kwedatha nokutholakala. Okokuqala, udinga ukuqonda Incazelo yeCAP okungenani ngokwemibandela evamile, bese upholisha lolu lwazi ngokubhekisisa amaphethini amisiwe ukungaguquguquki ΠΈ ukufinyeleleka. Ngale ndlela, uzothuthukisa ukuqonda inkambu futhi uqonde ukuthi idatha yokufunda nokubhala empeleni iyizinkinga ezimbili ezihluke kakhulu, ngayinye inezinselelo zayo ezihlukile. Uhlome ngokungaguquguquki okumbalwa kanye namaphethini okutholakala, ungakwazi ukwandisa kakhulu ukusebenza kwesistimu kuyilapho uqinisekisa ukugeleza kwedatha okushelelayo ezinhlelweni zakho zokusebenza.

Okokugcina, lapho siphetha ingxoxo mayelana nezindaba zokugcinwa kwedatha, kufanele futhi sikhulume ngokulondoloza isikhashana. Ingabe kufanele isebenze ngesikhathi esisodwa kuklayenti nakuseva? Iyiphi idatha ezoba kunqolobane yakho? Futhi ngani? Ukuhlela kanjani ukungavunyelwa kwenqolobane? Ingabe kuyokwenziwa njalo, ngezikhathi ezithile? Uma kunjalo, kangaki? Ngincoma ukuthi ngiqale ukufunda lezi zihloko nazo isigaba esilandelayo i-primer yokwakheka kwesistimu okukhulunywe ngayo ngenhla.

Amaphethini Okuxhumana

Amasistimu aqukethe izingxenye ezihlukahlukene; lezi kungaba izinqubo ezihlukene ezisebenza endaweni efanayo, noma imishini ehlukene esebenza ezingxenyeni ezihlukene zenethiwekhi yakho. Ezinye zalezi zinsiza ngaphakathi kwenethiwekhi yakho zingase zibe yimfihlo, kodwa ezinye kufanele zibe sesidlangalaleni futhi zivulekele abathengi abazifinyelela ngaphandle.

Kuyadingeka ukuqinisekisa ukuxhumana kwalezi zinsiza komunye nomunye, kanye nokushintshana kolwazi phakathi kwalo lonke uhlelo nomhlaba wangaphandle. Esimeni sokuklanywa kwezinhlelo, lapha futhi sibhekene nesethi yezinselelo ezintsha nezihlukile. Ake sibone ukuthi zingaba usizo kanjani ukugeleza kwe-asynchronous task, futhi yini pIzinhlobonhlobo zamaphethini okuxhumana ayatholakala.

I-Software Architecture kanye Nedizayini Yezinhlelo: Isithombe Esikhulu Nomhlahlandlela Wensiza

Isifinyezo UTony Stoddard kusuka ku-Unsplash

Lapho uhlela ukuxhumana nezwe langaphandle, kuhlale kubaluleke kakhulu ukuphepha, ukuhlinzekwa kwakho nakho okudingeka kuthathwe ngokungathi sΓ­na futhi kuqhutshwe ngenkuthalo.

Ukusatshalaliswa kokuxhumana

Angiqiniseki ukuthi ukubeka lesi sihloko esigabeni esihlukile kuzobonakala kufanelekile kuwo wonke umuntu. Noma kunjalo, ngizokwethula lo mqondo ngokuningiliziwe lapha, futhi ngikholelwa ukuthi izinto ezikulesi sigaba zichazwe ngokunembe kakhulu ngegama elithi "ukusabalalisa kokuxhumana".

Amasistimu akhiwa ngokuxhuma kahle izingxenye eziningi, futhi ukuxhumana kwabo komunye nomunye kuvame ukuhlelwa ngesisekelo sezivumelwano ezimisiwe, isibonelo, i-TCP ne-UDP. Kodwa-ke, lezi zimiso ezinjengalezi ngokuvamile azinele ukuhlangabezana nazo zonke izidingo zezinhlelo zesimanje, ezivame ukusebenza ngaphansi komthwalo omkhulu futhi zincike kakhulu ezidingweni zabasebenzisi. Ngokuvamile kuyadingeka ukuthola izindlela zokusabalalisa ukuxhumana ukuze ubhekane nemithwalo ephezulu kangaka ohlelweni.

Lokhu kusatshalaliswa kusekelwe kulokho okwaziwayo uhlelo lwegama lesizinda (DNS). Isistimu enjalo ivumela ukuguqulwa kwegama lesizinda njenge-robin eyindilinga enesisindo kanye nezindlela ezisekelwe ekubambezelekeni ukusiza ukusabalalisa umthwalo.

Ukulayisha ukulinganisa kubaluleke kakhulu, futhi cishe zonke izinhlelo ze-inthanethi ezinkulu esibhekana nazo namuhla zingemuva kwesilinganisi somthwalo esisodwa noma ngaphezulu. Izikali zokulayisha zisiza ukusabalalisa izicelo zamaklayenti kuzo zonke izimo ezitholakalayo. Izilinganisi zomthwalo ziza kuzo zombili ihadiwe nesoftware, nokho, ekusebenzeni, kaningi kufanele ubhekane nesoftware, ngokwesibonelo. HAProxy ΠΈ I-ELB. Hlehlisa ama-proxy ngokomqondo futhi kufana kakhulu nezilinganisi zokulayisha, nakuba kukhona ububanzi phakathi kweyokuqala neyesibili umehluko ohlukile. Lo mehluko kufanele unakwe lapho uklama uhlelo olusekelwe ezidingweni zakho.

Kufanele futhi wazi mayelana amanethiwekhi okulethwa kokuqukethwe (CDN). I-CDN inethiwekhi esabalaliswe umhlaba wonke yamaseva elibamba eletha ulwazi olusuka kulawo ma-node atholakala ngokwendawo eduze nomsebenzisi othile. Ama-CDN kungcono ukuwasebenzisa uma usebenza ngamafayela amile abhalwe ku-JavaScript, CSS ne-HTML. Ngaphezu kwalokho, izinsizakalo zamafu ezihlinzeka ngabaphathi bethrafikhi zivamile namuhla, isibonelo, I-Azure Traffic Manager, ikunikeza ukusatshalaliswa komhlaba wonke kanye nokubambezeleka okuncishisiwe lapho usebenza nokuqukethwe okushukumisayo. Kodwa-ke, izinsizakalo ezinjalo zivame ukuba usizo ezimeni lapho kufanele usebenze nezinsizakalo zewebhu ezingenasici.

Ake sikhulume ngengqondo yebhizinisi. Ukuhlela i-logic yebhizinisi, ukuhamba komsebenzi kanye nezingxenye

Ngakho-ke, sikwazile ukuxoxa ngezingqalasizinda ezahlukahlukene zesistimu. Ngokunokwenzeka, umsebenzisi akacabangi ngisho ngazo zonke lezi zici zesistimu yakho futhi, ngokungananazi, akanandaba nazo nhlobo. Umsebenzisi unentshisekelo yokuthi kunjani ukuxhumana nesistimu yakho, yini engafinyelelwa ngokwenza lokhu, nokuthi uhlelo luyifeza kanjani imiyalo yomsebenzisi, ukuthi lwenzani futhi kanjani ngedatha yomsebenzisi.

Njengoba isihloko salesi sihloko siphakamisa, bengizokhuluma ngokwakhiwa kwesoftware kanye nokwakhiwa kwesistimu. Ngakho-ke, angizange ngihlele ukumboza amaphethini wokuklama isofthiwe achaza ukuthi izingxenye zesofthiwe zenziwa kanjani. Kodwa-ke, lapho ngicabanga ngakho kakhulu, kulapho kubonakala kimi nakakhulu ukuthi umugqa phakathi kwamaphethini wokuklama isofthiwe namaphethini ezakhiwo ufiphele kakhulu, futhi le mibono emibili ihlobene eduze. Ake sithathe isibonelo ukubhaliswa komcimbi (ukuthola umcimbi). Uma usuthathe le phethini yezakhiwo, izothinta cishe yonke into yesistimu yakho: ukugcinwa kwedatha yesikhathi eside, izinga lokungaguquguquki okutholwe kusistimu yakho, ukuma kwezingxenye ezikuyo, njll., njll. Ngakho-ke, nginqume ukusho amaphethini ezakhiwo ahlobene ngokuqondile nengqondo yebhizinisi. Ngisho noma lesi sihloko kuzodingeka sizikhawulele ohlwini olulula, ngikukhuthaza ukuba ujwayelane nalo futhi ucabange ngemibono ehambisana nalawa maphethini. Nakhu ke:

Izindlela zokusebenzisana

Akulindelekile kakhulu ukuthi uzithole ukuphrojekthi njengomhlanganyeli okunguye yedwa onesibopho senqubo yokuklama isistimu. Ngokuphambene nalokho, cishe uzodinga ukuxhumana nozakwenu abasebenza ngaphakathi nangaphandle komsebenzi wakho. Kulokhu, kungase kudingeke uhlole izixazululo zobuchwepheshe ezikhethiwe nozakwenu, uhlonze izidingo zebhizinisi futhi uqonde indlela engcono kakhulu yokufanisa imisebenzi.

I-Software Architecture kanye Nedizayini Yezinhlelo: Isithombe Esikhulu Nomhlahlandlela Wensiza

Isifinyezo I-Kaleidico kusuka ku-Unsplash

Isinyathelo sokuqala siwukuthuthukisa ukuqonda okunembile nokwabiwe kokuthi uyini umgomo webhizinisi ozama ukuwufinyelela nokuthi yiziphi izingxenye ezinyakazayo ozobhekana nazo. Izindlela zokumodela zeqembu, ikakhulukazi izehlakalo zesiphepho (ukuvunguza komcimbi) ukusiza ukusheshisa kakhulu le nqubo futhi ukwandise amathuba akho okuphumelela. Lo msebenzi ungenziwa ngaphambi noma ngemva kohlaka lwakho imingcele yamasevisi akho, bese uwujulisa njengoba umkhiqizo uvuthwa. Ngokusekelwe ezingeni lokungaguquguquki elizozuzwa lapha, ungaphinda wenze ulimi olujwayelekile ngomongo olinganiselwe osebenza kuwo. Uma udinga ukukhuluma ngesakhiwo sesistimu yakho, ungase ukuthole kuwusizo imodeli C4, kuhlongozwa USimon Brown, ikakhulukazi lapho udinga ukuqonda ukuthi kungakanani okuzodingeka ungene emininingwaneni yenkinga, ubuke ngeso lengqondo izinto ofuna ukuzikhuluma.

Kungenzeka ukuthi kunobunye ubuchwepheshe obuvuthiwe kulesi sihloko obungenalo usizo oluncane kune-Domain Driven Design. Nokho, ngandlela-thile sibuyela ekuqondeni indawo yesifundo, ngakho ulwazi nolwazi ensimini I-Domain-Driven Design kufanele kube usizo kuwe.

Source: www.habr.com

Engeza amazwana