So wählen Sie den richtigen Web Stack

26.03.2021

So wählen Sie den richtigen Web Stack

Wenn man sich mit Kollegen, Entwicklern oder Kunden unterhält, könnten die Vorschläge, welche Technologien und Stacks man verwenden sollte, nicht unterschiedlicher sein. Ein Überblick über die derzeit populärsten Open-Source-Web-Stacks.

Wenn Sie Fragen zu diesem Beitrag haben oder eine individuelle Webentwicklung beauftragen möchten, sprechen Sie uns an! Die Erstberatung ist selbstverständlich kostenlos.

Nehmen Sie Kontakt auf »

Was ist ein Web-Stack?

Vor über 10 Jahren, als ich anfing, Webentwickler zu werden, bin ich irgendwie den damals üblichen Weg gegangen: HTML und CSS lernen, hier und da etwas PHP ausprobieren - und natürlich MySQL. Das war, wenn man nicht gerade Java oder ASP.NET verwendete, der damalige Technologie-Stack. Egal, ob man einen Blog, ein Bulletin Board oder einen Bilderhoster hosten wollte - man brauchte diese Dinge mehr als oft: Linux, Apache, MySQL und PHP.

Ein Web-Stack ist immer eine Sammlung, ein Bündel von Software oder Technologien, die eine Webanwendung bilden. Die Auswahl ist heute groß, und die Vor- und Nachteile sind dem Entscheider ständig unbekannt.

Die Auswahl des richtigen Web-Stacks für Ihr Unternehmen

Es ist kein Geheimnis: Die Auswahl eines Web-Stacks kann ein enormer Faktor sein - und über Erfolg oder Misserfolg Ihres Projekts entscheiden. Besonders kleine Unternehmen und Startups haben mit der Auswahl zu kämpfen, was Budget und Nachhaltigkeit angeht. Heute gebe ich Ihnen einen Überblick über die aktuell beliebtesten Open-Source-Web-Stacks und konzentriere mich dabei auf die beiden bekanntesten Lösungen: LAMP und MEAN. Anschließend werde ich diese Stacks gegeneinander vergleichen.

LAMP: Der Allrounder

Als ältester Stack ist LAMP eine gute Alternative zu Closed-Source-Stacks.

Seine wesentlichen Bestandteile sind:

  • Linux (Betriebssystem)

  • Apache (Webserver)

  • MySQL (Datenbank)

  • PHP, Perl oder Python (Programmiersprache)

Es bietet definitiv eine starke Plattform für die Entwicklung und das Hosting von performanten, großen Webanwendungen. Mit der größten und ältesten Community, zahllosen Bibliotheken und Tools bekommt man einen tollen Support und wird wahrscheinlich auch in den nächsten Jahren leicht Entwickler finden.

Es gibt auch einige Derivate:

  • WAMP (Windows als OS)

  • MAMP (Mac OS X als OS)

  • XAMPP (Beliebiges OS + Perl oder PHP + FTP-Server)

  • LAPP (PostgreSQL als Datenbank)

Vorteile:

LAMP ist so etwas wie der Dinosaurier der Webentwicklung, wird von Hunderttausenden von Unternehmen eingesetzt und daher sehr gut gepflegt und unterstützt. Mit endlosen Modulen, Bibliotheken und Add-ons können Sie es sicherlich an die Bedürfnisse Ihres Unternehmens anpassen.

Da er auf Linux basiert, haben Sie alle Freiheiten, und Sie werden in der großen Community sicherlich Hilfe für jedes Thema finden. Ich würde Ihnen auch empfehlen, sich tiefer in das Thema Datenbank (SQL vs. NoSQL) einzulesen, um Ihre Wahl zu treffen. Dennoch ist MySQL eine sehr zuverlässige und skalierbare Lösung. PHP in der Version 7, das auch von einer erwachsenen und großen Community unterstützt wird, ist sehr schnell und integriert sich sehr gut mit dem Rest des Stacks. Im Vergleich zu MEAN können Sie den Server kontrollieren und entscheiden, welche Versionen und Software Sie installieren, Sie sind nicht vom Browser des Clients abhängig. Sicherlich am besten, wenn Sie viele serverseitige Aufgaben haben. Aus personeller Sicht ist es sicherlich möglich, genügend Entwickler zu finden, aber ...

Nachteile:

Weil es so einfach zu erlernen ist, gibt es eine Menge Entwickler, die sich nicht an Best Practices halten oder Spaghetti-Code bauen. Mit PHP anzufangen ist einfach, aber es zu beherrschen ist schwer. Das gilt auch für die Sicherheit in diesen PHP-Apps. Manche würden es auch als Skriptsprache statt als echte Programmiersprache bezeichnen, weil es nicht stark typisiert und nicht vorkompiliert ist. Ich würde auch empfehlen, tiefer in die Vor- und Nachteile von PHP, Python oder Perl einzutauchen.

Was MySQL betrifft, so werden auch andere Optionen immer ausgereifter. NoSQL-Datenbanken wie Redis sind bei Unternehmenssoftware-Lösungen beliebt. Außerdem gewinnen reine JavaScript-Stacks wie MEAN jedes Jahr mehr an Zugkraft und neue Entwickler sind vielleicht nicht daran interessiert, alle LAMPs zu lernen.

