{"id":94574,"date":"2020-09-18T19:42:57","date_gmt":"2020-09-18T17:42:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2"},"modified":"2020-09-18T19:42:57","modified_gmt":"2020-09-18T17:42:57","slug":"vybor-arhitekturnogo-stilya-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","title":{"rendered":"Arhitektuuristiili valik (osa 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Tere, Habr. T\u00e4na j\u00e4tkan artiklite seeriat, mille kirjutasingi uue kursuse alguseks <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\">\u201eSoftware Architect\u201c<\/a><\/noindex>. <\/i><\/b><\/p>\n<p><\/p>\n<h2>Sissejuhatus<\/h2>\n<p>\nArhitektuuristiili valik on \u00fcks peamisi tehnilisi otsuseid teabe s\u00fcsteemi loomisel. Selles artiklite seerias k\u00e4sitleme k\u00f5ige populaarsemaid rakenduste arhitektuuristiile ja vastame k\u00fcsimusele, millal on milline arhitektuuristiil k\u00f5ige eelistatum. K\u00e4sitlen loogilist ahelat, mis selgitab arhitektuuristiilide arengut monoliitsetest mikroteenustele. <\/p>\n<p>Uues <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/516880\/\">eelmine kord<\/a><\/noindex> Me oleme uurinud monoliiti ja j\u00f5udnud j\u00e4reldusele, et monoliidil on mitmeid probleeme: suurus, seotus, juurutamine, skaleeritavus, usaldusv\u00e4\u00e4rsus ja j\u00e4ikus. <\/p>\n<p>Seekord soovin r\u00e4\u00e4kida s\u00fcsteemi korraldamise v\u00f5imalustest modulaarsena\/raamatukogude kujul (komponendip\u00f5hine arhitektuur) v\u00f5i teenustena (teenusp\u00f5hine arhitektuur).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Komponendip\u00f5hine arhitektuur<\/h2>\n<p>\nKomponendip\u00f5hine arhitektuur tugineb s\u00fcsteemi \u00fclesehitusele, mis koosneb komponentidest, mida saab kasutada nii praegustes kui ka tulevastes projektides. S\u00fcsteemi komponentideks jagamisel arvestatakse: nende korduvkasutatavust, asendatavust, kontekstist s\u00f5ltumatust, laiendatavust, kapseldatavust ja iseseisvust.<\/p>\n<p>\u00d5igesti kasutades ei teki probleemi \u201esuure r\u00e4pane komaga\u201d (suurus + k\u00f5rge seotus), ja komponendid v\u00f5ivad esindada nii kogumisi (modulid, raamatukogud) kui ka juurutamis\u00fcksusi (teenused). Juurutamis\u00fcksused ei pruugi alati olla seotud k\u00e4ivitatava protsessiga: n\u00e4iteks veebirakendus ja andmebaas juurutatakse koos. <\/p>\n<p>Enamasti arendatakse monoliite modulaarsete komplektidena. See l\u00e4henemine tagab arenduse iseseisvuse, kuid samas j\u00e4\u00e4vad probleemid iseseisva skaleeritavuse ja juurutamise, t\u00f5rke- ja tehnoloogiahalli s\u00f5ltumatuse lahendamata. Seet\u00f5ttu on moodul osaliselt iseseisev komponent.<\/p>\n<p>Selle monoliidi peamine probleem on see, et jagamine mooduliteks on puhtalt loogiline ja arendajad v\u00f5ivad seda kergesti rikkuda. V\u00f5ib tekkida core moodul, mis j\u00e4rk-j\u00e4rgult muutub pr\u00fcgilaks, moodulite vahel v\u00f5ivad s\u00f5ltuvuste grafid paisuda jne. Selliste probleemide v\u00e4ltimiseks peaks arendus toimuma kas v\u00e4ga k\u00fcpse meeskonna poolt v\u00f5i \u201earhitekti\u201d juhendamisel, kes t\u00f6\u00f6tab t\u00e4ist\u00f6\u00f6ajaga koodivaatamiste kallal ja hoiab silma peal loogilist struktuuri rikkuvatel arendajatel. <\/p>\n<p>\u201eT\u00e4iuslik\u201d monoliit on koosnev loogiliselt eraldatud moodulitest, millest iga\u00fchel on oma andmebaas.<\/p>\n<h2>Teenusp\u00f5hine arhitektuur<\/h2>\n<p>\nKui siiski plaanitakse s\u00fcsteemi korraldada teenuste kogumina, siis r\u00e4\u00e4gime teenustep\u00f5hisest arhitektuurist. Selle printsiibid: rakenduste \u00fchilduvus, kasutajakesksus, \u00e4riteenuste korduv kasutamine, s\u00f5ltumatud tehnoloogiakomplektidest ja autonoomsus (iseseisev evolutsioon, skaleeritavus ja rakendamine).<\/p>\n<p>Teenustep\u00f5hine arhitektuur (SOA = service oriented architecture) lahendab k\u00f5ik monoliidi probleemid: muudatuste korral m\u00f5jutatakse ainult teenust, samas kui selgelt m\u00e4\u00e4ratletud API toetab head komponentide kapseldamist. <\/p>\n<p>Kuid mitte k\u00f5ik ei ole nii sujuv: SOA toob esile uusi probleeme. Kaugkutsed on kallimad kui kohalikud ning \u00fclesannete jaotamine komponentide vahel muutus oluliselt kallimaks.<\/p>\n<p>Muide, iseseisva rakendamise v\u00f5imalus on teenuse v\u00e4ga oluline omadus. Kui teenuseid tuleb rakendada koos v\u00f5i veelgi enam, kindlas j\u00e4rjestuses, siis ei saa s\u00fcsteemi pidada teenustep\u00f5hiseks. Sellisel juhul r\u00e4\u00e4gitakse hajutatud monoliidist (mis loetakse antipatterniks mitte ainult SOA vaatepunktist, vaid ka mikroteenuste arhitektuurist). <\/p>\n<p>Teenustep\u00f5hist arhitektuuri toetavad h\u00e4sti arhitektuuri kogukond ja tarnijad. Seet\u00f5ttu on olemas palju kursusi ja sertifikaate, samuti h\u00e4sti l\u00e4bi t\u00f6\u00f6tatud mustreid. Nendesse kuulub n\u00e4iteks tuntud ettev\u00f5tte teenuste buss (ESB = enterprise service bus). Samas on ESB tarnijate pagas, see ei pea tingimata olema SOA-s kasutusel.<\/p>\n<p>Teenustep\u00f5hise arhitektuuri populaarsuse tipp langes umbes 2008. aastasse, p\u00e4rast mida see hakkas langema, mis muutus oluliselt j\u00e4rsemaks p\u00e4rast mikroteenuste ilmumist (~2015. aasta).<\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nP\u00e4rast seda, kui oleme arutanud v\u00f5imalusi teabe s\u00fcsteemide korraldamiseks teenuste ja moodulitena, soovitan l\u00f5puks liikuda mikroteenuste arhitektuuri printsiipide juurde ja p\u00f6\u00f6rata erilist t\u00e4helepanu mikroteenuste arhitektuuri eristumisele teenustep\u00f5hisest j\u00e4rgmises osas.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\"><img decoding=\"async\" alt=\"Arhitektuuristiili valik (osa 2)\" src=\"\/wp-content\/uploads\/2020\/09\/d519b2419d13f1a7e03cc8064b83ab1f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/519456\/\">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":94575,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94574","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.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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.\" \/>\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\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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 2) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2\" \/>\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-18T17:42:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-18T17:42:57+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\udd47Arhitektuuristiili valik (osa 2) | ProHoster","description":"Tere, Habr. T\u00e4na j\u00e4tkan sariavaldusega, mille kirjutasin spetsiaalselt uue \u201eSoftware Architect\u201c kursuse alguseks.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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 2) | ProHoster","og:description":"\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.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","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-18T17:42:57+00:00","article:modified_time":"2020-09-18T17:42:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94574","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:24:26","updated":"2022-10-03 07:40:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/94574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=94574"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/94574\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/94575"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=94574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=94574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=94574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}