Arkitettura tas-Softwer u Disinn tas-Sistemi: L-Istampa l-Kbira u Gwida tar-Riżorsi

Hello kollegi.

Illum noffru għall-konsiderazzjoni tiegħek traduzzjoni ta' artiklu ta' Tugberk Ugurlu, li impenja ruħu li jiddeskrivi f'volum relattivament żgħir il-prinċipji tat-tfassil ta' sistemi moderni tas-softwer. Hawn dak li jgħid l-awtur dwaru nnifsu fil-qosor:

Arkitettura tas-Softwer u Disinn tas-Sistemi: L-Istampa l-Kbira u Gwida tar-Riżorsi
Peress li huwa assolutament impossibbli li jkopri f'artiklu habro suġġett kolossali bħal mudelli arkitettoniċi + mudelli tad-disinn mill-2019, nirrakkomandaw mhux biss it-test tas-Sur Uruglu innifsu, iżda wkoll ir-rabtiet numerużi li ġentilment inkluda fih. Jekk togħġbok, aħna nippubblikaw test aktar speċjalizzat ħafna dwar id-disinn ta 'sistemi distribwiti.

Arkitettura tas-Softwer u Disinn tas-Sistemi: L-Istampa l-Kbira u Gwida tar-Riżorsi

Ritratt Isaac Smith minn Unsplash

Jekk qatt ma kellek tiffaċċja sfidi bħal tfassil ta 'sistema ta' softwer mill-bidu, allura meta tibda xogħol bħal dan, xi drabi lanqas ma jkun ċar minn fejn tibda. Nemmen li l-ewwel trid tfassal il-konfini sabiex ikollok idea bejn wieħed u ieħor kunfidenti ta’ x’se tfassal eżattament, u mbagħad xammar il-kmiem tiegħek u taħdem f’dawk il-konfini. Bħala punt tat-tluq, tista 'tieħu prodott jew servizz (idealment wieħed li tixtieq tassew) u tara kif timplimentah. Tista' tkun mistagħġeb kemm jidher sempliċi dan il-prodott, u kemm fil-fatt fih kumplessità. Tinsiex: sempliċi - ġeneralment kumpless, u dak huwa okay.

Naħseb li l-aħjar parir li nista' nagħti lil kull min jibda jfassal sistema huwa dan: tagħmel ebda suppożizzjoni! Mill-bidu nett, għandek bżonn tispeċifika l-fatti magħrufa dwar din is-sistema u l-aspettattivi assoċjati magħha. Hawn huma xi mistoqsijiet tajbin biex tistaqsi biex jgħinuk tibda bid-disinn tiegħek:

  • X'inhi l-problema li qed nippruvaw insolvu?
  • X'inhu l-ogħla numru ta' utenti li se jinteraġixxu mas-sistema tagħna?
  • X'mudelli ta' kitba u qari tad-data se nużaw?
  • X'inhuma l-każijiet ta' falliment mistennija, kif ser nittrattawhom?
  • X'inhuma l-aspettattivi għall-konsistenza u d-disponibbiltà tas-sistema?
  • Għandek tqis xi rekwiżiti relatati mal-verifika esterna u r-regolamentazzjoni meta taħdem?
  • X'tipi ta' data sensittiva ser naħżnu?

Dawn huma biss ftit mistoqsijiet li kienu utli kemm għalija kif ukoll għat-timijiet li pparteċipajt fihom matul is-snin ta’ attività professjonali. Jekk taf it-tweġibiet għal dawn il-mistoqsijiet (u kwalunkwe oħrajn li huma rilevanti għall-kuntest li fih trid taħdem), allura tista 'tfittex gradwalment fid-dettalji tekniċi tal-problema.

Issettja l-livell inizjali

