MEAN vs. LAMP Stack Vor- und Nachteile
Web-Stapel haben sich über Jahrzehnte mit technologischen Fortschritten und Backendsprachen weiterentwickelt. Zwei der beliebtesten Webstacks sind derzeit LAMP und MEAN. Sie verwenden zwei verschiedene Technologien für Backend-Sprachen, Datenbanken und Serverumgebungen. Der Begriff "Stapel" bezieht sich auf Technologien, die aufeinander gestapelt werden, um eine Webserver-Umgebung zu erstellen.
In diesem Artikel möchte ich diese beiden Web-Stacks anhand ihrer technologischen Möglichkeiten (Vor- und Nachteile) erläutern. Wo zeichnet sich jeder Stack aus? Und welche Arten von Projekten würden von beiden Optionen am meisten profitieren? Wenn Sie sich mit Web-Technologien noch nicht auskennen oder einfach nur etwas über diese beiden Stapel erfahren möchten, finden Sie in diesem Handbuch alles, was Sie brauchen.
Traditionelle LAMP-Entwicklung
Die meisten Entwickler sollten über den traditionellen LAMP-Stack Bescheid wissen, da dieser seit dem frühen Web verfügbar ist. LAMPE steht für Linux, Apache, MySQL und PHP. Bei jedem dieser Pakete handelt es sich um individuelle Softwarepakete, die zu einer vielseitigen Serverlösung kombiniert werden.
Der größte Grund, um bei LAMP zu bleiben, ist Sicherheit und umfassende Unterstützung. Es gibt es schon seit Jahrzehnten und es ist eine bewährte Methode, um Websites zu hosten.
Alle Backend-Technologien wie PHP und MySQL sind allgemein bekannt wird von jedem großen Hostinganbieter unterstützt. Wenn Sie an einem LAMP-Stack arbeiten, können Sie grundsätzlich überall hosten. Zusätzlich bekommst du Zugriff auf die beliebtesten CMS-Engines. WordPress, Drupal und Joomla laufen alle unter PHP / MySQL.
Es gibt anpassbare Optionen innerhalb der LAMP-Architektur wie LEMP ersetzt Apache durch Nginx. Sie können auch eine Variante auf einem Windows-Server als WAMP-Stack ausführen.
Allerdings die gesamte Kernsoftware - einschließlich Apache, MySQL und PHP - waren Open-Source, und hauptsächlich für Linux gemacht. Aus diesem Grund ist Linux für eine Serverumgebung am sinnvollsten. Deshalb hat sich LAMP für die moderne Webentwicklung bewährt.
Die meisten Entwickler gehen diesen Weg, weil es so ist Der einfachste Weg, eine Website online zu stellen. In Foren finden Sie zahlreiche Unterstützung, die alle Informationen zur Konfiguration und Fehlerbehebung einer LAMP-Umgebung enthält. Sie können diese ServerFault-Frage beispielsweise nach weiteren Informationen durchsuchen.
JavaScript Backend mit MEAN
Node.js ist die neueste Technologie für Entwickler, die skalierbare Anwendungen mit JavaScript ausführen möchten. Knoten treibt den MEAN-Stack an, und bietet einen wesentlichen Vorteil: alles läuft auf einer einzigen Sprache.
BEDEUTEN steht für MongoDB, Express.js, Angular.js, und natürlich Node.js. Dieses Akronym setzt keine Anforderungen an ein Server-Betriebssystem oder eine Serversoftware. Ein MEAN-Stapel kann auf jedem Betriebssystem laufen, und Node hat sogar einen eigenen Server, um JS im Backend zu verwalten.
Auf der Mean.io-Website finden Sie zahlreiche Dokumentationen und Support.
Obwohl dieser Stack viel Aufmerksamkeit auf sich gezogen hat, ist er bei weitem nicht so stabil wie ein herkömmlicher LAMP-Stack.
Warum sollte jemand mit MEAN gehen? Weil es letztendlich schneller und einfacher zu skalieren. MongoDB ist eine NoSQL-Datenbank was Abfragen optimiert. Die Verwendung von Fullstack-JavaScript verbessert auch die Entwicklung, da eine Sprache für alle Frontend- und Backend-Arbeiten gilt.
Außerdem kommen viele andere JS-Frameworks als stabile Lösungen auf den Markt. Zum Beispiel kann MEAN auf a umgestellt werden MEEN-Stapel Angular durch Glut ersetzen.
Programmierer werden den MEAN-Stack deshalb lieben trennt den Code für Wartbarkeit und Wachstum. Das macht es Es ist einfacher, Ihre JavaScript-Web-Apps so zu organisieren, dass sie in einer natürlichen Umgebung ausgeführt werden.
Es gibt viel zu lernen zu diesem Thema, und das ist wahrscheinlich das größte Hindernis für neue Entwickler. Das Erlernen aller zur Verwaltung einer MEAN-App erforderlichen Technologien kann Monate dauern. Wenn Sie jedoch Node lieben und alles mit JavaScript ausführen möchten, ist dies die Anstrengung wert.
Hier sind einige Anfänger-Tutorials, die Ihnen den Einstieg erleichtern.
- Ein absoluter Anfängerleitfaden für Node.js
- Felix's Node.js Einsteigerhandbuch
- Einführung in Express.js
- Lernen Sie, moderne Web-Apps mit MEAN zu erstellen
- Erste Schritte mit Node.js, Express und MongoDB
PHP vs. Node
PHP gibt es seit Mitte der 90er Jahre und ist wirklich die beliebteste Backendsprache. Viele Webentwickler beginnen mit PHP (oder lernen es schließlich), weil es bei Web-Plattformen und Hosting-Providern so vorherrschend ist.
Node ist ein neueres Framework, aber seine Popularität ist außerordentlich schnell gestiegen. Dies schließt die Beliebtheit von NPM als Paketmanager für Webentwickler ein und erweitert sich weiter zu leistungsstarken Frontend-Frameworks wie Angular 2.
Der andere Vorteil von Node ist, dass es kommt mit einem eigenen Webserver. Alles in einem MEAN-Stack ist JavaScript. Wenn Sie also JS lieben, werden Sie wirklich gerne MEAN-Web-Apps erstellen.
Viele Entwickler sind der Meinung, dass PHP eine schlecht entworfene Sprache ist, weil sie der Ersteller ist, Rasmus Lerdorf hat es eigentlich nicht als Sprache entworfen. PHP begann als generische Lösung für Websites, und entwickelte sich schnell zu einer großen Bibliothek nicht zusammenhängender Funktionen.
Aber mit PHP 7 versucht man, viele Fehler der Sprache zu beheben, und mit kostenlos OOP Frameworks wie Laravel, PHP ist heute eine viel bessere Sprache als je zuvor.
Also kommt die Sprachdebatte auf Ihre persönliche Wahl. Liebst du es wirklich, JavaScript zu schreiben? Dann sollte Node mit einem MEAN-Stack eine Überlegung wert sein.
Wenn Sie PHP bereits kennen und bei dem bleiben möchten, was Sie wissen, ist LAMP auch eine praktikable Route.
Allgemeine Vor- und Nachteile:
Es gibt mehrere Schichten zu vergleichende Webstacks, einschließlich Betriebssystem, Serversoftware, Datenbank und Backendsprache.
(1) Das MEAN Stapel ebenfalls schließt Winkel ein Das ist ein Frontend-Framework. Es gibt kein notwendiges Framework in einem LAMP-Stack, aber Sie können jeder App, die Sie erstellen, immer Ihr eigenes hinzufügen.
(2) In Bezug auf das Betriebssystem sucht der LAMP-Stack nach einer Ableitung von Linux. Linux ist normalerweise die beste Wahl für eine Serverumgebung unabhängig vom Stack, und dies gilt auch für MEAN.
(3) Jetzt ist das Betriebssystem des Servers nur die Computersoftware, aber nicht die Webserver-Software. Dazu benötigen Sie ein Programm wie Apache oder Nginx. LAMP verwendet Apache, weil es eine der stabilsten verfügbaren Optionen ist.
(4) MEAN verwendet den Node.js-Server Teil des Node-Pakets. Es ist immer noch ziemlich neu, und obwohl es viel Unterstützung gibt, hat Node bei weitem nicht die gleiche Größe wie Apache.
(5) Auch ein Node-Server benötigt ein Backend von JavaScript (ohne Erweiterungen). Apache erlaubt die meisten Backendsprachen, und es gibt viele kostenlose Erweiterungen für mehr Unterstützung. Aber jetzt hat Apache nichts für Node-Unterstützung.
(6) Datenbankmanagement Hier findest du der größte Unterschied. LAMP verwendet MySQL zur relationalen Datenspeicherung, während MEAN MongoDB verwendet, eine nicht-relationale Datenbank. Nicht relationale DBs sind viel schneller, und bieten eine einfachere Skalierungsmethode mit höherem Datenverkehr.
(7) Denk daran, dass PHP ist nicht nur auf MySQL beschränkt. Es kann MongoDB und andere Alternativen wie PostgreSQL oder SQLite verwenden. Es ist nur so, dass die meisten PHP-Entwickler MySQL kennen, es ist also der Hauptwettbewerber für einen typischen LAMP-Stack.
(8) MEAN stapelt typischerweise schneller laufen und Maßstab größer, Sie benötigen jedoch viel mehr Zeit und Serverkenntnisse, um das System zu erlernen. Lampenstapel sind altbewährt, und sie kommen sofort einsatzbereit mit der sichersten Infrastruktur und der breitesten Unterstützung, die man sich vorstellen kann.
(9) Programmiersprachen machen einen großen Unterschied zwischen den beiden Stapeln. LAMP arbeitet hauptsächlich mit PHP, das WordPress und das Laravel-Framework enthält. MEAN arbeitet an ExpressJS / NodeJS für das Backend mit AngularJS am Frontend.
(10) MEAN ist Full-Stack-JavaScript, und es gibt eine Menge, die Sie lernen müssen, um das zum Laufen zu bringen. Es ist ein häufige Auswahl neuer Startups bereit, die Grenzen bei der Entwicklung von Web-Apps zu erweitern. LAMPE ist traditioneller mit JS im Frontend, PHP im Backend. Es ist für Leute gemacht, die nur wollen Webseiten ohne große Sorgen online stellen.
Bitte lesen Sie diese Vergleichsanleitung, um mehr zu erfahren. Keine der beiden Optionen ist richtig oder falsch, sondern nur für verschiedene Projekte geeignet.
Einpacken
Ich würde sagen, die meisten Websites tendieren zum LAMP-Stack, da er getestet wurde und viele hilfreiche Q & A-Threads in Google indiziert sind. MEAN wächst immer noch und hat auch reichlich Unterstützung, ist aber vielleicht technischer, als die meisten Leute damit umgehen wollen.
Fühlen Sie sich frei, beide auszuprobieren, und überzeugen Sie sich selbst. Es ist möglich zu Installieren Sie beide Setups lokal auf Ihrem Computer und bauen Sie sie ohne Remote-Server auf.
Und wenn Sie nach mehr Informationen zu beiden Stapeln suchen, habe ich unten ein paar nützliche Links zusammengestellt.
- Lernen Sie, moderne Web-Apps mit MEAN zu erstellen (thinkster.io)
- Docker LAMP Stack Admin (jessesnet.com)
- Wie installiere ich Linux, Apache, MySQL, PHP (LAMP) unter Debian 8? (digitalocean.com)