{"id":95403,"date":"2020-09-28T19:43:15","date_gmt":"2020-09-28T17:43:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3"},"modified":"2020-09-28T19:43:15","modified_gmt":"2020-09-28T17:43:15","slug":"vybor-arhitekturnogo-stilya-chast-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3","title":{"rendered":"Scelta dello stile architettonico (parte 3)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Pozdravljen, Habr. Danes nadaljujem s serijo objav, ki sem jih napisal posebej ob za\u010detku novega te\u010daja. <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/z0Ur\/\">\u00abSoftware Architect\u00bb<\/a><\/noindex>.<\/i><\/b><\/p>\n<p><\/p>\n<h2>Uvod<\/h2>\n<p>\nOdabir arhitektonskog stila jedan je od osnovnih tehni\u010dkih re\u0161enja pri izgradnji informacionog sistema. U ovoj seriji \u010dlanaka predla\u017eem da razmotrimo najpopularnije arhitektonske stilove izgradnje aplikacija i odgovorimo na pitanje kada je koji arhitektonski stil najprikladniji. Tokom izlaganja \u0107u poku\u0161ati da sprovedem logi\u010dki sled koji obja\u0161njava razvoj arhitektonskih stilova od monolita do mikroservisa. <\/p>\n<p>Nazadnje smo govorili o razli\u010dnih vrstah monolitov in o uporabi komponent za njihovo gradnjo, tako komponent za sestavljanje kot komponent za uvajanje. Poglobljeno smo se ukvarjali s storitveno usmerjeno arhitekturo.<\/p>\n<p>Zdaj bomo kon\u010dno opredelili osnovne zna\u010dilnosti mikrostoritvene arhitekture. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Odnos arhitektur<\/h2>\n<p>\nTreba je razumeti, da na podlagi podatkov iz prej\u0161njih \u010dlankov vsak storitev predstavlja komponento, vendar ne vsaka storitev je mikrostoritev. <\/p>\n<h2>Zna\u010dilnosti mikrostoritvene arhitekture<\/h2>\n<p>\nOsnovne zna\u010dilnosti mikrostoritvene arhitekture so:<\/p>\n<ul>\n<li>Organizirano okoli poslovnih zmo\u017enosti (Organized around Business Capabilities)<\/li>\n<li>Projekti, ne izdelki (Products not Projects)<\/li>\n<li>Pametne to\u010dke dostopa in neumne cevi (Smart endpoints and dumb pipes)<\/li>\n<li>Decentralizirano upravljanje (Decentralized Governance)<\/li>\n<li>Decentralizirano upravljanje podatkov (Decentralized Data Management)<\/li>\n<li>Avtomatizacija infrastrukture (Infrastructure Automation)<\/li>\n<li>Zavarovanje pred napakami (Design for failure)<\/li>\n<li>Arhitektura z evolucijskim razvojem (Evolutionary Design)<\/li>\n<\/ul>\n<p>\n1. to\u010dka izhaja iz storitveno usmerjene arhitekture, saj so mikrostoritve posebna oblika storitev. Druge to\u010dke si zaslu\u017eijo lo\u010deno obravnavo.<\/p>\n<h2>Organizirano okoli poslovnih zmo\u017enosti (Organized around Business Capabilities)<\/h2>\n<p>\nZdaj je treba pomniti Conwayev zakon: organizacije, ki ustvarjajo sisteme, oblikujejo njihovo arhitekturo tako, da posnema strukturo interakcij znotraj teh organizacij. Kot primer lahko navedemo primer razvoja prevajalnika: ekipa sedmih ljudi je razvila sedemprehodni prevajalnik, medtem ko je ekipa petih naredila petprehodnega.<\/p>\n<p>\u010ce govorimo o monolitih in mikrostoritvah, je pri organizaciji razvoja po funkcionalnih oddelkih (ozadje, sprednji del, skrbniki podatkovnih baz) rezultat klasi\u010den monolit. <\/p>\n<p>Za pridobitev mikrostoritev je treba ekipe organizirati okoli poslovnih zmo\u017enosti (ekipa naro\u010dil, odpreme, kataloga). Tak\u0161na organizacija bo omogo\u010dila ekipam, da se osredoto\u010dijo na razvoj konkretnih delov aplikacije.<\/p>\n<h2>Projekti, ne izdelki (Products not Projects)<\/h2>\n<p>\nProjektni pristop, pri katerem ekipa prenese razvito funkcionalnost drugim ekipam v primeru mikrostoritvenih arhitektur, ne deluje dobro. Ekipa mora podpirati sistem skozi celotno njegovo \u017eivljenjsko dobo. Podjetje Amazon, eden izmed vodilnih v uvajanju mikrostoritev, je izjavil: \u201ezgradite izdelek in ga tudi za\u017eenite\u201c (angl. \u201eyou build, you run it\u201c). Pristop k izdelku omogo\u010da ekipi, da za\u010duti potrebe poslovanja. <\/p>\n<h2>Pametne to\u010dke dostopa in neumne cevi (Smart endpoints and dumb pipes)<\/h2>\n<p>\nArhitektura SOA je velik poudarek dajala komunikacijskim kanalom, \u0161e posebej Enterprise Service Bus (servisna \u0161ina podjetja). Kar pogosto pripelje do Erroneous Spaghetti Box, torej kompleksnost monolita se pretvori v kompleksnost povezav med storitvami. V mikrostoritveni arhitekturi se uporabljajo samo preprosti na\u010dini interakcije.<\/p>\n<h2>Decentralizirano upravljanje (Decentralized Governance)<\/h2>\n<p>\nKlju\u010dne odlo\u010ditve o mikrostoritvah morajo sprejemati ljudje, ki dejansko razvijajo mikrostoritve. Tukaj pod klju\u010dnimi odlo\u010ditvami razumemo izbiro<br \/>\nprogramskih jezikov, metodologije uvajanja, pogodb javnih vmesnikov itd. <\/p>\n<h2>Decentralizirano upravljanje podatkov (Decentralized Data Management)<\/h2>\n<p>\nStandardni pristop, pri katerem se aplikacija zana\u0161a na eno bazo podatkov, ne more upo\u0161tevati specifik posameznih storitev. MSA predvideva decentralizirano upravljanje podatkov, vse do uporabe razli\u010dnih tehnologij.<\/p>\n<h2>Avtomatizacija infrastrukture (Infrastructure Automation)<\/h2>\n<p>\nMSA podpira procese neprekinjenega uvajanja in dobave. To je mogo\u010de dose\u010di le z avtomatizacijo procesov. Hkrati uvajanje velikega \u0161tevila storitev ne deluje ve\u010d kot stra\u0161na naloga. Postopek uvajanja mora postati dolgo\u010dasen. Drugi vidik se nana\u0161a na upravljanje storitev v produkcijskem okolju. Brez avtomatizacije postane upravljanje procesov, ki se izvajajo v razli\u010dnih operativnih okoljih, nemogo\u010de.<\/p>\n<h2>Zavarovanje pred napakami (Design for failure)<\/h2>\n<p>\n\u0160tevilne storitve MSA so podvr\u017eene napakam. Hkrati je obravnava napak v razdistributed sistemu precej zapletena naloga. Arhitektura aplikacij mora biti odporna na tak\u0161ne napake. Rebecca Parsons meni, da je zelo pomembno, da ne uporabljamo niti medprocesne komunikacije med storitvami, temve\u010d za povezovanje uporabljamo HTTP, ki nikakor ni tako zanesljiv.<\/p>\n<h2>Arhitektura z evolucijskim razvojem (Evolutionary Design)<\/h2>\n<p>\nArhitektura MSA sistema se mora razvijati evolutivno. Po\u017eeljno je ograni\u010diti potrebne promjene unutar granica jedne usluge. Tako\u0111er je potrebno uzeti u obzir utjecaj na druge usluge. Tradicionalni pristup se sastoji u poku\u0161aju rje\u0161avanja ovog problema putem upravljanja verzijama, ali MSA podrazumijeva kori\u0161tenje upravljanja verzijama u<br \/>\nkao krajnje sredstvo.<\/p>\n<h2>Zaklju\u010dek<\/h2>\n<p>\nNakon svega re\u010denog, mo\u017eemo formulirati \u0161to su mikrousluge. Mikrouslu\u017ena arhitektura je pristup razvoju zasebne aplikacije u obliku skupa malih usluga, od kojih svaka radi u svom vlastitom procesu i komunicira putem pojednostavljenih mehanizama, \u010desto HTTP API su\u010deljem. Ove usluge su izgra\u0111ene na poslovnim prilikama i mogu se neovisno implementirati uz potpuno<br \/>\nautomatizirani mehanizam implementacije. Postoji minimalna razina centraliziranog upravljanja ovim uslugama, koje mogu biti napisane na razli\u010ditim programskim jezicima i koristiti razli\u010dite tehnologije pohrane podataka.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/z0Ur\/\"><img decoding=\"async\" alt=\"Scelta dello stile architettonico (parte 3)\" src=\"\/wp-content\/uploads\/2020\/09\/f9ffd06c83921f64818842327c09108e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><i><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/519456\/\">Pro\u010ditajte dio 2<\/a><\/noindex><\/i><br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/520870\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":95404,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-95403","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.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\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\/sl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 3) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3\" \/>\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=\"2020-09-28T17:43:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-28T17:43:15+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\udd47Odabir arhitektonskog stila (dio 3) | ProHoster","description":"Pozdrav, Habr.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 3) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-3","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":"2020-09-28T17:43:15+00:00","article:modified_time":"2020-09-28T17:43:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"95403","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:06:26","updated":"2022-10-01 11:38:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/95403","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=95403"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/95403\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/95404"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=95403"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=95403"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=95403"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}