Xi rrid ngħid bi "linja bażi" hawn? Fil-fatt, fi żminijietna, ħafna mill-problemi fl-industrija tas-softwer "jistgħu" jiġu solvuti bl-użu ta 'metodi u teknoloġiji eżistenti. Għaldaqstant, billi tinnaviga f'dan il-pajsaġġ, ikollok ċertu vantaġġ meta tiffaċċja problemi li xi ħadd ieħor kellu jsolvi qabelek. Tinsiex li l-programmi huma miktuba biex isolvu l-problemi tan-negozju u tal-utent, għalhekk naħdmu biex insolvu l-problema bl-aktar mod sempliċi u sempliċi (mill-perspettiva tal-utent). Għaliex huwa importanti li tiftakar dan? Forsi fis-sistema tal-koordinati tiegħek tixtieq tfittex soluzzjonijiet uniċi għall-problemi kollha, għax taħseb, "x'tip ta' programmatur jien jekk insegwi mudelli kullimkien"? Fil-fatt, l-arti hawnhekk qed tieħu deċiżjonijiet dwar fejn u x'għandek tagħmel. Ovvjament, kull wieħed minna għandu jindirizza problemi uniċi minn żmien għal żmien, li kull waħda minnhom hija sfida reali. Madankollu, jekk il-livell inizjali tagħna huwa definit b'mod ċar, allura nafu fuq xiex se nonfqu l-enerġija tagħna: infittxu għażliet lesti biex insolvu l-problema stabbilita quddiemna, jew nistudjawha aktar u niksbu fehim aktar profond.

Naħseb li stajt nikkonvinċik li jekk speċjalista jifhem b'fiduċja x'inhu l-komponent arkitettoniku ta 'xi sistemi ta' softwer mill-isbaħ, allura dan l-għarfien se jkun indispensabbli biex nikkontrollaw l-arti ta 'perit u tiżviluppa bażi soda f'dan il-qasam.

Okay, allura minn fejn tibda? U Donna Martina Hemm repożitorju fuq GitHub imsejjaħ sistema-disinn-primer, li minnha tista' titgħallem kif tfassal sistemi fuq skala kbira, kif ukoll tipprepara għal intervisti dwar dan is-suġġett. Ir-repożitorju għandu taqsima b'eżempji arkitetturi reali, fejn, b'mod partikolari, jitqies kif javviċinaw id-disinn tas-sistemi tagħhom xi kumpaniji magħrufa seweż. Twitter, Uber, eċċ.

Madankollu, qabel ma ngħaddu għal dan il-materjal, ejja nagħtu ħarsa aktar mill-qrib lejn l-aktar sfidi arkitettoniċi importanti li niffaċċjaw fil-prattika. Dan huwa importanti għaliex trid tispeċifika ĦAFNA aspetti ta' problema iebsa u b'diversi aspetti, u mbagħad issolviha fil-qafas tar-regolamenti fis-seħħ f'sistema partikolari. Jackson Gabbard, eks impjegat ta’ Facebook, kiteb Vidjow ta' 50 minuta dwar intervisti tad-disinn tas-sistemi, fejn huwa qasam l-esperjenza tiegħu stess ta 'screening mijiet ta' applikanti. Filwaqt li l-vidjo jiffoka ħafna fuq id-disinn tas-sistema kbira u l-kriterji ta 'suċċess li huma importanti meta wieħed ifittex kandidat għal pożizzjoni bħal din, xorta se jservi bħala riżors komprensiv dwar liema affarijiet huma l-aktar importanti meta jiġu ddisinjati s-sistemi. Nissuġġerixxi wkoll sommarju dan il-video.

Ibni għarfien dwar il-ħażna u l-irkupru tad-dejta

Tipikament, id-deċiżjoni tiegħek dwar kif taħżen u tirkupra d-dejta tiegħek fit-tul għandha impatt kritiku fuq il-prestazzjoni tas-sistema. Għalhekk, l-ewwel trid tifhem il-karatteristiċi mistennija tal-kitba u l-qari tas-sistema tiegħek. Imbagħad trid tkun kapaċi tevalwa dawn l-indikaturi u tagħmel għażliet ibbażati fuq il-valutazzjonijiet li saru. Madankollu, tista 'tlaħħaq b'mod effettiv ma' dan ix-xogħol biss jekk tifhem mudelli eżistenti ta 'ħażna ta' data. Fil-prinċipju, dan jimplika għarfien solidu relatat mal għażla tad-database.

