© istockphoto.com/polygraphus
Mit PM2 Node.js-Applikationen in der Cloud im Griff behalten

Lebensversicherung


In diesem Artikel beschreiben wir eine mögliche Umsetzung von Monitoring und automatischen Neustarts von Node.js-Anwendungen in PaaS-Umgebungen. Die Einrichtung der Überwachung und Steuerung der Serverlaufzeitumgebung gestaltet sich in Cloud-Systemen schwieriger als auf Servern, die unter der vollen Kontrolle des Entwicklungsteams stehen – sie ist aber nicht unmöglich! Die hier vorgestellte Lösung mithilfe der PM2-Bibliothek ermöglicht einen transparenten und langfristig stabilen Betrieb einer JavaScript-Anwendung, ohne auf teurere IaaS-Anbieter ausweichen zu müssen.

Mit den ausgereiften Tools der Node.js-Umgebung ist es heutzutage möglich, in wenigen Wochen eine produktionsreife und ausreichend stabile Webpräsenz mit fortschrittlichen Funktionen zu erstellen. Die so erstellte Anwendung läuft unter Normalzuständen ohne Unterbrechung für Wochen in der Cloud, womit praktisch eine 99-prozentige Verfügbarkeit gegeben ist. Aber reicht uns eine 99-prozentige Verfügbarkeit ohne Rückversicherung?

Eine weitere Fragestellung lautet: Wie können wir sicherstellen, dass sich unsere Anwendung auch dann erholen kann, wenn abhängige Dienste (wie Datenbankserver) oder das Netzwerk zeitweise ausfallen? Manche IaaS-Anbieter, wie Amazon, versprechen eine 99,999-prozentige Hochverfügbarkeit ihrer Dienste, wonach sich im Falle dieses Anbieters unsere schriftlichen SLAs richten könnten. Kleinere Cloud-Nischenanbieter können mit diesem (schwer prüfbaren) Versprechen nicht mithalten und verlieren meist den Kampf der Nachkommastellen. Außerdem verfügt Amazon über ein sehr gut konfigurierbares und programmierbares Überwachungstool: CloudWatch [1], das sich positiv im Bereich des Monitoringtoolmarkts von den Wettbewerbern abhebt.

Allerdings ist der Betrieb einer kleinen Anwendung mit Datenbankunterstützung bei solchen globalen Anbietern oft nicht ganz billig: Mit mindestens (!) 500 Euro pro Monat muss man auch bei Sparangeboten rechnen (siehe Rechenbeispiele auf der Calculator-Webseite von Amazon [2]). Der Vorteil von kleineren PaaS-Anbietern (Platform as a Service) wie Heroku, Modulus oder OpenShift ist der Preis und die bereits aufgesetzte Laufzeitumgebung; in unserem Fall die vorinstallierte Node. js. Da wir kostenbewusst sind, nutzen wir PaaS für die Veröffentlichung unserer Node.js-Anwendung. Trotzdem möchten wir nicht auf Hochverfügbarkeit verzichten. Gibt es dafür eine Lösung?

PM2, lokal

Die Laufzeitumgebung von Node.js ist absichtlich schlank gehalten worden, ganz im Sinne ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang