{"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\/de\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","title":{"rendered":"Einfache Verwaltung der Microservice-Konfigurationen mit microconfig.io","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Eine der Hauptprobleme bei der Entwicklung und dem anschlie\u00dfenden Betrieb von Mikrodiensten ist die ordnungsgem\u00e4\u00dfe und sorgf\u00e4ltige Konfiguration ihrer Instanzen. Ich glaube, dass ein neues Framework dabei helfen kann, <noindex><a rel=\"nofollow\" href=\"http:\/\/microconfig.io\">microconfig.io<\/a><\/noindex>. Es erm\u00f6glicht eine recht elegante L\u00f6sung einiger Routineaufgaben bei der Konfiguration von Anwendungen. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nWenn Sie viele Mikrodienste haben und jeder von ihnen mit seiner eigenen Konfigurationsdatei\/-dateien kommt, besteht eine hohe Wahrscheinlichkeit, einen Fehler in einer dieser Dateien zu machen, den man ohne entsprechendes Geschick und ein Logging-System nur schwer finden kann. Die Hauptaufgabe des Frameworks besteht darin, doppelte Konfigurationsparameter zu minimieren, um so die Wahrscheinlichkeit von Fehlern zu verringern.<\/p>\n<p>Betrachten wir ein Beispiel. Angenommen, es gibt eine einfache Anwendung mit einer Konfigurationsdatei <b>yaml<\/b>. Dies k\u00f6nnte jeder Mikrodienst in jeder Sprache sein. Schauen wir uns an, wie das Framework auf diesen Dienst angewendet werden kann. <\/p>\n<p>Aber bevor wir beginnen, erstellen wir zu unserem Komfort ein leeres Projekt in der IDE Idea, nachdem wir das Plugin microconfig.io installiert haben: <\/p>\n<p><img decoding=\"async\" alt=\"Einfache Verwaltung der Microservice-Konfigurationen mit microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/e2809b31309a80cf6909cf554081e895.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir konfigurieren die Startkonfiguration des Plugins. Sie k\u00f6nnen die Standardkonfiguration wie im obigen Screenshot verwenden.<\/p>\n<p>Unser Service hei\u00dft order, daher erstellen wir in dem neuen Projekt eine \u00e4hnliche Struktur:<\/p>\n<p><img decoding=\"async\" alt=\"Einfache Verwaltung der Microservice-Konfigurationen mit microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/a1edb8aa2e5dae3867cfff78276ebb8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn den Ordner mit dem Namen des Services legen wir die Konfigurationsdatei \u2014 <b>application.yaml<\/b>. Alle Mikrodienste laufen in einer bestimmten Umgebung, daher m\u00fcssen wir neben der Erstellung der Konfiguration des Services auch die Umgebung beschreiben: dazu erstellen wir einen Ordner <b>envs<\/b> und f\u00fcgen darin eine Datei mit dem Namen unserer Arbeitsumgebung hinzu. So erstellt das Framework die Konfigurationsdateien f\u00fcr die Services in der Umgebung <b>dev<\/b>, da in den Einstellungen des Plugins genau dieser Parameter festgelegt ist.<\/p>\n<p>Die Struktur der Datei <b>dev.yaml<\/b> wird ziemlich einfach sein: <\/p>\n<pre><code class=\"plaintext\">mainorder:\n    components:\n         - order<\/code><\/pre>\n<p>\nDas Framework arbeitet mit Konfigurationen, die in Gruppen zusammengefasst sind. F\u00fcr unseren Service w\u00e4hlen wir einen Namen f\u00fcr die Gruppe <b>mainorder<\/b>. Das Framework findet jede solche Gruppe von Anwendungen in der Umgebungsdatei und erstellt f\u00fcr alle von ihnen die Konfigurationen, die in den entsprechenden Ordnern gefunden werden. <\/p>\n<p>In der Konfigurationsdatei des Services <b>order<\/b> geben wir vorerst nur einen Parameter an: <\/p>\n<pre><code class=\"plaintext\">spring.application.name: order<\/code><\/pre>\n<p>\nJetzt starten wir das Plugin, und es wird die ben\u00f6tigte Konfiguration unseres Dienstes nach dem im Eigenschaften angegebenen Pfad generieren:<\/p>\n<p><img decoding=\"async\" alt=\"Einfache Verwaltung der Microservice-Konfigurationen mit microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/9099990c05fd3c6ef0549f231dc84fb5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs ist m\u00f6glich <noindex><a rel=\"nofollow\" href=\"https:\/\/microconfig.io\/#\/?id=running-the-config-build\">auch ohne die Installation des Plugins auszukommen, indem man einfach das Framework-Distribution herunterl\u00e4dt und es \u00fcber die Kommandozeile startet.<\/a><\/noindex> Diese L\u00f6sung ist f\u00fcr den Einsatz auf einem Build-Server geeignet.<br \/>\nEs ist zu beachten, dass das Framework den<\/p>\n<p>property <b>Syntax hervorragend versteht, das hei\u00dft, regul\u00e4re Property-Dateien, die man zusammen mit<\/b> Konfigurationen verwenden kann. <b>yaml<\/b> Lassen Sie uns einen weiteren Dienst hinzuf\u00fcgen<\/p>\n<p>payment <b>und gleichzeitig den bestehenden Dienst komplexer gestalten.<\/b> 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<br \/>\nIn <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: 9998\nspring.application.name: payments\ndb.url: 192.168.0.100<\/code><\/pre>\n<p>\nIn <b>und gleichzeitig den bestehenden Dienst komplexer gestalten.<\/b>:<\/p>\n<pre><code class=\"plaintext\">Das Hauptproblem dieser Konfigurationen ist die gro\u00dfe Menge an Copy-Paste in den Diensteinrichtungen. Schauen wir uns an, wie das Framework dabei helfen kann, dies zu vermeiden. Beginnen wir mit dem offensichtlichsten \u2013 der Notwendigkeit einer Konfiguration von<\/code><\/pre>\n<p>\neureka <b>in der Beschreibung jedes Microservices. Erstellen wir ein neues Verzeichnis mit einer Einstellungsdatei und f\u00fcgen wir eine neue Konfiguration hinzu:<\/b> Und f\u00fcgen wir nun in jedes unserer Projekte die Zeile hinzu<\/p>\n<p><img decoding=\"async\" alt=\"Einfache Verwaltung der Microservice-Konfigurationen mit microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/8b7467a3bd5b22cac5b44c0681ac17fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnd in jedes unserer Projekte f\u00fcgen wir jetzt eine Zeile hinzu <i>#include eureka<\/i>.<\/p>\n<p>Das Framework findet automatisch die Eureka-Konfiguration und kopiert sie in die Konfigurationsdateien der Dienste, wobei keine separate Eureka-Konfiguration erstellt wird, da wir sie nicht in der Umgebungsdatei angeben. <b>dev.yaml<\/b>. Dienst <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>\nWir k\u00f6nnen auch die Datenbankeinstellungen in eine separate Konfiguration auslagern, indem wir die Importzeile in <i>#include eureka, oracle<\/i>.<\/p>\n<p>Es ist erw\u00e4hnenswert, dass das Framework bei der Neugenerierung der Konfigurationsdateien jede \u00c4nderung verfolgt und in eine spezielle Datei neben der Hauptkonfigurationsdatei schreibt. Der Eintrag in seinem Protokoll sieht folgenderma\u00dfen aus: \u201eSpeicherte 1 Eigenschafts\u00e4nderung in <b>order\/diff-application.yaml<\/b>\u201d. Dies erm\u00f6glicht eine schnelle Erkennung von \u00c4nderungen in gro\u00dfen Konfigurationsdateien.<\/p>\n<p>Die Auslagerung allgemeiner Konfigurationsteile reduziert \u00fcberfl\u00fcssige Wiederholungen, erm\u00f6glicht jedoch keine flexible Erstellung von Konfigurationen f\u00fcr verschiedene Umgebungen \u2013 die Endpunkte unserer Dienste sind einzigartig und fest codiert, was negativ ist. Lassen Sie uns das beheben.<\/p>\n<p>Eine gute L\u00f6sung w\u00e4re es, alle Endpunkte in einer einzigen Konfiguration zu halten, auf die die anderen verweisen k\u00f6nnen. Daf\u00fcr wurde im Framework die Unterst\u00fctzung von Platzhaltern implementiert. So wird sich die Konfigurationsdatei \u00e4ndern. <b>in der Beschreibung jedes Microservices. Erstellen wir ein neues Verzeichnis mit einer Einstellungsdatei und f\u00fcgen wir eine neue Konfiguration hinzu:<\/b>:<\/p>\n<pre><code class=\"plaintext\"> client:\n   serviceUrl:\n     defaultZone: http:\/\/${endpoints@eurekaip}:6782\/eureka\/<\/code><\/pre>\n<p>\nSchauen wir uns nun an, wie dieser Platzhalter funktioniert. Das System findet die Komponente mit dem Namen <b>endpoints<\/b> und sucht darin nach dem Wert <b>eurekaip<\/b>, danach wird dieser in unsere Konfiguration eingef\u00fcgt. Aber wie gehen wir mit verschiedenen Umgebungen um? Dazu erstellen wir eine Einstellungsdatei im <b>endpoints<\/b> folgenden Format <b>application.dev.yaml<\/b>. Das Framework erkennt selbstst\u00e4ndig anhand der Dateiendung, zu welcher Umgebung diese Konfiguration geh\u00f6rt und l\u00e4dt sie:<\/p>\n<p><img decoding=\"async\" alt=\"Einfache Verwaltung der Microservice-Konfigurationen mit microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/c46cf097a0efb1d578a126858077a76b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nInhalt der dev-Datei:<\/p>\n<pre><code class=\"plaintext\">eurekaip: 192.89.89.111\ndbip: 192.168.0.100<\/code><\/pre>\n<p>\nEine \u00e4hnliche Konfiguration k\u00f6nnen wir auch f\u00fcr die Ports unserer Dienste erstellen:<\/p>\n<pre><code class=\"plaintext\">server.port: ${ports@order}.<\/code><\/pre>\n<p>\nAlle wichtigen Einstellungen sind an einem Ort, was die Wahrscheinlichkeit von Fehlern aufgrund verstreuter Parameter in den Konfigurationsdateien verringert.<\/p>\n<p>Das Framework bietet zahlreiche bereits vorhandene Platzhalter, zum Beispiel kann man den Namen des Verzeichnisses, in dem sich die Konfigurationsdatei befindet, abrufen und ihm zuweisen:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}\nspring.application.name: ${this@name}<\/code><\/pre>\n<p>\nDank dessen ist es nicht n\u00f6tig, den Namen der Anwendung in der Konfiguration zus\u00e4tzlich anzugeben, und er kann auch in ein gemeinsames Modul ausgelagert werden, zum Beispiel in dasselbe eureka:<\/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>\nKonfigurationsdatei <b>order<\/b> wird auf eine Zeile reduziert:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nFalls wir eine Einstellung aus der \u00fcbergeordneten Konfiguration nicht ben\u00f6tigen, k\u00f6nnen wir sie in unserer Konfiguration angeben, und genau diese wird bei der Generierung angewendet. Wenn wir aus einem bestimmten Grund einen einzigartigen Namen f\u00fcr den Dienst 'order' ben\u00f6tigen, lassen wir einfach den Parameter <b>spring.application.name<\/b>.<\/p>\n<p>Angenommen, wir m\u00fcssen benutzerdefinierte Protokollierungseinstellungen hinzuf\u00fcgen, die in einer separaten Datei gespeichert sind, zum Beispiel <b>logback.xml<\/b>. Wir erstellen eine eigene Gruppe von Einstellungen:<\/p>\n<p><img decoding=\"async\" alt=\"Einfache Verwaltung der Microservice-Konfigurationen mit microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/103a58dab32ebc57ea1d8457b6bcf3d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn der grundlegenden Konfiguration geben wir dem Framework an, wo es die ben\u00f6tigte Protokolldatei mit dem Platzhalter <b>@ConfigDir<\/b>:<\/p>\n<pre><code class=\"plaintext\">microconfig.template.logback.fromFile: ${logback@configDir}\/logback.xml<\/code><\/pre>\n<p>\nIn der Datei <b>logback.xml<\/b> konfigurieren Standard-Appender, die ebenfalls Platzhalter enthalten k\u00f6nnen, die das Framework w\u00e4hrend der Generierung der Konfigurationen \u00e4ndert, zum Beispiel:<\/p>\n<pre><code class=\"1c\">logs\/${this@name}.log<\/code><\/pre>\n<p>\nWenn wir in den Konfigurationen der Dienste importieren <b>logback<\/b>, erhalten wir automatisch eine konfigurierte Protokollierung f\u00fcr jeden Dienst:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle, logback\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nEs ist an der Zeit, uns genauer mit allen verf\u00fcgbaren Platzhaltern des Frameworks vertraut zu machen:<\/p>\n<p><b>${this@env}<\/b> \u2014 Gibt den Namen der aktuellen Umgebung zur\u00fcck.<br \/>\n<b>${&#8230;@name} <\/b> \u2014 Gibt den Namen der Komponente zur\u00fcck.<br \/>\n<b>${&#8230;@configDir}<\/b> \u2014 Gibt den vollst\u00e4ndigen Pfad zum Konfigurationsverzeichnis der Komponente zur\u00fcck.<br \/>\n<b>${&#8230;@resultDir}<\/b> \u2014 Gibt den vollst\u00e4ndigen Pfad zum Zielverzeichnis der Komponente zur\u00fcck (die erhaltenen Dateien werden in diesem Verzeichnis abgelegt).<br \/>\n<b>${this@configRoot}<\/b> \u2014 Gibt den vollst\u00e4ndigen Pfad zum Stammverzeichnis der Konfigurationsspeicher zur\u00fcck.<\/p>\n<p>Das System erm\u00f6glicht auch den Zugriff auf Umgebungsvariablen, wie zum Beispiel den Pfad zu Java:<br \/>\n<b>${env@JAVA_HOME}<\/b><br \/>\nOder, da das Framework in <b>JAVA<\/b>geschrieben ist, k\u00f6nnen wir Systemvariablen \u00e4hnlich dem Aufruf <b>System::getProperty<\/b> mithilfe einer solchen Struktur erhalten:<br \/>\n<b>${system@os.name}<\/b><br \/>\nEs ist erw\u00e4hnenswert, dass die Unterst\u00fctzung der Erweiterungssprache <b>Spring EL<\/b>gegeben ist. In der Konfiguration sind solche Ausdr\u00fccke anwendbar:<\/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>\nund lokale Variablen k\u00f6nnen in Konfigurationsdateien mit Ausdr\u00fccken verwendet werden. <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>\nDer Rahmen bietet ein leistungsstarkes Werkzeug f\u00fcr die pr\u00e4zise und flexible Anpassung von Mikrodiensten-Konfigurationen. Er erf\u00fcllt seine Hauptaufgabe ausgezeichnet \u2014 das Vermeiden von Kopien in den Einstellungen, die Konsolidierung von Konfigurationen und damit die Minimierung m\u00f6glicher Fehler, w\u00e4hrend er gleichzeitig eine einfache Kombination und Anpassung der Konfigurationen f\u00fcr verschiedene Umgebungen erm\u00f6glicht.<\/p>\n<p>Falls Sie an diesem Framework interessiert sind, empfehle ich Ihnen, dessen offizielle Seite zu besuchen und sich die vollst\u00e4ndigen Informationen anzusehen. <noindex><a rel=\"nofollow\" href=\"https:\/\/microconfig.io\">Dokumentation<\/a><\/noindex>, oder die Quellcodes zu durchst\u00f6bern. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microconfig\/microconfig\">hier<\/a><\/noindex>.<br \/>\n<br \/>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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\udd47Einfache Verwaltung von Mikrodiensten-Konfigurationen mit microconfig.io | ProHoster","description":"Eine der gr\u00f6\u00dften Herausforderungen bei der Entwicklung und dem Betrieb von Mikrodiensten ist die korrekte und saubere Konfiguration ihrer Instanzen. Hier kann das neue Framework microconfig.io meiner Meinung nach hilfreich sein. Es erm\u00f6glicht, einige Routineaufgaben der Anwendungs-Konfiguration recht elegant zu l\u00f6sen. Wenn Sie viele Mikrodienste haben und jeder von ihnen mit seiner eigenen Konfigurationsdatei\/-dateien geliefert wird, besteht eine hohe Wahrscheinlichkeit,","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/39476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=39476"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/39476\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/39477"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=39476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=39476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=39476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}