Id-databases jistgħu jitqiesu bħala strutturi tad-data li huma estremament skalabbli u durabbli. Għalhekk, l-għarfien tal-istrutturi tad-dejta għandu jkun utli ħafna għalik meta tagħżel database partikolari. Pereżempju, Ddistribwit mill- huwa server ta 'struttura tad-dejta li jappoġġja diversi tipi ta' valuri. Jippermettilek taħdem bi strutturi tad-dejta bħal listi u settijiet, u taqra d-dejta bl-użu ta’ algoritmi magħrufa, pereżempju, LRU, jorganizza xogħol bħal dan fi stil durabbli u aċċessibbli ħafna.

Arkitettura tas-Softwer u Disinn tas-Sistemi: L-Istampa l-Kbira u Gwida tar-Riżorsi

Ritratt Samuel Zeller minn Unsplash

Ladarba ikollok fehim biżżejjed tad-diversi mudelli ta 'ħażna tad-dejta, kompli biex tistudja l-konsistenza u d-disponibbiltà tad-dejta. L-ewwelnett, trid tifhem Teorema tal-PAK għallinqas f'termini ġenerali, u mbagħad illustra dan l-għarfien billi tagħti ħarsa aktar mill-qrib lejn mudelli stabbiliti konsistenza и aċċessibbiltà. B'dan il-mod, inti ser tiżviluppa fehim tal-qasam u tifhem li l-qari u l-kitba tad-data fil-fatt huma żewġ problemi differenti ħafna, kull waħda bl-isfidi uniċi tagħha. Armat bi ftit xejriet ta' konsistenza u disponibbiltà, tista' żżid il-prestazzjoni tas-sistema b'mod sinifikanti filwaqt li tiżgura fluss ta' data bla xkiel għall-applikazzjonijiet tiegħek.

Fl-aħħarnett, nikkonkludu l-konverżazzjoni dwar kwistjonijiet ta 'ħażna tad-dejta, għandna nsemmu wkoll il-caching. Għandha taħdem simultanjament fuq il-klijent u s-server? Liema data se tkun fil-cache tiegħek? U għaliex? Kif torganizza l-invalidazzjoni tal-cache? Se jsir regolarment, f'ċerti intervalli? Jekk iva, kemm-il darba? Nirrakkomanda li tibda tistudja dawn is-suġġetti bihom sezzjoni li jmiss il-primer tad-disinn tas-sistema msemmi hawn fuq.

Mudelli ta' Komunikazzjoni

Is-sistemi jikkonsistu f'diversi komponenti; dawn jistgħu jkunu proċessi differenti li jaħdmu fl-istess nodu fiżiku, jew magni differenti li jaħdmu fuq partijiet differenti tan-netwerk tiegħek. Xi wħud minn dawn ir-riżorsi fin-netwerk tiegħek jistgħu jkunu privati, iżda oħrajn għandhom ikunu pubbliċi u miftuħa għall-konsumaturi li jaċċessawhom minn barra.

Huwa meħtieġ li tiġi żgurata l-komunikazzjoni ta 'dawn ir-riżorsi ma' xulxin, kif ukoll l-iskambju ta 'informazzjoni bejn is-sistema kollha u d-dinja ta' barra. Fil-kuntest tad-disinn tas-sistemi, hawnhekk għal darb'oħra qed niffaċċjaw sett ta 'sfidi ġodda u uniċi. Ejja naraw kif jistgħu jkunu utli flussi ta' kompiti asinkroniċi, u liema pHemm varjetà ta 'mudelli ta' komunikazzjoni disponibbli.

Arkitettura tas-Softwer u Disinn tas-Sistemi: L-Istampa l-Kbira u Gwida tar-Riżorsi

Ritratt Tony Stoddard minn Unsplash

