Das Netz der Netze ist ständig im Wandel. Nach responsiven Anpassungen von Online-Präsenzen und zunehmend interaktiven Schnittstellen zu der geschätzten Usergemeinde haben Cloud Computing und Big Data den Umschwung der letzten Zeit geprägt. Inzwischen stellen sich Unternehmen längst neuen Herausforderungen, wie dem „Internet of Things“ (IoT, „Internet der Dinge“) oder Embedded Systems in diversen Haushaltsgeräten, Home-Automation sowie im Verkehrswesen oder der Unterhaltungselektronik. Doch nicht nur die wirtschaftlichen Ressourcen sind davon betroffen, oft ist auch ein Umdenken bei der Planung der IT-Infrastruktur notwendig.

Node.js

Ein vielversprechender Ansatz ist Node.js – eine JavaScript-basierte Plattform für Netzwerkanwendungen. Das Besondere daran ist, dass diese serverseitig agiert und auf der performanten V8-Laufzeitumgebung aufsetzt. Ursprünglich für das zunehmend beliebte Browser-Projekt „Chrome“ konzipiert, bietet sie eine ressourcenschonende Architektur, die im Gegensatz zu threadbasierten Strukturen (blocking I/O model) ereignisgesteuert (non-blocking I/O model) reagiert und dadurch wertvollen Arbeitsspeicher sparsam verwendet. Dieses Verhalten ist eine ideale Grundlage für die Abarbeitung vieler gleichzeitig auftretender, asynchroner Verbindungen. Dadurch ist die Plattform beispielsweise prädestiniert für den datenintensiven Einsatz als Webserver oder für bidirektionale Websocket-Verbindungen. Aber auch andere Netzwerkanwendungen lassen sich mit Node.js optimal realisieren.

Der Kern: V8-Power

V8 wurde von Google in C++ basierend auf der ECMAScript-Spezifikation „ECMA-262“ entwickelt und unterstützt die gängigsten Betriebssysteme sowie ARM-Architekturen. Die Engine kann sowohl völlig eigenständig oder als eingebetteter Bestandteil einer C++-Anwendung eingesetzt werden. V8 wird zur Laufzeit über einen JIT-Kompiler in Maschinencode übersetzt. Das Ergebnis wird als Snapshot für spätere Instanzen der Umgebung bereitgestellt und bietet gegenüber der reinen Verwendung eines JavaScript-Interpreters deutliche Performanz-Vorteile. Oft werden hierbei nur die aktuell benötigten Programmbestandteile kompiliert.

Threads v. Events

Herkömmliche Serverstrukturen arbeiten in der Regel threadbasiert. Das bedeutet, dass eingehende Anfragen sequenziell abgearbeitet werden. Die nachfolgenden Anfragen werden erst bedient, sobald der jeweilige Vorgänger hinsichtlich seines Requests versorgt wurde.
Beim eventgesteuerten Ansatz werden die Requests quasi parallel bearbeitet, es entsteht hierbei keine Thread-Queue und nachfolgende Anfragen werden nicht geblockt. Auf diese Weise wird auch ein „deadlock“ als worst case verhindert. Gerade für viele datenintensive Anfragen auf vielfrequentierten Webservern ist dieser Umstand einer der bedeutsamsten Vorteile von Node.js.

Node Package Manager

Der „Node Package Manager“ hält eine Vielzahl von fertigen und frei verwendbaren Paketen – sogenannte Module – für Node.js bereit. Diese können komfortabel über die Kommandozeile installiert werden. Über diese Module lässt sich der Anwendungsradius von Node.js oft um ein Vielfaches erweitern. Unter anderem stehen auch „CoffeeScript“ und „less“ als Module für den Download zur Verfügung.

CLI

Das „Command Line Interface“ (CLI, die Kommandozeile) stellt neben dem Browserfenster für die Darstellung der auf dem Node.js-Webserver laufenden Webanwendungen eine der Haupt-Ein- und Ausgabe-Schnittstellen dar. Hier werden beispielsweise Statusmeldungen ausgegeben oder Benutzereingaben erwartet.

Wer kann Node.js verwenden?

Eine sinnvolle Mindestvoraussetzung für den erfolgreichen Einsatz von Node.js besteht aus einem (virtuellen) Serversystem mit zugrundeliegenden Root-Berechtigungen, wie beispielsweise einem Virtual Server oder einem Root Server von Host Europe. Schließlich wird hin und wieder eine Konsole benötigt, um beispielsweise ein System-Feedback zu erhalten oder ein npm-Paket zu installieren.

Weitere Quellen

http://nodejs.org/

https://www.npmjs.com/

http://nodeschool.io/

https://github.com/

http://nodecode.de/

Fazit

Node.js ist zwar noch ein relativ neuer Stern am Himmel der Webentwicklung, bietet jedoch eine Vielfalt performanter Möglichkeiten, um skalierbare Webanwendungen inklusive Testumgebung zu erstellen – und dies auf der Grundlage einer kostenlosen Open Source Plattform. Als ideale Systeme für den Einsatz von Node.js eignen sich Virtual Server oder Root Server von Host Europe.

Hat Ihnen dieser Artikel gefallen? Dann bewerten sie den Artikel gerne oder teilen ihn mit Menschen, denen er ebenfalls von Nutzen sein kann – ganz einfach per Twitter, Facebook oder Google+.

Sind Sie an künftigen Neuigkeiten aus dem Hosting-Bereich interessiert? Dann können Sie die Blogbeiträge bequem per RSS-Feed abonnieren oder Sie versehen unsere Facebook-Seite mit einem Like. Die Abo-Funktionalität auf Facebook versorgt Sie zudem jederzeit mit dem aktuellen Blogbeitrag und vielen weiteren Informationen rund um das Hosting im Allgemeinen, aber auch zum Thema Host Europe.

Haben Sie Anregungen oder Änderungsvorschläge? Kommentieren Sie unsere Beiträge, wir freuen uns über Ihren Input!

Thomas von Mengden

Social Media Manager & PR Comms bei Host Europe GmbH
Thomas von Mengden ist als Redakteur und Autor des Blog & SEO-Teams für die Host Europe GmbH tätig, einem der größten Anbieter von Domain- und Webhosting in Europa. Privat interessiert sich Thomas vor allem für alle Art technischer Gadgets, Web-Entwicklung, SEO und Sport.

Letzte Artikel von Thomas von Mengden (Alle anzeigen)

One thought on “Node.js: Die performante Plattformfür Webserver und mehr

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.