{"id":38981,"date":"2019-10-31T22:27:10","date_gmt":"2019-10-31T19:27:10","guid":{"rendered":"https:\/\/prohoster.info\/blog\/servisy-siroty-obratnaya-storona-mikro-servisnoj-arhitektury\/"},"modified":"2019-10-31T22:27:10","modified_gmt":"2019-10-31T19:27:10","slug":"servisy-siroty-obratnaya-storona-mikro-servisnoj-arhitektury","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/servisy-siroty-obratnaya-storona-mikro-servisnoj-arhitektury","title":{"rendered":"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Der Direktor f\u00fcr den Betrieb des Portals Banki.ru, Andrei Nikolsky, sprach auf der Konferenz im letzten Jahr <noindex><a rel=\"nofollow\" href=\"http:\/\/devopsdays.ru\/?utm_source=habr&amp;utm_medium=social&amp;utm_campaign=dod-2019&amp;utm_content=post3\">DevOpsDays Moskau<\/a><\/noindex> \u00fcber Waisendienste: wie man einen Waise im System erkennt, welche Probleme Waisendienste haben, was man mit ihnen tun kann und wie man vorgeht, wenn nichts hilft.<\/p>\n<p>Unter dem Cut ist die textliche Version des Berichts. <\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"j9I4oeEXBO8\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/j9I4oeEXBO8\/hqdefault.jpg\" alt=\"Video abspielen\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nGuten Tag, Kollegen! Ich hei\u00dfe Andrei und leite den Betrieb bei Banki.ru.<\/p>\n<p>Wir haben gro\u00dfe Dienste, das sind Monolithdienste, es gibt Dienste im klassischeren Sinne, und es gibt ganz kleine. In meiner Arbeitssprache sage ich, dass ein Dienst einfach und klein ist, dann ist er Mikro, und wenn er nicht ganz einfach und nicht klein ist, dann ist es einfach ein Dienst. <\/p>\n<h3><b>Vorteile von Dienstleistungen<\/b><\/h3>\n<p>\nIch werde schnell die Vorteile der Dienstleistungen durchgehen. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/4c34a3af9125c5869eb7c1650bc3855a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nErstens \u2014 Skalierbarkeit. Sie k\u00f6nnen schnell etwas auf dem Dienst machen und in die Produktion starten. Sie haben Traffic bekommen, Sie haben den Dienst klonen k\u00f6nnen. Ihr kommt noch mehr Traffic, Sie klonen nochmal und damit leben Sie. Das ist ein guter Bonus, und im Grunde genommen, als wir angefangen haben, galt das als das Wichtigste, warum wir das alles \u00fcberhaupt machen.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/c536f380ece14e0c873f765b587fb3c3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZweitens, isolierte Entwicklung, wenn Sie mehrere Entwicklungsteams haben, mehrere verschiedene Entwickler in jedem Team, und jedes Team entwickelt seinen eigenen Dienst.<\/p>\n<p>Bei den Teams gibt es ein Nuance. Entwickler sind unterschiedlich. Und es gibt zum Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=VPDJXngp2bM\">Schneeflockenmenschen<\/a><\/noindex>. Ich habe das zum ersten Mal bei Maxim Dorofeev gesehen. Manchmal gibt es Schneeflockenmenschen in einigen Teams, in anderen gibt es sie nicht. Das macht die verschiedenen Dienste, die im Unternehmen verwendet werden, etwas ungleichm\u00e4\u00dfig. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/f1e18ab059bd2b975d4c6ff1b6434626.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSehen Sie sich das Bild an: Das ist ein guter Entwickler, er hat gro\u00dfe H\u00e4nde, er kann viel tun. Das Hauptproblem ist, woher diese H\u00e4nde kommen. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/88fdc7266e97be8732f252908329a8f2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDienste erm\u00f6glichen es, verschiedene Programmiersprachen zu verwenden, die besser f\u00fcr unterschiedliche Aufgaben geeignet sind. Ein Dienst ist in Go, ein anderer in Erlang, einer in Ruby, etwas in PHP, etwas in Python. Insgesamt kann man sich sehr breit entfalten. Auch hier gibt es Nuancen.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/98a4b1037066d67e4f16bab934cebac6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nService-orientierte Architektur bedeutet in erster Linie DevOps. Das hei\u00dft, wenn Sie keine Automatisierung haben, keinen Bereitstellungsprozess, wenn Sie es h\u00e4ndisch einstellen, k\u00f6nnen sich Ihre Konfigurationen von Instanz zu Instanz unterscheiden, und Sie m\u00fcssen dort hinein gehen und etwas machen, dann sind Sie im Chaos. <\/p>\n<p>Zum Beispiel haben Sie 20 Services und m\u00fcssen manuell deployen, haben 20 Konsolen und dr\u00fccken gleichzeitig wie ein Ninja auf \u201eEnter\u201c. Das ist nicht ideal. <\/p>\n<p>Wenn Sie einen Service nach dem Testen haben (sofern es Tests gibt) und ihn noch nachbearbeiten m\u00fcssen, damit er in der Produktion funktioniert, habe ich leider auch schlechte Nachrichten f\u00fcr Sie. <\/p>\n<p>Wenn Sie auf spezifische Amazon-Services angewiesen sind und dabei in Russland arbeiten, hatten Sie vor zwei Monaten auch \u201eAlles brennt, mir geht's gut, alles ist super\u201c.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/474f5f1c3f0ced131df5ee8f30f0aa15.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir nutzen Ansible zur Automatisierung des Deployments, Puppet f\u00fcr die Konvergenz, Bamboo zur Automatisierung des Deployments und Confluence, um all dies irgendwie zu dokumentieren.<\/p>\n<p>Ich werde nicht ausf\u00fchrlich darauf eingehen, da der Vortrag eher \u00fcber Interaktionspraktiken und nicht \u00fcber technische Implementierungen handelt. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/ab837bed67ee319d72da705bc632e3f3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir hatten beispielsweise Probleme, dass Puppet auf dem Server mit Ruby 2 funktioniert, w\u00e4hrend eine bestimmte Anwendung f\u00fcr Ruby 1.8 geschrieben wurde, und zusammen funktionieren sie nicht. Da entsteht ein Problem. Wenn Sie mehrere Ruby-Versionen auf einem Rechner halten m\u00fcssen, fangen die Probleme normalerweise an. <\/p>\n<p>Zum Beispiel stellen wir jedem Entwickler eine Plattform zur Verf\u00fcgung, auf der alles, was wir haben, verf\u00fcgbar ist, alle Services, die entwickelt werden k\u00f6nnen, damit er eine isolierte Umgebung hat, in der er herumexperimentieren und aufbauen kann, wie er m\u00f6chte. <\/p>\n<p>Manchmal wird ein speziell kompilierter Paket ben\u00f6tigt, das etwas unterst\u00fctzt. Das ist ziemlich strikt. Ich habe einen Vortrag geh\u00f6rt, in dem das Docker-Image 45 GB gro\u00df war. Unter Linux ist es nat\u00fcrlich einfacher, da ist alles kleiner, aber trotzdem wird der Platz knapp. <\/p>\n<p>Es gibt auch widerspr\u00fcchliche Abh\u00e4ngigkeiten, bei denen ein Teil des Projekts von einer Bibliothek einer Version abh\u00e4ngt, w\u00e4hrend ein anderer Teil von einer anderen Version abh\u00e4ngt, und diese Bibliotheken k\u00f6nnen \u00fcberhaupt nicht zusammen installiert werden. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/acc4c38c547cd6d0580cf3524532393a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir haben Websites und Services auf PHP 5.6, wof\u00fcr wir uns sch\u00e4men, aber was sollen wir machen. Das ist unsere eine Plattform. Es gibt Websites und Services auf PHP 7, von denen es mehr gibt, und daf\u00fcr sch\u00e4men wir uns nicht. Und jeder Entwickler hat seine eigene Datenbank, in der er fr\u00f6hlich arbeitet. <\/p>\n<p>Wenn Sie in einem Unternehmen in einer einzigen Programmiersprache schreiben, klingt es normal, drei virtuelle Maschinen pro Entwickler zu haben. Wenn Sie verschiedene Programmiersprachen haben, wird die Situation schwieriger.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/9f5da38456024679ba6a41768466cb82.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSie haben Websites und Dienste daf\u00fcr, daf\u00fcr, dann noch eine Plattform f\u00fcr Go, eine Plattform f\u00fcr Ruby, noch ein Redis daneben. Am Ende verwandelt sich das alles in ein gro\u00dfes Feld f\u00fcr Support, und st\u00e4ndig kann etwas davon kaputtgehen.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/20bde06e0aaceea028fabea09540d2a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDeshalb haben wir die Vorz\u00fcge der Programmiersprache durch die Nutzung unterschiedlicher Frameworks ersetzt, da Frameworks in PHP ziemlich unterschiedlich sind, sie haben unterschiedliche M\u00f6glichkeiten, unterschiedliche Communities, unterschiedlichen Support. Und man kann den Dienst so schreiben, dass man bereits etwas Fertiges daf\u00fcr hat. <\/p>\n<h3><b>Jeder Dienst hat sein eigenes Team<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/ff32f7449c831e6dcb2bd9c41fb9c8e7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnser gr\u00f6\u00dfter Vorteil, der sich \u00fcber mehrere Jahre herauskristallisiert hat, ist, dass jeder Dienst sein eigenes Team hat. Das ist praktisch f\u00fcr ein gro\u00dfes Projekt, man kann Zeit bei der Dokumentation sparen, die Manager kennen ihr Projekt gut. <\/p>\n<p>Support-Aufgaben k\u00f6nnen hervorragend einflie\u00dfen. Zum Beispiel, wenn der Versicherungsdienst ausgefallen ist. Und sofort geht das Team, das sich um die Versicherung k\u00fcmmert, ihn reparieren. <\/p>\n<p>Neue Funktionen werden schnell umgesetzt, denn wenn Sie einen atomaren Dienst haben, kann man schnell etwas einbauen. <\/p>\n<p>Und wenn Sie Ihren Dienst kaputt gemacht haben, was unvermeidlich passiert, haben Sie keine anderen Dienste besch\u00e4digt, und es kommen keine Entwickler mit Schl\u00e4gen aus anderen Teams zu Ihnen, um zu sagen: \"Oh-oh, das sollten Sie nicht tun.\" <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/30d99fa39654701437cdf90929d6a45e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWie immer gibt es Nuancen. Wir haben stabile Teams, die Manager sind fest mit dem Team verbunden. Es gibt klare Dokumente, die Manager achten genau darauf. Jedes Team hat mit dem Manager mehrere Dienste und einen bestimmten Kompetenzbereich. <\/p>\n<p>Wenn die Teams wechselhaft sind (was wir manchmal auch haben), gibt es eine gute Methode, die \u201eSternenkarte\u201c genannt wird.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/cd18530d30973628f9351757a800dc37.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSie haben eine Liste von Diensten und Personen. Ein Sternchen bedeutet, dass die Person ein Experte in diesem Dienst ist, ein Buch bedeutet, dass die Person diesen Dienst studiert. Die Aufgabe der Person besteht darin, das Buch gegen ein Sternchen auszutauschen. Wenn gegen\u00fcber dem Dienst nichts geschrieben steht, beginnen Probleme, \u00fcber die ich sp\u00e4ter berichten werde. <\/p>\n<h3><b>Wie entstehen Waise-Dienste?<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/8ae33d6e940700a5941409b7cedf3e9a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDas erste Problem und die erste M\u00f6glichkeit, einen Service-Waisen in Ihrer Infrastruktur zu erhalten, sind Entlassungen von Mitarbeitern. Hat jemand schon einmal erlebt, dass Fristen aus dem Unternehmen gesetzt werden, bevor die Aufgaben bewertet wurden? Manchmal sind die Fristen so eng, dass es nicht genug Zeit f\u00fcr die Dokumentation gibt. \u201eDer Service muss in die Produktion \u00fcbergeben werden, den Rest schreiben wir sp\u00e4ter.\u201c <\/p>\n<p>Wenn das Team klein ist, gibt es manchmal nur einen Entwickler, der alles schreibt, w\u00e4hrend die anderen unterst\u00fctzend t\u00e4tig sind. \u201eIch habe die Hauptarchitektur geschrieben, du kannst die Schnittstellen entwerfen.\u201c Dann verl\u00e4sst irgendwann ein Manager das Team. In diesem Zeitraum, wenn der Manager nicht mehr da ist und kein neuer gefunden wurde, entscheiden die Entwickler selbst, wohin sich der Service bewegt und was dort passiert. Und wie wir wissen (wir erinnern uns an ein paar Folien zur\u00fcck), gibt es in einigen Teams individuelle \u201eSchneeflocken\u201c-Mitglieder, manchmal ist eine Schneeflocke der Teamleiter. Dann k\u00fcndigt er, und wir haben einen Service-Waisen. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/44741c897bfd9dc04e0a977c1cf08df3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDabei verschwinden die Aufgaben von Support und Business nicht, sie sammeln sich im Backlog. Wenn bei der Entwicklung des Dienstes architektonische Fehler aufgetreten sind, bleiben sie ebenfalls im Backlog. Der Service degeneriert langsam. <\/p>\n<h3><b>Wie erkennt man einen Waisen-Service?<\/b> <\/h3>\n<p>\nDiese Liste beschreibt die Situation ganz gut. Wer hat bei sich in der Infrastruktur etwas erkannt?<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/b852d070bb6864f48e3a6ae9921a12b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZu dokumentierten Workarounds: Es gibt einen Service, der insgesamt funktioniert, und es gibt ein Handbuch von zwei Seiten, wie man damit umgeht, aber wie es intern funktioniert, wei\u00df niemand. <\/p>\n<p>Oder zum Beispiel gibt es einen Linkverk\u00fcrzer. Bei uns zum Beispiel gibt es derzeit drei Linkverk\u00fcrzer f\u00fcr unterschiedliche Zwecke in verschiedenen Services. Das sind die Folgen davon. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/350a041f21fcd75d9a948d2b9b77cda8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJetzt werde ich der Kapit\u00e4n der Offensichtlichkeit. Was sollte man unternehmen? Erstens, den Service an einen anderen Manager oder ein anderes Team \u00fcbergeben. Wenn Ihr Teamleiter noch nicht gek\u00fcndigt hat, sollten Sie in dieses andere Team, wenn Sie merken, dass der Service wie ein Waisen-Service aussieht, jemanden einbeziehen, der wenigstens ein bisschen davon versteht. <\/p>\n<p>Das Wichtigste: Sie m\u00fcssen schriftlich festgelegte \u00dcbergabeverfahren haben. In unserem Fall \u00fcberwache ich das normalerweise, weil ich sicherstellen muss, dass alles funktioniert. Die Manager m\u00f6chten, dass es schnell erledigt wird, und was danach mit dem Service passiert, ist ihnen nicht mehr so wichtig. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/87b9d86c2c795f5d71db1489cab200a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEine weitere M\u00f6glichkeit, ein Waisenkind zu schaffen, ist: \u201eWir lagern es aus, das geht schneller, und dann geben wir es ins Team.\u201c Es ist klar, dass jeder in der Gruppe irgendwelche Pl\u00e4ne hat, eine Warteliste. Oft denkt der Gesch\u00e4ftskunde, dass die Auslagerer es genauso machen wie die Technikabteilung im Unternehmen. Aber ihre Motivationen sind unterschiedlich. Bei der Auslagerung gibt es oft merkw\u00fcrdige technische L\u00f6sungen und seltsame algorithmische Entscheidungen.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/b4208ccb134cbc694ea4993ec2751ec5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir hatten zum Beispiel einen Service, in dem Sphinx an verschiedenen unerwarteten Orten war. Ich werde sp\u00e4ter erz\u00e4hlen, was wir tun mussten. <\/p>\n<p>Auslagerer haben oft selbstgeschriebene Frameworks. Das ist einfach nur nacktes PHP, das vom vorherigen Projekt kopiert wurde, wo man allerlei finden kann. Gro\u00dfe Kr\u00fccken in den Deployment-Skripten, wenn Sie mit einigen komplizierten Bash-Skripten ein paar Zeilen in einer Datei \u00e4ndern m\u00fcssen, w\u00e4hrend diese Deployment-Skripte von einem dritten Skript aufgerufen werden. Am Ende \u00e4ndern Sie das Deployment-System, w\u00e4hlen etwas anderes aus, und zack, der Service funktioniert nicht mehr. Weil man daf\u00fcr noch 8 Links zwischen verschiedenen Ordnern setzen musste. Oder es kommt vor, dass tausend Eintr\u00e4ge funktionieren, aber hunderttausend schon nicht mehr. <\/p>\n<p>Ich mache weiter mit dem Kapit\u00e4n. Die Abnahme des Services aus der Auslagerung ist ein Verfahren, das zwingend erforderlich ist. Wer hat schon einmal erlebt, dass ein Service aus der Auslagerung ankommt und nirgendwo angenommen wird? Das ist nicht so popul\u00e4r wie ein Waisenkind-Service, aber dennoch. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/92ef67a1bb714cdfb820efe432d0303b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDienste m\u00fcssen \u00fcberpr\u00fcft und bewertet werden, Passw\u00f6rter m\u00fcssen ge\u00e4ndert werden. Wir hatten einen Fall, in dem uns ein Dienst mit einer Admin-Oberfl\u00e4che mit \"if login == 'admin' &amp;&amp; password == 'admin'...\" untergeschoben wurde, direkt im Code geschrieben. Wir sitzen da und denken, dass Menschen so etwas 2018 schreiben?<\/p>\n<p>Die Testung des Speichervolumens ist ebenfalls notwendig. Man muss schauen, was bei hunderttausend Eintr\u00e4gen passiert, bevor man diesen Service in die Produktion gibt. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/3fabdc20049892cee7636c30e595881d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs sollte nicht peinlich sein, den Service zur Nachbesserung zu senden. Wenn Sie sagen: \u201eWir nehmen diesen Service nicht an, wir haben 20 Aufgaben, machen Sie diese, dann nehmen wir ihn an\u201c, ist das normal. Man sollte kein schlechtes Gewissen haben, dass man den Manager in die Bredouille bringt oder dass das Unternehmen Geld ausgibt. Das Unternehmen wird sp\u00e4ter mehr ausgeben.<\/p>\n<p>Wir hatten einen Fall, als wir beschlossen, ein Pilotprojekt in der Auslagerung zu machen.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/a5b25638e51c4eabe9d6a6971f08fa6b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs wurde rechtzeitig \u00fcbergeben, und das war das einzige Qualit\u00e4tskriterium. Daher wurde ein weiteres Pilotprojekt gestartet, das schon l\u00e4ngst kein richtiges Pilotprojekt mehr war. Diese Services wurden bereitgestellt, es wurden administrative Mittel eingesetzt und gesagt, hier ist Ihr Code, hier ist das Team, hier ist Ihr Manager. Die Services haben tats\u00e4chlich schon begonnen, Gewinne zu erwirtschaften. Dennoch sind sie nach wie vor Waisen, niemand versteht, wie sie funktionieren, und die Manager weichen ihren Aufgaben irgendwie aus. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/29ac8ab670df5d2c92dc7940d0a74e24.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs gibt noch ein hervorragendes Konzept \u2013 die Guerilla-Entwicklung. Wenn eine Abteilung, normalerweise die Marketingabteilung, eine Hypothese \u00fcberpr\u00fcfen m\u00f6chte, beauftragt sie den gesamten Service im Outsourcing. Daraufhin flie\u00dft der Traffic ein, sie schlie\u00dfen die Abrechnungen ab, unterschreiben Vertr\u00e4ge mit dem Auftragnehmer, gehen in Betrieb und sagen: \u201eJungs, wir haben hier einen Service, der bereits Traffic hat, er bringt uns Geld, lasst ihn annehmen.\u201c Wir sagen: \u201eWow, wie kann das sein?\"<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/1fa0187e5db9bed7af0c97ac8500567f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEine weitere M\u00f6glichkeit, einen Waisendienst zu erhalten: Wenn ein Team pl\u00f6tzlich \u00fcberlastet ist, sagt das Management: \u201eLass uns den Service dieses Teams an ein anderes Team \u00fcbergeben, das weniger belastet ist.\u201c Und dann geben wir ihn an ein drittes Team weiter und wechseln den Manager. Am Ende haben wir wieder einen Waisen.<\/p>\n<h3><b>Was ist das Problem mit Waisen?<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/009170e7989a78e8bd9f5b7b364e358c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWer es nicht wei\u00df, das ist das in Schweden gehobene Schlachtschiff Wasa, das daf\u00fcr ber\u00fchmt ist, dass es 5 Minuten nach dem Stapellauf gesunken ist. Und der K\u00f6nig von Schweden hat \u00fcbrigens niemanden daf\u00fcr hingerichtet. Es wurde von zwei Generationen von Ingenieuren erbaut, die nicht wussten, wie man solche Schiffe baut. Ein logischer Effekt.<\/p>\n<p>Das Schiff h\u00e4tte \u00fcbrigens viel schlimmer untergehen k\u00f6nnen, zum Beispiel, wenn der K\u00f6nig schon bei einem Sturm darauf gefahren w\u00e4re. So sank es sofort, was im Agilen Ansatz gut ist \u2013 fr\u00fch zu scheitern. <\/p>\n<p>Wenn wir fr\u00fch gescheitert sind, gibt es normalerweise keine Probleme. Zum Beispiel, wenn wir bei der Abnahme zur Nachbearbeitung geschickt wurden. Wenn wir aber bereits in der Produktion gescheitert sind, wenn Geld investiert wurde, k\u00f6nnten Probleme auftreten. Die Folgen, wie sie im Gesch\u00e4ft genannt werden.<\/p>\n<p>Was ist gef\u00e4hrlich an Waisenservices:<\/p>\n<ul>\n<li>Der Service kann pl\u00f6tzlich ausfallen. <\/li>\n<li>Der Service ist lange nicht repariert oder wird gar nicht repariert. <\/li>\n<li>Sicherheitsprobleme. <\/li>\n<li>Probleme mit Nachbesserungen und Updates. <\/li>\n<li>Wenn ein wichtiger Service ausf\u00e4llt, leidet der Ruf des Unternehmens. <\/li>\n<\/ul>\n<p><\/p>\n<h3><b>Was tun mit Waisendiensten?<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/094444a042ccf12bf4c9e166c3fffe47.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIch wiederhole, was zu tun ist. Erstens muss es eine Dokumentation geben. 7 Jahre bei Banki.ru haben mich gelehrt, dass Tester den Entwicklern nicht einfach glauben sollten und der Betrieb nicht jedem trauen sollte. Man muss \u00fcberpr\u00fcfen. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/23d652f96e93eb52d9172b103121fe54.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZweitens sollten Interaktionsschemata geschrieben werden, denn es kann vorkommen, dass Services, die nicht gut angenommen werden, Abh\u00e4ngigkeiten enthalten, von denen niemand erz\u00e4hlt hat. Zum Beispiel haben die Entwickler einen Service an ihren Schl\u00fcssel f\u00fcr irgendwelche Yandex.Karten oder Dadata gebunden. Ihr kostenloses Kontingent ist ersch\u00f6pft, alles ist kaputt gegangen und Sie wissen nicht, was \u00fcberhaupt passiert ist. All diese Stolpersteine sollten dokumentiert werden: Im Service wird Dadata, Sms oder etwas anderes verwendet.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/b2770a07cf265ad8a3890b2cb2f62263.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDrittens, die Arbeit mit technischem Schulden. Wenn Sie irgendwelche Notl\u00f6sungen einf\u00fchren oder einen Service \u00fcbernehmen und sagen, dass etwas gemacht werden muss, m\u00fcssen Sie darauf achten, dass das auch erledigt wird. Denn sonst kann es sein, dass ein kleines Loch nicht so klein ist und Sie da hineinfallen.<\/p>\n<p>Mit architektonischen Aufgaben hatten wir eine Geschichte \u00fcber Sphinx. In einem der Services wurde Sphinx verwendet, um Listen einzugeben. Einfach eine Liste mit Paginierung, aber sie wurde jede Nacht neu indiziert. Sie wurde aus zwei Indizes erstellt: Ein Index wurde jede Nacht gro\u00df indiziert und es gab einen kleinen Index, der daran angebunden war. Jeden Tag, mit einer Wahrscheinlichkeit von 50 %, gab es entweder einen Ausfall oder nicht, bei der Auslieferung fiel der Index aus und die Nachrichten auf unserer Startseite aktualisierten sich nicht mehr. Anfangs dauerte es 5 Minuten, bis der Index neu indiziert wurde, dann wuchs der Index und irgendwann begann es, 40 Minuten zu dauern. Als wir das herausnahmen, atmeten wir erleichtert auf, denn es war klar, dass es nicht lange dauern w\u00fcrde, bis unser Index w\u00e4hrend eines ganzen Arbeitstags neu indiziert werden m\u00fcsste. Das w\u00e4re ein Misserfolg f\u00fcr unser Portal, acht Stunden keine Nachrichten \u2013 das w\u00fcrde das Gesch\u00e4ft lahmlegen.<\/p>\n<h3><b>Arbeitsplan f\u00fcr den Waisendienst<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/f072ec872d59de058faf1994ac39f161.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn der Tat ist es sehr schwierig, das zu tun, weil DevOps mit Kommunikation zu tun hat. Man m\u00f6chte gute Beziehungen zu seinen Kollegen haben, und wenn man Kollegen und Manager mit Vorschriften \u00fcberh\u00e4uft, k\u00f6nnen sie widerspr\u00fcchliche Gef\u00fchle gegen\u00fcber denjenigen empfinden, die so handeln. <\/p>\n<p>Neben all diesen Punkten gibt es noch eine wichtige Sache: F\u00fcr jeden spezifischen Service und f\u00fcr jeden bestimmten Schritt im Deployment-Prozess m\u00fcssen konkrete Personen verantwortlich sein. Wenn es keine solchen Personen gibt und man andere Leute hinzuziehen muss, um sich mit dem Ganzen auseinanderzusetzen, wird es schwierig.<\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/28e7372012d5089d3ac1be3d7dc97e03.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWenn all das nicht geholfen hat und der Service weiterhin ein Waise ist, den niemand haben m\u00f6chte, die Dokumentation nicht geschrieben wird und das Team, das f\u00fcr diesen Service zusammengestellt wurde, sich weigert, etwas zu tun, gibt es einen einfachen Weg \u2013 alles neu machen. <\/p>\n<p>Das hei\u00dft, Sie nehmen die Anforderungen an den Service neu auf und schreiben einen neuen, besseren Service auf einer besseren Plattform, ohne seltsame technologische L\u00f6sungen. Und Sie migrieren im laufenden Betrieb. <\/p>\n<p><img decoding=\"async\" alt=\"Waisen-Services: die Kehrseite der (Mikro)-Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/63d0bf7d9ac1e5c5b00b67b519e228a1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir hatten die Situation, dass wir einen Service auf Yii 1 \u00fcbernommen haben und festgestellt haben, dass wir ihn nicht weiterentwickeln k\u00f6nnen, weil uns die Entwickler ausgegangen sind, die gut mit Yii 1 arbeiten k\u00f6nnen. Alle Entwickler beherrschen gut Symfony 3. Was tun? Wir haben Zeit, ein Team und einen Manager eingeplant, das Projekt neu geschrieben und schrittweise den Traffic auf dieses Projekt umgeleitet. <\/p>\n<p>Danach kann der alte Service gel\u00f6scht werden. Das ist mein liebstes Verfahren, wenn aus dem Konfigurationsmanagement-System ein Service entfernt werden muss, und man dann sicherstellen muss, dass alle Maschinen im Produktionsbetrieb abgeschaltet sind, damit die Entwickler keine Spuren hinterlassen. Das Repository bleibt im Git.<\/p>\n<p>Das ist alles, was ich erz\u00e4hlen wollte. Ich bin bereit, dar\u00fcber zu diskutieren; das Thema ist umstritten, viele haben sich damit besch\u00e4ftigt. <\/p>\n<p><b>In den Folien wurde erw\u00e4hnt, dass Sie die Sprachen vereinheitlicht haben. Ein Beispiel war das Resizing von Bildern. Ist es wirklich notwendig, auf eine einzige Sprache festgelegt zu sein? Denn das Resizing von Bildern in PHP k\u00f6nnte man tats\u00e4chlich auch in Golang machen.<\/b><\/p>\n<p>Tats\u00e4chlich ist das nicht unbedingt erforderlich, wie bei allen Praktiken. In einigen F\u00e4llen kann es sogar unerw\u00fcnscht sein. Man muss jedoch verstehen, dass wenn in Ihrer Firma 50 Personen im Technikteam sind, von denen 45 PHP-Entwickler sind, 3 DevOps, die in Python, Ansible, Puppet und so weiter versiert sind, und nur einer von ihnen einen Dienst zum Resizen von Bildern in Go schreibt, dann geht mit ihm die Expertise verloren, wenn er geht. Zudem m\u00fcssen Sie einen spezifischen Entwickler auf dem Markt suchen, der diese Sprache kennt, insbesondere wenn sie selten ist. Das bedeutet aus organisatorischer Sicht, dass es problematisch ist. Aus der Sicht eines DevOps m\u00fcssen Sie nicht einfach irgendein vorhandenes Set von Playbooks klonen, die Sie zum Bereitstellen von Diensten verwenden, sondern Sie m\u00fcssen sie von Grund auf neu schreiben. <\/p>\n<p>Wir bauen gerade einen Dienst auf Node.js, und das wird der Raum f\u00fcr jeden Entwickler mit einer eigenen Sprache sein. Aber wir haben dar\u00fcber nachgedacht, dass sich der Aufwand lohnt. Es ist also eine Frage des Nachdenkens.<\/p>\n<p><b>Wie \u00fcberwachen Sie Ihre Dienste? Wie sammeln und verfolgen Sie die Protokolle?<\/b><\/p>\n<p>Wir sammeln die Protokolle in Elasticsearch und legen sie in Kibana ab, und je nachdem, ob es sich um Produktions- oder Testumgebungen handelt, verwenden wir unterschiedliche Sammler. An einigen Orten Lumberjack, an anderen noch etwas, ich erinnere mich nicht mehr. Und es gibt einige Stellen in bestimmten Diensten, wo wir Telegraf installieren und noch woanders separat hin schicken. <\/p>\n<p><b>Wie lebt man mit Puppet und Ansible in einer Umgebung?<\/b><\/p>\n<p>Tats\u00e4chlich haben wir jetzt zwei Umgebungen, eine mit Puppet, die andere mit Ansible. Wir arbeiten daran, sie zu hybridisieren. Ansible ist eine gute Umgebung f\u00fcr die Erstkonfiguration, Puppet ist eher ungeeignet daf\u00fcr, weil es direkte manuelle Arbeit mit dem System erfordert, und Puppet gew\u00e4hrleistet die Konvergenz der Konfiguration. Das bedeutet, dass das System sich selbst in einem aktuellen Zustand h\u00e4lt, w\u00e4hrend Sie f\u00fcr eine Ansible-gest\u00fctzte Maschine st\u00e4ndig Playbooks mit einer gewissen Regelm\u00e4\u00dfigkeit ausf\u00fchren m\u00fcssen, damit sie aktuell bleibt. Das ist der Unterschied. <\/p>\n<p><b>Wie stellen Sie die Kompatibilit\u00e4t sicher? Haben Sie Konfigurationen sowohl in Ansible als auch in Puppet?<\/b><\/p>\n<p>Das ist unser gro\u00dfes Problem; wir m\u00fcssen die Kompatibilit\u00e4t selbst gew\u00e4hrleisten und \u00fcberlegen, wie wir von all dem irgendwohin wechseln k\u00f6nnen. Es scheint, dass Puppet Pakete installiert und dort einige Links bereith\u00e4lt, w\u00e4hrend Ansible beispielsweise den Code bereitstellt und die aktuellen Anwendungs-Konfigurationen anpasst.<\/p>\n<p><b>In der Pr\u00e4sentation ging es um verschiedene Ruby-Versionen. Was ist die L\u00f6sung?<\/b><\/p>\n<p>Wir sind damit an einem Punkt konfrontiert worden, und wir m\u00fcssen das st\u00e4ndig im Hinterkopf behalten. Wir haben einfach den Teil deaktiviert, der auf dem Ruby lief, das mit den Anwendungen nicht kompatibel war, und ihn getrennt gehalten. <\/p>\n<blockquote><p> In diesem Jahr findet die Konferenz <noindex><a rel=\"nofollow\" href=\"http:\/\/devopsdays.ru\/?utm_source=habr&amp;utm_medium=social&amp;utm_campaign=dod-2019&amp;utm_content=post3\">DevOpsDays Moskau<\/a><\/noindex> am 7. Dezember im \u201eTechnopolis\u201c statt. Wir nehmen bis zum 11. November Anmeldungen f\u00fcr Vortr\u00e4ge entgegen. <noindex><a rel=\"nofollow\" href=\"http:\/\/devopsdays.ru\/?utm_source=habr&amp;utm_medium=social&amp;utm_campaign=dod-2019&amp;utm_content=post3\">Schreiben Sie<\/a><\/noindex> uns, wenn Sie sprechen m\u00f6chten.<\/p>\n<p>Die Registrierung f\u00fcr Teilnehmer ist offen, schlie\u00dfen Sie sich uns an! \n<\/p><\/blockquote>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/scienceman_events\/blog\/471146\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440 \u043f\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u0430\u043b\u0430 Banki.ru \u0410\u043d\u0434\u0440\u0435\u0439 \u041d\u0438\u043a\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0435\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 DevOpsDays Moscow \u043f\u0440\u043e \u0441\u0435\u0440\u0432\u0438\u0441\u044b-\u0441\u0438\u0440\u043e\u0442\u044b: \u043a\u0430\u043a \u043e\u043f\u043e\u0437\u043d\u0430\u0442\u044c \u0441\u0438\u0440\u043e\u0442\u0443 \u0432 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435, \u0447\u0435\u043c \u043f\u043b\u043e\u0445\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u044b-\u0441\u0438\u0440\u043e\u0442\u044b, \u0447\u0442\u043e \u0441 \u043d\u0438\u043c\u0438 \u0434\u0435\u043b\u0430\u0442\u044c, \u0438 \u043a\u0430\u043a \u0431\u044b\u0442\u044c, \u0435\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442. \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0434\u043e\u043a\u043b\u0430\u0434\u0430. \u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439\u0442\u0435, \u043a\u043e\u043b\u043b\u0435\u0433\u0438! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043d\u0434\u0440\u0435\u0439, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0436\u0443 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0435\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Banki.ru. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u044b, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":29246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-38981","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=\"\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440 \u043f\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u0430\u043b\u0430 Banki.ru \u0410\u043d\u0434\u0440\u0435\u0439 \u041d\u0438\u043a\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0435\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438\" \/>\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\/servisy-siroty-obratnaya-storona-mikro-servisnoj-arhitektury\" \/>\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\udd47\u0421\u0435\u0440\u0432\u0438\u0441\u044b-\u0441\u0438\u0440\u043e\u0442\u044b: \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 (\u043c\u0438\u043a\u0440\u043e)\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440 \u043f\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u0430\u043b\u0430 Banki.ru \u0410\u043d\u0434\u0440\u0435\u0439 \u041d\u0438\u043a\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0435\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/servisy-siroty-obratnaya-storona-mikro-servisnoj-arhitektury\" \/>\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:27:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:27:10+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\udd47Waisenservices: die Kehrseite der (Mikro)service-Architektur | ProHoster","description":"Der Direktor f\u00fcr den Betrieb des Portals Banki.ru, Andrei Nikolsky, sprach auf der Konferenz im letzten Jahr","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/servisy-siroty-obratnaya-storona-mikro-servisnoj-arhitektury","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\u0421\u0435\u0440\u0432\u0438\u0441\u044b-\u0441\u0438\u0440\u043e\u0442\u044b: \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u0430 (\u043c\u0438\u043a\u0440\u043e)\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b | ProHoster","og:description":"\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440 \u043f\u043e \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0440\u0442\u0430\u043b\u0430 Banki.ru \u0410\u043d\u0434\u0440\u0435\u0439 \u041d\u0438\u043a\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043d\u0430 \u043f\u0440\u043e\u0448\u043b\u043e\u0433\u043e\u0434\u043d\u0435\u0439 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/servisy-siroty-obratnaya-storona-mikro-servisnoj-arhitektury","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:27:10+00:00","article:modified_time":"2019-10-31T19:27:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38981","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 00:15:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:59:27","updated":"2026-01-24 00:15:21","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\/38981","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=38981"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/38981\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/29246"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=38981"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=38981"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=38981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}