Meta torganizza l-komunikazzjoni mad-dinja ta 'barra, dejjem huwa importanti ħafna sigurtà, li l-provvediment tiegħu jeħtieġ ukoll li jittieħed bis-serjetà u segwit b'mod attiv.

Distribuzzjoni tal-konnessjoni

M'inix ċert li t-tqegħid ta' dan is-suġġett f'sezzjoni separata se jidher ġustifikat għal kulħadd. Madankollu, hawn se nippreżenta dan il-kunċett fid-dettall, u nemmen li l-materjal f'din it-taqsima huwa deskritt bl-aktar mod preċiż bit-terminu "distribuzzjoni tal-konnessjoni".

Is-sistemi huma ffurmati billi jgħaqqdu sew ħafna komponenti, u l-komunikazzjoni tagħhom ma 'xulxin ħafna drabi hija organizzata fuq il-bażi ta' protokolli stabbiliti, pereżempju, TCP u UDP. Madankollu, dawn il-protokolli bħala tali ħafna drabi huma insuffiċjenti biex jissodisfaw il-ħtiġijiet kollha ta 'sistemi moderni, li ħafna drabi huma operati taħt tagħbija għolja u huma wkoll dipendenti ħafna fuq il-ħtiġijiet tal-utent. Ħafna drabi huwa meħtieġ li jinstabu modi biex jitqassmu konnessjonijiet biex ilaħħqu ma 'tagħbijiet għoljin bħal dawn fuq is-sistema.

Din id-distribuzzjoni hija bbażata fuq il-magħruf sistema tal-isem tad-dominju (DNS). Sistema bħal din tippermetti trasformazzjonijiet tal-ismijiet tad-dominju bħal round robin peżat u metodi bbażati fuq il-latency biex jgħinu jqassmu t-tagħbija.

Ibbilanċjar tat-tagħbija hija fundamentalment importanti, u prattikament kull sistema kbira tal-Internet li nittrattaw magħha llum tinsab wara load balancer wieħed jew aktar. Load balancers jgħinu biex iqassmu t-talbiet tal-klijenti f'diversi każijiet disponibbli. Load balancers jidħlu kemm f'ħardwer kif ukoll f'softwer, madankollu, fil-prattika, aktar spiss ikollok tittratta ma' dawk tas-softwer, pereżempju HAProxy и ELB. Prokuri b'lura kunċettwalment ukoll simili ħafna għal load balancers, għalkemm hemm firxa bejn l-ewwel u t-tieni differenzi distinti. Dawn id-differenzi għandhom jitqiesu meta tiddisinja sistema bbażata fuq il-bżonnijiet tiegħek.

Għandek tkun taf ukoll dwar netwerks ta' kunsinna ta' kontenut (CDN). CDN huwa netwerk globali distribwit ta' proxy servers li jwassal informazzjoni minn nodi li jinsabu ġeografikament eqreb lejn utent speċifiku. Is-CDNs huma preferibbli li jintużaw jekk taħdem b'fajls statiċi miktuba b'JavaScript, CSS u HTML. Barra minn hekk, is-servizzi tal-cloud li jipprovdu maniġers tat-traffiku huma komuni llum, pereżempju, Azure Traffic Manager, li jagħtik distribuzzjoni globali u latenza mnaqqsa meta taħdem b'kontenut dinamiku. Madankollu, servizzi bħal dawn huma normalment utli f'każijiet fejn ikollok taħdem ma 'servizzi tal-web mingħajr stat.

Ejja nitkellmu dwar il-loġika tan-negozju. L-istrutturar tal-loġika tan-negozju, il-flussi tal-kompiti u l-komponenti

Għalhekk, irnexxielna niddiskutu diversi aspetti infrastrutturali tas-sistema. Ħafna probabbli, l-utent lanqas biss jaħseb dwar dawn l-elementi kollha tas-sistema tiegħek u, franchement, ma jimpurtahom xejn minnhom. L-utent huwa interessat f'dak li hu li jinteraġixxi mas-sistema tiegħek, x'jista' jinkiseb billi tagħmel dan, u wkoll kif is-sistema tesegwixxi l-kmandi tal-utent, x'tagħmel u kif tagħmel bid-dejta tal-utent.

