LAMP und MEAN sind beliebte Open-Source-Web-Stacks, die für die Entwicklung leistungsstarker Web- und Mobil-Apps der Enterprise-Klasse verwendet werden. Wie andere Web-Stacks kombinieren sie Technologien (Betriebssysteme, Programmiersprachen, Datenbanken, Bibliotheken und Frameworks), mit denen Entwickler eine voll funktionsfähige Web-App effizient und zuverlässig über die Stack-Entwicklung erstellen, bereitstellen und verwalten können.
LAMP und MEAN unterscheiden sich dadurch, dass sie Entwicklern verschiedene Schichten – oder „Stacks“ – von Technologien zur Verfügung stellen, die eine App benötigt, um über alle Frontend-Schnittstellen-, Netzwerk- und Backend-Serveraktivitäten hinweg zu funktionieren. Beispielsweise kann sich eine webbasierte Bankanwendung entweder auf den LAMP-Stack oder den MEAN-Stack verlassen, um die Anfrage eines Benutzers zu interpretieren, Bankaktivitäten anzusehen, die erforderlichen Daten abzurufen und sie in einer Benutzeroberfläche anzuzeigen.
LAMP steht für die folgenden gestapelten Technologien:
Das Linux-Betriebssystem ermöglicht die ordnungsgemäße Funktion der gesamten Web-App auf einer bestimmten Hardware. Der Apache-Webserver übersetzt die Anfrage eines Benutzers und ruft dann Informationen ab und „liefert“ sie dem Benutzer über HTTP (Hypertext Transfer Protocol) zurück. Die MySQL-Datenbank (ein relationales Datenbankverwaltungssystem) speichert die Daten (z. B. Kontoauszugsarchive, Finanzaktivitäten, Bilddateien, CSS-Stylesheets), die der Webserver abrufen und auf der Grundlage der spezifischen Anfrage des Benutzers bereitstellen kann. Die Programmiersprache PHP arbeitet mit Apache zusammen, um dynamische Inhalte aus der MySQL-Datenbank abzurufen und sie dem Benutzer zu präsentieren. Während HTML statische Inhalte anzeigen kann (z. B. eine Überschrift, die unabhängig von den Daten auf der Oberfläche verbleibt), basiert dynamischer Inhalt, der sich je nach Benutzerinteraktion ändert, auf PHP. Die Programmiersprachen PERL und Python können ebenfalls im LAMP-Stack verwendet werden. Der Schriftsteller Michael Kunze war der erste, der 1998 das Akronym LAMP-Stack in einem Artikel für ein deutsches Computermagazin verwendete.
Abbildung 1: Wie eine Benutzeranfrage im gesamten LAMP-Stack verarbeitet wird.
MEAN steht für die folgenden gestapelten Technologien:
Das AngularJS-Framework verarbeitet eine eingehende Benutzeranfrage. Node.js analysiert dann die Anforderung und übersetzt sie in Eingaben, die die Web-App verstehen kann. Express.js verwendet diese übersetzten Eingaben, um zu bestimmen, welche Aufrufe an MongoDB, eine nicht relationale NoSQL-Datenbank, gesendet werden sollen. Sobald MongoDB die erforderlichen Informationen bereitgestellt hat, sendet Express.js die Daten an Node.js zurück, das sie wiederum an das AngularJS-Framework sendet, damit die angeforderten Informationen in der Benutzeroberfläche angezeigt werden können.
Während das AngularJS-Framework durch andere wie React.js ersetzt werden kann, ist die Node.js-Umgebung für den MEAN-Stack kritisch und kann nicht ersetzt werden. Dies liegt daran, dass Node.js die Full-Stack-Entwicklung ermöglicht – ein Hauptvorteil, der die Entwicklung und Verwaltung von Anwendungen mit dem MEAN-Stack hocheffizient macht. Wenn das AngularJS-Framework durch React.js ersetzt wird, wird der Stack als MERN bezeichnet. Das Akronym MEAN Stack wurde erstmals 2013 vom MongoDB-Entwickler Valeri Karpov verwendet.
Abbildung 2 zeigt ein allgemeines Beispiel dafür, wie eine Web-App über ihren MEAN-Stack hinweg reagiert, um die Informationsanforderung eines Benutzers zu erfüllen:
Abbildung 2: Wie eine Web-App über den gesamten MEAN-Stack hinweg reagiert, um eine Anfrage zu erfüllen.
Im Folgenden finden Sie einige Vorteile der Verwendung von LAMP zur Erstellung, Bereitstellung und Verwaltung von Web-Anwendungen:
Zu den Nachteilen der Verwendung von LAMP zur Erstellung, Bereitstellung und Verwaltung von Anwendungen gehören die folgenden:
Zu den Vorteilen der Verwendung von MEAN zur Erstellung, Bereitstellung und Verwaltung von Anwendungen gehören die folgenden:
Dies sind einige Nachteile der Verwendung von MEAN zur Erstellung, Bereitstellung und Verwaltung von Webanwendungen:
Keiner der beiden Stacks ist per se besser als der andere. Der LAMP-Stack oder der MEAN-Stack ist jedoch möglicherweise besser für einen bestimmten Anwendungsfall in der Webentwicklung geeignet.
Der LAMP-Stack ist im Allgemeinen die bessere Option für Anwendungen oder Websites mit den folgenden Eigenschaften:
Umgekehrt ist der MEAN-Stack die bessere Wahl für Anwendungen oder Websites wie diese:
Um auf die Grundlagen zurückzukommen: Der LAMP-Stack bringt Sie dem technischen Auslieferungsprozess von Webseiten und dessen Funktionsweise etwas näher. Sie haben Ihre Datenbank, Ihre Skriptsprache und eine Möglichkeit, diese den Kunden bereitzustellen – das ist LAMP.
Wenn Sie sehen möchten, wie einfach es ist, eine Anwendung mit einem LAMP- oder MEAN-Stack in der Cloud zu entwickeln und bereitzustellen, bietet IBM die folgenden Tutorials an:
Modernisieren Sie die Workloads Ihrer Java-Anwendungen mühelos mit dem vollständig verwalteten Service von IBM.
Setzen Sie Innovationen frei und befähigen Sie Ihre Teams, bestehende Anwendungen schnell zu modernisieren und neue cloudnative Services bereitzustellen.
Anwendungsentwicklung in der Cloud bedeutet: einmal erstellen, schnell iterieren und überall bereitstellen.