{"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":"Lihtne mikroteenuste konfiguratsioonide haldamine microconfig.io abil","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00dcks peamisi probleeme mikroteenuste v\u00e4ljat\u00f6\u00f6tamisel ja edasises kasutamises on nende instantside korralik ja hoolikas seadistamine. Arvan, et uue raamistikuga saab sellel osas palju aidata. <noindex><a rel=\"nofollow\" href=\"http:\/\/microconfig.io\">microconfig.io<\/a><\/noindex>. See v\u00f5imaldab \u00fcsna elegantselt lahendada m\u00f5ned rakenduste seadistamise rutiinsed \u00fclesanded. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKui teil on palju mikroteenuseid, millest iga\u00fchel on oma seadistusefailid, on v\u00e4ga suur t\u00f5en\u00e4osus, et teete \u00fches neist vea, mida ilma piisava oskuse ja logimis\u00fcsteemita v\u00f5ib olla v\u00e4ga keeruline avastada. Raamistiku peamine \u00fclesanne on v\u00e4hendada instantsi seadistuse dubleerivate parameetrite arvu, v\u00e4hendades seel\u00e4bi vea lisamise t\u00f5en\u00e4osust.<\/p>\n<p>Vaatame n\u00e4itena. Oletame, et meil on lihtne rakendus koos konfiguratsioonifailiga <b>yaml<\/b>. See v\u00f5ib olla \u00fcksk\u00f5ik milline mikroteenus, mis on kirjutatud mis tahes keeles. Vaatame, kuidas saab seda raamistikku rakendada sellele teenusele. <\/p>\n<p>Kuid k\u00f5igepealt loome Idea IDE-s t\u00fchja projekti, p\u00e4rast microconfig.io plugina paigaldamist: <\/p>\n<p><img decoding=\"async\" alt=\"Lihtne mikroteenuste konfiguratsioonide haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/e2809b31309a80cf6909cf554081e895.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeame plugina k\u00e4ivitamise konfiguratsiooni, saab kasutada vaike konfiguratsiooni, nagu \u00fclaltoodud ekraanipildil.<\/p>\n<p>Meie teenus nimega order, siis loome uues projektis sarnase struktuuri:<\/p>\n<p><img decoding=\"async\" alt=\"Lihtne mikroteenuste konfiguratsioonide haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/a1edb8aa2e5dae3867cfff78276ebb8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeadmega nimega kaustas asetame konfiguratsioonifaili \u2014 <b>application.yaml<\/b>. K\u00f5ik mikroteenused k\u00e4ivitatakse mingis keskkonnas, seega lisaks teenuse enda konfiguratsioonifaili loomisele on vaja kirjeldada keskkonda: selleks loome kausta <b>envs<\/b> ja lisame sinna faili, mille nimi on meie t\u00f6\u00f6 keskkonna nimi. Nii loob raamistik konfiguratsioonifaile teenustele keskkonnas <b>dev<\/b>, kuna plugina seadetes on m\u00e4\u00e4ratud just see parameeter.<\/p>\n<p>Faili struktuur <b>dev.yaml<\/b> oleks \u00fcsna lihtne: <\/p>\n<pre><code class=\"plaintext\">mainorder:\n    components:\n         - order<\/code><\/pre>\n<p>\nRaamistik t\u00f6\u00f6tab seadistustega, mis on \u00fchendatud r\u00fchmadeks. Meie teenuse jaoks valime grupi nime <b>mainorder<\/b>. Raamistik leiab iga sellise rakenduste grupi keskkonna failist ja loob neile konfiguratsioonid, mis asuvad vastavates kaustades. <\/p>\n<p>Oma teenuse seadistusfailis <b>order<\/b> m\u00e4rkime esialgu ainult \u00fche parameetri: <\/p>\n<pre><code class=\"plaintext\">spring.application.name: order<\/code><\/pre>\n<p>\nN\u00fc\u00fcd k\u00e4ivitame plugina ja see genereerib meie teenuse vajalikud konfiguratsioonid esitatud teede p\u00f5hjal:<\/p>\n<p><img decoding=\"async\" alt=\"Lihtne mikroteenuste konfiguratsioonide 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\">ilma hakkama<\/a><\/noindex> ja ilma plugina installimist, lihtsalt laadides alla raamistikku ja k\u00e4ivitades seda k\u00e4surealt.<br \/>\nSelline lahendus sobib ehitusserverile kasutamiseks.<\/p>\n<p>Tuleb m\u00e4rkida, et raamistik m\u00f5istab suurep\u00e4raselt <b>property<\/b> s\u00fcntaksit, mis t\u00e4hendab tavalisi property faile, mida saab koos kasutada <b>yaml<\/b> konfiguratsioonidega.<\/p>\n<p>Lisame veel \u00fche teenuse <b>payment<\/b> ja keerukaks olemasolevat.<br \/>\nUues <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>\nUues <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>\nPeamine probleem nende konfiguratsioonide juures on suur hulk kopeerimist ja kleepimist teenuste seadetes. Vaatame, kuidas raamistik aitab selle probleemiga toime tulla. Alustame k\u00f5ige ilmsemast - konfiguratsiooni olemasolust <b>eureka<\/b> iga mikroteenuse kirjelduse juures. Loome uue katalooge seadistusfailiga ja lisame sinna uue konfiguratsiooni:<\/p>\n<p><img decoding=\"async\" alt=\"Lihtne mikroteenuste konfiguratsioonide haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/8b7467a3bd5b22cac5b44c0681ac17fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa iga meie projekti lisame n\u00fc\u00fcd rea <i>#include eureka<\/i>.<\/p>\n<p>Raamistik leiab automaatselt konfiguratsiooni eureka ja kopeerib selle teenuste konfiguratsioonifailidesse, samas eraldi konfiguratsiooni eureka ei luleta, kuna me ei n\u00e4ita seda keskkonna failis. <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 seadistused v\u00e4lja tuua eraldi konfiguratsiooni, muutes impordi rea <i>#include eureka, oracle<\/i>.<\/p>\n<p>Tuleb m\u00e4rkida, et iga muudatuse korral j\u00e4lgib raamistik konfiguratsioonifailide regeneratsiooni ja paneb need peamise seadistuse faili k\u00f5rvale eraldi faili. Logis n\u00e4eb kirje v\u00e4lja selline: \u201cSalvestati 1 atribuut muudatus <b>order\/diff-application.yaml<\/b>\u201d. See v\u00f5imaldab kiiresti avastada muudatusi suurtes konfiguratsioonifailides.<\/p>\n<p>\u00dcldiste konfiguratsiooniosade v\u00e4lja toomine v\u00f5imaldab vabaneda suurest hulgast tarbetust kopeerimisest, kuid ei v\u00f5imalda paindlikult luua konfiguratsiooni erinevate keskkondade jaoks - meie teenuste l\u00f5pp-punktid on ainsad ja k\u00f5vasti kodeeritud, see on halb. Proovime seda eemaldada.<\/p>\n<p>Hea lahendus oleks hoida k\u00f5ik l\u00f5pp-punktid \u00fches ainus konfiguratsioonis, millele saaksid viidata teised. Selle jaoks on raamistikku integreeritud plaanide toe. Nii muutub konfiguratsioonifail <b>eureka<\/b>:<\/p>\n<pre><code class=\"plaintext\"> client:\n   serviceUrl:\n     defaultZone: http:\/\/${endpoints@eurekaip}:6782\/eureka\/<\/code><\/pre>\n<p>\nN\u00fc\u00fcd vaatame, kuidas see plaan toimib. S\u00fcsteem leiab komponendi nimega <b>endpoints<\/b> ja otsib sellest v\u00e4\u00e4rtust <b>eurekaip<\/b>, see, it inserts into our configuration. But how to deal with different environments? To address this, we'll create a settings file in <b>endpoints<\/b> the following format <b>application.dev.yaml<\/b>. The framework automatically decides which environment this configuration belongs to based on the file extension and loads it:<\/p>\n<p><img decoding=\"async\" alt=\"Lihtne mikroteenuste konfiguratsioonide haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/c46cf097a0efb1d578a126858077a76b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nContents of the dev file:<\/p>\n<pre><code class=\"plaintext\">eurekaip: 192.89.89.111\ndbip: 192.168.0.100<\/code><\/pre>\n<p>\nWe can create the same configuration for the ports of our services:<\/p>\n<pre><code class=\"plaintext\">server.port: ${ports@order}.<\/code><\/pre>\n<p>\nAll important settings are located in one place, thus reducing the likelihood of errors due to scattered parameters across configuration files.<\/p>\n<p>The framework provides many ready-made placeholders, for example, you can get the name of the directory where the configuration file is located and assign it:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}\nspring.application.name: ${this@name}<\/code><\/pre>\n<p>\nAs a result, there's no need to specify the application name in the configuration, and it can also be extracted into a common module, for example, into Eureka itself:<\/p>\n<pre><code class=\"plaintext\">client:\n   serviceUrl:\n     defaultZone: http:\/\/${endpoints@eurekaip}:6782\/eureka\/\n spring.application.name: ${this@name}<\/code><\/pre>\n<p>\nThe configuration file <b>order<\/b> will be reduced to one line:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nIf any setting from the parent configuration is not needed, we can specify it in our configuration, and that will be applied during generation. That is, if for some reason we need a unique name for the order service, we simply leave the parameter <b>spring.application.name<\/b>.<\/p>\n<p>Let's say we need to add customized logging settings, which are stored in a separate file, for example, <b>logback.xml<\/b>. We'll create a separate group of settings for it:<\/p>\n<p><img decoding=\"async\" alt=\"Lihtne mikroteenuste konfiguratsioonide haldamine microconfig.io abil\" src=\"\/wp-content\/uploads\/2019\/10\/103a58dab32ebc57ea1d8457b6bcf3d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn the basic configuration, we will specify to the framework where to place the necessary logging settings file using the placeholder <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> Configuring standard appenders, which can also contain placeholders, which the framework will replace during config generation, for example:<\/p>\n<pre><code class=\"1c\">logs\/${this@name}.log<\/code><\/pre>\n<p>\nBy adding imports in the configuration of services <b>logback<\/b>, we automatically get configured logging for each service:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle, logback\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nIt's time to learn more about all available placeholders in the framework:<\/p>\n<p><b>${this@env}<\/b> \u2014 returns the name of the current environment.<br \/>\n<b>${&#8230;@name} <\/b> \u2014 returns the name of the component.<br \/>\n<b>${&#8230;@configDir}<\/b> \u2014 returns the full path to the config directory of the component.<br \/>\n<b>${&#8230;@resultDir}<\/b> \u2014 tagastab t\u00e4ispika tee sihtkausta (saadud failid paigutatakse sellesse kausta).<br \/>\n<b>${this@configRoot}<\/b> \u2014 tagastab t\u00e4ispika tee konfiguratsioonide salvestuskausta.<\/p>\n<p>S\u00fcsteem v\u00f5imaldab ka saada keskkonnamuutujate, n\u00e4iteks java tee:<br \/>\n<b>${env@JAVA_HOME}<\/b><br \/>\nV\u00f5i, kuna raamistik on kirjutatud <b>JAVA<\/b>, saame saada s\u00fcsteemi muutujad sarnaste k\u00f5nede abil <b>System::getProperty<\/b> kasutades sellist konstruktsiooni:<br \/>\n<b>${system@os.name}<\/b><br \/>\nTasub mainida laienduskeele 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 kohalikke muutujaid saab kasutada konfiguratsioonifailides v\u00e4ljendi kaudu. <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 et raamistik on \u00fcsna v\u00f5imas t\u00f6\u00f6riist mikroteenuste konfiguratsioonide peenus ja paindlikkus. Raamistik t\u00e4idab oma p\u00f5hifunktsiooni h\u00e4sti \u2014 taandab kopeerimist konfiguratsioonides, konsolideerib seadeid ja v\u00e4hendab seel\u00e4bi v\u00f5imalikke vigu, v\u00f5imaldades samal ajal lihtsat kombinatsiooni ja kohandamist erinevatesse keskkondadesse.<\/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\">Microsofti dokumentatsioonile. Ainus t\u00e4helepanek \u2014 Ubuntu distributsiooni oleme juba alla laadinud ja installime selle j\u00e4rgmises etapis. Peaaegu kogu seadistamine seisneb Windowsi Linuxi alams\u00fcsteemi ja Virtuaalmasinate platvormi t\u00e4iendavate komponentide lubamises ning seej\u00e4rel arvuti seadete muutuste rakendamiseks taask\u00e4ivitamises:<\/a><\/noindex>, v\u00f5i kaevuda allikakoode. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microconfig\/microconfig\">siit<\/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 5.0.1.1 - 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.\" \/>\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) 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\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.\" \/>\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\udd47Lihtne mikroteenuste konfiguratsioonide haldamine microconfig.io kaudu | ProHoster","description":"\u00dcks peamisi probleeme mikroteenuste arendamisel ja hilisemal kasutamisel on nende instantside korralik ja hoolikas seadistamine.","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.","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","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\/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}]}}