¿Debo usar LAMP o MEAN stack para una aplicación web escalable?

Hola,

Recomiendo encarecidamente MEAN stack para su próxima aplicación web. MEAN stack (MongoDB, Express, AngularJS, Node.js) es una tecnología de última generación para la antigua pila LAMP / WAMP para crear sitios web profesionales y aplicaciones en tiempo real.

MEAN stack no es más que una reorganización de actualizaciones de código y tecnología que cambia la plataforma base del sistema operativo Linux a un tiempo de ejecución de JavaScript que trae Node.js. Node.js permite trabajar tanto en Windows como en Linux. Actúa como un servidor web que reemplaza a Apache en la pila LAMP. Le permite al desarrollador implementar la aplicación directamente en el servidor en lugar de implementarla en un servidor independiente. La implementación es más fácil y sencilla, ya que la versión requerida del servidor web está claramente definida junto con el resto de dependencias de tiempo de ejecución. En resumen, Node.js es mucho más que un simple servidor.

En comparación con las técnicas tradicionales de servicio web donde cada conexión (solicitud) genera un nuevo subproceso, ocupando la RAM del sistema y eventualmente maximizando la cantidad de RAM disponible, Node.js opera en un solo subproceso, utilizando I / I sin bloqueo O llama, lo que le permite admitir decenas de miles de conexiones concurrentes (mantenidas en el bucle de eventos). Además, todo se basa en la pila web abierta (HTML, CSS y JS) que se ejecuta sobre el puerto estándar 80. En resumen, es realmente escalable.

Es muy importante pensar que Node.js es especialmente adecuado para aplicaciones que requieren una conexión persistente desde el navegador de regreso al servidor, como programas de chat, juegos interactivos, aplicaciones en tiempo real, etc. Si solo se está creando una aplicación que no necesariamente necesita COMUNICACIÓN usuario / servidor, desarrollar con otros frameworks estaría bien y tomará mucho menos tiempo. Node.js es muy adecuado para aplicaciones que tienen muchas conexiones concurrentes y cada solicitud solo necesita muy pocos ciclos de CPU, porque el bucle de eventos (con todos los demás clientes) se bloquea durante la ejecución de una función.

En lugar de escribir más comandos SQL, MongoDB le da más tiempo escribiendo funciones de mapa / reducción en JavaScript. MongoDB, un NoSQL que no tiene esquemas, la persistencia orientada a documentos representa un cambio fundamental en la estrategia de firmeza. También reducirá la complejidad de la lógica de transformación, ya que MongoDB lanza JavaScript Object Notation (JSON) de forma nativa. En consecuencia, escribir servicios web RESTful es más fácil que nunca.

Pero el mayor cambio de LAMP a MEAN Stack es el cambio de la generación tradicional de páginas del lado del servidor a una orientación de aplicación de una sola página (SPA) del lado del cliente. Ejecuta JavaScript, por lo que puede usar el mismo idioma en el servidor y el cliente, e incluso compartir algún código entre ellos (por ejemplo, para la validación de formularios o para visualizar vistas en cualquier extremo).

Con Express, aún puede manejar el enrutamiento del lado del servidor y la generación de páginas, pero el énfasis ahora está en las vistas del lado del cliente, cortesía de AngularJS. Este cambio implica más que simplemente trasladar sus artefactos Modelo-Vista-Controlador (MVC) del servidor al cliente. Y quizás lo más importante, pasará de una vista centrada en la página de su aplicación a una vista orientada a componentes. MEAN stack no está centrado en dispositivos móviles. AngularJS funciona igualmente bien en computadoras de escritorio y portátiles, teléfonos inteligentes y tabletas, e incluso televisores inteligentes. Y a medida que la pila MEAN crece en adopción, se han desarrollado y disponible una variedad de estrategias de prueba. Con marcos de prueba de clase mundial como MochaJS, JasmineJS y KarmaJS, puede escribir conjuntos de pruebas exhaustivos y completos para su aplicación MEAN.

El sistema de eventos de un solo subproceso es rápido y simple, en comparación con los marcos tradicionales Java o ROR, cuando se manejan muchas solicitudes a la vez. ¡Saber más sobre MEAN stack te ayuda a jugar con la tecnología!

Espero que esto ayude. Por favor, siéntase libre de visitar el blog de CronJ y ver más detalles sobre MEAN stack y tecnologías completas de JavaScript. Gracias

Esto depende de un par de cosas diferentes. Lo primero y más importante es, ¿quieres aprender la pila MEAN?

Nodo (la N en MEDIO) puede ser un poco difícil de aprender, especialmente si no comprende cómo funciona JavaScript. Sin embargo, también se puede utilizar para desarrollar rápidamente una aplicación web que se puede escalar con bastante facilidad. Otro aspecto positivo es que Node se está volviendo muy popular y se están abriendo muchos trabajos para los desarrolladores de Node. Por supuesto, yo mismo soy un desarrollador de NODE, así que tome todo esto con un grano de sal sesgada.

Angular es la A en la pila MEAN, pero no sienta que debe usarla si desea usar Node y Express (la E). Angular es un gran marco frontal, pero es completamente opcional. He creado varias aplicaciones web de pila completa sin Angular en ellas. Dicho esto, si ya conoces Angular, o si quieres aprender Angular, entonces sería una gran opción.

Mongo (la M) es mi opción favorita actual para una base de datos. Especialmente para proyectos personales, ya que casi no hay tiempo de preparación para comenzar a usarlo. Dicho esto, hay ocasiones en que una base de datos relacional es una buena idea, pero personalmente no he necesitado una por un tiempo. Si termina con la pila MEAN, le sugiero que use el paquete Node Mongoose, ya que hace que la interfaz con Mongo sea un poco más fácil.

Sin embargo, Node se puede usar con una base de datos basada en SQL sin ningún problema, lo que puede ayudar a reducir la cantidad de tecnologías que necesitaría aprender de una vez.

Sin embargo, si desea continuar aprendiendo PHP, y especialmente si le preocupa que la programación en dos pilas diferentes pueda hacer que sea más difícil trabajar en su trabajo remunerado, entonces adhiérase a la pila LAMP. De ninguna manera es una pila inferior cuando se trata de crear aplicaciones web. Sólo diferente.

Cualquiera sea la tecnología que elija, ¡buena suerte con su proyecto!

¿Cuál es el marco de tiempo? Si tiene tiempo para aprender, continúe y pruebe MEAN. Si hay un marco de tiempo, vaya con lo que sabe y compílelo rápidamente