‫Was ist die beste Strategie, um Ihre Container zu verzögern, um sie in einer bestimmten Reihenfolge zu halten, wie dies bei D
‫der Fall ist? B. Webb-Kaninchen und so weiter.
‫Das Wichtigste ist also, dass dies nicht einmal ein Dev-OP ist, der sagt, dass dies ein Distributed-Computing-Ding ist, oder?
‫Ich gehe davon aus, dass Sie von Produktion und nicht von lokalem Entwicklungsworkflow mit etwas wie
‫Docker Compose sprechen.
‫Aber Sie sprechen von der Produktion. Alle Ihre Apps müssen fehlschlagen oder erneut versuchen können.
‫Ob dies nun vor Docker liegt oder nicht, es muss sich in gewisser Weise davon erholen, dass Docker
‫nicht in der Lage ist, mit anderen Diensten außerhalb seines eigenen Dienstes zu sprechen.
‫Und dies ist ein Kernprinzip des verteilten Rechnens.
‫In der Tat, wenn Sie nachschauen, was eine Ressource hier sein würde, ist das 12-Faktor-12-Faktor-Punkt-Netz eine Art von einem zehn Jahre alten Satz von Prinzipien,
‫die sich um die Denkweise von Cloud Native und Distributed Computing drehen Es geht darum,
‫ob ich eine Reihe von Servern oder eine Reihe von Dingen habe, mit denen meine Server sprechen müssen. Wie
‫kann ich all diese orchestrieren, um verfügbar zu sein, wenn sie
‫verfügbar sein müssen?
‫Und die Antwort ist, dass Sie den Start nicht richtig steuern können, da der Start nur ein Teil des Problems ist.
‫Wenn Sie einen Container ersetzen müssen, wenn die Verbindung zwischen den anderen Containern unterbrochen wird, weil ein Container oder ein
‫anderer Dienst für eine Sekunde ausfällt, müssen alle anderen Dienste, die ihn verwenden,
‫wiederhergestellt werden.
‫Und im Gegensatz zu den alten Zeiten, in denen wir nur einen Server hatten und die Datenbank auf
‫der Website auf demselben Server abgelegt haben und die immer verfügbar und online war, bis es ausfiel, war das einfach.
‫Aber jetzt in dieser Welt haben wir Computer für Ihre Container verteilt und alle Ihre Dienste müssen
‫dies berücksichtigen.
‫Sie müssen es also entweder noch einmal versuchen, was Ihnen am meisten leid tut, wenn Sie mit der Entwicklung beginnen.
‫Die meisten Datenbanktreiber verfügen über integrierte Wiederholungsversuche, sodass sie sich tatsächlich mit Ihnen in Verbindung setzen, z.
‫B. Mongo D. B. und Knoten. js hat sogar ein Pufferprotokoll, bei
‫dem keine Verbindung hergestellt werden kann. Es hält die Befehle ein wenig, bis die Datenbank wieder online ist.
‫Es ist nur in den Treiber für Ihre Entwicklungssprache integriert, es gibt also so viele Dinge.
‫Und wenn Ihre App so etwas nicht macht, dann scheitert sie einfach.
‫Das Schöne bei der Verwendung von Container-Orchestrierung ist, dass ein Teil des Jobs dieses Orchestrators darin besteht,
‫dass der Container nur abstürzt, weil er die Verbindung zu etwas verliert. Dann startet der Orchestrator neu und
‫startet im Grunde eine neue Kopie davon an einer anderen Stelle.
‫Und das ist eine Möglichkeit, sich von einem Ausfall zu erholen.
‫Es ist ein bisschen sauberer und weniger anstrengend für Ihre Systeme, wenn Sie es erneut versuchen. Eine andere Möglichkeit in
‫Docker besteht darin, Ihre Apps im Wesentlichen abstürzen zu lassen und sie dann basierend auf Ihren Einstellungen von Docker neu zu
‫starten.
‫Also ich weiß, das ist wahrscheinlich nicht der kleine Klickknopf.
‫Antworte viel.
‫Die Leute antworten vielleicht nur Oh, Sie müssen Ihrem Arzt einen Neuversuch hinzufügen, komponieren oder so, aber das ist
‫keine Produktionslösung, weil es nur mit dem ursprünglichen Start zu tun hat und wenn Sie sogar
‫nach so etwas wie Warten auf Skripten googeln, dann tun diese nichts Das ganze Problem lässt sich auch nicht
‫wirklich lösen, da Sie eines der Dinge tun, wenn Sie
‫anfangen, Container zu verwenden, werden Sie sie häufiger aktualisieren. Dies ist ein Teil des Fortschritts bei der Implementierung der Denkweise der
‫Entwickler Die Dinge werden öfter aktualisiert als in der Vergangenheit, da dies einer der Hauptmieter
‫von Entwicklern ist, der sich ständig weiterentwickelt und verbessert.
‫Wenn Sie damit beginnen, bedeutet dies, dass ein Teil Ihres Puzzles in der Lage sein muss, mit jedem anderen Teil
‫des Puzzles fertig zu werden, und Sie können dies nicht mit der Startreihenfolge tun, wenn Sie wissen, was ich
‫meine.
‫Hoffentlich hilft das.
‫Es ist ein schwieriges Problem, wenn Sie es mit älteren Apps zu tun haben, aber es ist ein Kontinuum.
‫Sie müssen fortlaufend daran arbeiten, dass alle Fehler in Ihren Apps behoben werden.
‫Im Grunde ist es kein leichtes Problem.
‫Es ist ein Prozess, den man durchlaufen muss.