MEAN: Der smarte Performer

Der MEAN-Stack ist, verglichen mit LAMP, ein relativ neuer Stack. Einer der größten Unterschiede ist, dass MEAN nicht von einem bestimmten Betriebssystem abhängig ist - Node.js kümmert sich um die serverseitige Ausführung.

  • MongoDB (Datenpersistenz)

  • Express.js (Server-seitiges Anwendungs-Framework)

  • Angular (Client-seitiges Anwendungs-Framework)

  • Node.js (Server-seitige Umgebung)

MongoDB ist eine beliebte und flexible dokumentenbasierte NoSQL-Datenbank, im Gegensatz zum relationalen Datenbanksystem von MySQL. Angular hilft bei der Erstellung progressiver und moderner Web-Apps.

Der MEAN Stack ist besonders für JavaScript-Enthusiasten zu empfehlen - da er auf allen Ebenen nur JavaScript verwendet. Diese Tatsache macht ihn auch bei neuen Entwicklern beliebt.

Es gibt auch einige Derivate:

  • MERN (React anstelle von Angular)

  • MEEN (Ember.js anstelle von Angular)

Vorteile:

Die Verwendung von JavaScript als primäre Programmiersprache ist natürlich ein großer Vorteil. Alles kann schnell eingerichtet und in JS erledigt werden, was es viel einfacher macht, Entwickler zu finden, und LAMP-Entwickler kennen typischerweise auch JavaScript. MongoDB ist sehr beliebt für seine einfache schemalose Datenpersistenz und definitiv schneller als MySQL, wenn man viele Leseanfragen hat. Die Tatsache, dass Angular von Google gewartet wird, ist ebenfalls ein großes Plus. Es erhält ständig neue Versionen und Funktionen. Ein weiterer großer Vorteil ist die Möglichkeit, auf einfache Weise mobile oder Desktop-Apps zu bauen, zum Beispiel mit Ionic. Code und Komponenten können leicht wiederverwendet oder hinzugefügt werden.

Nachteile:

Hype! Wie bei allen neuen Technologien entsteht durch den Glanz und Glamour von MEAN ein riesiger Hype und viele Entwickler fallen auf diesen Hype herein und bauen ihre Apps in JavaScript, nur weil es gerade im Trend ist. Viele dieser Bibliotheken und Frameworks sind recht neu, und neue Versionen werden schnell veröffentlicht, so dass die Wartung Ihrer App manchmal zu einem ziemlichen Problem werden kann. Da viele Technologien nach ein paar Jahren wieder verschwinden, kann die Nachhaltigkeit in Frage gestellt werden. Es wird auch schwierig, diese Apps zu pflegen, wenn sie größer werden, eine saubere Codebasis zu erhalten und Best Practices zu befolgen. Außerdem muss man sich auf den Kunden und dessen verfügbare Technologien verlassen. Wenn Sie auf IE-Benutzer, Embedded-Systeme oder Low-End-PCs abzielen, könnte es wirklich schwierig werden.

Ein paar andere:

  • WISA

Windows Server / IIS / Microsoft SQL Server / ASP.net

Nicht Open Source, aber alle Komponenten kommen direkt von Microsoft, so dass es nahtlos funktionieren sollte.

  • Ruby-Stack

Ruby/Ruby on Rails/RVM (Ruby Virtual Machine) / SQLite

Verliert in der heutigen Zeit definitiv an Popularität, Ruby on Rails war einst ein oft genutztes Framework und damit der gesamte Stack.

  • Java+Spring

Von großen Unternehmen bevorzugt und von Indie-Entwicklern wegen seiner Komplexität gescheut, bietet Spring ein komplettes, in Java geschriebenes Full-Stack-Framework.

  • Django-Stack

Python / Django / Apache / MySQL

Das Django-Framework wird von zahllosen Python-Entwicklern geliebt, da es sehr leistungsfähig ist und oft als einfach zu erlernen bezeichnet wird.

Wie wählt man den richtigen Stack?

Ich habe bereits ein paar Vor- und Nachteile von LAMP und MEAN erwähnt.

Man sollte immer auf Basis harter Fakten entscheiden und sich nicht von einem Hype locken lassen. Es ist schwer, die Popularität von Stacks zu vergleichen, aber wir können Programmiersprachen vergleichen, um ein Gefühl zu bekommen.

Wie man deutlich sehen kann, ist die Popularität von JavaScript im Moment etwas höher als die von PHP. Ich würde Ihnen immer empfehlen, von Zeit zu Zeit die Entwicklungstrends mit dem Trend-Tool von Google zu überprüfen.

Also, wie wählt man den richtigen Stack aus?

Die Antwort ist: Es gibt keinen richtigen Stack. Es hängt immer von vielen Faktoren ab.

