{"id":36518,"date":"2019-10-31T22:12:07","date_gmt":"2019-10-31T19:12:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\/"},"modified":"2019-10-31T22:12:07","modified_gmt":"2019-10-31T19:12:07","slug":"programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","title":{"rendered":"Architekt\u00fara softv\u00e9ru a n\u00e1vrh syst\u00e9mov: celkov\u00fd preh\u013ead a sprievodca zdrojmi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Dobr\u00fd de\u0148, kolegovia.<\/p>\n<p>Dnes v\u00e1m predklad\u00e1me preklad \u010dl\u00e1nku Tugberka Ugurlu, ktor\u00fd sa vo vz\u0165ahu k relat\u00edvne mal\u00e9mu objemu sna\u017e\u00ed prerozpr\u00e1va\u0165 princ\u00edpy n\u00e1vrhu modern\u00fdch softv\u00e9rov\u00fdch syst\u00e9mov. Tu s\u00fa inform\u00e1cie, ktor\u00e9 autor o sebe zanechal:<\/p>\n<p><img decoding=\"async\" alt=\"Architekt\u00fara softv\u00e9ru a n\u00e1vrh syst\u00e9mov: celkov\u00fd preh\u013ead a sprievodca zdrojmi\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nKe\u010f\u017ee je absol\u00fatne nemo\u017en\u00e9 pokry\u0165 v hubri tak\u00fa ohromn\u00fa t\u00e9mu, ako s\u00fa architektonick\u00e9 vzory + vzory n\u00e1vrhu k roku 2019, odpor\u00fa\u010dame nielen samotn\u00fd text p\u00e1na Ugurlu, ale aj mno\u017estvo odkazov, ktor\u00e9 v \u0148om s l\u00e1skou uviedol. Ak v\u00e1s to zaujme, zverejn\u00edme aj podrobnej\u0161\u00ed text o navrhovan\u00ed distribuovan\u00fdch syst\u00e9mov.<\/p>\n<p><img decoding=\"async\" alt=\"Architekt\u00fara softv\u00e9ru a n\u00e1vrh syst\u00e9mov: celkov\u00fd preh\u013ead a sprievodca zdrojmi\" src=\"\/wp-content\/uploads\/2019\/07\/4ccec9506aedb91bb601ebc32b6762be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<i>Obr\u00e1zok <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/6EnTPvPPL6I?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Aizak Smith<\/a><\/noindex> zo str\u00e1nky Unsplash<\/i><\/p>\n<p>Ak ste sa nikdy nestretli s tak\u00fdmito v\u00fdzvami, ako je n\u00e1vrh softv\u00e9rov\u00e9ho syst\u00e9mu od nuly, m\u00f4\u017ee by\u0165 na za\u010diatku tak\u00e9ho projektu niekedy \u0165a\u017ek\u00e9 rozhodn\u00fa\u0165 sa, kde za\u010da\u0165. Mysl\u00edm, \u017ee najprv je potrebn\u00e9 vyzna\u010di\u0165 hranice, aby ste mali aspo\u0148 trochu jasn\u00fa predstavu o tom, \u010do pl\u00e1nujete navrhn\u00fa\u0165, a potom si zalo\u017ei\u0165 ruk\u00e1vy a pracova\u0165, pri\u010dom neprekro\u010d\u00edte tieto hranice. Ako vych\u00e1dzaj\u00faci bod m\u00f4\u017eete zobra\u0165 ak\u00fdko\u013evek produkt alebo slu\u017ebu (ide\u00e1lne tak\u00fa, ktor\u00fa m\u00e1te ve\u013emi radi) a presk\u00fama\u0165 jej realiz\u00e1ciu. Mo\u017eno budete prekvapen\u00ed, ako jednoducho sa tento produkt jav\u00ed, a ak\u00e1 obrovsk\u00e1 zlo\u017eitosti sa v \u0148om v skuto\u010dnosti skr\u00fdva. Nezab\u00fadajte: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">jednoduch\u00e9 \u2013 zvy\u010dajne zlo\u017eit\u00fd<\/a><\/noindex>, a to je v poriadku.<\/p>\n<p>Mysl\u00edm, \u017ee najlep\u0161\u00ed tip, ktor\u00fd m\u00f4\u017eem da\u0165 t\u00fdm, ktor\u00ed sa p\u00fa\u0161\u0165aj\u00fa do n\u00e1vrhu syst\u00e9mu, je: \u017eiadne predpoklady! Od sam\u00e9ho za\u010diatku je potrebn\u00e9 konkretizova\u0165 fakty zn\u00e1me o tomto syst\u00e9me a o\u010dak\u00e1vania s n\u00edm spojen\u00e9. Tu je nieko\u013eko dobr\u00fdch ot\u00e1zok, na ktor\u00e9 odpovede v\u00e1m pom\u00f4\u017eu za\u010da\u0165 s n\u00e1vrhom:<\/p>\n<ul>\n<li>Ak\u00fd je probl\u00e9m, ktor\u00fd sa sna\u017e\u00edme vyrie\u0161i\u0165? <\/li>\n<li>Ak\u00fd je maxim\u00e1lny po\u010det pou\u017e\u00edvate\u013eov, ktor\u00ed bud\u00fa interagova\u0165 s na\u0161\u00edm syst\u00e9mom?<\/li>\n<li>Ak\u00e9 vzory z\u00e1pisu a \u010d\u00edtania d\u00e1t budeme pou\u017e\u00edva\u0165? <\/li>\n<li>Ak\u00e9 s\u00fa o\u010dak\u00e1van\u00e9 pr\u00edpady zlyhania a ako s nimi pl\u00e1nujeme nalo\u017ei\u0165?<\/li>\n<li>Ak\u00e9 o\u010dak\u00e1vania sa uplat\u0148uj\u00fa na konzistenciu a dostupnos\u0165 syst\u00e9mu? <\/li>\n<li>Je potrebn\u00e9 pri pr\u00e1ci zoh\u013eadni\u0165 nejak\u00e9 po\u017eiadavky t\u00fdkaj\u00face sa vonkaj\u0161ieho overovania a regul\u00e1cie?<\/li>\n<li>Ak\u00e9 druhy d\u00f4vern\u00fdch \u00fadajov m\u00e1me v \u00famysle uchov\u00e1va\u0165?<\/li>\n<\/ul>\n<p>\nToto je len nieko\u013eko ot\u00e1zok, ktor\u00e9 sa uk\u00e1zali by\u0165 u\u017eito\u010dn\u00e9 v mojej pr\u00e1ci i v t\u00edmoch, ktor\u00fdch som sa z\u00fa\u010dastnil po\u010das svojej profesion\u00e1lnej kari\u00e9ry. Ak pozn\u00e1te odpovede na tieto ot\u00e1zky (a na ak\u00e9ko\u013evek \u010fal\u0161ie, relevantn\u00e9 v kontexte, v ktorom pracujete), m\u00f4\u017eete sa postupne preh\u013abi\u0165 do technick\u00fdch detailov \u00falohy.<\/p>\n<p><b>Stanovujeme po\u010diato\u010dn\u00fa \u00farove\u0148<\/b><\/p>\n<p>\u010co tu rozumiem pod \u201epo\u010diato\u010dnou \u00farov\u0148ou\u201c? V s\u00fa\u010dasnosti sa v\u00e4\u010d\u0161ina probl\u00e9mov v softv\u00e9rovom priemysle \u201em\u00f4\u017ee\u201c vyrie\u0161i\u0165 pomocou u\u017e existuj\u00facich met\u00f3d a technol\u00f3gi\u00ed. T\u00fdm, \u017ee sa orientujete v tomto prostred\u00ed, z\u00edskavate ur\u010dit\u00e9 v\u00fdhody, \u010del\u00ed v\u00fdzvam, ktor\u00e9 u\u017e pred vami niekto vyrie\u0161il. Nezab\u00fadajme, \u017ee programy sa p\u00ed\u0161u na rie\u0161enie probl\u00e9mov podnikania a pou\u017e\u00edvate\u013eov, a preto sa sna\u017e\u00edme vyrie\u0161i\u0165 \u00falohu \u010do najpriamo a najjednoduch\u0161\u00edm sp\u00f4sobom (z poh\u013eadu pou\u017e\u00edvate\u013ea). Pre\u010do je d\u00f4le\u017eit\u00e9 si to pam\u00e4ta\u0165? Mo\u017eno vo va\u0161om syst\u00e9me preferujete h\u013eadanie jedine\u010dn\u00fdch rie\u0161en\u00ed pre v\u0161etky \u00falohy, preto\u017ee si mysl\u00edte, \u201eak\u00fd som program\u00e1tor, ak v\u0161ade dodr\u017eiavam vzory\u201c? V skuto\u010dnosti <b>umenie spo\u010d\u00edva v rozhodovan\u00ed o tom, kde a \u010do robi\u0165<\/b>. Samozrejme, ka\u017ed\u00fd z n\u00e1s sa ob\u010das stret\u00e1va s jedine\u010dn\u00fdmi probl\u00e9mami, z ktor\u00fdch ka\u017ed\u00fd je skuto\u010dnou v\u00fdzvou. Av\u0161ak, ak je na\u0161a po\u010diato\u010dn\u00e1 \u00farove\u0148 jasne definovan\u00e1, vieme, na \u010do s\u00fastredi\u0165 svoje \u00fasilie: na h\u013eadanie existuj\u00facich rie\u0161en\u00ed stanoven\u00fdch \u00faloh, alebo na jej \u010fal\u0161ie sk\u00famanie a hlb\u0161ie pochopenie.<\/p>\n<p>Mysl\u00edm, \u017ee som v\u00e1s presved\u010dil, \u017ee ak sa odborn\u00edk d\u00f4veryhodne orientuje v architektonick\u00fdch aspektoch niektor\u00fdch skvel\u00fdch softv\u00e9rov\u00fdch syst\u00e9mov, tieto vedomosti bud\u00fa neocenite\u013en\u00e9 pre ovl\u00e1danie umenia architekta a budovanie sol\u00eddneho z\u00e1kladu v tejto oblasti.<\/p>\n<p>Dobre, odkia\u013e za\u010da\u0165? <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donna Martin<\/a><\/noindex> m\u00e1 repozit\u00e1r na GitHub s n\u00e1zvom <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, z ktor\u00e9ho sa m\u00f4\u017eete nau\u010di\u0165 navrhova\u0165 rozsiahle syst\u00e9my a tie\u017e sa pripravi\u0165 na pohovory na t\u00fato t\u00e9mu. V repozit\u00e1ri n\u00e1jdete sekciu s pr\u00edkladmi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">skuto\u010dn\u00fdch architekt\u00far<\/a><\/noindex>, kde sa konkr\u00e9tne sk\u00fama, ako pristupuj\u00fa k dizajnu svojich syst\u00e9mov <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">niektor\u00e9 dobre zn\u00e1me spolo\u010dnosti<\/a><\/noindex>, napr\u00edklad Twitter, Uber at\u010f.<\/p>\n<p>Av\u0161ak predt\u00fdm, ako prejdeme k tomuto materi\u00e1lu, po\u010fme podrobnej\u0161ie presk\u00fama\u0165 najd\u00f4le\u017eitej\u0161ie architektonick\u00e9 v\u00fdzvy, ktor\u00fdm sa v praxi \u010del\u00ed. Je to d\u00f4le\u017eit\u00e9, preto\u017ee je potrebn\u00e9 konkretizova\u0165 MNO\u017dSTVO aspektov nepoddajn\u00e9ho a mnohorozmern\u00e9ho probl\u00e9mu a n\u00e1sledne ho rie\u0161i\u0165 v r\u00e1mci regul\u00e1cie, ktor\u00e1 plat\u00ed v tomto syst\u00e9me. <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/\">Jackson Gabbard<\/a><\/noindex>, b\u00fdval\u00fd zamestnanec Facebooku, nato\u010dil <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\">50-min\u00fatov\u00e9 video o pohovoroch zameran\u00fdch na dizajn syst\u00e9mov<\/a><\/noindex>, kde sa podelil o svoje vlastn\u00e9 sk\u00fasenosti z pos\u00fadenia stoviek uch\u00e1dza\u010dov. Aj ke\u010f sa video v\u00fdslovne zaober\u00e1 n\u00e1vrhom ve\u013ek\u00fdch syst\u00e9mov a krit\u00e9riami \u00faspe\u0161nosti, ktor\u00e9 s\u00fa d\u00f4le\u017eit\u00e9 pri h\u013eadan\u00ed kandid\u00e1ta na tak\u00fato poz\u00edciu, st\u00e1le bude sl\u00fa\u017ei\u0165 ako komplexn\u00fd zdroj inform\u00e1ci\u00ed o tom, \u010do je najd\u00f4le\u017eitej\u0161ie pri n\u00e1vrhu syst\u00e9mov. Taktie\u017e navrhujem <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/2016\/07\/31\/architecture-and-systems-design-interview\/\">stru\u010dn\u00e9 zhrnutie<\/a><\/noindex> tohto videa.<\/p>\n<p><b>Z\u00edskavajte vedomosti o ukladan\u00ed a vyh\u013ead\u00e1van\u00ed d\u00e1t<\/b> <\/p>\n<p>Vo v\u0161eobecnosti va\u0161e rozhodnutie o tom, ako dlhodobo uchov\u00e1te a vyd\u00e1te svoje d\u00e1ta, v\u00fdrazne ovplyv\u0148uje v\u00fdkon syst\u00e9mu. Preto by ste mali najprv rozumie\u0165 o\u010dak\u00e1van\u00fdm charakteristik\u00e1m z\u00e1pisu a \u010d\u00edtania d\u00e1t vo va\u0161om syst\u00e9me. Potom mus\u00edte vedie\u0165 hodnoti\u0165 tieto ukazovatele a robi\u0165 rozhodnutia na z\u00e1klade vykonan\u00fdch hodnoten\u00ed. Av\u0161ak efekt\u00edvne zvl\u00e1dnu\u0165 t\u00fato pr\u00e1cu budete schopn\u00ed len v pr\u00edpade, ak rozumiete existuj\u00facim vzorcom ukladania d\u00e1t. V z\u00e1sade to znamen\u00e1 ma\u0165 ist\u00e9 vedomosti spojen\u00e9 s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#database\">v\u00fdberom datab\u00e1zy<\/a><\/noindex>. <\/p>\n<p>Datab\u00e1zy mo\u017eno pova\u017eova\u0165 za d\u00e1tov\u00e9 \u0161trukt\u00fary, ktor\u00e9 maj\u00fa v\u00fdnimo\u010dn\u00fa \u0161k\u00e1lovate\u013enos\u0165 a trvanlivos\u0165. Preto v\u00e1m znalosti o d\u00e1tov\u00fdch \u0161trukt\u00farach bud\u00fa ve\u013emi u\u017eito\u010dn\u00e9 aj pri v\u00fdbere konkr\u00e9tnej datab\u00e1zy. Napr\u00edklad, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/data-types-intro\">K\u013eu\u010d-hodnota<\/a><\/noindex> \u2013 je server d\u00e1tov\u00fdch \u0161trukt\u00far, ktor\u00fd podporuje r\u00f4zne typy hodn\u00f4t. Umo\u017e\u0148uje pracova\u0165 s tak\u00fdmi d\u00e1tov\u00fdmi \u0161trukt\u00farami ako s\u00fa zoznamy a mno\u017einy, \u010d\u00edta\u0165 d\u00e1ta pomocou zn\u00e1mych algoritmov, napr\u00edklad, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, organizuj\u00fac t\u00fato pr\u00e1cu v trvalom a vysoko dostupnom \u0161t\u00fdle. <\/p>\n<p><img decoding=\"async\" alt=\"Architekt\u00fara softv\u00e9ru a n\u00e1vrh syst\u00e9mov: celkov\u00fd preh\u013ead a sprievodca zdrojmi\" src=\"\/wp-content\/uploads\/2019\/07\/8e30da0e8edd592609466f3c6c6f66d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Obr\u00e1zok <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/JuFcQxgCXwA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Samuel Zeller<\/a><\/noindex> zo str\u00e1nky Unsplash<\/i><\/p>\n<p>Ke\u010f sa dostato\u010dne obozn\u00e1mite s r\u00f4znymi vzormi ukladania d\u00e1t, m\u00f4\u017eete prejs\u0165 na \u0161t\u00fadium konzistencie a dostupnosti d\u00e1t. Spo\u010diatku si budete musie\u0165 osvoji\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">CAP te\u00f3riu<\/a><\/noindex> , aspo\u0148 v obrysoch, a potom si tieto vedomosti upresni\u0165 podrobnej\u0161\u00edm presk\u00faman\u00edm ust\u00e1len\u00fdch vzorov <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">konzistencie<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">dostupnosti<\/a><\/noindex>. T\u00fdmto sp\u00f4sobom si roz\u0161\u00edrite obzory v tejto oblasti a pochop\u00edte, \u017ee \u010d\u00edtanie a z\u00e1pis d\u00e1t s\u00fa v skuto\u010dnosti dve ve\u013emi odli\u0161n\u00e9 probl\u00e9my, pri\u010dom ka\u017ed\u00e9 z nich so sebou nesie svoje vlastn\u00e9 v\u00fdzvy. S nieko\u013ek\u00fdmi vzormi zabezpe\u010denia konzistencie a dostupnosti m\u00f4\u017eete v\u00fdrazne zv\u00fd\u0161i\u0165 v\u00fdkonnos\u0165 syst\u00e9mu, pri\u010dom zaru\u010d\u00edte plynul\u00fa dod\u00e1vku d\u00e1t do va\u0161ich aplik\u00e1ci\u00ed.<\/p>\n<p>Nakoniec, v s\u00favislosti s ot\u00e1zkami ukladania d\u00e1t je potrebn\u00e9 spomen\u00fa\u0165 aj o ke\u0161ovan\u00ed. M\u00e1 sa vykon\u00e1va\u0165 s\u00fa\u010dasne na kliente a na serveri? Ak\u00e9 d\u00e1ta budete ma\u0165 vo svojej ke\u0161i? A pre\u010do? Ako usporiadate invalid\u00e1ciu ke\u0161ov? Bude sa to robi\u0165 pravidelne, v ur\u010dit\u00fdch intervaloch? Ak \u00e1no - ako \u010dasto? Odpor\u00fa\u010dam za\u010da\u0165 s touto problematikou z <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">nasleduj\u00faceho oddielu<\/a><\/noindex> vy\u0161\u0161ie uvedenej pr\u00edru\u010dky o projektovan\u00ed syst\u00e9mov. <\/p>\n<p><b>Komunika\u010dn\u00e9 vzory<\/b><\/p>\n<p>Syst\u00e9my sa skladaj\u00fa z r\u00f4znych komponentov; to m\u00f4\u017eu by\u0165 r\u00f4zne procesy, ktor\u00e9 funguj\u00fa v r\u00e1mci rovnak\u00e9ho fyzick\u00e9ho uzla, alebo r\u00f4zne stroje, ktor\u00e9 p\u00f4sobia v r\u00f4znych \u010dastiach va\u0161ej siete. Niektor\u00e9 z t\u00fdchto zdrojov v r\u00e1mci va\u0161ej siete m\u00f4\u017eu by\u0165 s\u00fakromn\u00e9, ale in\u00e9 musia by\u0165 verejn\u00e9 a otvoren\u00e9 pre spotrebite\u013eov, ktor\u00ed k nim pristupuj\u00fa zvonku.<\/p>\n<p>Je potrebn\u00e9 zabezpe\u010di\u0165 komunik\u00e1ciu t\u00fdchto zdrojov navz\u00e1jom, ako aj v\u00fdmenu inform\u00e1ci\u00ed medzi cel\u00fdm syst\u00e9mom a vonkaj\u0161\u00edm svetom. V kontexte projektovania syst\u00e9mov sa op\u00e4\u0165 stret\u00e1vame s nov\u00fdm s\u00faborom jedine\u010dn\u00fdch v\u00fdziev. Zis\u0165ujeme, \u010do m\u00f4\u017ee by\u0165 u\u017eito\u010dn\u00e9 pre <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">asynchr\u00f3nne \u00falohov\u00e9 toky<\/a><\/noindex>, a ak\u00e9 r\u00f4znorod\u00e9<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">komunika\u010dn\u00e9 vzory s\u00fa k dispoz\u00edcii<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Architekt\u00fara softv\u00e9ru a n\u00e1vrh syst\u00e9mov: celkov\u00fd preh\u013ead a sprievodca zdrojmi\" src=\"\/wp-content\/uploads\/2019\/07\/e4dc98256b755acf931097d218f8b0dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Obr\u00e1zok <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/DgZxBnZeQo8?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Tony Stoddard<\/a><\/noindex> zo str\u00e1nky Unsplash<\/i><\/p>\n<p>Pri organizovan\u00ed komunik\u00e1cie s vonkaj\u0161\u00edm svetom je v\u017edy ve\u013emi d\u00f4le\u017eit\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">bezpe\u010dnos\u0165<\/a><\/noindex>, na \u010do je potrebn\u00e9 pristupova\u0165 s plnou v\u00e1\u017enos\u0165ou a akt\u00edvne sa t\u00fdm zabeera\u0165. <\/p>\n<p><b>Distrib\u00facia pripojen\u00ed<\/b><\/p>\n<p>Nie som si ist\u00fd, \u017ee vy\u010dlenenie tejto t\u00e9my do samostatnej sekcie sa ka\u017ed\u00e9mu bude zda\u0165 od\u00f4vodnen\u00e9. Napriek tomu podrobne vysvetl\u00edm t\u00fato koncepciu a domnievam sa, \u017ee materi\u00e1l tejto sekcie najpresnej\u0161ie vystihuje pojem \u201edistrib\u00facia pripojen\u00ed\u201c (connection distribution).<\/p>\n<p>Syst\u00e9my sa formuj\u00fa spr\u00e1vnym spojen\u00edm mno\u017estva komponentov a ich komunik\u00e1cia medzi sebou sa \u010dasto organizuje na z\u00e1klade ust\u00e1len\u00fdch protokolov, napr\u00edklad TCP a UDP. Av\u0161ak tieto protokoly sami o sebe \u010dasto nesta\u010dia na uspokojenie v\u0161etk\u00fdch potrieb s\u00fa\u010dasn\u00fdch syst\u00e9mov, ktor\u00e9 s\u00fa \u010dasto prev\u00e1dzkovan\u00e9 pri vysok\u00fdch za\u0165a\u017eeniach a silno z\u00e1visia od potrieb pou\u017e\u00edvate\u013eov. \u010casto je potrebn\u00e9 h\u013eada\u0165 sp\u00f4soby distrib\u00facie pripojen\u00ed, aby sa zvl\u00e1dali tak\u00e9to vysok\u00e9 za\u0165a\u017eenia v syst\u00e9me.<\/p>\n<p>Na z\u00e1klade takejto distrib\u00facie le\u017e\u00ed dobre zn\u00e1ma <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">syst\u00e9m dom\u00e9nov\u00fdch mien<\/a><\/noindex> (DNS). Tento syst\u00e9m umo\u017e\u0148uje prev\u00e1dza\u0165 dom\u00e9nov\u00e9 meno, napr\u00edklad v\u00e1\u017een\u00fd cyklick\u00fd algoritmus (weighted round robin) a met\u00f3dy zalo\u017een\u00e9 na oneskoreniach, ktor\u00e9 pom\u00e1haj\u00fa distribuova\u0165 z\u00e1\u0165a\u017e. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%91%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8\">Vyva\u017eovanie z\u00e1\u0165a\u017ee<\/a><\/noindex> je principi\u00e1lne d\u00f4le\u017eit\u00e9 a takmer ka\u017ed\u00fd ve\u013ek\u00fd syst\u00e9m na Internete, s ktor\u00fdm dnes mus\u00edme ma\u0165 do \u010dinenia, sa nach\u00e1dza za jedn\u00fdm alebo viacer\u00fdmi vyva\u017eova\u010dmi z\u00e1\u0165a\u017ee. Vyva\u017eova\u010de z\u00e1\u0165a\u017ee pom\u00e1haj\u00fa distribuova\u0165 klientsk\u00e9 po\u017eiadavky medzi mno\u017estvo dostupn\u00fdch in\u0161tanci\u00ed. Vyva\u017eova\u010de z\u00e1\u0165a\u017ee m\u00f4\u017eu by\u0165 hardv\u00e9rov\u00e9 aj softv\u00e9rov\u00e9, av\u0161ak v praxi sa \u010dastej\u0161ie stret\u00e1vame so softv\u00e9rov\u00fdmi, napr\u00edklad s <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> a <noindex><a rel=\"nofollow\" href=\"https:\/\/aws.amazon.com\/ru\/elasticloadbalancing\/\">ELB<\/a><\/noindex>. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#reverse-proxy-web-server\">Zadn\u00e9 proxy<\/a><\/noindex> konceptu\u00e1lne tie\u017e ve\u013emi pripom\u00ednaj\u00fa vyva\u017eova\u010de z\u00e1\u0165a\u017ee, hoci medzi prv\u00fdmi a druh\u00fdmi existuje nieko\u013eko <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#load-balancer-vs-reverse-proxy\">v\u00fdrazn\u00fdch rozdielov<\/a><\/noindex>. Tieto rozdiely je potrebn\u00e9 zoh\u013eadni\u0165 pri navrhovan\u00ed syst\u00e9mu s oh\u013eadom na va\u0161e potreby.<\/p>\n<p>Taktie\u017e by ste mali vedie\u0165 o <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">sie\u0165ach na dod\u00e1vanie obsahu<\/a><\/noindex> (CDN). CDN \u2013 to je glob\u00e1lna distribuovan\u00e1 sie\u0165 proxy serverov, ktor\u00e1 dod\u00e1va inform\u00e1cie z t\u00fdch uzlov, ktor\u00e9 s\u00fa geograficky umiestnen\u00e9 bli\u017e\u0161ie k konkr\u00e9tnemu pou\u017e\u00edvate\u013eovi. CDN siete je preferovan\u00e9 pou\u017e\u00edva\u0165, ak pracujete so statick\u00fdmi s\u00fabormi nap\u00edsan\u00fdmi v JavaScript, CSS a HTML. Okrem toho s\u00fa dnes roz\u0161\u00edren\u00e9 tak\u00e9 cloudov\u00e9 slu\u017eby, kde s\u00fa poskytovatelia traffic managers, napr\u00edklad, <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/traffic-manager\/traffic-manager-overview?ranMID=24542&amp;ranEAID=je6NUbpObpQ&amp;ranSiteID=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;epi=je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ&amp;irgwc=1&amp;OCID=AID2000142_aff_7593_1243925&amp;tduid=(ir__ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00)(7593)(1243925)(je6NUbpObpQ-9vzliSFGJdQqkHaqdUFnUQ)()&amp;irclickid=_ntizratyeckfrlt1kk0sohz30m2xjibo1hl6incq00\">Azure Traffic Manager<\/a><\/noindex>, ktor\u00e9 v\u00e1m zabezpe\u010duj\u00fa glob\u00e1lne rozlo\u017eenie a zn\u00ed\u017een\u00e9 oneskorenia pri pr\u00e1ci s dynamick\u00fdm obsahom. Tieto slu\u017eby s\u00fa obvykle u\u017eito\u010dn\u00e9 v pr\u00edpadoch, ke\u010f mus\u00edte pracova\u0165 s webov\u00fdmi slu\u017ebami bez uchov\u00e1vania stavu. <\/p>\n<p><b>Po\u010fme hovori\u0165 o biznis logike. \u0160trukt\u00farovanie biznis logiky, pracovn\u00fdch tokov a komponentov.<\/b><\/p>\n<p>Tak\u017ee sme stihli prediskutova\u0165 r\u00f4zne infra\u0161trukt\u00farne aspekty syst\u00e9mu. Pravdepodobne si pou\u017e\u00edvate\u013e ani neuvedomuje v\u0161etky tieto prvky v\u00e1\u0161ho syst\u00e9mu a \u00faprimne, v\u00f4bec sa t\u00fdm nezaober\u00e1. Pou\u017e\u00edvate\u013ea zauj\u00edma, ak\u00e9 je to interagova\u0165 s va\u0161\u00edm syst\u00e9mom, \u010do sa d\u00e1 dosiahnu\u0165 postupom ak\u00fdmko\u013evek sp\u00f4sobom, a ako syst\u00e9m vykon\u00e1va pou\u017e\u00edvate\u013esk\u00e9 pr\u00edkazy, \u010do a ako rob\u00ed s pou\u017e\u00edvate\u013esk\u00fdmi d\u00e1tami.<\/p>\n<p>Ako je jasn\u00e9 z n\u00e1zvu tohto \u010dl\u00e1nku, chcel som sa v \u0148om venova\u0165 softv\u00e9rovej architekt\u00fare a navrhovaniu syst\u00e9mov. Preto som nepl\u00e1noval pokr\u00fdva\u0165 n\u00e1vrhov\u00e9 vzory softv\u00e9ru, ktor\u00e9 opisuj\u00fa, ako sa vytv\u00e1raj\u00fa softv\u00e9rov\u00e9 komponenty. Av\u0161ak, \u010d\u00edm viac o tom prem\u00fd\u0161\u013eam, t\u00fdm viac sa mi zd\u00e1, \u017ee hranica medzi n\u00e1vrhov\u00fdmi vzormi softv\u00e9ru a architektonick\u00fdmi vzormi je ve\u013emi rozmazan\u00e1, a tieto dve koncepcie s\u00fa \u00fazko prepojen\u00e9. Vezmime si napr\u00edklad, <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">registr\u00e1ciu udalost\u00ed<\/a><\/noindex> (event sourcing). Ak si osvoj\u00edte tento architektonick\u00fd vzor \u2013 ovplyvn\u00ed prakticky v\u0161etky aspekty v\u00e1\u0161ho syst\u00e9mu: dlhodob\u00e9 uchov\u00e1vanie d\u00e1t, \u00farove\u0148 konzistencie, ktor\u00e1 je prijat\u00e1 vo va\u0161om syst\u00e9me, obrysy komponentov v \u0148om at\u010f. Preto som sa rozhodol spomen\u00fa\u0165 niektor\u00e9 architektonick\u00e9 vzory, ktor\u00e9 sa priamo t\u00fdkaj\u00fa biznis logiky. Nech sa u\u017e v tomto \u010dl\u00e1nku budem obmedzova\u0165 na jednoduch\u00fd zoznam, odpor\u00fa\u010dam v\u00e1m obozn\u00e1mi\u0165 sa s n\u00edm a zamyslie\u0165 sa nad my\u0161lienkami s\u00favisiacimi s t\u00fdmito vzormi. Tu s\u00fa, pros\u00edm:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SOLID_(%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)\">Princ\u00edpy SOLID<\/a><\/noindex> <\/li>\n<li>Koncepcie <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">Predmetne orientovan\u00e9ho n\u00e1vrhu<\/a><\/noindex>, konkr\u00e9tne, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/aggregates-in-domain-driven-design-5aab3ef9901d\">agreg\u00e1ty<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/command-vs-event-in-domain-driven-design-be6c45be52a9\">pr\u00edkazy a udalosti<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/267125\/\">Heksagon\u00e1lna architekt\u00fara<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/CQRS.html\">Rozdelenie zodpovednosti na pr\u00edkazy a dopyty (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Registr\u00e1cia udalost\u00ed<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Model akt\u00e9rov<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">N\u00e1vrhov\u00e9 vzory MVC, MVVM a MVP<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<b>Kolaborat\u00edvne pr\u00edstupy<\/b><\/p>\n<p>Je ve\u013emi nepravdepodobn\u00e9, \u017ee sa na projekte ocitnete ako ten \u00fa\u010dastn\u00edk, ktor\u00fd s\u00e1m zodpoved\u00e1 za proces n\u00e1vrhu syst\u00e9mu. Naopak, pravdepodobne budete musie\u0165 spolupracova\u0165 s kolegami, ktor\u00ed pracuj\u00fa ako v r\u00e1mci va\u0161ich \u00faloh, tak aj mimo nich. V takom pr\u00edpade m\u00f4\u017ee by\u0165 potrebn\u00e9 pos\u00fadi\u0165 zvolen\u00e9 technologick\u00e9 rie\u0161enia spolo\u010dne s kolegami, identifikova\u0165 obchodn\u00e9 potreby a pochopi\u0165, ako najlep\u0161ie paralelizova\u0165 \u00falohy.<\/p>\n<p><img decoding=\"async\" alt=\"Architekt\u00fara softv\u00e9ru a n\u00e1vrh syst\u00e9mov: celkov\u00fd preh\u013ead a sprievodca zdrojmi\" src=\"\/wp-content\/uploads\/2019\/07\/ad39e031dcac8e69fafb637603043bfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Obr\u00e1zok <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/3V8xo5Gbusk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kaleidico<\/a><\/noindex> zo str\u00e1nky Unsplash<\/i><\/p>\n<p>V prvom rade je potrebn\u00e9 vypracova\u0165 presn\u00e9 a v\u0161eobecne uzn\u00e1van\u00e9 pochopenie toho, ak\u00fd obchodn\u00fd cie\u013e sa sna\u017e\u00edte dosiahnu\u0165, a s ak\u00fdmi pohybliv\u00fdmi prvkami budete musie\u0165 pracova\u0165. Techniky skupinov\u00e9ho modelovania, predov\u0161etk\u00fdm, <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">udalos\u0165n\u00fd brainstorming<\/a><\/noindex> (event storming) pom\u00e1haj\u00fa zna\u010dne ur\u00fdchli\u0165 tento proces a zvy\u0161uj\u00fa va\u0161e \u0161ance na \u00faspech. T\u00fato pr\u00e1cu m\u00f4\u017eete vykona\u0165 predt\u00fdm alebo po tom, ako vymedz\u00edte <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">hrani\u010dn\u00e9 body va\u0161ich slu\u017eieb<\/a><\/noindex>, a potom ich prehlbova\u0165, ako produkt zreje. Odkazuj\u00fac na \u00farove\u0148 s\u00fahlasu, ktor\u00fa dosiahnete, m\u00f4\u017eete tie\u017e formulova\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html\">jednotn\u00fd jazyk<\/a><\/noindex> pre ten obmedzen\u00fd kontext, v ktorom pracujete. Ke\u010f pr\u00edde \u010das hovori\u0165 o architekt\u00fare v\u00e1\u0161ho syst\u00e9mu, m\u00f4\u017ee v\u00e1m pom\u00f4c\u0165 <noindex><a rel=\"nofollow\" href=\"https:\/\/c4model.com\/\">C4 model<\/a><\/noindex>, ktor\u00fd navrhol <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/simonbrown\">Simon Brown<\/a><\/noindex>, najm\u00e4 ke\u010f je potrebn\u00e9 pochopi\u0165, do akej miery sa budete musie\u0165 hlb\u0161ie zaobera\u0165 podrobnos\u0165ami probl\u00e9mu, vizualizuj\u00fac veci, ktor\u00e9 chcete komunikova\u0165.<\/p>\n<p>Pravdepodobne v tejto oblasti existuje aj in\u00e1 zrel\u00e1 technol\u00f3gia, ktor\u00e1 je rovnako u\u017eito\u010dn\u00e1 ako dom\u00e9novo orientovan\u00e9 navrhovanie. Av\u0161ak, aj tak sa vraciame k pochopeniu dom\u00e9ny, tak\u017ee znalosti a sk\u00fasenosti v oblasti <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D1%80%D0%B5%D0%B4%D0%BC%D0%B5%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5\">dom\u00e9novo orientovan\u00e9ho navrhovania<\/a><\/noindex> by v\u00e1m mali by\u0165 n\u00e1pomocn\u00e9.<br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/piter\/blog\/461283\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u0412\u043e\u0442 \u0447\u0442\u043e \u0430\u0432\u0442\u043e\u0440 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0441\u0435\u0431\u0435 \u0432 \u0441\u0443\u0445\u043e\u043c \u043e\u0441\u0442\u0430\u0442\u043a\u0435: \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0440\u0435\u0448\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043e\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u0432 \u0445\u0430\u0431\u0440\u043e\u0441\u0442\u0430\u0442\u044c\u0435 \u0442\u0430\u043a\u0443\u044e \u043a\u043e\u043b\u043e\u0441\u0441\u0430\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u043c\u0443, \u043a\u0430\u043a \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b + \u043f\u0430\u0442\u0442\u0435\u0440\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 2019 \u0433\u043e\u0434, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36518","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:12:07+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Softv\u00e9rov\u00e1 architekt\u00fara a n\u00e1vrh syst\u00e9mov: celkov\u00fd preh\u013ead a sprievodca zdrojmi | ProHoster","description":"Dobr\u00fd de\u0148, kolegovia. Dnes v\u00e1m predklad\u00e1me preklad \u010dl\u00e1nku Tugberka Ugurlu, ktor\u00fd sa pok\u00fasil v relat\u00edvne malom rozsahu vystihn\u00fa\u0165 princ\u00edpy n\u00e1vrhu modern\u00e9ho softv\u00e9ru.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c: \u043e\u0431\u0449\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u0430 \u0438 \u043f\u0443\u0442\u0435\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043f\u043e \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c | ProHoster","og:description":"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043d\u0430 \u0432\u0430\u0448 \u0441\u0443\u0434 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0432\u043e\u0434 \u0441\u0442\u0430\u0442\u044c\u0438 \u0422\u0443\u0433\u0431\u0435\u0440\u043a\u0430 \u0423\u0433\u0443\u0440\u043b\u0443 (Tugberk Ugurlu), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0437\u044f\u043b\u0441\u044f \u0432 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0438\u0437\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441\u043e\u0444\u0442\u0432\u0435\u0440\u043d\u044b\u0445.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:12:07+00:00","article:modified_time":"2019-10-31T19:12:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36518","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 03:40:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:43:33","updated":"2026-01-22 03:40:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/36518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=36518"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/36518\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/27331"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=36518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=36518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=36518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}