{"id":39476,"date":"2019-10-31T22:33:41","date_gmt":"2019-10-31T19:33:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io\/"},"modified":"2019-10-31T22:33:41","modified_gmt":"2019-10-31T19:33:41","slug":"legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","title":{"rendered":"Mikroteenuste konfiguratsioonide lihtne haldamine microconfig.io abil","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00dcks peamisi probleeme mikroteenuste arendamisel ja hilisemal kasutamisel on nende instantside \u00f5ige ja t\u00e4pne seadistamine. Minu arvates v\u00f5ib sellele aidata uus raamistik <noindex><a rel=\"nofollow\" href=\"http:\/\/microconfig.io\">microconfig.io<\/a><\/noindex>. See v\u00f5imaldab elegantsemalt lahendada teatud rutiinsed rakenduste seadistamise \u00fclesanded. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKui teil on palju mikroteenuseid ja iga\u00fchel neist on oma seadistusfail(e), siis on t\u00f5en\u00e4oliselt, et teete \u00fcksk\u00f5ik milles vea, mida ilma piisava oskuse ja logimise s\u00fcsteemita on v\u00e4ga raske tuvastada. Raamistiku peamine \u00fclesanne on v\u00e4hendada dubleeritud instantsi seadistusparameetreid, seel\u00e4bi v\u00e4hendades vea tekkimise v\u00f5imalust.<\/p>\n<p>Vaatame n\u00e4ite. Oletame, et on olemas lihtne rakendus koos konfiguratsioonifailiga <b>yaml<\/b>. See v\u00f5ib olla \u00fcksk\u00f5ik milline mikroteenus mis tahes keeles. Vaatame, kuidas seda raamistikku saaks sellele teenusele rakendada. <\/p>\n<p>Kuid k\u00f5igepealt loome Idea IDE-s t\u00fchja projekti, installides sinna eelnevalt microconfig.io pistikprogrammi: <\/p>\n<p><img decoding=\"async\" alt=\"Mikroteenuste konfiguratsioonide lihtne haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/e2809b31309a80cf6909cf554081e895.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeame plugina k\u00e4ivitamiseks vajalik konfiguratsioon, kasutades vaikevalikuid, nagu \u00fclaltoodud ekraanipildil.<\/p>\n<p>Meie teenus kannab nime order, seega loome uues projektis sarnase struktuuri:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroteenuste konfiguratsioonide lihtne haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/a1edb8aa2e5dae3867cfff78276ebb8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKopeerime teenuse nime kandva kausta konfiguratsioonifaili \u2014 <b>application.yaml<\/b>. K\u00f5ik mikroteenused k\u00e4ivitatakse mingis keskkonnas, seega lisaks teenuse konfiguratsiooni loomisele on vajalik ka keskkonna defineerimine: selleks loome kausta <b>envs<\/b> ja lisame sellesse faili, mis kannab meie t\u00f6\u00f6keskkonna nime. Seega loob raamistik konfiguratsioonifailid teenuste jaoks keskkonnas <b>dev<\/b>, kuna plugina seadistustes on m\u00e4\u00e4ratud just see parameeter.<\/p>\n<p>Faili struktuur <b>dev.yaml<\/b> oleb \u00fcsna lihtne: <\/p>\n<pre><code class=\"plaintext\">mainorder:\n    components:\n         - order<\/code><\/pre>\n<p>\nRaamistik t\u00f6\u00f6tab konfiguratsioonidega, mis on r\u00fchmitatud gruppidesse. Meie teenuse jaoks valime grupi nime <b>mainorder<\/b>. Raamistik leiab iga sellise grupi rakendused keskkonnafailist ja loob neile konfiguratsioonid, mida ta vastavatest kaustadest leiab. <\/p>\n<p>Teenuse seadistusfailis <b>order<\/b> m\u00e4\u00e4rame esialgu ainult \u00fche parameetri: <\/p>\n<pre><code class=\"plaintext\">spring.application.name: order<\/code><\/pre>\n<p>\nN\u00fc\u00fcd aktiveerime plugina, mis genereerib meie teenuse jaoks vajalikud seadistused antud omaduste teel:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroteenuste konfiguratsioonide lihtne haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/9099990c05fd3c6ef0549f231dc84fb5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSaame <noindex><a rel=\"nofollow\" href=\"https:\/\/microconfig.io\/#\/?id=running-the-config-build\">ka toime<\/a><\/noindex> ilma plugina paigaldamiseta, lihtsalt allalaadides raamistiku distributsiooni ja k\u00e4ivitades selle k\u00e4surealt.<br \/>\nSelline lahendus sobib kokku kogumise serveris kasutamiseks.<\/p>\n<p>Oluline on m\u00e4rkida, et raamistiku on suurep\u00e4rane m\u00f5ista <b>property<\/b> s\u00fcntaksit, see t\u00e4hendab tavalisi property faile, mida saab kasutada koos <b>yaml<\/b> konfiguratsioonidega.<\/p>\n<p>Lisame veel \u00fche teenuse <b>payment<\/b> ja keerukust olemasolevast samal ajal.<br \/>\nV <b>order<\/b>:<\/p>\n<pre><code class=\"plaintext\">eureka:\n instance.preferIpAddress: true\n client:\n   serviceUrl:\n     defaultZone: http:\/\/192.89.89.111:6782\/eureka\/\nserver.port: 9999\nspring.application.name: order\ndb.url: 192.168.0.100<\/code><\/pre>\n<p>\nV <b>payment<\/b>:<\/p>\n<pre><code class=\"plaintext\">eureka:\n instance.preferIpAddress: true\n client:\n   serviceUrl:\n     defaultZone: http:\/\/192.89.89.111:6782\/eureka\/\nserver.port: 9998\nspring.application.name: payments\ndb.url: 192.168.0.100<\/code><\/pre>\n<p>\nNende konfiguratsioonide peamine probleem on suur kogus kopeerimist teenuste seadistustes. Vaatame, kuidas raamistiku aitab seda v\u00e4ltida. Alustame k\u00f5ige ilmsemast \u2014 konfiguratsioonist <b>eureka<\/b> iga mikroteenuse kirjelduse puhul. Loome uue kaustu seadistuste failiga ja lisame sinna uue seadistuse:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroteenuste konfiguratsioonide lihtne haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/8b7467a3bd5b22cac5b44c0681ac17fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa lisame n\u00fc\u00fcd igasse meie projekti rea <i>#include eureka<\/i>.<\/p>\n<p>Raamistiku automaatselt leidub eureka konfiguratsioon ja kopeerib selle teenuste konfiguratsioonifailidesse, samas ei luheta eraldi eureka konfiguratsiooni, kuna me ei m\u00e4\u00e4ratle seda keskkonnafailis. <b>dev.yaml<\/b>. Teenus <b>order<\/b>:<\/p>\n<pre><code class=\"1c\">#include eureka\nserver.port: 9999\nspring.application.name: order\ndb.url: 192.168.0.100<\/code><\/pre>\n<p>\nSamuti saame andmebaasi seaded eraldi konfiguratsiooni v\u00e4lja tuua, muutes impordirea. <i>#include eureka, oracle<\/i>.<\/p>\n<p>Oluline on m\u00e4rkida, et iga muudatus, kui raamistik genereerib konfiguratsioonifailid uuesti, j\u00e4lgib ja salvestab eraldi faili p\u00f5hifaili k\u00f5rval. Sissekanne selle logis n\u00e4eb v\u00e4lja j\u00e4rgmine: \"Salvestatud 1 omaduse muudatus <b>order\/diff-application.yaml<\/b>\". See v\u00f5imaldab kiiresti avastada muudatusi suurtes konfiguratsioonifailides.<\/p>\n<p>\u00dchisosa konfiguratsiooni v\u00e4lja toomine v\u00f5imaldab v\u00e4ltida liigset kopeerimist, kuid ei v\u00f5imalda paindlikult luua konfiguratsiooni erinevate keskkondade jaoks \u2014 meie teenuste l\u00f5pp-punktid on ainulaadsed ja k\u00f5vasti kodeeritud, mis on halb. Proovime seda k\u00f5rvaldada.<\/p>\n<p>Hea lahendus on hoida k\u00f5ik l\u00f5pp-punktid \u00fches konfiguratsioonis, millele v\u00f5iksid viidata teised. Selleks on raamistikku inteeritud tugiteenuste toetamine. Nii muutub konfiguratsioonifail. <b>eureka<\/b>:<\/p>\n<pre><code class=\"plaintext\"> klient:\n   teenuseUrl:\n     vaikeala: http:\/\/${endpoints@eurekaip}:6782\/eureka\/<\/code><\/pre>\n<p>\nN\u00fc\u00fcd vaatame, kuidas see m\u00e4\u00e4rang t\u00f6\u00f6tab. S\u00fcsteem leiab komponendi nimega <b>endpoints<\/b> ja otsib sealt v\u00e4\u00e4rtust <b>eurekaip<\/b>, p\u00e4rast mida sisestab selle meie konfiguratsiooni. Kuidas aga erinevate keskkondadega? Selleks loome seadistuste faili, mille sisu on <b>endpoints<\/b> j\u00e4rgnev <b>application.dev.yaml<\/b>. Raamistik otsustab ise faili laiuse p\u00f5hjal, mille keskkonnaga see konfiguratsioon seondub, ja laadib selle sisse:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroteenuste konfiguratsioonide lihtne haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/c46cf097a0efb1d578a126858077a76b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\ndev faili sisu:<\/p>\n<pre><code class=\"plaintext\">eurekaip: 192.89.89.111\ndbip: 192.168.0.100<\/code><\/pre>\n<p>\nSama konfiguratsiooni saame luua ka meie teenuste sadamate jaoks:<\/p>\n<pre><code class=\"plaintext\">server.port: ${ports@order}.<\/code><\/pre>\n<p>\nK\u00f5ik olulised seaded on \u00fches kohas, v\u00e4hendades seel\u00e4bi vea tekkimise t\u00f5en\u00e4osust, kui parameetrid on hajutatud konfiguratsioonifailides.<\/p>\n<p>Raamistik pakub mitmeid juba valmis m\u00e4\u00e4ranguid, n\u00e4iteks saab k\u00e4tte faili konfiguratsiooni direktoriumi nime ja m\u00e4\u00e4rata selle:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}\nspring.application.name: ${this@name}<\/code><\/pre>\n<p>\nSelle t\u00f5ttu ei ole vaja eraldi m\u00e4rkida rakenduse nime konfiguratsioonis, vaid selle saab ka \u00fchte \u00fcldmoduuli viia, n\u00e4iteks samasse eureka:<\/p>\n<pre><code class=\"plaintext\">klient:\n   teenuseUrl:\n     vaikeala: http:\/\/${endpoints@eurekaip}:6782\/eureka\/\n spring.application.name: ${this@name}<\/code><\/pre>\n<p>\nKonfiguratsioonifail <b>order<\/b> l\u00fchendab \u00fche reale:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nKui m\u00f5ni seade vanematest seadistustest pole vajalik, saame selle m\u00e4\u00e4rata meie konfiguratsioonis ja just see rakendatakse genereerimisel. See t\u00e4hendab, et kui meil on mingil p\u00f5hjusel vaja unikaalset nime teenusele order, j\u00e4tame lihtsalt parameetri <b>spring.application.name<\/b>.<\/p>\n<p>Oletame, et teenusele tuleb lisada kohandatud logimiseseaded, mis salvestatakse eraldi faili, n\u00e4iteks <b>logback.xml<\/b>. Loome selle jaoks eraldi seadistuste r\u00fchma:<\/p>\n<p><img decoding=\"async\" alt=\"Mikroteenuste konfiguratsioonide lihtne haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/103a58dab32ebc57ea1d8457b6bcf3d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00f5hikonstruktsioonis m\u00e4\u00e4rame raamistikule, kuhu paigutada vajalik logimisfail, kasutades placeholder'i <b>@ConfigDir<\/b>:<\/p>\n<pre><code class=\"plaintext\">microconfig.template.logback.fromFile: ${logback@configDir}\/logback.xml<\/code><\/pre>\n<p>\nFailis <b>logback.xml<\/b> konfigureerime standardsed appenderid, mis v\u00f5ivad samuti sisaldada placeholder'e, mida raamistik muudab konfiguratsioonide genereerimise ajal, n\u00e4iteks:<\/p>\n<pre><code class=\"1c\">logs\/${this@name}.log<\/code><\/pre>\n<p>\nLisades teenuste konfiguratsioonidesse importi <b>logback<\/b>, saame automaatselt seadistatud logimise igale teenusele:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle, logback\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nOn aeg tutvuda l\u00e4hemalt k\u00f5igi raamistiku poolt pakutavate placeholder'itega:<\/p>\n<p><b>${this@env}<\/b> \u2014 tagastab praeguse keskkonna nime.<br \/>\n<b>${&#8230;@name} <\/b> \u2014 tagastab komponendi nime.<br \/>\n<b>${&#8230;@configDir}<\/b> \u2014 tagastab komponendi config katalooge kogu tee.<br \/>\n<b>${&#8230;@resultDir}<\/b> \u2014 tagastab komponendi sihtkatalooge kogu tee (saadud failid paigutatakse sellesse katalooge).<br \/>\n<b>${this@configRoot}<\/b> \u2014 tagastab konfigureerimise baas katalooge kogu tee.<\/p>\n<p>Samuti v\u00f5imaldab s\u00fcsteem saada keskkonnavariatsioone, n\u00e4iteks java tee:<br \/>\n<b>${env@JAVA_HOME}<\/b><br \/>\nV\u00f5i kuna raamistik on kirjutatud <b>JAVA<\/b>, saame s\u00fcsteemi muutujaid sarnase \u00fcleskutsega saada <b>System::getProperty<\/b> sellise konstruktsiooni abil:<br \/>\n<b>${system@os.name}<\/b><br \/>\nTasub mainida laienduste keele toetust <b>Spring EL<\/b>. Konfiguratsioonis kehtivad sarnased v\u00e4ljendid:<\/p>\n<pre><code class=\"1c\">connection.timeoutInMs: #{5 * 60 * 1000}\ndatasource.maximum-pool-size: #{${this@datasource.minimum-pool-size} + 10} <\/code><\/pre>\n<p>\nja saab kasutada lokaalvariatsioone konfiguratsioonifailides v\u00e4ljendite abil. <b>#var<\/b>:<\/p>\n<pre><code class=\"1c\">#var feedRoot: ${system@user.home}\/feed\nfolder:\n root: ${this@feedRoot}\n success: ${this@feedRoot}\/archive\n error: ${this@feedRoot}\/error<\/code><\/pre>\n<p>\nNii on raamistik \u00fcsna v\u00f5imas t\u00f6\u00f6riist mikroteenuste konfigureerimise peeneks ja paindlikuks kohandamiseks. Raamistik t\u00e4idab oma p\u00f5hi\u00fclesannet suurep\u00e4raselt \u2014 etteteatamata kopeerimise v\u00e4ltimine seadistustes, seadistuste koondamine ning seep\u00e4rast v\u00f5imalike vigade minimeerimine, v\u00f5imaldades samal ajal konfigureerimiste h\u00f5lpsat kombineerimist ja nende muutmist erinevate keskkondade jaoks.<\/p>\n<p>Kui see raamistik teid huvitab, soovitan k\u00fclastada selle ametlikku lehte ja tutvuda t\u00e4ieliku <noindex><a rel=\"nofollow\" href=\"https:\/\/microconfig.io\">dokumentatsiooniga<\/a><\/noindex>, v\u00f5i uurida l\u00e4htekoodis <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microconfig\/microconfig\">siin<\/a><\/noindex>.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/473078\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":39477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39476","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\" \/>\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\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\u041b\u0435\u0433\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e microconfig.io | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io\" \/>\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:33:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:33:41+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\udd47Mikroteenuste seadistuste lihtne haldamine microconfig.io abil | ProHoster","description":"\u00dcks peamisi probleeme mikroteenuste arendamisel ja edasises kasutamises on nende instantside t\u00e4pne ja hoolikas seadistamine. Siin v\u00f5ib minu arvates aidata uus raamistik microconfig.io. See v\u00f5imaldab eleganteeritud lahendada m\u00f5ningaid rakenduste seadistamise rutiinseid \u00fclesandeid. Kui teil on palju mikroteenuseid ja iga\u00fchel neist on oma seadistusfail\/failid, siis on t\u00f5en\u00e4oline","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","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\u041b\u0435\u0433\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e microconfig.io | ProHoster","og:description":"\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","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:33:41+00:00","article:modified_time":"2019-10-31T19:33:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39476","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-24 02:05:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:48:28","updated":"2026-01-24 02:05:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39476","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=39476"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/39476\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/39477"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=39476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=39476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=39476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}