{"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":"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Andrey Nikolsky, der Direktor f\u00fcr den Betrieb des Portals Banki.ru, sprach auf der letztj\u00e4hrigen 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 Moscow<\/a><\/noindex> \u00fcber Orphan-Services: wie man ein Waisenkind in der Infrastruktur identifiziert, was an Orphan-Services schlecht ist, was man damit machen sollte und wie man vorgeht, wenn nichts hilft.<\/p>\n<p>Hier ist die schriftliche Version des Vortrags. <\/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! Mein Name ist Andrey und ich leite den Betrieb bei Banki.ru.<\/p>\n<p>Wir haben gro\u00dfe Services, das sind sogenannte Monolith-Services, es gibt Services im klassischen Sinne und es gibt auch ganz kleine. In meiner praktischen Terminologie sage ich, wenn ein Service einfach und klein ist, dann ist er mikro, und wenn er nicht ganz einfach und nicht klein ist, dann ist es einfach ein Service. <\/p>\n<h3><b>Vorteile der Services<\/b><\/h3>\n<p>\nIch gehe schnell durch die Vorteile der Services. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 \u2013 Skalierbarkeit. Sie k\u00f6nnen schnell etwas auf dem Service machen und in die Produktion starten. Wenn der Traffic kommt, klonen Sie den Service. Wenn noch mehr Traffic kommt, klonen Sie noch einmal und leben damit. Das ist ein guter Bonus und, grunds\u00e4tzlich, als wir angefangen haben, galt er als der wichtigste Grund, warum wir all das tun.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 gibt es die isolierte Entwicklung, wenn Sie mehrere Entwicklungsteams haben, mit verschiedenen Entwicklern in jedem Team, und jedes Team arbeitet an einem eigenen Service.<\/p>\n<p>Es gibt einige Nuancen mit den Teams. Die Entwickler sind unterschiedlich. Beispielsweise gibt es <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/watch?v=VPDJXngp2bM\">Schneeflocken-Menschen<\/a><\/noindex>. Ich habe das zum ersten Mal bei Maxim Dorofeev gesehen. Manchmal gibt es Schneeflocken-Menschen in bestimmten Teams und in anderen nicht. Das f\u00fchrt dazu, dass die verschiedenen in der Firma genutzten Services etwas ungleichm\u00e4\u00dfig sind. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/f1e18ab059bd2b975d4c6ff1b6434626.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSchauen Sie sich das Bild an: Das ist ein guter Entwickler, er hat gro\u00dfe H\u00e4nde und kann viel machen. Das Hauptproblem ist, woher diese H\u00e4nde kommen. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/88fdc7266e97be8732f252908329a8f2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Services erm\u00f6glichen es, verschiedene Programmiersprachen zu verwenden, die besser f\u00fcr unterschiedliche Aufgaben geeignet sind. Ein Service ist in Go, ein anderer in Erlang, einer in Ruby, einer in PHP, und einer in Python. Man kann sich also ziemlich weit ausbreiten. Auch hier gibt es Nuancen.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 Deploy-Prozess, wenn Sie manuell konfigurieren, k\u00f6nnen sich Ihre Konfigurationen von Instanz zu Instanz unterscheiden, und Sie m\u00fcssen jedes Mal etwas anpassen, dann befinden Sie sich im Chaos. <\/p>\n<p>Zum Beispiel, wenn Sie 20 Dienste haben und alles manuell deployen m\u00fcssen, haben Sie 20 Konsolen und dr\u00fccken gleichzeitig \u201aEnter\u2018 wie ein Ninja. Das ist nicht gerade optimal. <\/p>\n<p>Wenn Ihr Service nach dem Testen (sofern es Tests gibt) noch nachjustiert werden muss, um in der Produktion zu funktionieren, habe ich auch schlechte Nachrichten f\u00fcr Sie. <\/p>\n<p>Wenn Sie auf spezialisierte Amazon-Dienste angewiesen sind und dabei in Russland arbeiten, dann war vor zwei Monaten auch bei Ihnen alles \u201aAlles brennt, ich bin in Ordnung, alles ist toll\u2018.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 verwenden Ansible zur Automatisierung der Bereitstellung, Puppet f\u00fcr die Konvergenz, Bamboo f\u00fcr die Automatisierung des Deployments und Confluence, um all dies zu dokumentieren.<\/p>\n<p>Ich werde nicht n\u00e4her darauf eingehen, da der Vortrag eher \u00fcber Praktiken der Zusammenarbeit und nicht \u00fcber technische Implementierungen handelt. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/ab837bed67ee319d72da705bc632e3f3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nManchmal hatten wir Probleme, zum Beispiel wenn Puppet auf dem Server mit Ruby 2 l\u00e4uft, aber eine Anwendung f\u00fcr Ruby 1.8 geschrieben ist. Dann funktioniert es nicht zusammen. Da tritt ein Problem auf. Wenn Sie mehrere Ruby-Versionen auf einer Maschine ben\u00f6tigen, entstehen normalerweise Schwierigkeiten. <\/p>\n<p>Wir stellen beispielsweise jedem Entwickler eine Umgebung bereit, in der alles, was wir haben, verf\u00fcgbar ist \u2013 alle Dienste, die entwickelt werden k\u00f6nnen. So hat er ein isoliertes Umfeld, in dem er experimentieren und aufbauen kann, wie er m\u00f6chte. <\/p>\n<p>Es kann notwendig sein, ein speziell kompiliertes Paket mit Unterst\u00fctzung f\u00fcr bestimmte Funktionen zu ben\u00f6tigen. Das kann recht kompliziert sein. Ich habe einen Vortrag geh\u00f6rt, in dem das Docker-Image 45 GB gro\u00df war. In Linux ist es nat\u00fcrlich einfacher, da ist alles etwas kleiner, aber dennoch reicht der Platz oft nicht aus. <\/p>\n<p>Und es gibt manchmal widerspr\u00fcchliche Abh\u00e4ngigkeiten, wenn ein Teil des Projekts von einer Bibliothek in einer Version abh\u00e4ngt und ein anderer Teil von einer anderen Version, und die Bibliotheken sich \u00fcberhaupt nicht miteinander kombinieren lassen. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 Dienste auf PHP 5.6, daf\u00fcr sch\u00e4men wir uns, aber was soll man machen. Das ist unsere eine Plattform. Es gibt mehr Websites und Dienste auf PHP 7, f\u00fcr die sch\u00e4men wir uns nicht. Und jeder Entwickler hat sein eigenes kleines Repository, wo er fr\u00f6hlich programmiert. <\/p>\n<p>Wenn Sie in Ihrem Unternehmen in einer Sprache schreiben, klingt es normal, drei virtuelle Maschinen pro Entwickler zu haben. Wenn Sie verschiedene Programmiersprachen verwenden, wird die Situation komplizierter.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 auf dieser, und dann auf dieser, dann kommt eine weitere Plattform f\u00fcr Go, eine Plattform f\u00fcr Ruby, und noch irgendein Redis daneben. Am Ende verwandelt sich das alles in ein gro\u00dfes Supportfeld, und st\u00e4ndig kann etwas davon kaputtgehen.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 Vorteile der Programmiersprache gegen die Nutzung verschiedener Frameworks eingetauscht, da die Frameworks in PHP ziemlich unterschiedlich sind, sie haben verschiedene M\u00f6glichkeiten, unterschiedliche Communities und unterschiedliche Unterst\u00fctzung. Und man kann den Dienst so entwickeln, dass man schon etwas Fertiges daf\u00fcr hat. <\/p>\n<h3><b>Jeder Dienst hat sein eigenes Team.<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/ff32f7449c831e6dcb2bd9c41fb9c8e7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEin gro\u00dfer Vorteil, der sich \u00fcber die Jahre herauskristallisiert hat, ist, dass jedes Service-Team eigenst\u00e4ndig ist. Das ist besonders praktisch f\u00fcr gro\u00dfe Projekte, da Sie Zeit bei der Dokumentation sparen und die Manager ihr Projekt gut kennen. <\/p>\n<p>Aufgaben aus dem Support k\u00f6nnen hervorragend delegiert werden. Zum Beispiel, wenn ein Versicherungsservice ausf\u00e4llt, kann sofort das Team, das f\u00fcr die Versicherung zust\u00e4ndig ist, eingreifen und das Problem beheben. <\/p>\n<p>Neue Features werden schnell umgesetzt, weil, wenn Sie einen bestimmten, atomaren Service haben, \u00c4nderungen rasch integriert werden k\u00f6nnen. <\/p>\n<p>Wenn Ihr Service einmal ausf\u00e4llt \u2013 was unvermeidlich passiert \u2013 hat das keine Auswirkungen auf die anderen Services. Die Entwickler anderer Teams kommen nicht mit Baseballschl\u00e4gern zu Ihnen und sagen: \u201eOh je, das sollten Sie besser nicht tun\u201c. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/30d99fa39654701437cdf90929d6a45e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNat\u00fcrlich gibt es auch Nuancen. Wir haben feste Teams, die an ihre Manager gebunden sind. Es gibt klare Dokumente, und die Manager achten sorgf\u00e4ltig darauf. Jedes Team hat mehrere Services in Verantwortung und eine spezifische Kompetenz. <\/p>\n<p>Wenn die Teams flexibel sind (was bei uns manchmal der Fall ist), verwenden wir eine gute Methode, die als \u201eSternenkarte\u201c bezeichnet wird.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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, und ein Buchsymbol zeigt an, dass die Person diesen Dienst studiert. Die Aufgabe der Person ist es, das Buchsymbol gegen ein Sternchen einzutauschen. Wenn hingegen nichts neben dem Dienst steht, gibt es Probleme, \u00fcber die ich sp\u00e4ter sprechen werde. <\/p>\n<h3><b>Wie entstehen ausgesetzte Dienste?<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Orphan-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, die erste M\u00f6glichkeit, einen ausgesetzten Dienst in Ihrer Infrastruktur zu bekommen, sind Entlassungen. Hat jemand schon einmal erlebt, dass Fristen aus dem Gesch\u00e4ft kommen, bevor die Aufgaben bewertet wurden? Manchmal sind die Fristen sehr eng und es bleibt einfach keine Zeit f\u00fcr die Dokumentation. 'Der Dienst muss in die Produktion gehen, sp\u00e4ter werden wir es erg\u00e4nzen.' <\/p>\n<p>Wenn das Team klein ist, gibt es manchmal nur einen Entwickler, der alles schreibt, w\u00e4hrend die anderen unterst\u00fctzen. \u00abIch habe die Hauptarchitektur entworfen, du kannst die Schnittstellen erstellen.\u00bb Dann verl\u00e4sst zu einem gewissen Zeitpunkt der Manager beispielsweise das Team. In dieser Zeit, in der der Manager gegangen ist und noch kein neuer ernannt wurde, entscheiden die Entwickler selbst, in welche Richtung sich der Service entwickelt und was dort passiert. Wie wir wissen (lassen Sie uns ein paar Folien zur\u00fcckspringen), gibt es in einigen Teams sogenannte Einzelg\u00e4nger, manchmal ist ein Einzelg\u00e4nger-Teamleiter. Wenn dieser dann das Unternehmen verl\u00e4sst, haben wir einen \u201ewaisen\u201c Service. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/44741c897bfd9dc04e0a977c1cf08df3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDie Aufgaben von Support und Business verschwinden dabei nicht, sondern sammeln sich im Backlog. Wenn es bei der Entwicklung des Services architektonische Fehler gab, bleiben diese ebenfalls im Backlog. Der Service degradiert langsam. <\/p>\n<h3><b>Wie erkennt man einen \u201eWaisen-Service\u201c?<\/b> <\/h3>\n<p>\nDiese Liste beschreibt die Situation recht gut. Wer erkennt etwas \u00c4hnliches in seiner Infrastruktur?<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 den dokumentierten Workarounds: Es gibt einen Service, der im Wesentlichen funktioniert, und es gibt ein zweiseitiges Handbuch, wie man damit umgeht, aber wie er intern funktioniert, wei\u00df niemand. <\/p>\n<p>Oder zum Beispiel gibt es einen Link-Verk\u00fcrzer. Momentan verwenden wir drei verschiedene Link-Verk\u00fcrzer f\u00fcr unterschiedliche Zwecke in verschiedenen Diensten. Das sind die Folgen. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 zum Kapit\u00e4n der Offensichtlichkeit. Was muss unternommen werden? Zun\u00e4chst einmal sollte der Dienst an einen anderen Manager oder ein anderes Team \u00fcbergeben werden. Wenn Ihr Teamleiter noch nicht gek\u00fcndigt hat, sollten Sie jemanden in dieses andere Team einbeziehen, der wenigstens etwas dar\u00fcber versteht, wenn Sie merken, dass der Dienst wie ein Waisenkind behandelt wird. <\/p>\n<p>Das Wichtigste: Sie m\u00fcssen \u00fcber eindeutig dokumentierte \u00dcbergabeverfahren verf\u00fcgen. In unserem Fall \u00fcberwache ich das in der Regel, da ich m\u00f6chte, dass alles funktioniert. Die Manager wollen, dass es schnell \u00fcbergeben wird, und was danach passiert, ist ihnen nicht so wichtig. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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, besteht darin, es 'auszulagern, das geht schneller, und sp\u00e4ter \u00fcbergeben wir es dem Team'. Es ist klar, dass jeder in der Mannschaft seine eigenen Pl\u00e4ne und Warteschlangen hat. Oft denkt der Gesch\u00e4ftskunde, dass der Outsourcing-Anbieter dies genauso gut macht wie die Technikabteilung des Unternehmens. Dabei haben sie unterschiedliche Motivationen. Beim Outsourcing gibt es oft seltsame technologische und algorithmische L\u00f6sungen.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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, bei dem Sphinx an verschiedenen unerwarteten Orten vorkam. Ich werde sp\u00e4ter erz\u00e4hlen, was wir tun mussten. <\/p>\n<p>Outsourcing-Anbieter haben oft selbstgeschriebene Frameworks. Das ist einfach nur nacktes PHP mit Copy-Paste vom vorherigen Projekt, wo man allerlei findet. Gro\u00dfe Stolpersteine in den Deploy-Skripten, wenn man mit komplizierten Bash-Skripten mehrere Zeilen in einer Datei \u00e4ndern muss, w\u00e4hrend diese Deploy-Skripte von einem anderen Skript aufgerufen werden. Am Ende \u00e4ndert man das Deployment-System, w\u00e4hlt etwas anderes und pl\u00f6tzlich funktioniert der Service nicht mehr. Weil man noch 8 Links zwischen verschiedenen Ordnern setzen musste. Oder manchmal funktioniert eine Tausend Zeilen, aber bei hunderttausend l\u00e4uft nichts mehr. <\/p>\n<p>Ich werde weiterhin das Steuer \u00fcbernehmen. Die Abnahme eines Outsourcing-Services ist ein notwendiger Prozess. Hat jemand schon mal erlebt, dass ein Service aus dem Outsourcing kommt und nirgendwo angenommen wird? Das ist zwar nicht so oft wie bei einem Waise-Service, aber doch. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/92ef67a1bb714cdfb820efe432d0303b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDer Dienst muss regelm\u00e4\u00dfig \u00fcberpr\u00fcft werden, der Dienst muss bewertet werden, Passw\u00f6rter m\u00fcssen ge\u00e4ndert werden. Wir hatten einen Fall, in dem uns ein Dienst angeboten wurde, wo im Code geschrieben stand: \"if login == 'admin' &amp;&amp; password == 'admin'...\". Wir sitzen da und fragen uns, dass das Menschen im Jahr 2018 noch schreiben?<\/p>\n<p>Die \u00dcberpr\u00fcfung des Speicherplatzes ist ebenfalls wichtig. Es ist notwendig zu sehen, was bei hunderttausend Datens\u00e4tzen passieren wird, noch bevor Sie diesen Dienst in die Produktion bringen. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 besch\u00e4mend sein, einen Dienst zur \u00dcberarbeitung zur\u00fcckzusenden. Wenn Sie sagen: \"Wir werden diesen Dienst nicht akzeptieren, wir haben 20 Aufgaben, erledigen Sie diese, dann akzeptieren wir\", ist das v\u00f6llig normal. Ihr Gewissen sollte nicht belastet sein, weil Sie einen Manager in Schwierigkeiten bringen oder das Unternehmen Geld kosten. Das Unternehmen wird sp\u00e4ter noch mehr ausgeben.<\/p>\n<p>Es gab einen Fall, als wir beschlossen, ein Pilotprojekt im Outsourcing durchzuf\u00fchren.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 p\u00fcnktlich geliefert, und das war das einzige Qualit\u00e4tskriterium. Deshalb wurde ein weiteres Pilotprojekt ins Leben gerufen, das eigentlich kein echtes Pilotprojekt mehr war. Diese Dienste wurden \u00fcbernommen, und administrativ wurde gesagt: 'Hier ist euer Code, hier ist das Team, hier ist euer Manager.' Die Dienste haben bereits angefangen, Gewinne zu erzielen. Faktisch sind sie jedoch immer noch wie Waisen, niemand versteht, wie sie funktionieren, und die Manager distanzieren sich bewusst von ihren Aufgaben. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/29ac8ab670df5d2c92dc7940d0a74e24.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEin weiteres gro\u00dfartiges Konzept ist die Guerilla-Entwicklung. Wenn eine Abteilung, gew\u00f6hnlich die Marketingabteilung, eine Hypothese testen m\u00f6chte, beauftragt sie den gesamten Service an einen Dienstleister. Es kommt Verkehr auf die Seite, sie schlie\u00dfen die Unterlagen ab, unterschreiben die Vertr\u00e4ge mit dem Auftragnehmer, gehen in Betrieb und sagen: 'Leute, wir haben hier einen Service, der bereits Traffic hat und uns Geld einbringt, lasst ihn uns \u00fcbernehmen.' Wir sind dann: 'Wow, wie kann das sein?'<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/1fa0187e5db9bed7af0c97ac8500567f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnd ein weiterer Weg, um einen Orphan-Service zu erhalten: Wenn ein Team pl\u00f6tzlich \u00fcberlastet ist, sagt die Leitung: \u201eLass uns den Service von diesem Team zu einem anderen \u00fcbertragen, das weniger Auslastung hat\u201c. Dann geben wir ihn an das dritte Team weiter und wechseln den Manager. Am Ende haben wir wieder einen Waisenservice.<\/p>\n<h3><b>Was ist das Problem mit Waisenservices?<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Orphan-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 gebaute Schlachtschiff Wasa, ber\u00fchmt daf\u00fcr, dass es f\u00fcnf Minuten nach seiner Indienststellung sank. Und der K\u00f6nig von Schweden hat \u00fcbrigens daf\u00fcr niemanden hingerichtet. Es wurde von zwei Generationen von Ingenieuren gebaut, die nicht wussten, wie man solche Schiffe baut. Ein vorhersehbarer Effekt.<\/p>\n<p>Das Schiff h\u00e4tte \u00fcbrigens viel schlimmer sinken k\u00f6nnen, z. B. wenn der K\u00f6nig schon bei einem Sturm darauf unterwegs gewesen w\u00e4re. Aber so ist es sofort gesunken, was im Agile gut ist \u2013 fr\u00fch scheitern. <\/p>\n<p>Wenn wir fr\u00fch gescheitert sind, gibt es normalerweise keine Probleme. Zum Beispiel w\u00e4hrend der Abnahme wurde es zur\u00dcberarbeitung geschickt. Wenn wir jedoch bereits im Produktionsumfeld gescheitert sind, in das Geld investiert wurde, k\u00f6nnen Probleme auftauchen. Die Folgen, wie es im Gesch\u00e4ftsleben genannt wird.<\/p>\n<p>Warum sind Waisenservices gef\u00e4hrlich:<\/p>\n<ul>\n<li>Der Service kann pl\u00f6tzlich ausfallen. <\/li>\n<li>Der Service wird lange repariert oder es erfolgt \u00fcberhaupt keine Reparatur. <\/li>\n<li>Sicherheitsprobleme. <\/li>\n<li>Probleme mit Anpassungen und Updates. <\/li>\n<li>Wenn ein wichtiger Dienst ausf\u00e4llt, leidet der Ruf des Unternehmens. <\/li>\n<\/ul>\n<p><\/p>\n<h3><b>Was ist mit verwaisten Diensten zu tun?<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Orphan-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. Zun\u00e4chst einmal muss es Dokumentation geben. Sieben Jahre bei Banki.ru haben mich gelehrt, dass Tester den Entwicklern nicht einfach glauben sollten, und die Operationsabteilung sollte auch niemandem blind vertrauen. Man muss \u00fcberpr\u00fcfen. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 erstellt werden. Denn es kommt vor, dass Dienste, die nicht besonders gut angenommen werden, Abh\u00e4ngigkeiten enthalten, die niemand erw\u00e4hnt hat. Zum Beispiel haben die Entwickler einen Dienst mit ihrem Schl\u00fcssel f\u00fcr andere Dienste wie Yandex.Maps oder Dadata verkn\u00fcpft. Wenn Ihr kostenloses Kontingent aufgebraucht ist, bricht alles zusammen, und Sie wissen nicht, was passiert ist. Solche Stolpersteine m\u00fcssen dokumentiert werden: Im Dienst wird Dadata, Sms oder etwas anderes verwendet.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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, Umgang mit technischem Schulden. Wenn Sie irgendwelche Provisorien machen oder einen Dienst \u00fcbernehmen und sagen, dass etwas getan werden muss, m\u00fcssen Sie darauf achten, dass dies auch umgesetzt wird. Denn sp\u00e4ter kann sich herausstellen, dass ein kleines Loch nicht so klein ist, und Sie k\u00f6nnten hineinfallen.<\/p>\n<p>Bei architektonischen Herausforderungen hatten wir eine Geschichte mit Sphinx. In einem unserer Dienste wurde Sphinx verwendet, um Listen zu erstellen. Einfach eine Liste mit Pagination, die jedoch jede Nacht neu indiziert wurde. Sie bestand aus zwei Indizes: ein gro\u00dfer, der jede Nacht indiziert wurde, und ein kleiner, der hinzugef\u00fcgt wurde. Jeden Tag, mit einer Wahrscheinlichkeit von 50%, gab es entweder ein Problem oder nicht; beim Aktualisieren wurde der Index besch\u00e4digt, und die Nachrichten h\u00f6rten auf, auf der Hauptseite aktualisiert zu werden. Zun\u00e4chst dauerte es 5 Minuten, bis der Index neu indiziert war. Mit der Zeit wuchs der Index und irgendwann begann die Neuindizierung 40 Minuten in Anspruch zu nehmen. Als wir das beheben konnten, waren wir erleichtert, denn es war klar, dass es nicht lange dauern w\u00fcrde, bis unser Index den ganzen Arbeitstag lang neu indiziert werden w\u00fcrde. Das w\u00e4re ein Versagen f\u00fcr unser Portal gewesen \u2014 acht Stunden ohne Nachrichten, und unser Gesch\u00e4ft st\u00fcnde still.<\/p>\n<h3><b>Arbeitsplan f\u00fcr den Dienst, der keine Begleitung hat<\/b><\/h3>\n<p>\n<img decoding=\"async\" alt=\"Orphan-Services: Die Kehrseite der (Mikro)Service-Architektur\" src=\"\/wp-content\/uploads\/2019\/10\/f072ec872d59de058faf1994ac39f161.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs ist tats\u00e4chlich sehr schwierig, das zu tun, denn DevOps bedeutet Kommunikation. Man m\u00f6chte gute Beziehungen zu seinen Kollegen pflegen, aber wenn man seine Kollegen und Manager mit Vorschriften \u00fcberh\u00e4uft, k\u00f6nnen sie gemischte Gef\u00fchle gegen\u00fcber denen entwickeln, die das tun. <\/p>\n<p>Neben all diesen Punkten gibt es noch etwas Wichtiges: F\u00fcr jeden spezifischen Dienst und jeden bestimmten Teil des Deployments sollten konkrete Personen verantwortlich sein. Wenn es keine Personen gibt und man andere Leute heranziehen muss, um sich darin einzuarbeiten, wird es schwierig.<\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 dein Service weiterhin ohne Betreuung dasteht, niemand ihn \u00fcbernehmen m\u00f6chte, die Dokumentation nicht geschrieben wird und das Team, das zu diesem Service gerufen wurde, sich weigert, etwas zu tun, gibt es einen einfachen Weg \u2014 alles neu machen. <\/p>\n<p>Das bedeutet, du nimmst die Anforderungen an den Dienst erneut zur Hand und schreibst einen neuen, besseren Dienst auf einer besseren Plattform, ohne seltsame technische L\u00f6sungen. Und du migrierst in einem laufenden Betrieb darauf. <\/p>\n<p><img decoding=\"async\" alt=\"Orphan-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 in Anspruch nahmen und realisierten, dass wir ihn nicht weiterentwickeln konnten, da uns die Entwickler ausgegangen waren, die gut auf Yii 1 programmieren konnten. Alle Entwickler sind jetzt gut mit Symfony 3 vertraut. Was sollen wir tun? Wir haben Zeit, ein Team und einen Manager bereitgestellt, das Projekt neu geschrieben und den Traffic schrittweise darauf umgeleitet. <\/p>\n<p>Nachdem der alte Service entfernt werden kann. Das ist mein Lieblingsverfahren, wenn ich in der Konfigurationsverwaltung einen Service l\u00f6schen und dann sicherstellen kann, dass alle Produktionsmaschinen stillgelegt sind, sodass keine Spuren f\u00fcr die Entwickler zur\u00fcckbleiben. Das Repository bleibt im Git erhalten.<\/p>\n<p>Das ist alles, was ich sagen wollte, und ich bin bereit zu diskutieren; das Thema ist umstritten, viele haben damit Erfahrungen gesammelt. <\/p>\n<p><b>In den Folien ging es darum, dass Sie die Programmiersprachen vereinheitlicht haben. Als Beispiel wurde das Bearbeiten von Bildern genannt. Ist es wirklich notwendig, auf eine einzige Sprache zu bestehen? Denn das Resize von Bildern in PHP h\u00e4tte man tats\u00e4chlich auch mit Golang machen k\u00f6nnen.<\/b><\/p>\n<p>Tats\u00e4chlich ist es nicht unbedingt notwendig, wie alle Praktiken. In manchen F\u00e4llen kann es sogar unerw\u00fcnscht sein. Aber man muss verstehen, dass wenn Sie in Ihrem Unternehmen 50 Mitarbeiter im technischen Bereich haben, von denen 45 PHP-Entwickler sind, weitere 3 DevOps-Experten, die mit Python, Ansible und Puppet arbeiten, und nur einer von ihnen einen Service zum Resizen von Bildern in Go schreibt, dann geht die Expertise mit ihm, wenn er geht. Und gleichzeitig m\u00fcssen Sie einen spezifischen Entwickler auf dem Markt suchen, der diese Sprache beherrscht, besonders wenn sie selten ist. Aus organisatorischer Sicht ist das problematisch. Aus der Sicht eines DevOps ben\u00f6tigen Sie nicht nur eine Kopie eines vorhandenen Sets von Playbooks, die Sie verwenden, um Services bereitzustellen, sondern m\u00fcssen diese von Grund auf neu schreiben. <\/p>\n<p>Wir entwickeln gerade einen Service mit Node.js, und das wird genau die Plattform f\u00fcr jeden Entwickler mit einer eigenen Sprache sein. Aber wir haben dar\u00fcber nachgedacht, dass es sich lohnt. Es ist also eine Frage, bei der man sich hinsetzen und nachdenken sollte.<\/p>\n<p><b>Wie \u00fcberwachen Sie Ihre Services? Wie sammeln und verfolgen Sie Logs?<\/b><\/p>\n<p>Wir sammeln die Logs in Elasticsearch und speichern sie in Kibana. Je nachdem, ob es sich um eine Produktions- oder Testumgebung handelt, verwenden wir unterschiedliche Log-Collector. Manchmal nutzen wir Lumberjack, manchmal etwas anderes, ich kann mich nicht mehr genau erinnern. Au\u00dferdem gibt es bestimmte Stellen in bestimmten Services, wo wir Telegraf installieren und die Logs separat woanders hin schicken. <\/p>\n<p><b>Wie lebt man mit Puppet und Ansible in einer Umgebung zusammen?<\/b><\/p>\n<p>Tats\u00e4chlich haben wir derzeit zwei Umgebungen: eine mit Puppet und eine mit Ansible. Wir arbeiten daran, sie zu hybridisieren. Ansible eignet sich gut f\u00fcr die Erstkonfiguration, w\u00e4hrend Puppet nicht ideal daf\u00fcr ist, da es manuelles Eingreifen direkt in die Infrastruktur erfordert. Puppet stellt jedoch die Konvergenz der Konfiguration sicher. Das bedeutet, dass die Infrastruktur selbstst\u00e4ndig auf dem aktuellen Stand bleibt. Damit eine Ansible-verwaltete Maschine aktuell bleibt, m\u00fcssen wir st\u00e4ndig Playbooks in regelm\u00e4\u00dfigen Abst\u00e4nden ausf\u00fchren. Das ist der entscheidende Unterschied. <\/p>\n<p><b>Wie gew\u00e4hrleisten Sie die Kompatibilit\u00e4t? Haben Sie Konfigurationen sowohl in Ansible als auch in Puppet?<\/b><\/p>\n<p>Es ist ein st\u00e4ndiges \u00c4rgernis f\u00fcr uns. Wir arbeiten an der Kompatibilit\u00e4t und \u00fcberlegen, wie wir all das am besten bew\u00e4ltigen k\u00f6nnen. Puppet installiert Pakete und verwaltet einige Verkn\u00fcpfungen, w\u00e4hrend Ansible beispielsweise den Code implementiert und die aktuellen Konfigurationen der Anwendungen anpasst.<\/p>\n<p><b>In der Pr\u00e4sentation ging es um verschiedene Versionen von Ruby. Was ist die L\u00f6sung?<\/b><\/p>\n<p>Wir sind damit an einer Stelle in Ber\u00fchrung gekommen und m\u00fcssen st\u00e4ndig daran denken. Wir haben einfach den Teil deaktiviert, der auf der Ruby-Version lief, die nicht mit den Anwendungen kompatibel war, und haben ihn separat 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 Moscow<\/a><\/noindex> am 7. Dezember im \u201eTechnopolis\u201c statt. Wir nehmen bis zum 11. November Vorschl\u00e4ge f\u00fcr Vortr\u00e4ge an. <noindex><a rel=\"nofollow\" href=\"http:\/\/devopsdays.ru\/?utm_source=habr&amp;utm_medium=social&amp;utm_campaign=dod-2019&amp;utm_content=post3\">Kontaktieren Sie<\/a><\/noindex> uns, wenn Sie einen Vortrag halten m\u00f6chten.<\/p>\n<p>Die Registrierung f\u00fcr Teilnehmer ist ge\u00f6ffnet, 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 4.9.10 - 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 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,\" \/>\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) 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\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 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,\" \/>\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\udd47 Waisendienstleistungen: Die Kehrseite der (Mikro-)Servicearchitektur | ProHoster","description":"Der Betreiber des Portals Banki.ru, Andrei Nikolskij, sprach auf der letztj\u00e4hrigen Konferenz DevOpsDays Moscow \u00fcber sogenannte Waisendienstleistungen: wie man sie in der Infrastruktur identifiziert, welche Probleme sie mit sich bringen, was man dagegen tun kann und wie man vorgehen sollte, wenn alles andere fehlschl\u00e4gt. Nach dem Abschnitt finden Sie die schriftliche Version des Vortrags. Guten Tag, Kollegen! Mein Name ist Andrei und ich leite die Betriebstechnik in der Firma Banki.ru. Wir haben gro\u00dfe Dienste.","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 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,","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"},"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}]}}