Ich habe einige interessante Lösungen aus dieser article in Bezug auf Null-Ausfallzeit gefunden. Ich möchte in diesem Artikel nur einige wenige Lösungen hervorheben.
1. A/B-Schalter: (Rolling Upgrade + Fallback-Mechanismus)
wir einen Satz von Knoten im stehenden Modus haben sollten. Wir werden die neue Version auf diesen Knoten bereitstellen und den Datenverkehr sofort auf diese Knoten umstellen. Wenn wir die alten Knoten in ihrem ursprünglichen Zustand belassen, könnten wir auch einen sofortigen Rollback durchführen. Ein Load Balancer steht der Anwendung zur Verfügung und ist auf Anfrage für diesen Switch verantwortlich.
Nachteile: Wenn Sie X-Server benötigen Ihre Anwendung auszuführen, yon müssen 2X Server mit diesem Ansatz.
2. Keine Ausfallzeiten
Mit diesem Ansatz können wir nicht halten eine Reihe von Maschinen; Stattdessen verzögern wir die Portbindung. Die gemeinsame Ressourcenerfassung wird verzögert, bis die Anwendung gestartet wird. Die Ports werden nach dem Start der Anwendung umgeschaltet, und die alte Version wird auch weiterhin ausgeführt (ohne Zugriffspunkt), um bei Bedarf sofort zurückzusetzen.
3. Parallel Deployment - Apache Tomcat: (für Web-Anwendungen)
Apache Tomcat die parallele Bereitstellungsfunktion, um ihre Version 7 Release hinzugefügt. Sie lassen zwei Versionen der Anwendung gleichzeitig laufen und nehmen die neueste Version als Standard.
4. Verzögerte Port-Bindung:
wir hier vorschlagen, ist die Möglichkeit, den Server zu starten, ohne die Portbindung und im Wesentlichen ohne den Stecker zu starten. Später wird ein separater Befehl starten und den Connector binden. Version 2 der Software kann bereitgestellt werden, während Version 1 ausgeführt wird und bereits gebunden ist. Wenn Version 2 später gestartet wird, können Version 1 und Version 2 gebunden werden. Bei diesem Ansatz ist der Knoten nur für wenige Sekunden offline.
5. Erweiterte Port-Bindung:
durch den Mythos zu brechen: ‚Address already in use
‘, * sowohl alte Prozess & neue Prozess wird an denselben Port binden. SO_REUSEPORT Option im ON-Modus können zwei (oder mehr) Prozesse an denselben Port binden. Sobald der neue Prozess an den Port gebunden ist, beenden Sie den alten Prozess.
Die SO_REUSEPORT Option Adresse zwei Probleme:
Die kleine Panne zwischen der Anwendungsversion Umschaltung: Der Knoten kann der Verkehr die ganze Zeit dienen, effektiv uns keine Ausfallzeiten geben.
Verbesserte Planung:
In Zusammenfassung:
durch beide Kombination späten Bindung und Port wiederverwenden, können wir effektiv null Ausfallzeiten ermöglichen. Und wenn wir den Standby-Prozess beibehalten, können wir auch einen sofortigen Rollback durchführen.