{"id":92810,"date":"2020-08-31T07:42:09","date_gmt":"2020-08-31T05:42:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1"},"modified":"2020-08-31T07:42:09","modified_gmt":"2020-08-31T05:42:09","slug":"vybor-arhitekturnogo-stilya-chast-1","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","title":{"rendered":"Arhitektuuristiili valik (osa 1)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Tere, Habr. Just n\u00fc\u00fcd on OTUSis avatud uus kursuse voog. <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5RTk\/\">\u201eSoftware Architect\u201c<\/a><\/noindex>. Kursuse alguses tahan jagada teiega oma autorilugu.<\/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. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Enne kui liigume edasi<\/h2>\n<p>\nKui proovite k\u00fcsida arendajatelt: \u201eMiks on mikroteenused vajalikud?\u201c, siis saate k\u00f5ige erinevamaid vastuseid. Kuulete, et mikroteenused parandavad skaleeritavust, lihtsustavad koodi m\u00f5istmist, suurendavad usaldusv\u00e4\u00e4rsust, vahel v\u00f5ite kuulda, et nad v\u00f5imaldavad \u201ekoodi puhastada\u201c. Vaatame ajaloos tagasi, et m\u00f5ista, millist eesm\u00e4rki mikroteenuste loomine j\u00e4rgnes.<\/p>\n<p>L\u00fchidalt \u00f6eldes tekkisid mikroteenused meie t\u00e4nap\u00e4evases m\u00f5istes j\u00e4rgmiselt: 2011. aastal m\u00e4rkis James Lewis, anal\u00fc\u00fcsides erinevate ettev\u00f5tete t\u00f6id, uue mustri \u201emicro-app\u201c tekkimist, mis optimeeris SOA teenuste juurutamise kiirusest. Veidi hiljem, 2012. aastal, nimetati arhitektuurisummitil muster mikroteenuseks. Seega oli mikroteenuste rakendamise algne eesm\u00e4rk parandada kurikuulsat <b>time to market<\/b>.<\/p>\n<p>Mikroteenuste laine oli 2015. aastal v\u00e4ga populaarne. M\u00f5nede uuringute kohaselt ei m\u00f6\u00f6dunud \u00fckski konverents ilma mikroteenuste teemalise ettekandeta. Veel enam, m\u00f5ned konverentsid keskendusid ainult mikroteenustele. Praegu algavad v\u00e4ga paljud projektid selle arhitektuuristiili rakendamisega, ja kui projekt sisaldab suures mahus p\u00e4randkoodi, siis t\u00f5en\u00e4oliselt toimub aktiivne \u00fcleminek mikroteenustele.<\/p>\n<p>Hoolimata eeltoodust suudab veel \u00fcsna v\u00e4ike arv arendajaid m\u00e4\u00e4ratleda m\u00f5istet \u201emikroteenus\u201c. Kuid sellest r\u00e4\u00e4gime natuke hiljem...<\/p>\n<h2>Monoliit<\/h2>\n<p>\nMikroteenustele vastanduv arhitektuuristiil on monoliit (v\u00f5i \u201ek\u00f5ik \u00fches\u201c). Selles stiilis pole m\u00f5tet r\u00e4\u00e4kida monoliidist, seet\u00f5ttu loetlen kohe selle arhitektuuristiili puudused, mis initsieerisid edasise arhitektuuristiilide arengu: suurus, seotus, juurutamine, skaleeritavus, usaldusv\u00e4\u00e4rsus ja j\u00e4ikus. Allpool tutvustan k\u00f5iki puudusi eraldi.<\/p>\n<h3>Suurus<\/h3>\n<p>\nMonoliit on v\u00e4ga suur. Ja see suhtleb tavaliselt v\u00e4ga suure andmebaasiga. Rakendus muutub liiga suureks, et seda saaks \u00fcksi m\u00f5ista. Monoliidiga saavad h\u00e4sti t\u00f6\u00f6tada ainult need, kes on selle koodiga piisavalt kaua aega veetnud, samas kui algajad kulutavad v\u00e4ga palju aega proovides monoliidiga toime tulla, ja ei ole kindel, et nad saavad sellega jagu. T\u00fc\u00fcpiliselt on monoliidi t\u00f6\u00f6s alati mingi \u201etinglik\u201c vanem, kes tunneb monoliiti enam-v\u00e4hem h\u00e4sti ja hoiab uued arendajad aasta v\u00f5i pooleteise jooksul k\u00e4puli. Loomulikult on selline tinglik vanem ainsaks rikke punktiks, ja tema lahkumine v\u00f5ib tuua kaasa monoliidi h\u00e4vimise. <\/p>\n<h3>Seos<\/h3>\n<p>\nMonoliit esindab \u201esuur must kera\u201c (big ball of mud), mille muutmine v\u00f5ib tuua ettearvamatuid tagaj\u00e4rgi. Muute \u00fches kohas, v\u00f5ib kahjustada monoliiti teises kohas (just see \u201ek\u00f5rva s\u00fcgamine, *@ kukkus maha\u201c). See on seotud sellega, et monoliidi komponendid omavad v\u00e4ga keerulisi ja mis k\u00f5ige t\u00e4htsam, mitte selgeid seoseid.<\/p>\n<h3>T\u00f5hustamine<\/h3>\n<p>\nMonoliidi t\u00f5hustamine on oma komponentide vaheliste keeruliste seoste t\u00f5ttu pikk protsess koos oma rituaaliga. Selline rituaal ei ole tavaliselt t\u00e4ielikult standardiseeritud ja seda edastatakse \"suust suhu\". <\/p>\n<h3>Skaleeritavus<\/h3>\n<p>\nMonoliidi moodulitel v\u00f5ivad olla konfliktseid vajadusi ressursside osas, mist\u00f5ttu on vajalik leida kompromiss riistvara osas. Kujutage ette, et teie monoliit koosneb teenustest A ja B. Teenus A n\u00f5uab suurt k\u00f5vakettamahtu, samas kui teenus B n\u00f5uab palju m\u00e4lu. Sellisel juhul peab masin, kuhu monoliit paigaldatakse, toetama m\u00f5lema teenuse n\u00f5udmisi, v\u00f5i tuleb k\u00e4sitsi \u00fcks teenustest v\u00e4lja l\u00fclitada.<\/p>\n<p>Veel \u00fcks n\u00e4ide (klassikalisem): teenus A on palju populaarsem kui teenus B, seega soovite, et teenuseid A oleks 100 ja teenuseid B oleks 10. Taaskord kaks varianti: kas paigaldame 100 t\u00e4isfunktsionaalset monoliiti v\u00f5i tuleb m\u00f5nes neist k\u00e4sitsi teenused B v\u00e4lja l\u00fclitada. <\/p>\n<h3>Usaldusv\u00e4\u00e4rsus<\/h3>\n<p>\nKuna k\u00f5ik teenused on koos, siis kui monoliit eba\u00f5nnestub, eba\u00f5nnestuvad k\u00f5ik teenused korraga. Tegelikult pole see v\u00f5ib-olla nii halb, kuna jaotatud s\u00fcsteemis ei esine osalisi t\u00f5rkeid, kuid teisest k\u00fcljest v\u00f5ite kaotada k\u00f5ik oma s\u00fcsteemi kasutajad, sest t\u00f5rge funktsionaalsuses, mida kasutab 0,001% kasutajatest. <\/p>\n<h3>Kangus<\/h3>\n<p>\nMonoliidi suuruse t\u00f5ttu on raske uutele tehnoloogiatele \u00fcle minna. Selle tulemusena tekkib eraldi \u00fclesanne hoida seda sama tingimuslikku seniori. Projekti alguses valitud tehnoloogiline pakett v\u00f5ib muutuda takistuseks toote arendamisel. <\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nJ\u00e4rgmine kord r\u00e4\u00e4gime sellest, kuidas inimesed on p\u00fc\u00fcdnud neid probleeme lahendada, liikudes komponentide ja SOA suunas.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/5RTk\/\"><img decoding=\"async\" alt=\"Arhitektuuristiili valik (osa 1)\" src=\"\/wp-content\/uploads\/2020\/08\/d1582a83ad9cf8722a035dfd9a212aa5.jpeg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<blockquote>\n<h4>Loe edasi:<\/h4>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/504144\/\">Miks SQL Server ei garanteeri tulemuste sortimist ilma ORDER BY-ta<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/508206\/\">Arhitektuur arendajatele ja administreerijatele: kellele millised oskused on vajalikud?<\/a><\/noindex><\/li>\n<\/ul>\n<\/blockquote>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/516880\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043a\u0443\u0440\u0441\u0430 \u0445\u043e\u0447\u0443 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u043e\u0435\u0439 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0451\u0439. \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 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92811,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92810","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, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \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-1\" \/>\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 1) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \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-1\" \/>\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-08-31T05:42:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-31T05:42:09+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 1) | ProHoster","description":"Tere, Habr. Praegu on OTUSis avatud uus vastuv\u00f5tt kursusele \"Software Architect\".","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","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 1) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0445\u0430\u0431\u0440. \u041f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 OTUS \u043e\u0442\u043a\u0440\u044b\u0442 \u043d\u0430\u0431\u043e\u0440 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043f\u043e\u0442\u043e\u043a \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-1","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-08-31T05:42:09+00:00","article:modified_time":"2020-08-31T05:42:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92810","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 12:00:37","updated":"2022-10-03 23:14:42","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\/92810","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=92810"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/92810\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/92811"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=92810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=92810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=92810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}