Kif jissuġġerixxi t-titlu ta 'dan l-artikolu, kont se nitkellem dwar l-arkitettura tas-softwer u d-disinn tas-sistema. Għaldaqstant, ma ppjanajtx li nkopri mudelli tad-disinn tas-softwer li jiddeskrivu kif jinħolqu l-komponenti tas-softwer. Madankollu, aktar ma naħseb dwarha, aktar jidhirli li l-linja bejn il-mudelli tad-disinn tas-softwer u l-mudelli arkitettoniċi hija mċajpra ħafna, u ż-żewġ kunċetti huma relatati mill-qrib. Ejja nieħdu per eżempju reġistrazzjoni tal-avveniment (provenjenza tal-avvenimenti). Ladarba tadotta dan il-mudell arkitettoniku, dan jaffettwa kważi kull aspett tas-sistema tiegħek: ħażna fit-tul tad-dejta, il-livell ta 'konsistenza adottat fis-sistema tiegħek, il-forma tal-komponenti fiha, eċċ., eċċ. Għalhekk, iddeċidejt li nsemmi xi mudelli arkitettoniċi li jirrelataw direttament mal-loġika tan-negozju. Anke jekk dan l-artikolu se jkollu jillimita ruħu għal lista sempliċi, inħeġġiġkom biex tiffamiljarizzawha u taħseb dwar l-ideat assoċjati ma 'dawn ix-xejriet. Hawn int:

Approċċi kollaborattivi

Huwa estremament improbabbli li ssib ruħek fuq proġett bħala l-parteċipant li huwa biss responsabbli għall-proċess tad-disinn tas-sistema. Għall-kuntrarju, x'aktarx ikollok jinteraġixxi ma' kollegi li jaħdmu kemm fi ħdan kif ukoll barra l-kompitu tiegħek. F'dan il-każ, jista 'jkollok bżonn tevalwa s-soluzzjonijiet tat-teknoloġija magħżula mal-kollegi, tidentifika l-ħtiġijiet tan-negozju u tifhem kif l-aħjar titqabbel il-kompiti.

Arkitettura tas-Softwer u Disinn tas-Sistemi: L-Istampa l-Kbira u Gwida tar-Riżorsi

Ritratt Kaleidico minn Unsplash

L-ewwel pass huwa li tiżviluppa fehim preċiż u kondiviż ta’ x’inhu l-għan tan-negozju li qed tipprova tikseb u liema partijiet li jiċċaqilqu ser ikollok tittratta magħhom. Tekniki tal-immudellar tal-grupp, b'mod partikolari avvenimenti maltempati (event storming) tgħin biex tħaffef b'mod sinifikanti dan il-proċess u żżid iċ-ċansijiet tiegħek ta 'suċċess. Dan ix-xogħol jista 'jsir qabel jew wara li tiddeskrivi konfini tas-servizzi tiegħek, u mbagħad tapprofondixxiha hekk kif il-prodott jimmatura. Ibbażat fuq il-livell ta 'konsistenza li se jinkiseb hawn, tista' wkoll tifformula lingwa komuni għall-kuntest limitat li fih taħdem. Meta jkollok bżonn titkellem dwar l-arkitettura tas-sistema tiegħek, tista 'ssibha utli mudell C4, propost Simon Brown, speċjalment meta tiġi biex tifhem kemm ser ikollok tidħol fid-dettall dwar il-problema, viżwalizza l-affarijiet li trid tikkomunika.

Probabbilment hemm teknoloġija matura oħra dwar dan is-suġġett li mhix inqas utli minn Domain Driven Design. Madankollu, aħna b'xi mod nerġgħu nifhmu l-qasam tas-suġġett, għalhekk l-għarfien u l-esperjenza fil-qasam Disinn Mmexxi mid-Dominju għandu jkun utli għalik.

Sors: www.habr.com

Żid kumment