Frage

Ich versuche, die sehr leichte Lösung für null Ausfallzeiten Einsatz für Java-Anwendungen zu bauen. Aus Gründen der Einfachheit können denken, dass wir zwei Server haben. Meine Lösung ist die Verwendung:

  1. Auf der "Front" - einige Load Balancer (Software) -. Ich denke an HAProxy hier

  2. Auf dem "zurück." - zwei Server, die beide Tomcat mit bereitgestellten Anwendung ausgeführt

Wenn wir über neue Version bereitstellen

  1. Wir deaktivieren einer der Server mit HAProxy, so dass nur ein Server (nennen wir es Server A, die alte Version läuft) zur Verfügung stehen.

  2. Deploy neue Version auf anderen Server (nennen wir es Server B), führen die Produktion von Unit-Tests (falls wir sie haben :-) und Server B ermöglichen, mit HAProxy, Server A zur gleichen Zeit zu deaktivieren.

  3. Jetzt haben wir wieder nur einen Server aktiv (Server B, mit dem neuen Release). Bereitstellen von neuer Release auf Server B, und es wieder aktivieren.

Jede berät, wie man verbessern? Wie automatisieren?

Jede fertige Lösungen oder muss ich mit meiner eigenen benutzerdefinierten Skripts enden?

Danke!

War es hilfreich?

Lösung

Rolling Upgrade ist in der Tat eine gute Lösung, sofern Sie Ihre Last-Balancer unterstützt diese Option (Server Hunger). Eine weitere Lösung ist OSGi-fähige Anwendungsserver verwenden, um Hot-Teile ersetzen oder ganze Ihre Anwendung.

würde ich die ersten empfehlen. Springsource AMS Aufsicht Konsole ein Cluster von TCServer (eine benutzerdefinierte tomcat auf Steroiden) abbauen können, und IIRC aktualisiere das Walzen automatisch (aber überprüfen Sie die Dokumentation).

Andere Tipps

Ich habe einige interessante Lösungen aus dieser gefunden

Fazit:

Durch beide kombinieren late Bindung und Port Wiederverwendung können wir effektiv null Ausfallzeiten ermöglichen. Und wenn wir in den Standby-Prozess um zu halten, werden wir in der Lage sein, auch ein sofortiges Zurückkehren zu tun.

Haben Sie einen Blick auf die OSGi-Technologie, wenn Sie einen OSGi-Container aufnehmen kann, da es eine gute Isolation und Hot Deployment für OSGi-Bundles zur Verfügung stellt. Wenn Sie den Spring-Framework verwenden, können Sie Frühling OSGi verwenden

LiveRebel die Funktionalität bietet Neustarts für Rollen, bietet CLI-API und Hudson / Jenkins-Plugin für die Automatisierung.

Es gibt einfach einzusetzende , die genau das tut mit Docker-Container.

Bereitstellen Version 1

easy-deploy -p 80:80 -v some/path:other/path my-image:1

Um eine neue Version bereitstellt einfach den Befehl mit dem aktualisierten Tag-Namen ausführen

easy-deploy -p 80:80 -v some/path:other/path my-image:2

Disclosure: Ich baute dieses Tool. Ich baute es genau, weil ich nicht eine einfache Lösung für dieses Problem gefunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top