Wenn Sie ein erfahrener Entwickler oder Projektverantwortlicher sind, könnten ein paar Fragen helfen, die Antwort zu finden:

  • Welche Art von Web-Applikation plane ich zu erstellen?

  • Wie hoch ist ihre erwartete Lebensdauer?

  • Wie sieht es mit der Nachhaltigkeit aus?

  • Welche Technologien sind in der Infrastruktur meines Kunden/Auftraggebers verfügbar?

  • Wenn ich der Projektinhaber bin: Wie einfach ist es, Entwickler zu finden und die Anwendung zu warten?

Lassen Sie mich Ihnen ein Beispiel geben. Nehmen wir an, Sie besitzen bereits eine Website zum Auflisten von Gebrauchtwagen. Sie wurde vor einiger Zeit mit einem LAMP-Stack entwickelt. Aber Ihrer Website fehlt ein Back-End für Gebrauchtwagenhändler, in dem sie ihre Angebote auf Ihrer Website verwalten können. Abhängig von Ihrer Unternehmensgröße, Zeit und Geld, müssen Sie sich all diese Fragen stellen. Wenn Sie nur ein kleines Team haben, kann es sinnvoll sein, Ihre bestehende Anwendung in der LAMP-Umgebung zu erweitern, da Ihre Entwickler das Ökosystem kennen und von vornherein viel schneller sein werden. Wenn Sie etwas Zeit und Ressourcen zur Verfügung haben, könnten Sie auch einen anderen Ansatz wählen und Ihre bestehende LAMP-Anwendung um eine API erweitern. Danach könnte sich Ihr Team darauf konzentrieren, eine kleine, eigenständige (M)EAN-Anwendung zu entwickeln, die leicht gewartet und verbessert werden kann und deren neue Funktionen in einem viel schnelleren Zyklus veröffentlicht werden. Diese App wird dann auf Ihre API zugreifen. Langfristig würden Sie auf jeden Fall von diesem neuen Back-End profitieren, und Sie könnten es um weitere APIs erweitern oder sogar eines Tages Ihre LAMP-App ersetzen, ohne sich zu sehr um Ihre MEAN-App kümmern zu müssen. Und da Sie jetzt eine API haben, könnten Sie genauso gut eine mobile App entwickeln, die diese ergänzt und einen Teil Ihres JavaScript-Codes wiederverwenden.

Ein anderes Beispiel: Sie wollen eine Newsletter-Plattform bauen, auf der sich Leute anmelden, Mailinglisten hochladen, Mailings zusammenstellen können und so weiter. Sie könnten natürlich MEAN verwenden, aber Sie haben die große Skala und den großen Traffic im Sinn. Vielleicht wäre es sinnvoller, einen LAMP-Stack als Grundlage zu verwenden, da Linux, MySQL und Apache eine sehr stabile, skalierbare Umgebung mit viel Community-Support für jedes denkbare Problem bieten. Sie werden auch viele serverseitige Aufgaben und Cronjobs haben und auf Mailing-Themen wie SMTP und so weiter stoßen. Ich würde in diesem Fall ernsthaft eine Linux-Umgebung empfehlen, die an Ihre Bedürfnisse angepasst ist.

Vorteile MEAN:

  • Einzige Codebasis (JavaScript)

  • Beliebt für moderne Web-Apps und Hybrid-Apps

  • Unterstützt von großen Unternehmen wie Google

  • Besser für Apps, bei denen ein Großteil der Logik auf der Client-Seite stattfinden kann

  • Schwieriger zu warten, wenn es groß wird

  • Sie müssen sich auf den Browser des Clients verlassen

  • Am besten für progressive Web-Apps

Vorteile LAMP:

  • Besser für große Anwendungen

  • Ausgereift, große Community

  • Gut etablierte Anwendungs-Frameworks wie Symfony, Zend, Laravel

  • Besser geeignet, wenn Sie eine Menge serverseitiger Aufgaben haben

  • Einfacher, Standards zu folgen und den Code sauber zu halten

Wenn Sie Entwickler werden wollen und neu in der Programmierung und Webentwicklung sind, sollten Sie überlegen:

  • Was ist am einfachsten zu erlernen?

  • Welche Technologien sind im Trend und welche werden sich langfristig durchsetzen?

  • Wenn es Open Source ist, könnte ich mir vorstellen, an dem Projekt mitzuarbeiten?

  • Welche Technologien werden mir persönlich langfristig nützen?

Eine großartige Quelle, um Antworten zu JavaScript-Technologien zu finden, ist das SateOfJS-Projekt - https://stateofjs.com/.

Es ist ein großartiges Projekt, das jedes Jahr eine Umfrage durchführt und Tausende von Entwicklern nach ihrer Meinung zu aktuellen Technologien und auch nach ihrem Gehalt befragt.

Über den Autor
Author

Christoph Heike

Christoph Heike ist Geschäftsführer der Webzeile GmbH und programmiert bereits seit seinem 12. Lebensjahr. Aktuell beschäftigen ihn Technologien wie PHP, Symfony, VueJS, React uvm.


Fragen? Projekt geplant? Nehmen Sie gleich mit uns Kontakt auf.

Lernen Sie unsere Digitalagentur und Internetagentur kennen. Vereinbaren Sie ein kostenloses Erstgespräch.