LAMP 和 MEAN 是流行的开源网络堆栈,用于开发高性能的企业级网络和移动应用程序。与其他网络堆栈一样,它们结合了各种技术(操作系统、编程语言、数据库、库和应用框架),开发人员可以通过堆栈开发,高效可靠地创建、部署和管理功能齐全的网络应用程序。
LAMP 和 MEAN 的不同之处在于,它们为开发人员提供了网络应用程序在所有前端界面、网络和后端服务器活动中运行所需的不同技术层(或“堆栈”)。例如,基于网络的银行应用程序可能依赖 LAMP 堆栈或 MEAN 堆栈来解释用户查看银行活动的请求,检索必要的数据并将其显示在用户界面上。
LAMP代表以下堆叠技术:
Linux 操作系统使整个网络应用程序能够在特定硬件上正常运行。Apache 网络服务器会翻译用户的请求,然后通过 HTTP(超文本传输协议)检索信息并向用户“提供”信息。MySQL 数据库(关系数据库管理系统)存储数据(如银行对账单档案、财务活动、图像文档、CSS 样式表),网络服务器可根据用户的具体请求检索和提供这些数据。PHP 编程语言与 Apache 协同工作,从 MySQL 数据库中检索动态内容并将其呈现给用户。HTML 可以显示静态内容(例如,如何无论数据都会保留在界面上的标题),而根据用户交互而变化的动态内容则依赖于 PHP。LAMP 架构中也可以使用 PERL 和 Python 编程语言。作家 Michael Kunze 在 1998 年为德国一家计算机杂志发表的一篇文章中首次使用了 LAMP 堆栈的缩写。
图 1:如何在 LAMP 堆栈中处理用户请求。
MEAN 代表以下堆叠技术:
AngularJS 框架处理传入的用户请求。然后,Node.js 会解析请求,并将其转换为网络应用程序可以理解的输入。Express.js 使用这些翻译后的输入来决定调用 MongoDB(一种非关系型 NoSQL 数据库)的内容。一旦 MongoDB 提供了必要的信息,Express.js 就会将数据发送回 Node.js,Node.js 再将数据发送给 AngularJS 框架,以便在用户界面上显示所请求的信息。
虽然 AngularJS 前端框架可以用 React.js 等其他框架替代,但 Node.js 环境对 MEAN 堆栈至关重要,不可替代。这是因为 Node.js 支持全栈 JavaScript 开发,这一关键优势使得使用 MEAN 堆栈开发和管理应用程序变得非常高效。当 AngularJS 框架被 React.js 取代时,该堆栈被称为 MERN。MEAN 堆栈的缩写由 MongoDB 开发人员 Valeri Karpov 于 2013 年首次使用。
图2展示了一个高级示例,说明网络应用程序如何跨 MEAN 技堆栈响应用户信息请求:
图 2:网络应用程序如何跨 MEAN 堆栈做出响应以完成请求。
以下是使用 LAMP 创建、部署和管理应用程序的一些优点:
使用 LAMP 创建、部署和管理网络应用程序的缺点如下:
使用 MEAN 创建、部署和管理网络应用程序的优点如下:
以下是使用 MEAN 创建、部署和管理网络应用程序的一些缺点:
这两种堆栈本身并无优劣之分。不过,LAMP 堆栈或 MEAN 堆栈可能更适合特定的网络开发用例。
对于具有以下特征的网络应用程序或网站,LAMP 堆栈通常是更好的选择:
相反,MEAN 堆栈是具有以下特征的网络应用程序或网站的更好选择:
回归技术本质而言,LAMP 堆栈能让您更贴近网页服务的底层实现原理。数据库、脚本语言与客户端服务机制——这三者便构成了 LAMP 堆栈的核心要素。
如果您想了解使用 LAMP 或 MEAN 堆栈进行云端应用程序开发与部署的便捷程度,IBM 提供以下教程参考:
利用低内存占用和快速启动,更快构建云原生和 AI 就绪型 Java 应用程序。
释放创新活力,助力团队快速实现现有应用程序的现代化,并交付新的云原生服务。
云应用程序开发意味着一次构建、快速迭代和随处部署。