So funktioniert der dauerhafte Betrieb einer Node.js-App − Mittwald Experten im Gespräch
Michael Worobcuk: Philipp, wir haben uns eine ganze Weile damit beschäftigt, Node.js an den Start zu bringen. Dabei sind wir in Deutschland der einzige Hoster, der es managed zum dauerhaften Betrieb anbietet.
Philipp Stranghöner: Genau. In der Regel kann man seine App nicht dauerhaft betreiben - ein Problem, das wir auf einem relativ coolen Weg gelöst haben.
Michael: Wie denn?
Philipp: Der User nutzt bei uns eine Datei, die er in der Node.js-App ablegt. Hier trägt er die entsprechenden Befehle ein um sowohl die App als auch den dahinter stehenden Server zu starten. So halten wir das ganze im Hintergrund am Laufen.
In der Regel kann man seine App nicht dauerhaft betreiben - ein Problem, das wir auf einem relativ coolen Weg gelöst haben.
Michael: Das ist eine Datei im yaml-Format. Gebe ich da schon an, auf welchem Port meine App läuft?
Philipp: Nein, das macht Mittwald. Man bekommt einen Socket zugewiesen und kann den nutzen − entweder über die Variable oder den Service-Pfad. Wir stellen außerdem eine eigene Command Line zur Verfügung. Über die kann man den Status abfragen, die App starten und stoppen oder auch die Logs ausgeben lassen. Du könntest auch das Projekt bereinigen lassen oder das self-healing initialisieren.
Michael: Ich habe neulich eine eigene Node-App an den Start gebracht. Im Detail läuft das dann so ab, dass ich mein Projekt über FTP oder SSH hochlade und anschließend im Projektverzeichnis mit einem Befehl die Anwendung als Dienst einrichte. Hier gebe ich den Startbefehl meiner App an. Im Code kann ich die Umgebungsvariable nutzen, um auf den entsprechenden Port zu listen. Dann übernimmt das Mittwald Service Control das Starten und Betreiben der App. So läuft die App weiter, auch nachdem ich mich disconnected habe.
Philipp: Klingt eigentlich ganz einfach. Um etwa den Port richtig einzurichten muss man sich allerdings schon ein wenig auskennen. Aber wer die eigene App kennt, sollte das schaffen.
Michael: Wenn man eine fertige App verwendet, muss man auch etwas Zeit investieren − alleine um die App als Dienst zu registrieren. Denn du musst wissen, wo der Einstieg ist. Um den zu finden, helfen dir zum Beispiel index.js oder server.js. Meistens entdeckt man ihn darin schon. Aber du musst natürlich noch im Code selbst anpassen, dass der Port verwendet wird, den dir Mittwald zugewiesen hat.
Michael: Wie funktioniert denn im Anschluss die Abrechnung bei uns?
Philipp: Node, npm, npx und yarn haben wir auf der Console vorkonfiguriert. Das kann man kostenlos nutzen. Man kann sich eigene Libraries über npm oder yarn nachinstallieren. Wenn man die App dauerhaft starten möchte, kostet das pro App 9 Euro im Monat. Das kann man einfach im Mittwald Kundencenter über den Softwaremanager hinzubuchen.
Um eine App als Dienst zu registrieren musst du wissen, wo der Einstieg ist. Dabei helfen dir zum Beispiel index.js oder server.js.
Michael: Kann ich auch mehrere Apps laufen lassen?
Philipp: In der Startphase ist es auf eine App begrenzt. Wir schauen erstmal, wie hoch der Verbrauch ist. Denn wir haben in der Betaphase festgestellt, dass der um Einiges höher ist, als bei einer php-Anwendung. Wenn allerdings der Bedarf an mehreren Apps besteht, können sich die Kunden gerne an uns wenden. Wir finden individuelle Lösungen.
Michael: Welche Anwendungszwecke hast du denn im Rahmen der Betaphase gesehen?
Philipp: Viele Kunden haben mit Shopware eine PWA entwickelt. Die connected sich mit der API eines Shopware 6 Shops und so kannst du als Node-Anwendung ein komplett eigenes Frontend für Shopware haben. Andere nutzen auch die Build-Prozesse von Shopware oder Magento und rendern dann das Frontend oder auch die Administration neu. Bei TYPO3 verwenden viele ein zweites Frontend. Das basiert auf dem Framework nuxt.js. und lässt sich schneller anpassen als den ganzen TYPO3 Apparat im Hintergrund zu haben.
Good to know!
Hoste deine Projekte im Agentur-Server und verwalte alle Projekte mit nur einem Login. Dort wo du es brauchst, kannst du Node.js mit nur einem Klick über den Softwaremanager installieren.
Kommentare
Die Anwendungsmöglichkeiten gehen außerdem noch weit über alternative Front-Ends hinaus - auch komplexere Anwendungen können über Node.js realisiert werden und von einfachem Hosting profitieren.
So lassen sich ganze Management- oder ERP-Systeme auf Basis von Node.js effizient realisieren und z.B. als PWA geräteunabhängig nutzen.
Wer hier genauer ein Anwendungsbeispiel entdecken möchte, der kann sich dieses Node.js basierte Software-Projekt anschauen: https://m-to-b.com/projects/ERP-Software