For both mobile and web-driven applications, we need server-side infrastructure and code to run on them. For many years, LAMP has been a reliable infrastructure that involves Linux, Apache, MySQL and PHP, Perl or Python. However, due to Javascript’s applicability to both server and client side scripting, another stack is widely being considered as an alternative to LAMP – the MEAN stack (MongoDB, Express.js, Angular.js, Node.js).
Both of these stacks have got their own advantages and disadvantages. Let’s say PHP lacks in innovation whereas Nods.js has light development history and is, of course, innovative but at the same time does not offer the same level of maturity. If we talk about privacy, it has become a major concern now a days, and users tend to disable JS and don’t let run any unknown code on their machine, which could result in breaking your web application if it is fully dependent on JS.
Below I will detail each platform’s key capabilities and use cases to understand the difference better.
LAMP stack
It is a free and one of the earliest stacks for web development. It includes the Linux operating system, Apache Web server, MySQL database and PHP application software, and is easy to deploy, develop and customize. It is sufficiently secure and has a big support community. One of the greatest benefits of LAMP is its open source nature.
Some of the variants:
• WAMP (Windows, Apache, MySQL, PHP): A Microsoft Windows OS (Operating System) equivalent that’s easy to get started with. The WIMP stack (Windows, IIS, MSSQL Server, ASP.net) is similar, but relies on Microsoft’s Internet Information Server (IIS) instead of Apache for Web serving and ASP.net instead of Perl, PHP, or Python for programmability.
• LAPP (Linux, Apache, PostgreSQL, PHP): IT is a PostgreSQL database variation that’s optimized for enterprise-level projects.
• MAMP (Mac OS X, Apache, MySQL, PHP): A MacOS X operating system variation and is available for Windows and Mac.
• XAMPP (Linux, Mac OS X, Windows, Apache, MySQL, PHP, Perl): It includes an FTP server, which is cross-platform, and is able to run on Linux, Mac operating and Windows systems.
High availability and load balancing
When there is a need for high uptime and large requests, LAMP can be a preferable choice to achieve high availability with multiple web and database servers and allows distribution of workload across multiple servers. To perform logical aggregation of web servers, a load balancer is placed in front of them. Various forms of redundancy can provide high-availability of web services, making it possible to experience downtime without actually interrupting the service provided by LAMP instance. Such redundancy setups can also handle hardware failure.
MEAN stack
Mean is an acronym of MongoDB, Express, AngularJs and Node.js. For server side programming it adopts Node.js as a general tool for building apps, server, and background process. It is a more modern stack and is all set to challenge LAMP. It is completely based on javascript so it saves both time and money of the organization that already has javasript programmers writing client-side code.
MongoDB
It is a document oriented database. It stores documents in JSON (Javascript Object Notation) format. If the both server side (Node.js) and client side (Angular) code is in JavaScript, it make sense using a database with javascript flavor.
Express
It is a light weight framework built in Node.js, which can build single page, multi-page, and hybrid web applications. It facilitates rapid development of node based web applications. Core features of Express framework:
• Allows to set up middlewares to respond to HTTP Requests.
• Defines a routing table that is used to perform different actions based on HTTP Method and URL.
• Provides dynamic templates based on passing arguments to render.
Angular JS
It is a Google’s client side javascript framework. It complements PhoneGap, the framework used to develop cross platform mobile apps. It provides client side MVC and MVVM (model-view-viewmodel) architectures.
Node js
It enables you to write server side application using javascript. It is faster and scalable and has event driven architecture capable of asynchronous I/O. The Node.js distributed development project, governed by the Node.js foundation, is facilitated by the Linux Foundation’s Collaborative Projects program.
Technology | LAMP | MEAN |
Database | MySQL (RDBMS) | MongoDB (NoSQL database): document-oriented database system. JSON-style documents |
Languages | Perl/PHP/Python | AngularJS: Extension of Javascript |
Web Server | Apache | ExpressJS: A Node.js Web application framework. It allows creating routes and templates. It creates an MVC-like application on the server side. |
Servers | Apache is used to host HTTP files, MySQL for databases, and PHP/Python/Perl for Programming language used for creating dynamic webpages. | Node.js is the server to run your application. It is an event-driven I/O server-side JavaScript environment. |
Conclusion
Mean stack is an innovative new cutting edge technology that has the ability to capture the market shortly. On the other hand, LAMP, though being an old technology is still a reliable player and has proved to be an efficient solution for web development. Both stacks have their role to play, and the final choice to pick one of the two, will be based on your organization’s priorities and use-cases for the project under development.