{"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\/hu\/blog\/administrirovanie\/programmnaya-arhitektura-i-proektirovanie-sistem-obshhaya-kartina-i-putevoditel-po-resursam","title":{"rendered":"Szoftverarchitekt\u00fara \u00e9s rendszerek tervez\u00e9se: \u00e1ltal\u00e1nos k\u00e9p \u00e9s forr\u00e1sek kalauz","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00dcdv\u00f6zl\u00f6k mindenkit.<\/p>\n<p>Ma bemutatjuk Tugberk Ugurlu \u00edr\u00e1s\u00e1nak ford\u00edt\u00e1s\u00e1t, amelyben viszonylag r\u00f6vid terjedelemben foglalja \u00f6ssze a modern szoftverrendszerek tervez\u00e9s\u00e9nek alapelveit. \u00cdme, amit az \u00edr\u00f3 mag\u00e1r\u00f3l elmond:<\/p>\n<p><img decoding=\"async\" alt=\"Szoftverarchitekt\u00fara \u00e9s rendszerek tervez\u00e9se: \u00e1ltal\u00e1nos k\u00e9p \u00e9s forr\u00e1sek kalauz\" src=\"\/wp-content\/uploads\/2019\/07\/30de77ffad15171ce493ce5003c99360.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMivel lehetetlen \u00e1tfogni olyan hatalmas t\u00e9m\u00e1t, mint az architektur\u00e1lis mint\u00e1k + tervez\u00e9si mint\u00e1k 2019-es \u00e1llapota, javasoljuk, hogy ne csak Ugurlu sz\u00f6veg\u00e9t, hanem a sz\u00e1mos linket is, amelyet kedvesen elhelyezett benne, n\u00e9zze meg. Ha tetszik, k\u00f6zz\u00e9tehetj\u00fck a terjeszkedett rendszerek tervez\u00e9s\u00e9r\u0151l sz\u00f3l\u00f3, sz\u0171kebb szakmai sz\u00f6veget is.<\/p>\n<p><img decoding=\"async\" alt=\"Szoftverarchitekt\u00fara \u00e9s rendszerek tervez\u00e9se: \u00e1ltal\u00e1nos k\u00e9p \u00e9s forr\u00e1sek kalauz\" 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>K\u00e9p <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/6EnTPvPPL6I?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Isaac Smith<\/a><\/noindex> az Unsplash-r\u0151l<\/i><\/p>\n<p>Ha m\u00e9g soha nem tal\u00e1lkozott olyan kih\u00edv\u00e1sokkal, mint egy szoftverrendszer null\u00e1r\u00f3l val\u00f3 tervez\u00e9se, akkor ilyen munka megkezd\u00e9sekor gyakran nem is vil\u00e1gos, hol kezdje. \u00dagy gondolom, hogy el\u0151sz\u00f6r meg kell hat\u00e1rozni a hat\u00e1rokat, hogy nagyj\u00e1b\u00f3l biztosan tudja, mit k\u00edv\u00e1n tervezni, majd fel kell gy\u0171rni az ingujj\u00e1t, \u00e9s dolgozni an\u00e9lk\u00fcl, hogy t\u00fall\u00e9pne ezeken a hat\u00e1rokon. Kiindul\u00e1si pontk\u00e9nt v\u00e1laszthat egy term\u00e9ket vagy szolg\u00e1ltat\u00e1st (ide\u00e1lisan olyat, amit nagyon kedvel), \u00e9s n\u00e9zze meg a megval\u00f3s\u00edt\u00e1s\u00e1t. Lehet, hogy meglep\u0151dik, mennyire egyszer\u0171en n\u00e9z ki az adott term\u00e9k, \u00e9s mennyi bonyodalom rejlik benne val\u00f3j\u00e1ban. Ne feledje: <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=k9Zbuuo51go\">az egyszer\u0171 \u2013 \u00e1ltal\u00e1ban bonyolult<\/a><\/noindex>, \u00e9s ez rendben van.<\/p>\n<p>A legjobb tan\u00e1cs, amit adhatok azoknak, akik a rendszer tervez\u00e9s\u00e9be kezdenek, a k\u00f6vetkez\u0151: ne tegyenek semmif\u00e9le feltev\u00e9st! M\u00e1r az elej\u00e9n konkretiz\u00e1lni kell a rendszerr\u0151l ismert t\u00e9nyeket \u00e9s a kapcsol\u00f3d\u00f3 elv\u00e1r\u00e1sokat. \u00cdme n\u00e9h\u00e1ny j\u00f3 k\u00e9rd\u00e9s, amelyek v\u00e1laszai seg\u00edtenek a tervez\u00e9s elkezd\u00e9s\u00e9ben:<\/p>\n<ul>\n<li>Milyen probl\u00e9ma megold\u00e1s\u00e1ra t\u00f6reksz\u00fcnk? <\/li>\n<li>Mennyi a cs\u00facsfelhaszn\u00e1l\u00f3k sz\u00e1ma, akik a rendszer\u00fcnkkel interakci\u00f3ba l\u00e9pnek?<\/li>\n<li>Milyen mint\u00e1k szerint fogjuk az adatokat r\u00f6gz\u00edteni \u00e9s lek\u00e9rdezni? <\/li>\n<li>Mik az elv\u00e1rt meghib\u00e1sod\u00e1si esetek, \u00e9s hogyan fogunk megk\u00fczdeni vel\u00fck?<\/li>\n<li>Milyen elv\u00e1r\u00e1sok vannak a rendszer konzisztenci\u00e1j\u00e1val \u00e9s rendelkez\u00e9sre \u00e1ll\u00e1s\u00e1val kapcsolatban? <\/li>\n<li>Figyelembe kell venni a k\u00fcls\u0151 ellen\u0151rz\u00e9ssel \u00e9s szab\u00e1lyoz\u00e1ssal kapcsolatos k\u00f6vetelm\u00e9nyeket a munka sor\u00e1n?<\/li>\n<li>Milyen t\u00edpus\u00fa bizalmas adatokat tervez\u00fcnk t\u00e1rolni?<\/li>\n<\/ul>\n<p>\nEzek csup\u00e1n n\u00e9h\u00e1ny k\u00e9rd\u00e9s, amelyek hasznosak voltak mind sz\u00e1momra, mind azoknak a csapatoknak, amelyekben az \u00e9vek sor\u00e1n r\u00e9szt vettem a szakmai tev\u00e9kenys\u00e9gem sor\u00e1n. Ha ismeri a v\u00e1laszokat ezekre a k\u00e9rd\u00e9sekre (\u00e9s b\u00e1rmely egy\u00e9b, az \u00d6n \u00e1ltal \u00e9rintett kontextusban relev\u00e1ns k\u00e9rd\u00e9sekre), akkor fokozatosan elm\u00e9lyedhet a feladat technikai r\u00e9szleteiben.<\/p>\n<p><b>A kiindul\u00e1si szint meghat\u00e1roz\u00e1sa<\/b><\/p>\n<p>Mit \u00e9rtek itt kiindul\u00e1si szinten? A mi id\u0151nkben a legt\u00f6bb probl\u00e9ma a szoftveriparban 'megoldhat\u00f3' a m\u00e1r l\u00e9tez\u0151 m\u00f3dszerekkel \u00e9s technol\u00f3gi\u00e1kkal. Ennek megfelel\u0151en, ha meg\u00e9rtj\u00fck ezt a t\u00e1jat, akkor k\u00e9ts\u00e9gk\u00edv\u00fcl el\u0151nyre tesz\u00fcnk szert, amikor olyan feladatokkal tal\u00e1lkozunk, amelyeket m\u00e1sok nek\u00fcnk el\u0151tt m\u00e1r megoldottak. Ne felejts\u00fck el, hogy a programok a v\u00e1llalatok \u00e9s felhaszn\u00e1l\u00f3k probl\u00e9m\u00e1inak megold\u00e1s\u00e1ra k\u00e9sz\u00fclnek, ez\u00e9rt arra t\u00f6reksz\u00fcnk, hogy a feladatot a lehet\u0151 legegyszer\u0171bben (felhaszn\u00e1l\u00f3i szempontb\u00f3l) oldjuk meg. Mi\u00e9rt fontos err\u0151l eml\u00e9kezni? Lehet, hogy az \u00d6n koordin\u00e1tarendszer\u00e9ben szeret egyedi megold\u00e1sokat keresni minden feladatra, mert \u00fagy \u00e9rzi, hogy 'milyen programoz\u00f3 vagyok \u00e9n, ha mindenhol k\u00f6vetem a mint\u00e1kat'? Val\u00f3j\u00e1ban, <b>a m\u0171v\u00e9szet abban rejlik, hogy eld\u00f6nts\u00fck, hol \u00e9s mit tegy\u00fcnk.<\/b>. Nyilv\u00e1nval\u00f3, hogy mindannyiunknak id\u0151r\u0151l id\u0151re szembe kell n\u00e9znie egyedi probl\u00e9m\u00e1kkal, amelyek mind igazi kih\u00edv\u00e1sok. Azonban, ha a kiindul\u00e1si szint\u00fcnk vil\u00e1gosan meg van hat\u00e1rozva, akkor tudjuk, mire kellene f\u00f3kusz\u00e1lni: a felmer\u00fcl\u0151 feladat gyors megold\u00e1s\u00e1ra, vagy annak tov\u00e1bbi tanulm\u00e1nyoz\u00e1s\u00e1ra \u00e9s m\u00e9lyebb meg\u00e9rt\u00e9s\u00e9re.<\/p>\n<p>\u00dagy gondolom, siker\u00fclt meggy\u0151zn\u00f6m, hogy ha a szakember magabiztosan \u00e9rti a remek szoftverrendszerek architekt\u00far\u00e1j\u00e1nak elemeit, akkor ezek az ismeretek n\u00e9lk\u00fcl\u00f6zhetetlenek az \u00e9p\u00edt\u00e9sz m\u0171v\u00e9szet\u00e9nek elsaj\u00e1t\u00edt\u00e1s\u00e1hoz \u00e9s egy szil\u00e1rd alap l\u00e9trehoz\u00e1s\u00e1hoz ezen a ter\u00fcleten.<\/p>\n<p>J\u00f3l van, de honnan kezdj\u00fck? <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\">Donna Martin<\/a><\/noindex> a GitHubon rendelkezik egy t\u00e1rol\u00f3val, amelynek neve <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\">system-design-primer<\/a><\/noindex>, amely alapj\u00e1n megtanulhatja a nagym\u00e9ret\u0171 rendszerek tervez\u00e9s\u00e9t, valamint felk\u00e9sz\u00fclhet a kapcsol\u00f3d\u00f3 interj\u00fakra. A t\u00e1rol\u00f3ban tal\u00e1lhat\u00f3 egy szekci\u00f3 p\u00e9ld\u00e1kkal <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#real-world-architectures\">val\u00f3di architekt\u00far\u00e1k<\/a><\/noindex>, ahol t\u00f6bbek k\u00f6z\u00f6tt azt vizsg\u00e1ljuk, hogyan k\u00f6zel\u00edtenek a rendszereik tervez\u00e9s\u00e9hez <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/tree\/1144b8ef4c441af73f7cbfd51f56b8eb62350a66#company-architectures\">n\u00e9h\u00e1ny j\u00f3l ismert v\u00e1llalat<\/a><\/noindex>, p\u00e9ld\u00e1ul a Twitter, Uber stb.<\/p>\n<p>Azonban miel\u0151tt \u00e1tt\u00e9rn\u00e9nk erre a tartalomra, n\u00e9zz\u00fck meg r\u00e9szletesebben a legfontosabb architektur\u00e1lis kih\u00edv\u00e1sokat, amelyekkel a gyakorlatban szembes\u00fclni kell. Ez fontos, mivel sok aspektust kell konkretiz\u00e1lni egy nem egyszer\u0171 \u00e9s soksz\u00edn\u0171 probl\u00e9m\u00e1n bel\u00fcl, majd ezt a rendszeren bel\u00fcli szab\u00e1lyoz\u00e1sok keretein bel\u00fcl kell megoldani. <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/\">Jackson Gabbard<\/a><\/noindex>, a kor\u00e1bbi Facebook munkat\u00e1rs, k\u00e9sz\u00edtett <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=ZgdS0EUmn70\">50 perces vide\u00f3t a rendszerek tervez\u00e9s\u00e9vel foglalkoz\u00f3 interj\u00fakr\u00f3l<\/a><\/noindex>, ahol megosztotta saj\u00e1t tapasztalatait t\u00f6bb sz\u00e1z p\u00e1ly\u00e1z\u00f3 \u00e1ttekint\u00e9s\u00e9ben. B\u00e1r a vide\u00f3 kifejezetten a nagym\u00e9ret\u0171 rendszerek tervez\u00e9s\u00e9vel \u00e9s a poz\u00edci\u00f3hoz keresett jel\u00f6ltek kiv\u00e1laszt\u00e1s\u00e1hoz sz\u00fcks\u00e9ges sikerkrit\u00e9riumokkal foglalkozik, m\u00e9gis \u00e1tfog\u00f3 forr\u00e1ss\u00e1 v\u00e1lik arr\u00f3l, hogy mi a legfontosabb a rendszerek tervez\u00e9se sor\u00e1n. Azt is javaslom, <noindex><a rel=\"nofollow\" href=\"https:\/\/jg.gg\/2016\/07\/31\/architecture-and-systems-design-interview\/\">a vide\u00f3 \u00f6sszefoglal\u00f3j\u00e1t<\/a><\/noindex> .<\/p>\n<p><b>Fejlessze az adatok t\u00e1rol\u00e1s\u00e1r\u00f3l \u00e9s el\u0151h\u00edv\u00e1s\u00e1r\u00f3l szerzett ismereteit<\/b> <\/p>\n<p>\u00c1ltal\u00e1ban a d\u00f6nt\u00e9s, hogy mik\u00e9nt fogja hossz\u00fa t\u00e1von t\u00e1rolni \u00e9s kiadni az adatait, kritikus hat\u00e1ssal van a rendszer teljes\u00edtm\u00e9ny\u00e9re. Ez\u00e9rt el\u0151sz\u00f6r is tiszt\u00e1ban kell lennie a felt\u00e9telezett \u00edr\u00e1si \u00e9s olvas\u00e1si teljes\u00edtm\u00e9nnyel a rendszer\u00e9ben. Ezt k\u00f6vet\u0151en \u00e9rt\u00e9kelnie kell ezeket a mutat\u00f3kat, \u00e9s a felm\u00e9r\u00e9sek alapj\u00e1n kell v\u00e1lasztania. Azonban hat\u00e9konyan v\u00e9gezheti ezt a munk\u00e1t, ha tiszt\u00e1ban van a l\u00e9tez\u0151 adatok t\u00e1rol\u00e1si mint\u00e1kkal. Ez alapvet\u0151en mag\u00e1ban foglalja a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#database\">adatb\u00e1zis kiv\u00e1laszt\u00e1s\u00e1nak<\/a><\/noindex>. <\/p>\n<p>Az adatb\u00e1zisok tekinthet\u0151k olyan adatszerkezeteknek, amelyek \u00e9len j\u00e1rnak a sk\u00e1l\u00e1zhat\u00f3s\u00e1gban \u00e9s tart\u00f3ss\u00e1gban. Ez\u00e9rt az adatszerkezetek ismerete nagyon hasznos lehet az adatb\u00e1zisok kiv\u00e1laszt\u00e1sakor. P\u00e9ld\u00e1ul, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/data-types-intro\">Redis<\/a><\/noindex> \u2013 ez egy adatstrukt\u00fara-szerver, amely k\u00fcl\u00f6nb\u00f6z\u0151 t\u00edpus\u00fa \u00e9rt\u00e9keket t\u00e1mogat. Lehet\u0151v\u00e9 teszi olyan adatstrukt\u00far\u00e1kkal val\u00f3 munk\u00e1t, mint a list\u00e1k \u00e9s halmazok, valamint a k\u00f6zismert algoritmusok seg\u00edts\u00e9g\u00e9vel adatokat olvasni, p\u00e9ld\u00e1ul, <noindex><a rel=\"nofollow\" href=\"https:\/\/redis.io\/topics\/lru-cache\">LRU<\/a><\/noindex>, megszervezve ezt a munk\u00e1t tart\u00f3s \u00e9s nagy rendelkez\u00e9sre \u00e1ll\u00e1s\u00fa m\u00f3don. <\/p>\n<p><img decoding=\"async\" alt=\"Szoftverarchitekt\u00fara \u00e9s rendszerek tervez\u00e9se: \u00e1ltal\u00e1nos k\u00e9p \u00e9s forr\u00e1sek kalauz\" src=\"\/wp-content\/uploads\/2019\/07\/8e30da0e8edd592609466f3c6c6f66d1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>K\u00e9p <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/JuFcQxgCXwA?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Samuel Zellert<\/a><\/noindex> az Unsplash-r\u0151l<\/i><\/p>\n<p>Amikor m\u00e1r kell\u0151k\u00e9ppen megismerkedt\u00e9l a k\u00fcl\u00f6nf\u00e9le adatmeg\u0151rz\u00e9si mint\u00e1kkal, l\u00e9pj tov\u00e1bb az adatok konzisztenci\u00e1j\u00e1nak \u00e9s el\u00e9rhet\u0151s\u00e9g\u00e9nek tanulm\u00e1nyoz\u00e1s\u00e1ra. El\u0151sz\u00f6r is meg kell tanulnod <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cap-theorem\">a CAP-t\u00e9telt<\/a><\/noindex> legal\u00e1bbis \u00e1ltal\u00e1nos \u00e9rtelemben, majd ezt a tud\u00e1st csiszold, r\u00e9szletesebben megvizsg\u00e1lva a megalapozott <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#consistency-patterns\">konzisztencia<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#availability-patterns\">el\u00e9rhet\u0151s\u00e9g<\/a><\/noindex>. \u00cdgy sz\u00e9lesebb l\u00e1t\u00f3k\u00f6rt nyersz ezen a ter\u00fcleten, \u00e9s meg\u00e9rted, hogy az adatok olvas\u00e1sa \u00e9s \u00edr\u00e1sa val\u00f3j\u00e1ban k\u00e9t nagyon k\u00fcl\u00f6nb\u00f6z\u0151 probl\u00e9ma, mindkett\u0151 saj\u00e1tos kih\u00edv\u00e1sokkal j\u00e1r. N\u00e9h\u00e1ny konzisztencia- \u00e9s el\u00e9rhet\u0151s\u00e9gbiztos\u00edt\u00f3 mint\u00e1val felv\u00e9rtezve jelent\u0151s m\u00e9rt\u00e9kben n\u00f6velheted a rendszer teljes\u00edtm\u00e9ny\u00e9t, mik\u00f6zben garant\u00e1lod az adatfolyam zavartalan ell\u00e1t\u00e1s\u00e1t az alkalmaz\u00e1said sz\u00e1m\u00e1ra.<\/p>\n<p>V\u00e9g\u00fcl, befejezve a t\u00e1rol\u00e1si k\u00e9rd\u00e9sekr\u0151l folytatott besz\u00e9lget\u00e9st, meg kell eml\u00edteni a gyors\u00edt\u00f3t\u00e1raz\u00e1st is. Az gyors\u00edt\u00f3t\u00e1raz\u00e1st v\u00e9gezze egyszerre az \u00fcgyf\u00e9l \u00e9s a szerver? Milyen adatok lesznek a gyors\u00edt\u00f3d\u00e1ljban? \u00c9s mi\u00e9rt? Hogyan szervezed meg a gyors\u00edt\u00f3t\u00e1r \u00e9rv\u00e9nytelen\u00edt\u00e9s\u00e9t? Rendszeresen t\u00f6rt\u00e9nik, meghat\u00e1rozott id\u0151k\u00f6z\u00f6nk\u00e9nt? Ha igen, milyen gyakran? Javaslom, hogy ezekkel a t\u00e9m\u00e1kkal a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#cache\">k\u00f6vetkez\u0151 fejezettel<\/a><\/noindex> megjelen\u00edtett rendszervizsg\u00e1l\u00f3 k\u00f6nyvecsk\u00e9j\u00e9vel kezdd el foglalkozni. <\/p>\n<p><b>Kommunik\u00e1ci\u00f3s mint\u00e1k<\/b><\/p>\n<p>A rendszerek k\u00fcl\u00f6nb\u00f6z\u0151 komponensekb\u0151l \u00e1llnak; ezek lehetnek olyan folyamatok, amelyek egyazon fizikai csom\u00f3ponton bel\u00fcl m\u0171k\u00f6dnek, vagy k\u00fcl\u00f6nb\u00f6z\u0151 g\u00e9pek, amelyek a h\u00e1l\u00f3zat k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szein tal\u00e1lhat\u00f3k. Ezen er\u0151forr\u00e1sok egy r\u00e9sze a h\u00e1l\u00f3zaton bel\u00fcl lehet priv\u00e1t, m\u00edg m\u00e1soknak nyilv\u00e1nosnak \u00e9s a k\u00fcls\u0151 felhaszn\u00e1l\u00f3k sz\u00e1m\u00e1ra el\u00e9rhet\u0151nek kell lenni\u00fck.<\/p>\n<p>Biztos\u00edtani kell ezen er\u0151forr\u00e1sok k\u00f6z\u00f6tti kommunik\u00e1ci\u00f3t, valamint az inform\u00e1ci\u00f3k cser\u00e9j\u00e9t az eg\u00e9sz rendszer \u00e9s a k\u00fcls\u0151 vil\u00e1g k\u00f6z\u00f6tt. A rendszerek tervez\u00e9s\u00e9nek \u00f6sszef\u00fcgg\u00e9s\u00e9ben itt ism\u00e9t \u00faj, egyedi kih\u00edv\u00e1sokkal tal\u00e1lkozunk. Megtudjuk, hogy milyen el\u0151ny\u00f6ket ny\u00fajthatnak <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#asynchronism\">aszinkron feladatfolyamok<\/a><\/noindex>, \u00e9s milyen kih\u00edv\u00e1sokkal j\u00e1rnak.<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#communication\">el\u00e9rhet\u0151ek k\u00fcl\u00f6nb\u00f6z\u0151 kommunik\u00e1ci\u00f3s mint\u00e1k<\/a><\/noindex>. <\/p>\n<p><img decoding=\"async\" alt=\"Szoftverarchitekt\u00fara \u00e9s rendszerek tervez\u00e9se: \u00e1ltal\u00e1nos k\u00e9p \u00e9s forr\u00e1sek kalauz\" src=\"\/wp-content\/uploads\/2019\/07\/e4dc98256b755acf931097d218f8b0dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>K\u00e9p <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> az Unsplash-r\u0151l<\/i><\/p>\n<p>A k\u00fcls\u0151 vil\u00e1ggal val\u00f3 kommunik\u00e1ci\u00f3 megszervez\u00e9s\u00e9n\u00e9l mindig nagyon fontos <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer\/#security\">biztons\u00e1g<\/a><\/noindex>, amelyhez szint\u00e9n komolyan kell hozz\u00e1\u00e1llni \u00e9s akt\u00edvan foglalkozni vele. <\/p>\n<p><b>Kapcsolatok eloszt\u00e1sa<\/b><\/p>\n<p>Nem vagyok biztos benne, hogy ennek a t\u00e9m\u00e1nak \u00f6n\u00e1ll\u00f3 r\u00e9szbe helyez\u00e9se mindenki sz\u00e1m\u00e1ra indokolt lenne. Mindazon\u00e1ltal itt r\u00e9szletesen kifejtem ezt a koncepci\u00f3t, \u00e9s \u00fagy v\u00e9lem, hogy ennek a r\u00e9sznek az anyaga legjobban a \"kapcsolatok eloszt\u00e1sa\" (connection distribution) kifejez\u00e9ssel \u00edrhat\u00f3 le.<\/p>\n<p>A rendszerek t\u00f6bb komponens helyes \u00f6sszekapcsol\u00e1s\u00e1val alakulnak ki, \u00e9s a k\u00f6zt\u00fck l\u00e9v\u0151 kommunik\u00e1ci\u00f3 gyakran megszil\u00e1rdult protokollok, p\u00e9ld\u00e1ul a TCP \u00e9s UDP alapj\u00e1n szervez\u0151dik. Azonban ezek a protokollok gyakran nem elegend\u0151ek a modern rendszerek \u00f6sszes ig\u00e9ny\u00e9nek kiel\u00e9g\u00edt\u00e9s\u00e9re, amelyek gyakran magas terhel\u00e9s alatt m\u0171k\u00f6dnek, \u00e9s jelent\u0151sen f\u00fcggenek a felhaszn\u00e1l\u00f3k ig\u00e9nyeit\u0151l. Gyakran sz\u00fcks\u00e9g van a kapcsolatok eloszt\u00e1s\u00e1nak m\u00f3djainak keres\u00e9s\u00e9re a rendszeren bel\u00fcli magas terhel\u00e9sek kezel\u00e9s\u00e9re.<\/p>\n<p>Ennek az eloszt\u00e1snak a h\u00e1tter\u00e9ben j\u00f3l ismert <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DNS\">a domain n\u00e9vrendszer<\/a><\/noindex> (DNS) \u00e1ll. Ez a rendszer lehet\u0151v\u00e9 teszi a domain n\u00e9v \u00e1tkonvert\u00e1l\u00e1s\u00e1t, p\u00e9ld\u00e1ul a s\u00falyozott k\u00f6rk\u00f6r\u00f6s algoritmus (weighted round robin) \u00e9s k\u00e9sleltet\u00e9salap\u00fa m\u00f3dszerek, amelyek seg\u00edtenek az terhel\u00e9s eloszt\u00e1s\u00e1ban. <\/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\">A terhel\u00e9seloszt\u00e1s<\/a><\/noindex> alapvet\u0151en fontos, \u00e9s gyakorlatilag b\u00e1rmelyik nagyobb internetes rendszer, amellyel ma foglalkozunk, egy vagy t\u00f6bb terhel\u00e9seloszt\u00f3 m\u00f6g\u00f6tt helyezkedik el. A terhel\u00e9seloszt\u00f3k seg\u00edtenek a felhaszn\u00e1l\u00f3i k\u00e9r\u00e9sek eloszt\u00e1s\u00e1ban a rendelkez\u00e9sre \u00e1ll\u00f3 p\u00e9ld\u00e1nyok k\u00f6z\u00f6tt. A terhel\u00e9seloszt\u00f3k lehetnek hardveresek vagy szoftveresek, de a gyakorlatban gyakrabban foglalkozunk szoftveresekkel, p\u00e9ld\u00e1ul a <noindex><a rel=\"nofollow\" href=\"http:\/\/www.haproxy.org\/\">HAProxy<\/a><\/noindex> \u00e9s <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\">A ford\u00edtott proxik<\/a><\/noindex> konceptu\u00e1lisan szint\u00e9n nagyon hasonl\u00edt a terhel\u00e9seloszt\u00f3khoz, de az els\u0151 \u00e9s a m\u00e1sodik k\u00f6z\u00f6tt van n\u00e9h\u00e1ny <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/donnemartin\/system-design-primer#load-balancer-vs-reverse-proxy\">kifejezett k\u00fcl\u00f6nbs\u00e9g<\/a><\/noindex>. Ezeket a k\u00fcl\u00f6nbs\u00e9geket figyelembe kell venni, amikor a rendszert az \u00d6n ig\u00e9nyeinek megfelel\u0151en tervezz\u00fck.<\/p>\n<p>A tartalomszolg\u00e1ltat\u00f3 h\u00e1l\u00f3zatokkal <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Content_Delivery_Network\">is \u00e9rdemes tiszt\u00e1ban lenni.<\/a><\/noindex> (CDN). A CDN egy glob\u00e1lisan elosztott proxyk h\u00e1l\u00f3zata, amely az inform\u00e1ci\u00f3kat a konkr\u00e9t felhaszn\u00e1l\u00f3hoz f\u00f6ldrajzilag legk\u00f6zelebb elhelyezked\u0151 csom\u00f3pontokb\u00f3l sz\u00e1ll\u00edtja. CDN h\u00e1l\u00f3zatot \u00e9rdemes haszn\u00e1lni, ha statikus f\u00e1jlokkal dolgozik, mint p\u00e9ld\u00e1ul JavaScript, CSS \u00e9s HTML. Ezenk\u00edv\u00fcl napjainkban n\u00e9pszer\u0171ek azok a felh\u0151szolg\u00e1ltat\u00e1sok, amelyek forgalomkezel\u0151ket k\u00edn\u00e1lnak, mint p\u00e9ld\u00e1ul <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>, amelyek glob\u00e1lis eloszt\u00e1st \u00e9s cs\u00f6kkentett k\u00e9sleltet\u00e9st biztos\u00edtanak dinamikus tartalom kezel\u00e9sekor. Azonban ezek a szolg\u00e1ltat\u00e1sok \u00e1ltal\u00e1ban akkor hasznosak, amikor \u00e1llapot n\u00e9lk\u00fcli webszolg\u00e1ltat\u00e1sokkal dolgozunk. <\/p>\n<p><b>Besz\u00e9lj\u00fcnk az \u00fczleti logik\u00e1r\u00f3l. Az \u00fczleti logika, a feladat\u00e1ramok \u00e9s a komponensek strukt\u00far\u00e1ja.<\/b><\/p>\n<p>Nos, m\u00e1r megvitattuk a rendszer k\u00fcl\u00f6nb\u00f6z\u0151 infrastrukt\u00fara-aspektusait. Val\u00f3sz\u00edn\u0171, hogy a felhaszn\u00e1l\u00f3 nem is gondol mindezekre a rendszer elemeire, \u00e9s \u0151szint\u00e9n sz\u00f3lva egy\u00e1ltal\u00e1n nem is t\u00f6r\u0151dik vel\u00fck. A felhaszn\u00e1l\u00f3t az \u00e9rdekli, milyen interakci\u00f3kat k\u00edn\u00e1l a rendszer, mit lehet el\u00e9rni ezzel vagy azzal a l\u00e9p\u00e9ssel, \u00e9s hogyan hajtja v\u00e9gre a rendszer a felhaszn\u00e1l\u00f3i parancsokat, mit csin\u00e1l a felhaszn\u00e1l\u00f3i adatokkal.<\/p>\n<p>Ahogy a cikk c\u00edme is mutatja, arr\u00f3l akartam besz\u00e9lni, hogy mi a szoftverarchitekt\u00fara \u00e9s a rendszerek tervez\u00e9se. \u00cdgy nem terveztem, hogy a szoftverfejleszt\u00e9si mint\u00e1kra \u00f6sszpontos\u00edtok, amelyeket a programkomponensek l\u00e9trehoz\u00e1s\u00e1nak m\u00f3dj\u00e1ba tartoznak. Azonban min\u00e9l t\u00f6bbet gondolkodom err\u0151l, ann\u00e1l ink\u00e1bb \u00fagy t\u0171nik, hogy a hat\u00e1r a szoftverfejleszt\u00e9si mint\u00e1k \u00e9s az architektur\u00e1lis mint\u00e1k k\u00f6z\u00f6tt meglehet\u0151sen hom\u00e1lyos, \u00e9s a k\u00e9t koncepci\u00f3 szorosan \u00f6sszefon\u00f3dik. P\u00e9ld\u00e1ul n\u00e9zz\u00fck meg a <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">esem\u00e9nyek regisztr\u00e1l\u00e1s\u00e1t<\/a><\/noindex> (event sourcing). Ha ezt az architektur\u00e1lis mint\u00e1t alkalmazza, akkor az gyakorlatilag minden szempontot befoly\u00e1solni fog a rendszer\u00e9ben: adatok hossz\u00fa t\u00e1v\u00fa t\u00e1rol\u00e1sa, a rendszer\u00e9ben elfogadott konzisztenciaszint, a rendszerben tal\u00e1lhat\u00f3 komponensek kont\u00farjai stb. Ez\u00e9rt \u00fagy d\u00f6nt\u00f6ttem, hogy megeml\u00edtek n\u00e9h\u00e1ny architektur\u00e1lis mint\u00e1t, amelyek k\u00f6zvetlen\u00fcl vonatkoznak az \u00fczleti logik\u00e1ra. M\u00e9g ha ebben a cikkben meg is kell el\u00e9gedn\u00fcnk egy egyszer\u0171 list\u00e1val, javaslom, hogy ismerkedjen meg vele \u00e9s gondolja \u00e1t a mint\u00e1khoz kapcsol\u00f3d\u00f3 \u00f6tleteket. \u00cdme:<\/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)\">SOLID elvek<\/a><\/noindex> <\/li>\n<li>Koncepci\u00f3k <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\">T\u00e1rgyorient\u00e1lt tervez\u00e9s<\/a><\/noindex>, k\u00fcl\u00f6n\u00f6sen <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/aggregates-in-domain-driven-design-5aab3ef9901d\">egys\u00e9gek<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/ingeniouslysimple\/command-vs-event-in-domain-driven-design-be6c45be52a9\">csapatok \u00e9s esem\u00e9nyek<\/a><\/noindex> <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/267125\/\">Hexagon\u00e1lis architekt\u00fara<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/CQRS.html\">Felel\u0151ss\u00e9g megoszt\u00e1sa csapatok \u00e9s k\u00e9r\u00e9sek k\u00f6z\u00f6tt (CQRS)<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/eaaDev\/EventSourcing.html\">Esem\u00e9nyek regisztr\u00e1l\u00e1sa<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/doc.akka.io\/docs\/akka\/2.5\/guide\/actors-intro.html\">Aktor modell<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/215605\/\">MVC, MVVM \u00e9s MVP tervez\u00e9si mint\u00e1k<\/a><\/noindex><\/li>\n<\/ul>\n<p>\n<b>Egy\u00fcttm\u0171k\u00f6d\u0151 megk\u00f6zel\u00edt\u00e9sek<\/b><\/p>\n<p>Nagyon val\u00f3sz\u00edn\u0171tlen, hogy \u00d6n lesz az a r\u00e9sztvev\u0151 a projektben, aki egyed\u00fcl felel\u0151s a rendszer tervez\u00e9si folyamat\u00e1\u00e9rt. \u00c9ppen ellenkez\u0151leg, val\u00f3sz\u00edn\u0171, hogy egy\u00fctt kell m\u0171k\u00f6dnie koll\u00e9g\u00e1ival, akik a feladat\u00e1n bel\u00fcl \u00e9s azon k\u00edv\u00fcl dolgoznak. Ebben az esetben sz\u00fcks\u00e9g lehet arra, hogy k\u00f6z\u00f6sen \u00e9rt\u00e9kelj\u00e9k a kiv\u00e1lasztott technol\u00f3giai megold\u00e1sokat, kiemelj\u00e9k az \u00fczleti ig\u00e9nyeket \u00e9s meg\u00e9rts\u00e9k, hogyan lehet a feladatokat a legjobban p\u00e1rhuzamos\u00edtani.<\/p>\n<p><img decoding=\"async\" alt=\"Szoftverarchitekt\u00fara \u00e9s rendszerek tervez\u00e9se: \u00e1ltal\u00e1nos k\u00e9p \u00e9s forr\u00e1sek kalauz\" src=\"\/wp-content\/uploads\/2019\/07\/ad39e031dcac8e69fafb637603043bfb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>K\u00e9p <noindex><a rel=\"nofollow\" href=\"https:\/\/unsplash.com\/photos\/3V8xo5Gbusk?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Kaleidico<\/a><\/noindex> az Unsplash-r\u0151l<\/i><\/p>\n<p>Els\u0151sorban pontos \u00e9s k\u00f6z\u00f6sen elfogadott k\u00e9pet kell kialak\u00edtani arr\u00f3l, hogy mi az az \u00fczleti c\u00e9l, amit el szeretne \u00e9rni, \u00e9s milyen mozg\u00f3 elemekkel kell foglalkoznia. A csoportos modellez\u00e9si technik\u00e1k, nevezetesen <noindex><a rel=\"nofollow\" href=\"https:\/\/techbeacon.com\/devops\/introduction-event-storming-easy-way-achieve-domain-driven-design\">esem\u00e9nyviharoz\u00e1s<\/a><\/noindex> (event storming) jelent\u0151sen felgyors\u00edthatj\u00e1k ezt a folyamatot, \u00e9s n\u00f6velik az \u00d6n siker\u00e9nek es\u00e9lyeit. Ezt a munk\u00e1t elv\u00e9gezheti m\u00e9g azel\u0151tt vagy azut\u00e1n, hogy k\u00f6rvonalazn\u00e1 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.infoq.com\/news\/2015\/02\/service-boundaries-healthcare\/\">szolg\u00e1ltat\u00e1saik hat\u00e1rait<\/a><\/noindex>, majd ennek m\u00e9lyebb meg\u00e9rt\u00e9s\u00e9vel foglalkozhat, ahogy a term\u00e9k \u00e9rik. Az itt el\u00e9rend\u0151 \u00f6sszhang szintje alapj\u00e1n megfogalmazhatja <noindex><a rel=\"nofollow\" href=\"https:\/\/martinfowler.com\/bliki\/UbiquitousLanguage.html\">egys\u00e9ges nyelvet<\/a><\/noindex> az \u00d6n \u00e1ltal haszn\u00e1lt korl\u00e1tozott kontextus sz\u00e1m\u00e1ra. Amikor arr\u00f3l kell besz\u00e9lnie, hogy milyen az \u00d6n rendszer\u00e9nek architekt\u00far\u00e1ja, hasznos lehet egy <noindex><a rel=\"nofollow\" href=\"https:\/\/c4model.com\/\">C4 modell<\/a><\/noindex>, amelyet <noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/simonbrown\">Simon Brown<\/a><\/noindex>javasolt, k\u00fcl\u00f6n\u00f6sen akkor, amikor meg kell \u00e9rtenie, hogy mennyire kell m\u00e9lyen belemer\u00fclnie a probl\u00e9m\u00e1ba, visualiz\u00e1lva azokat a dolgokat, amelyeket k\u00f6z\u00f6lni szeretne.<\/p>\n<p>Val\u00f3sz\u00edn\u0171, hogy az ezen a ter\u00fcleten l\u00e9tezik m\u00e1s \u00e9rett technol\u00f3gia is, amely nem kev\u00e9sb\u00e9 hasznos, mint a t\u00e1rgyorient\u00e1lt tervez\u00e9s. M\u00e9gis, b\u00e1rmilyen okb\u00f3l visszat\u00e9r\u00fcnk a t\u00e1rgyter\u00fclet meg\u00e9rt\u00e9s\u00e9hez, \u00edgy a t\u00e1rgyorient\u00e1lt tervez\u00e9s ter\u00e9n szerzett tud\u00e1s \u00e9s tapasztalat seg\u00edthet \u00d6nnek. <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\">t\u00e1rgyorient\u00e1lt tervez\u00e9s<\/a><\/noindex> kell, hogy hasznos legyen.<br \/>\n<br \/>Forr\u00e1s: <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\/hu\/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=\"hu_HU\" \/>\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\/hu\/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\udd47Szoftverarchitekt\u00fara \u00e9s rendszerek tervez\u00e9se: \u00e1ltal\u00e1nos \u00e1ttekint\u00e9s \u00e9s er\u0151forr\u00e1s-\u00fatmutat\u00f3 | ProHoster","description":"\u00dcdv\u00f6zletem, koll\u00e9g\u00e1k. Ma bemutat\u00e1sra ker\u00fcl Tugberk Ugurlu cikk\u00e9nek ford\u00edt\u00e1sa, aki viszonylag kis terjedelemben k\u00eds\u00e9rli meg \u00f6sszefoglalni a modern szoftverek tervez\u00e9si elveit.","canonical_url":"https:\/\/prohoster.info\/hu\/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":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/36518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=36518"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/36518\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/27331"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=36518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=36518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=36518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}