{"id":53442,"date":"2019-12-02T00:00:00","date_gmt":"2019-12-01T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/legacy-servisy-v-vashej-infrastrukture"},"modified":"2020-02-18T14:01:20","modified_gmt":"2020-02-18T11:01:20","slug":"legacy-servisy-v-vashej-infrastrukture","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","title":{"rendered":"Legacy-Services in Ihrer Infrastruktur","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hallo! Ich hei\u00dfe Pasha Tschernjak, ich bin leitender Entwickler bei QIWI, und heute m\u00f6chte ich \u00fcber das Unvermeidliche sprechen. \u00dcber Legacy.<\/p>\n<p>Fangen wir mit der Frage an: Was ist ein Legacy-Service? Ein Legacy-Service ist ein Dienst, mit dem der Entwickler seit einer Woche\/Monat\/Jahr nichts mehr zu tun hatte? Oder ist es ein Dienst, der von einem weniger erfahrenen Programmierer, zum Beispiel von Ihnen, vor einem Jahr geschrieben wurde? Aber mittlerweile sind Sie besser und erfahrener. Oder bedeutet Legacy-Service, dass Sie beschlossen haben, diesen Dienst nie wieder zu committen und langsam eine Abl\u00f6sung daf\u00fcr vorbereiten? In jedem Fall ist es eine Zeitbombe, einen solchen Dienst unbeaufsichtigt zu lassen und nicht zu aktualisieren.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\"><img decoding=\"async\" alt=\"Legacy-Services in Ihrer Infrastruktur\" src=\"\/wp-content\/uploads\/2019\/12\/d33a4a7983d1c440570bc0ff8da0f1d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Bevor ich dazu \u00fcbergehe, wie wir bei QIWI mit unseren Legacy-Services arbeiten, m\u00f6chte ich erkl\u00e4ren, wie wir Ordnung bei den Diensten im Wallet geschaffen haben. Seit zwei Jahren bin ich f\u00fcr die Funktionalit\u00e4t verantwortlich. Wenn es ein Problem gibt, rufen sie immer zuerst mich an. Ich habe normalerweise nicht die Dreistigkeit, um 23 Uhr jemanden anders anzurufen, also musste ich mich setzen und mich mit allen Diensten in unserem Bereich befassen. <\/p>\n<p>Aber ich, wie jeder andere Mensch, liebe es, nachts zu schlafen, also habe ich versucht, das Betriebsklima zu kl\u00e4ren: \u201eLeute, warum ruft ihr mich an?\u201c. Darauf bekam ich eine recht knappe Antwort: \u201eWen sonst?\u201c. Denn ich repariere die Dienste, und die Leute wissen schlichtweg nicht, an wen sie sich wenden sollen.<\/p>\n<p>Deshalb haben wir auf einer der Retrospektiven des Backend-Teams des Wallets beschlossen, eine Tabelle zu erstellen, auf der eine Liste unserer Dienste, Mikrodienste und Monolithen des Wallets sowie die Verantwortlichen daf\u00fcr vermerkt sind. Tabellen sind im Allgemeinen n\u00fctzlich, in einem vern\u00fcnftigen Rahmen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNeben den Informationen dar\u00fcber, wer wof\u00fcr verantwortlich ist, gab es auch Antworten auf Fragen: Wer ist der Besitzer des Dienstes, wer ist f\u00fcr dessen Entwicklung, Architektur und Lebenszyklus verantwortlich. Die Personen, die f\u00fcr diesen Dienst verantwortlich sind, sind die, die ihn im Bedarfsfall reparieren k\u00f6nnen. Der Dienstbesitzer hat das Recht, +2 in den Commits zu lassen, die Verantwortlichen m\u00fcssen ebenfalls unbedingt beim Review anwesend sein, bevor dieser Dienst einen neuen Commit \u00fcbernimmt.<\/p>\n<p>Die Zeit verging, neue Praktiken wurden angewendet, wie zum Beispiel die Migration zu Kubernetes, verschiedene checkstyle, spotbugs, ktlint, das Vorhandensein von Logs in Kibana, die autodiscovery von Diensten anstelle der direkten Angabe von Adressen und andere n\u00fctzliche Dinge. Und \u00fcberall erm\u00f6glichte unsere Tabelle es, die Aktualit\u00e4t unserer Dienste aufrechtzuerhalten. F\u00fcr uns ist das eine Art Checkliste, die besagt, dass dieser Dienst das kann, und das noch nicht. Aber wir gingen weiter, erkannten, dass uns Informationen \u00fcber unsere Dienste fehlten, die wir \u00fcberwachten, wo die Quellcodes des Dienstes lagen, wo die Aufgaben zum Bauen in TeamCity gestartet werden, wie sie deployt werden, wo die Quellcodes der End-to-End-Tests gespeichert sind, Fotos von Grooming \u00fcber die Architektur und \u00fcber getroffene Entscheidungen. Ideal w\u00e4re es, wenn all diese Informationen irgendwo hinterlegt w\u00e4ren und zur Hand, wenn man sie braucht. Deshalb wurde unsere Tabelle zum Ausgangspunkt f\u00fcr die Suche nach Informationen.<\/p>\n<p>Aber QIWI, obwohl es den Geist eines Startups bewahrt, ist ein gro\u00dfes Unternehmen. Wir sind bereits 12 Jahre alt und die Teams \u00e4ndern sich: Menschen gehen, Menschen kommen, es bilden sich neue Teams. Und wir fanden auf unserer Domain mehrere Dienste, die uns vererbt wurden. Einige kamen von Entwicklern aus anderen Teams, andere hatten einfach indirekt mit dem Wallet zu tun, deshalb wird dieser Dienst jetzt in unserem Portfolio gef\u00fchrt. Warum sollten wir uns darum k\u00fcmmern, was und wie funktioniert? Der Dienst funktioniert ja, und wir haben Produktfeatures, die unbedingt umgesetzt werden m\u00fcssen.<\/p>\n<h2>Wie es manchmal der Fall ist.<\/h2>\n<p>\nAber irgendwann entdecken wir, dass der Dienst seine Funktion nicht mehr erf\u00fcllt, dass etwas kaputt ist \u2013 was tun wir in so einer Situation? Der Dienst funktioniert einfach nicht mehr. Gar nicht. Und erfahren haben wir das, erstens zuf\u00e4llig und zweitens nach sechs Monaten. So ist es. Das einzige, was wir wussten \u2013 auf welchen virtuellen Maschinen der Dienst l\u00e4uft, wo seine Quellcodes liegen, und das war's. Wir machen ein git clone und tauchen ein in die Gedanken einer Person, die das vor ein paar Jahren geschrieben hat, aber was sehen wir? Nichts von dem gewohnten Spring Boot, auch wenn wir an alles gew\u00f6hnt sind, schlie\u00dflich sind wir full stack und so weiter. Vielleicht gibt es dort Spring Framework? Aber das gibt es nicht.<\/p>\n<p>Der Junge, der all dies geschrieben hat, war streng und hat alles in reinem Java geschrieben. Gew\u00f6hnliche Entwicklerwerkzeuge gibt es nicht, und die Idee kommt auf \u2013 das Ganze m\u00fcsste man umschreiben. Wir haben schlie\u00dflich Mikrodienste, und aus jedem Toaster dringt das vertraute \"Leute, Mikrodienste sind das, was ihr braucht!\". Wenn irgendetwas nicht stimmt, k\u00f6nnt ihr in Ruhe jede Sprache w\u00e4hlen und alles wird gut.<\/p>\n<p>Die Sache ist die, dass wir derzeit keinen Auftraggeber haben, der f\u00fcr diesen Dienst verantwortlich ist. Welche Gesch\u00e4ftsanforderungen hatte er, was soll dieser Dienst \u00fcberhaupt tun? Der Dienst ist eng in eure Gesch\u00e4ftsprozesse integriert. <\/p>\n<p>Und jetzt sagt mir, wie einfach es ist, einen Dienst neu zu schreiben, ohne seine Gesch\u00e4ftsanforderungen zu kennen? Es ist unklar, wie der Dienst protokolliert wird, ob es Metriken gibt \u2013 unbekannt. Welche sie sind, falls es sie gibt \u2013 erst recht unbekannt. Und dabei gibt es im Dienst eine riesige Anzahl von Klassen mit unklarer Gesch\u00e4ftslogik. Etwas gelangt in eine Datenbank, \u00fcber die wir auch bisher nichts wissen. <\/p>\n<h2>Wo soll man anfangen?<\/h2>\n<p>\nMit dem naheliegendsten \u2014 der Verf\u00fcgbarkeit von Tests. Dort ist normalerweise zumindest eine gewisse Logik geschrieben und man kann Schl\u00fcsse dar\u00fcber ziehen, was vor sich geht. Momentan ist TDD in Mode, aber wir sehen, dass es vor 5 Jahren fast genau so war wie jetzt: es gibt kaum Unit-Tests, und die sagen uns \u00fcberhaupt nichts. Nun, au\u00dfer vielleicht einer \u00dcberpr\u00fcfung, wie man irgendein XML mit einem benutzerdefinierten Zertifikat signiert.<\/p>\n<p>Wir konnten aus dem Code nichts herauslesen, und wir schickten jemanden, um zu sehen, was dort auf der virtuellen Maschine los ist. Wir \u00f6ffneten die Dienstprotokolle und fanden darin den Fehler des HTTP-Clients, das selbstsignierte Zertifikat, das in die Anwendungsressourcen integriert war, war v\u00f6llig veraltet. Wir nahmen Kontakt mit unseren Analysten auf, sie baten um ein neues Zertifikat, das uns ausgestellt wurde, und der Dienst funktioniert wieder. Man k\u00f6nnte denken, dass es damit erledigt ist. Oder nicht? Der Dienst funktioniert schlie\u00dflich und erf\u00fcllt eine Funktion, die f\u00fcr unser Gesch\u00e4ft notwendig ist. Wir haben bestimmte Standards f\u00fcr die Entwicklung von Anwendungen, die vermutlich auch bei Ihnen bestehen. Zum Beispiel sollten Protokolle nicht auf der Node im Ordner gespeichert werden, sondern in einem Speicher, wie zum Beispiel Elastic, und wir sollten sie in Kibana betrachten. Man k\u00f6nnte auch von den wichtigsten Metriken sprechen. Das hei\u00dft, die Belastung des Dienstes, die Anzahl der Anfragen an den Dienst, ob er lebt oder nicht, wie es mit seinem HealthCheck aussieht. Zumindest helfen diese Metriken zu entschl\u00fcsseln, wann man ihn mit ruhigem Gewissen au\u00dfer Betrieb nehmen und als schlechten Traum vergessen kann.<\/p>\n<h2>Was tun<\/h2>\n<p>\nDeshalb f\u00fcgen wir diesen alten Dienst in die Tabelle ein, und dann suchen wir aus den Entwicklern Freiwillige, die sich um den Dienst k\u00fcmmern und ihn in Ordnung bringen: Sie schreiben wenigstens ein paar Informationen \u00fcber den Dienst, f\u00fcgen Links zu den Dashboards in Grafana, zu den Build-Tasks hinzu und verstehen, wie die Anwendung bereitgestellt wird; man kann die Dateien nicht einfach per FTP zusammensammeln. <\/p>\n<p>Das Wichtigste ist, wie viel Zeit all diese n\u00fctzlichen freiwilligen Aktivit\u00e4ten in Anspruch nehmen wird? Ein Sprint f\u00fcr einen mehr oder weniger erfahrenen Entwickler, zum Beispiel w\u00e4hrend 20 % der technischen Schulden. Und wie viel Zeit wurde darauf verwendet, die verfestigte Logik im Umgang mit einem gewissen Regierungssystem zu verstehen und auf aktuellere Technologien umzustellen? Davon kann ich nicht garantieren, vielleicht ein Monat, vielleicht auch zwei Monate Teamarbeit. Das sage ich aus Erfahrung mit der aktuellen Integration eines neuen Dienstes.<\/p>\n<p>Dabei gibt es keinen gesch\u00e4ftlichen Nutzen. Gar keinen. Es ist in Ordnung, einen Dienst zu unterst\u00fctzen und daf\u00fcr etwas Zeit zu investieren. Aber nach unseren \u00fcblichen Tanzrunden mit dem Dienst haben wir ihn in die Tabelle aufgenommen, Informationen \u00fcber ihn hinzugef\u00fcgt und m\u00f6glicherweise werden wir ihn irgendwann neu schreiben. Aber im Moment erf\u00fcllt er unsere Standards f\u00fcr die Arbeit mit Diensten.<\/p>\n<p>Zusammenfassend m\u00f6chte ich zu einem gewissen Plan kommen, was mit Legacy-Diensten zu tun ist. <\/p>\n<p><b>Legacy vollst\u00e4ndig neu zu schreiben, ist eine schlechte Idee.<\/b><br \/>\nIm Ernst, dar\u00fcber muss man sich nicht einmal Gedanken machen. Es ist klar, dass es w\u00fcnschenswert w\u00e4re und einige Vorteile sichtbar sind, aber in der Regel ist das f\u00fcr niemanden notwendig, einschlie\u00dflich Ihnen selbst.<\/p>\n<p><b>Verzeichnis<\/b><br \/>\nGraben Sie die Quellcodes Ihrer Anwendungen aus, erstellen Sie ein Verzeichnis, in dem steht, was wo liegt und wie es funktioniert, und f\u00fcgen Sie auch eine Projektbeschreibung (eine Art readme.md) hinzu, um schnell zu verstehen, wo die Logs und Metriken liegen. Der Entwickler, der damit nach Ihnen arbeitet, wird Ihnen nur danken.<\/p>\n<p><b>Verstehen Sie die Domain<\/b><br \/>\nWenn Ihnen eine Domain geh\u00f6rt, versuchen Sie, den \u00dcberblick zu behalten. Das klingt banal, ja, aber nicht jeder achtet darauf, dass die Dienste einheitlich sind. Tats\u00e4chlich ist es viel einfacher, nach einem einheitlichen Standard zu arbeiten.<\/p>\n<p class=\"for_users_only_msg\">Nur registrierte Benutzer k\u00f6nnen an der Umfrage teilnehmen. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">Bitte einloggen<\/a><\/noindex>.<\/p>\n<h2 class=\"default-block__polling-title\">Was machen Sie mit Ihrem Legacy?<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">31.5%<\/strong>Ich schreibe alles von Grund auf neu, so ist es richtig12<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">52.6%<\/strong>Fast das Gleiche wie Sie20<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">10.5%<\/strong>Wir haben kein Legacy, wir sind gut4<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">5.2%<\/strong>Ich werde es in den Kommentaren schreiben2<\/p>\n<\/li>\n<\/ul>\n<p>    38 Benutzer haben abgestimmt. 20 Benutzer haben sich enthalten.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/qiwi\/blog\/477682\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441? Legacy-\u0441\u0435\u0440\u0432\u0438\u0441 \u2014 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043a\u0430\u0441\u0430\u043b\u0441\u044f \u0443\u0436\u0435 \u043d\u0435\u0434\u0435\u043b\u044e\/\u043c\u0435\u0441\u044f\u0446\/\u0433\u043e\u0434? \u0418\u043b\u0438 \u044d\u0442\u043e \u0441\u0435\u0440\u0432\u0438\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u044b\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043c\u0435\u043d\u0435\u0435 \u043e\u043f\u044b\u0442\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e \u0432\u0430\u043c\u0438, \u043d\u043e \u0433\u043e\u0434 \u043d\u0430\u0437\u0430\u0434? \u0410 \u0442\u0435\u043f\u0435\u0440\u044c-\u0442\u043e \u0432\u044b \u043a\u0440\u0443\u0447\u0435 \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":53443,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53442","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! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?\" \/>\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\/legacy-servisy-v-vashej-infrastrukture\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\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\udd47Legacy-\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture\" \/>\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-12-01T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:20+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\udd47Legacy-Dienste in Ihrer Infrastruktur | ProHoster","description":"Hallo! Ich bin Pasha Tschernyak, leitender Entwickler bei QIWI, und heute m\u00f6chte ich \u00fcber das Unvermeidliche sprechen. \u00dcber Legacy. Lassen Sie uns mit der Frage beginnen: Was ist ein Legacy-Dienst?","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","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\udd47Legacy-\u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0432\u0430\u0448\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u041f\u0430\u0448\u0430 \u0427\u0435\u0440\u043d\u044f\u043a, \u044f \u0432\u0435\u0434\u0443\u0449\u0438\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 QIWI, \u0438 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u0445\u043e\u0447\u0443 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e \u043d\u0435\u0438\u0437\u0431\u0435\u0436\u043d\u043e\u043c. \u041e Legacy. \u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0432\u043e\u043f\u0440\u043e\u0441\u0430: \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Legacy-\u0441\u0435\u0440\u0432\u0438\u0441?","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/legacy-servisy-v-vashej-infrastrukture","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-12-01T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:20+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53442","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 07:23:42","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:25:27","updated":"2026-01-24 07:23:42","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/53442","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=53442"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/53442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/53443"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=53442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=53442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=53442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}