{"id":92806,"date":"2020-08-31T07:42:03","date_gmt":"2020-08-31T05:42:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-perestat-bespokoitsya-i-nachat-zhit-bez-monolita"},"modified":"2020-08-31T07:42:03","modified_gmt":"2020-08-31T05:42:03","slug":"kak-perestat-bespokoitsya-i-nachat-zhit-bez-monolita","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-perestat-bespokoitsya-i-nachat-zhit-bez-monolita","title":{"rendered":"Wie man aufh\u00f6rt, sich Sorgen zu machen, und anf\u00e4ngt, ohne Monolith zu leben","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Wie man aufh\u00f6rt, sich Sorgen zu machen, und anf\u00e4ngt, ohne Monolith zu leben\" src=\"\/wp-content\/uploads\/2020\/08\/eb6ab7fd08eeebd8cdad89b0e4e6588e.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nWir alle lieben Geschichten. Es gef\u00e4llt uns, am Lagerfeuer zu sitzen und von unseren fr\u00fcheren Siegen, K\u00e4mpfen oder einfach von unseren Erfahrungen zu erz\u00e4hlen.<\/p>\n<p>Heute ist genau so ein Tag. Und auch wenn Sie jetzt nicht am Lagerfeuer sitzen, haben wir eine Geschichte f\u00fcr Sie. Eine Geschichte dar\u00fcber, wie wir begonnen haben, mit dem Speicher auf Tarantool zu arbeiten.<\/p>\n<p>Vor langer Zeit gab es in unserem Unternehmen ein paar \u201eMonolithen\u201c und eine gemeinsame \u201eDecke\u201c, der diese Monolithen langsam, aber sicher n\u00e4her kamen und den Flug unseres Unternehmens, unser Wachstum, einschr\u00e4nkten. Und es gab ein klares Bewusstsein: Eines Tages w\u00fcrden wir heftig gegen diese Decke sto\u00dfen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nHeute herrscht bei uns die Ideologie der Trennung von allem und jedem, angefangen bei der Hardware bis hin zur Gesch\u00e4ftslogik. Infolgedessen haben wir beispielsweise zwei DCs, die auf netzwerktechnischer Ebene praktisch unabh\u00e4ngig sind. Damals war alles jedoch ganz anders.<\/p>\n<p>Heutzutage gibt es eine Vielzahl von Werkzeugen und Mitteln zur Implementierung von \u00c4nderungen, wie CI\/CD, K8S usw. In der \u201emonolithischen\u201c Zeit ben\u00f6tigten wir nicht so viele Fremdw\u00f6rter. Es gen\u00fcgte, einfach das \u201eSpeicherding\u201c in der Datenbank zu \u00e4ndern.<\/p>\n<p>Doch die Zeit schritt voran, und die Anzahl der Anfragen stieg entsprechend, sodass gelegentlich unsere M\u00f6glichkeiten \u00fcbertroffen wurden. Mit dem Markteintritt in den GUS-Staaten fiel die Belastung auf dem Prozessor der ersten Monolith-Datenbank nicht unter 90 % und die RPS lagen bei 2400. Und das waren nicht einfach kleine Selektionen, sondern riesige Anfragen mit einer Vielzahl von \u00dcberpr\u00fcfungen und JOINs, die fast \u00fcber die H\u00e4lfte der Daten im Hintergrund bei gro\u00dfem IO laufen konnten.<\/p>\n<p>Als dann richtige Verkaufsaktionen zum \u201eBlack Friday\u201c begannen \u2013 und Wildberries damit einer der ersten in Russland war \u2013 wurde die Situation ganz traurig. Denn die Belastung an solchen Tagen steigt um das Dreifache.<br \/>\nOh, diese \u201emonolithischen Zeiten\u201c! Ich bin mir sicher, dass auch Sie damit konfrontiert waren und immer noch nicht verstehen k\u00f6nnen, wie das Ihnen passieren konnte.<\/p>\n<p>Was kann man tun \u2013 Trends betreffen auch Technologien. Vor etwa 5 Jahren mussten wir einen solchen Trend \u00fcberdenken, der sich in der vorhandenen Website auf .NET und MS SQL-Server manifestierte, die sorgf\u00e4ltig die gesamte Logik der Funktionsweise der Website speicherte. Sie speicherte sie so sorgsam, dass das Zerschneiden eines solchen Monolithen ein langwieriges und keineswegs einfaches Vergn\u00fcgen war.<br \/>\nEine kleine Bemerkung. <\/p>\n<p>Auf verschiedenen Veranstaltungen sage ich: \u201eWenn Sie das Monolith nicht zers\u00e4gt haben, dann sind Sie nicht gewachsen!\u201c Ich bin gespannt auf Ihre Meinung dazu, bitte schreiben Sie sie in die Kommentare.<\/p>\n<h3>Und es donnert<\/h3>\n<p>\nKehren wir zu unserem \u201eKamin\u201c zur\u00fcck. Um die Last der \u201emonolithischen\u201c Funktionalit\u00e4t zu verteilen, haben wir beschlossen, das System in Mikrodienste zu unterteilen, die auf Open-Source-Technologien basieren. Denn deren Skalierung ist zumindest g\u00fcnstiger. Und wir waren uns zu 100 % bewusst, dass wir es skalieren m\u00fcssen (und das nicht wenig). Denn bereits zu diesem Zeitpunkt hatten wir M\u00e4rkte in Nachbarl\u00e4ndern erschlossen, und die Anzahl der Registrierungen sowie die Anzahl der Bestellungen begann noch st\u00e4rker zu wachsen.<\/p>\n<p>Nachdem wir die ersten Kandidaten f\u00fcr den Ausstieg aus dem Monolithen in Mikrodienste analysiert hatten, verstanden wir, dass in 80 % der F\u00e4lle die Daten in 99 % aus Backoffice-Systemen stammen, w\u00e4hrend das Lesen von der Front kommt. Dies betraf in erster Linie zwei wichtige Teilsysteme f\u00fcr uns \u2013 die Benutzerdaten und das System zur Berechnung der Endpreise von Waren basierend auf Informationen \u00fcber zus\u00e4tzliche Kundenerm\u00e4\u00dfigungen und Gutscheine.<\/p>\n<p>Am Rande. Es ist erschreckend sich vorzustellen, aber neben den oben genannten Teilsystemen wurden auch die Produktkataloge, der Warenkorb, das Produktsuchsystem, das Filtersystem f\u00fcr die Produktkataloge und verschiedene Empfehlungssysteme aus unserem Monolithen ausgelagert. F\u00fcr die Arbeit jedes einzelnen existieren separate Klassen von spezialisierten Systemen, aber einst lebten sie alle in einem \u201eH\u00e4uschen\u201c. <\/p>\n<p>Die Daten unserer Kunden wollten wir sofort in ein shardiertes System auslagern. Die Auslagerung der Funktionalit\u00e4t zur Berechnung der Endpreise f\u00fcr Waren erforderte jedoch eine gute Leseskalierbarkeit, da diese die gr\u00f6\u00dfte Belastung in Bezug auf RPS verursachte und f\u00fcr die Datenbank am schwierigsten umzusetzen war (sehr viele Daten sind in den Berechnungsprozess involviert). <\/p>\n<p>Infolgedessen entstand ein Schema, das gut mit Tarantool harmonierte.<\/p>\n<p>Zu diesem Zeitpunkt wurden f\u00fcr die Arbeit mit Mikrodiensten Modelle gew\u00e4hlt, die mehrere Rechenzentren auf virtuellen und physischen Maschinen unterst\u00fctzen. Wie in den Abbildungen gezeigt, wurden Tarantool-Replikationsvarianten sowohl im Master-Master- als auch im Master-Slave-Modus angewendet. <\/p>\n<p><img decoding=\"async\" alt=\"Wie man aufh\u00f6rt, sich Sorgen zu machen, und anf\u00e4ngt, ohne Monolith zu leben\" src=\"\/wp-content\/uploads\/2020\/08\/b7bf3d6646ec9f6a8f8af3a539adede1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Architektur. Variante 1. Benutzerservice<\/i><\/p>\n<p>Aktuell sind es 24 Shards, von denen jeder \u00fcber 2 Instanzen (jeweils eine in jedem DC) verf\u00fcgt, alle im Master-Master-Modus.<\/p>\n<p>\u00dcber der Datenbank befinden sich Anwendungen, die auf die Replikate der Datenbank zugreifen. Die Anwendungen arbeiten \u00fcber unsere benutzerdefinierte Bibliothek mit Tarantool, die die Schnittstelle des Go-Tarantool-Treibers implementiert. Sie sieht alle Replikate und kann sowohl mit dem Master zum Lesen als auch zum Schreiben arbeiten. Im Grunde implementiert sie das Modell des Replikatensatzes, in das Logik zur Auswahl von Replikaten, zur Durchf\u00fchrung von Wiederholungsversuchen, Circuit Breaker und Ratenbegrenzung integriert ist.<\/p>\n<p>Dabei besteht die M\u00f6glichkeit, die Auswahlrichtlinie der Replikate im Hinblick auf Shards zu konfigurieren. Zum Beispiel Round-Robin.<\/p>\n<p><img decoding=\"async\" alt=\"Wie man aufh\u00f6rt, sich Sorgen zu machen, und anf\u00e4ngt, ohne Monolith zu leben\" src=\"\/wp-content\/uploads\/2020\/08\/6dc36fa54e3d01bd51f879fccdfd8e0b.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Architektur. Variante 2. Dienst zur Berechnung der Endkosten eines Produkts<\/i><\/p>\n<p>Vor einigen Monaten gingen die meisten Anfragen zur Berechnung der Endkosten von Produkten an einen neuen Dienst, der grunds\u00e4tzlich ohne Datenbanken funktioniert, aber eine Zeit lang wurden 100 % von einem Dienst mit Tarantool im Hintergrund verarbeitet.<\/p>\n<p>Die Datenbank des Dienstes besteht aus 4 Master-Knoten, in die der Synchronisierer Daten sammelt, und jeder dieser Master verteilte die Daten \u00fcber Replikation auf readonly-Replikate. Jeder Master hat ungef\u00e4hr 15 solcher Replikate.<\/p>\n<p>Sowohl im ersten als auch im zweiten Schema kann die Anwendung bei Nichterreichbarkeit eines Rechenzentrums die Daten im zweiten erhalten.<\/p>\n<p>Es ist erw\u00e4hnenswert, dass die Replikation in Tarantool ziemlich flexibel ist und zur Laufzeit konfiguriert werden kann. In anderen Systemen gab es oft Schwierigkeiten. Zum Beispiel erfordert die \u00c4nderung der Parameter max_wal_senders und max_replication_slots in PostgreSQL einen Neustart des Masters, was in einigen F\u00e4llen zu Verbindungsabbr\u00fcchen zwischen der Anwendung und der Datenbank f\u00fchren kann.<\/p>\n<h3>Suchen und finden!<\/h3>\n<p>\nWarum haben wir nicht \u201ewie normale Menschen\u201c gemacht, sondern einen untypischen Weg gew\u00e4hlt? Es kommt darauf an, was man f\u00fcr normal h\u00e4lt. Viele machen \u00fcberhaupt einen Cluster aus Mongo und verteilen ihn \u00fcber drei geo-verteilte Rechenzentren.<\/p>\n<p>Zu dieser Zeit hatten wir bereits zwei Projekte auf Redis. Das erste war ein Cache, das zweite stellte ein persistentes Speicher f\u00fcr nicht allzu kritische Daten dar. Damit hatten wir es ziemlich schwer, teilweise auch wegen unserer Schuld. Manchmal lagen recht gro\u00dfe Mengen Daten im Schl\u00fcssel, und es wurde dem System gelegentlich schlecht. Dieses System nutzten wir im Master-Slave-Modus. Es gab viele F\u00e4lle, in denen etwas mit dem Master passierte und die Replikation fehlschlug. <\/p>\n<p>Das hei\u00dft, Redis eignet sich gut f\u00fcr zustandslose Aufgaben, aber nicht f\u00fcr zustandsbehaftete. Grunds\u00e4tzlich konnte es die meisten Aufgaben l\u00f6sen, aber nur, wenn es sich um Schl\u00fcssel-Werte-L\u00f6sungen mit ein paar Indizes handelte. Zu diesem Zeitpunkt hatte Redis jedoch erhebliche Probleme mit Persistenz und Replikation. Au\u00dferdem gab es Beschwerden \u00fcber die Leistung.<\/p>\n<p>Wir haben \u00fcber MySQL und PostgreSQL nachgedacht. Aber der erste hat sich irgendwie nicht bei uns durchgesetzt, und der zweite ist an sich ein recht komplexes Produkt, weshalb es unpraktisch w\u00e4re, auf ihm einfache Dienste aufzubauen.<br \/>\nWir haben RIAK, Cassandra und sogar grafische Datenbanken ausprobiert. All diese L\u00f6sungen sind ziemlich nischenhaft und eigneten sich nicht als allgemeines, universelles Werkzeug zur Erstellung von Diensten.<\/p>\n<p>Letztendlich haben wir uns f\u00fcr Tarantool entschieden.<\/p>\n<p>Wir haben ihn in der Version 1.6 kontaktiert. Wir waren an dem Zusammenspiel von Schl\u00fcssel-Wert und der Funktionalit\u00e4t einer relationalen Datenbank interessiert. Es gibt sekund\u00e4re Indizes, Transaktionen und Spaces, das sind wie Tabellen, aber keine einfachen; man kann unterschiedlich viele Spalten darin speichern. Das Killer-Feature von Tarantool waren die sekund\u00e4ren Indizes in Kombination mit Schl\u00fcssel-Wert und Transaktionsf\u00e4higkeit.<\/p>\n<p>Auch die hilfsbereite russischsprachige Community spielte eine Rolle, die bereit war, im Chat zu helfen. Wir haben dies aktiv genutzt und lebten praktisch im Chat. Und man sollte nicht die anst\u00e4ndige Persistenz ohne klare Fehler und M\u00e4ngel vergessen. Wenn man unsere Geschichte mit Tarantool betrachtet, hatten wir viele Probleme und Schwierigkeiten mit der Replikation, aber wir haben nie Daten aufgrund seiner Schuld verloren!<\/p>\n<h3>Die Implementierung begann schwierig.<\/h3>\n<p>\nZu diesem Zeitpunkt war .NET unser Hauptentwicklungsstapel, f\u00fcr den es keinen Connector f\u00fcr Tarantool gab. Wir begannen sofort, etwas in Go zu machen. Mit Lua klappte es auch ganz gut. Das Hauptproblem zu diesem Zeitpunkt war das Debugging: In .NET war alles gro\u00dfartig, aber danach in die Welt des eingebetteten Lua einzutauchen, wenn man au\u00dfer Logs kein Debugging hat, war ziemlich herausfordernd. Au\u00dferdem brach die Replikation aus unerkl\u00e4rlichen Gr\u00fcnden gelegentlich zusammen, weshalb wir uns intensiver mit der Funktionsweise der Tarantool-Engine befassen mussten. Der Chat half dabei, weniger die Dokumentation, manchmal schauten wir uns den Code an. Zu diesem Zeitpunkt war die Dokumentation eher m\u00e4\u00dfig.<\/p>\n<p>So dauerte es mehrere Monate, um Erfahrung zu sammeln und anst\u00e4ndige Ergebnisse bei der Arbeit mit Tarantool zu erzielen. Wir haben in Git Referenzimplementierungen erstellt, die bei der Entwicklung neuer Mikrodienste halfen. Zum Beispiel, wenn die Aufgabe auftauchte, einen weiteren Mikrodienst zu erstellen, schaute der Entwickler sich den Quellcode der Referenzl\u00f6sung im Repository an, und die Erstellung eines neuen dauerte nicht mehr als eine Woche. <\/p>\n<p>Das waren besondere Zeiten. Man konnte damals einfach zum Administrator am Nachbartisch gehen und sagen: \u201eGib mir eine VM.\u201c Nach etwa drei\u00dfig Minuten hatte man bereits die Maschine. Man hat sich selbst verbunden, alles installiert, und man bekam den Traffic daf\u00fcr.<\/p>\n<p>Heute funktioniert das so nicht mehr: Man muss das Monitoring f\u00fcr den Service einrichten, Protokollierung vornehmen, die Funktionalit\u00e4t mit Tests abdecken, eine VM oder eine Bereitstellung in K8s anfordern usw. Insgesamt wird es so besser sein, obwohl es l\u00e4nger dauert und aufwendiger ist.<\/p>\n<h3>Teile und herrsche. Wie steht es um Lua?<\/h3>\n<p>\nEs gab ein ernstes Dilemma: Einige Teams hatten Schwierigkeiten, \u00c4nderungen in einem Service mit viel Logik in Lua zuverl\u00e4ssig auszurollen. Oft endete dies in einer Nichtexistenz des Services. <\/p>\n<p>Das hei\u00dft, die Entwickler bereiten eine \u00c4nderung vor. Tarantool beginnt mit der Migration, und die Replikation l\u00e4uft noch mit altem Code; dort trifft ein DDL ein, noch etwas anderes, und der Code bricht einfach zusammen, weil das nicht ber\u00fccksichtigt wird. Infolgedessen war das Update-Verfahren f\u00fcr die Administratoren auf einem A4-Blatt niedergeschrieben: Replikation stoppen, dies aktualisieren, Replikation einschalten, hier ausschalten, dort aktualisieren. Ein Albtraum! <\/p>\n<p>Letztendlich versuchen wir jetzt h\u00e4ufig, in Lua nichts zu tun. Einfach \u00fcber iproto (das bin\u00e4re Protokoll zur Interaktion mit dem Server) und das war's. Vielleicht liegt es am Mangel an Wissen der Entwickler, aber aus dieser Sicht ist das System komplex.<\/p>\n<p>Wir folgen diesem Szenario nicht immer blind. Heute gibt es bei uns kein Schwarz und Wei\u00df: entweder alles in Lua oder alles in Go. Wir verstehen bereits, wie es kombiniert werden kann, um sp\u00e4ter keine Probleme mit der Migration zu bekommen.<\/p>\n<p>Wo gibt es derzeit Tarantool?<br \/>\nTarantool wird im Dienst zur Berechnung des endg\u00fcltigen Preises von Waren unter Ber\u00fccksichtigung von Rabattgutscheinen, auch bekannt als \u201ePromotizer\u201c, eingesetzt. Wie bereits erw\u00e4hnt, zieht er sich derzeit zur\u00fcck: Ein neuer Katalogdienst mit vorab berechneten Preisen ersetzt ihn. Aber vor einem halben Jahr wurden alle Berechnungen im \u201ePromotizer\u201c durchgef\u00fchrt. Fr\u00fcher war die H\u00e4lfte seiner Logik in Lua geschrieben. Vor zwei Jahren wurde der Dienst zu einem Speicher und die Logik in Go umgeschrieben, da die Mechanik der Rabatte sich etwas ge\u00e4ndert hat und der Dienst nicht gen\u00fcgend Leistung hatte. <\/p>\n<p>Einer der kritischsten Dienste ist das Benutzerprofil. Das hei\u00dft, alle Benutzer von Wildberries werden in Tarantool gespeichert, und es sind etwa 50 Millionen. Ein nach Benutzer-ID shardiertes System, verteilt auf mehrere DCs mit einer Anbindung an Go-Dienste. <br \/>\nBei RPS war fr\u00fcher der \u201ePromotizer\u201c der F\u00fchrer, es kam bis zu 6.000 Anfragen. In einem bestimmten Moment hatten wir 50-60 Instanzen. Jetzt ist der F\u00fchrer bei RPS - die Benutzerprofile, etwa 12.000. In diesem Dienst wird ein kundenspezifisches Sharding mit einer Aufteilung nach Benutzer-ID-Bereichen angewendet. Der Dienst bedient mehr als 20 Maschinen, aber das ist zu viel; wir planen, die zugewiesenen Ressourcen zu reduzieren, da 4-5 Maschinen ausreichend Leistung bieten.<\/p>\n<p>Der Dienst f\u00fcr Sitzungen ist unser erster Dienst auf vshard und Cartridge. Die Konfiguration von vshard und das Update von Cartridge erforderten einige Arbeitsaufw\u00e4nde von uns, aber am Ende hat alles geklappt.<\/p>\n<p>Der Dienst zur Anzeige verschiedener Banner auf der Website und in der mobilen Anwendung war einer der ersten, die sofort auf Tarantool ver\u00f6ffentlicht wurden. Dieser Dienst ist bemerkenswert, da er etwa 6-7 Jahre alt ist, immer noch im Einsatz ist und nie neu gestartet wurde. Es wurde eine Master-Master-Replikation verwendet. Es gab nie Probleme.<\/p>\n<p>Es gibt ein Beispiel f\u00fcr die Nutzung von Tarantool f\u00fcr die Funktionalit\u00e4t schneller Nachschlagewerke im Lagerverwaltungssystem, um in bestimmten F\u00e4llen Informationen schnell zu \u00fcberpr\u00fcfen. Wir haben versucht, daf\u00fcr Redis zu verwenden, aber die Daten im Speicher nahmen mehr Platz ein als bei Tarantool.<\/p>\n<p>Die Dienste f\u00fcr Wartelisten, Kundenabonnements, die derzeit angesagten Stories und die zwischenzeitlich aufgegebenen Waren arbeiten ebenfalls mit Tarantool. Der letzte Dienst ben\u00f6tigt im Speicher etwa 120 GB. Das ist der umfangreichste Dienst aus den genannten Gr\u00fcnden. <\/p>\n<h3>Fazit<\/h3>\n<p>\nDank sekund\u00e4ren Indizes in Kombination mit Key-Value und Transaktionsf\u00e4higkeit eignet sich Tarantool hervorragend f\u00fcr architektonische L\u00f6sungen, die auf Mikrodiensten basieren. Allerdings hatten wir Schwierigkeiten, als wir \u00c4nderungen in Diensten mit viel Logik in Lua ausrollten \u2013 die Dienste fielen h\u00e4ufig aus. Es gelang uns nicht, dieses Problem zu bew\u00e4ltigen, und im Laufe der Zeit kamen wir zu verschiedenen Kombinationen von Lua und Go: Wir wissen, wo einer der beiden Sprachen zum Einsatz kommen sollte.<\/p>\n<p><b>Was gibt es noch zu lesen<\/b><\/p>\n<ul>\n<li>Wir entwickeln eine hochbelastbare Anwendung auf Tarantool von Grund auf. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/510440\/\">habr.com\/ru\/company\/mailru\/blog\/510440<\/a><\/noindex><\/li>\n<li>Eine zuverl\u00e4ssige Wahl der F\u00fchrungskraft bei Tarantool Cartridge. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/513912\/\">habr.com\/ru\/company\/mailru\/blog\/513912<\/a><\/noindex><\/li>\n<li>Telegram-Kanal von Tarantool mit Neuigkeiten zum Produkt. <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/tarantool_news\">t.me\/tarantool_news<\/a><\/noindex><\/li>\n<li>Diskutiere Tarantool im Community-Chat. <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/tarantoolru\">t.me\/tarantoolru<\/a><\/noindex><\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/516932\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435 \u043c\u044b \u043b\u044e\u0431\u0438\u043c \u0438\u0441\u0442\u043e\u0440\u0438\u0438. \u041d\u0430\u043c \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f, \u0441\u0438\u0434\u044f \u0443 \u043a\u043e\u0441\u0442\u0440\u0430, \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e \u0441\u0432\u043e\u0438\u0445 \u0431\u044b\u043b\u044b\u0445 \u043f\u043e\u0431\u0435\u0434\u0430\u0445, \u0441\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u0445 \u0438\u043b\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043e \u0441\u0432\u043e\u0435\u043c \u043e\u043f\u044b\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u044b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043a\u0430\u043a \u0440\u0430\u0437 \u0442\u0430\u043a\u043e\u0439 \u0434\u0435\u043d\u044c. \u0418 \u043f\u0443\u0441\u0442\u044c \u0432\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u043d\u0435 \u0443 \u043a\u043e\u0441\u0442\u0440\u0430, \u043d\u043e \u0437\u0430\u0442\u043e \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0434\u043b\u044f \u0432\u0430\u0441. \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u0447\u0430\u043b\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435\u043c \u043d\u0430 Tarantool. \u041a\u043e\u0433\u0434\u0430-\u0442\u043e \u0434\u0430\u0432\u043d\u044b\u043c-\u0434\u0430\u0432\u043d\u043e \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":92807,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-92806","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=\"\u0412\u0441\u0435 \u043c\u044b \u043b\u044e\u0431\u0438\u043c \u0438\u0441\u0442\u043e\u0440\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\/kak-perestat-bespokoitsya-i-nachat-zhit-bez-monolita\" \/>\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\u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0436\u0438\u0442\u044c \u0431\u0435\u0437 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435 \u043c\u044b \u043b\u044e\u0431\u0438\u043c \u0438\u0441\u0442\u043e\u0440\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-perestat-bespokoitsya-i-nachat-zhit-bez-monolita\" \/>\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=\"2020-08-31T05:42:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-31T05:42:03+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\udd47Wie man aufh\u00f6rt, sich Sorgen zu machen, und beginnt, ohne Monolith zu leben | ProHoster","description":"Wir alle lieben Geschichten.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-perestat-bespokoitsya-i-nachat-zhit-bez-monolita","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\u041a\u0430\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0442\u044c \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0436\u0438\u0442\u044c \u0431\u0435\u0437 \u043c\u043e\u043d\u043e\u043b\u0438\u0442\u0430 | ProHoster","og:description":"\u0412\u0441\u0435 \u043c\u044b \u043b\u044e\u0431\u0438\u043c \u0438\u0441\u0442\u043e\u0440\u0438\u0438.","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/kak-perestat-bespokoitsya-i-nachat-zhit-bez-monolita","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":"2020-08-31T05:42:03+00:00","article:modified_time":"2020-08-31T05:42:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"92806","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:01:23","updated":"2022-10-01 20:28:38","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\/92806","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=92806"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/92806\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/92807"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=92806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=92806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=92806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}