MEAN vs LAMP Stack Avantages et inconvénients
Piles Web ont évolué au fil des décennies avec les progrès de la technologie et des langages backend. LAMP et MEAN sont actuellement deux des piles Web les plus populaires. Ils s'appuient sur deux technologies différentes pour les langages d'arrière-plan, les bases de données et les environnements de serveur. Le terme "pile" fait référence à technologies qui se superposent pour créer un environnement de serveur Web.
Dans cet article, j'aimerais clarifier ces deux piles Web en examinant leurs choix technologiques, à la fois pour et contre. Où chaque pile excelle-t-elle? Et quels types de projets bénéficieraient le plus de l'une ou l'autre option? Si vous débutez dans les technologies Web ou si vous souhaitez simplement en savoir plus sur ces deux piles, ce guide contient tout ce dont vous avez besoin.
Développement LAMP Traditionnel
La plupart des développeurs devraient connaître la pile LAMP traditionnelle, car elle existe depuis les débuts du Web.. LAMPE représente Linux, Apache, MySQL et PHP. Chacun de ceux-ci sont des progiciels individuels qui sont combinés pour former une solution de serveur polyvalente..
La principale raison de rester avec LAMP est sécurité et soutien généralisé. Il existe depuis des décennies et c'est une méthode éprouvée d'hébergement de sites Web..
Toutes les technologies de base telles que PHP et MySQL sont bien connues, et pris en charge par tous les principaux fournisseurs d'hébergement. Si vous travaillez sur une pile LAMP, vous pouvez héberger n'importe où. De plus, vous obtenez accès aux moteurs de CMS les plus populaires. WordPress, Drupal et Joomla fonctionnent tous sur PHP / MySQL.
Il y a options personnalisables au sein de l’architecture de LAMP, telle que LEMP remplaçant Apache par nginx. Vous pouvez également exécuter une variante sur un serveur Windows en tant que pile WAMP..
Cependant, tous les logiciels de base, y compris Apache, MySQL et PHP - ont été open-source, et fabriqué principalement pour Linux. C’est la raison pour laquelle Linux est ce qui convient le mieux à un environnement de serveur et c’est pourquoi LAMP a résisté à l’épreuve du temps pour le développement Web moderne..
La plupart des développeurs choisissent cette voie parce que c'est le moyen le plus simple d'obtenir un site web en ligne. Sur les forums, vous trouverez de nombreuses informations sur tout ce dont vous avez besoin pour configurer et dépanner un environnement LAMP. Par exemple, vous pouvez consulter cette question ServerFault pour plus d'informations.
Backend JavaScript avec MEAN
Node.js est la technologie la plus récente pour les développeurs déterminés à exécuter des applications évolutives construites avec JavaScript. Nœud alimente la pile MEAN, et offre un avantage principal: tout fonctionne sur une seule langue.
SIGNIFIER représente MongoDB, Express.js, Angular.js, et bien sur Node.js. Cet acronyme n'impose aucune exigence pour un système d'exploitation serveur ou un logiciel serveur. Une pile moyenne peut fonctionner sur n'importe quel OS, et Node vient même avec son propre serveur pour gérer JS sur le backend.
Vous trouverez beaucoup de documentation et d’assistance sur le site Web Mean.io..
Bien que cette pile ait attiré beaucoup d’attention, elle n’a toujours pas le même support stable que la pile LAMP traditionnelle.
Alors, pourquoi quelqu'un voudrait-il aller avec MEAN? Parce que c'est finalement plus rapide et plus facile à mettre à l'échelle. MongoDB est un Base de données NoSQL qui optimise les requêtes. L'utilisation de JavaScript fullstack améliore également le développement, car un seul langage s'applique à tous les travaux frontaux et dorsaux..
De plus, de nombreux autres frameworks JS arrivent sur le marché en tant que solutions stables. Par exemple, MEAN peut être commuté sur un Pile MEEN remplacer Angular par Ember.
Les programmeurs vont adorer la pile MEAN car elle sépare le code pour la maintenabilité et la croissance. Cela le rend plus facile d'organiser vos applications Web JavaScript afin qu'elles fonctionnent dans un environnement naturel.
Il y a beaucoup à apprendre sur ce sujet, et c'est probablement la plus grande barrière à l'entrée pour les nouveaux développeurs. L'apprentissage de toutes les technologies nécessaires à la gestion d'une application MEAN peut prendre des mois. Mais si vous aimez Node et voulez tout utiliser en JavaScript, cela en vaut la peine..
Voici quelques tutoriels d'initiation pour vous aider à démarrer.
- Guide du débutant absolu à Node.js
- Felix's Node.js Guide du débutant
- Introduction à Express.js
- Apprenez à créer des applications Web modernes avec MEAN
- Premiers pas avec Node.js, Express et MongoDB
PHP vs Node
PHP existe depuis le milieu des années 90 et est vraiment le langage de base le plus populaire. De nombreux développeurs Web commencent par (ou apprennent éventuellement) PHP parce qu'il est si prédominant sur les plateformes Web et les fournisseurs d'hébergement..
Node est un nouveau framework mais sa popularité a augmenté extraordinairement rapidement. Cela inclut la popularité de NPM en tant que gestionnaire de packages pour les développeurs Web et s'étend davantage aux puissants frameworks frontaux tels que Angular 2..
L'autre avantage de Node est qu'il livré avec son propre serveur web. Le JavaScript est à la base de tout ce qui se trouve sur une pile MEAN. Si vous aimez JS, vous adorerez créer des applications Web MEAN..
De nombreux développeurs pensent que PHP est un langage mal conçu car le créateur, Rasmus Lerdorf ne l'a pas conçu comme une langue. PHP a commencé comme solution générique pour sites web, et rapidement devenu une grande bibliothèque de fonctions non liées.
Mais avec PHP 7 essayant de corriger beaucoup d’erreurs du langage, et avec free POO les frameworks, tels que Laravel, PHP est un bien meilleur langage que jamais.
Donc, le débat linguistique se résume à votre choix personnel. Aimez-vous vraiment écrire du JavaScript? Alors, un nœud avec une pile MEAN pourrait être utile.
Si vous connaissez déjà PHP et souhaitez vous en tenir à ce que vous savez, LAMP est également une voie viable..
Avantages et inconvénients globaux:
Il y a plusieurs couches de chaque pile Web à comparer, y compris le système d'exploitation, le logiciel serveur, la base de données et le langage principal.
(1) le Pile moyenne également comprend angulaire qui est un cadre frontal. Il n'y a pas de framework requis dans une pile LAMP, mais vous pouvez toujours ajouter le vôtre à n'importe quelle application que vous construisez..
(2) En ce qui concerne le système d’exploitation, la pile LAMP cherche un dérivé de Linux. Linux est généralement le meilleur choix pour un environnement de serveur indépendamment de la pile, et il en va de même pour MEAN.
(3) Maintenant, le système d'exploitation du serveur est juste le logiciel de l'ordinateur, mais ce n'est pas le logiciel serveur web. Pour cela, vous avez besoin d’un programme comme Apache ou nginx. LAMP utilise Apache car c'est l'un des choix les plus stables disponibles.
(4) MEAN utilise le serveur Node.js qui est partie du paquet Node. Il est encore relativement nouveau et, même s'il dispose de nombreux supports, Node ne possède aucune communauté de la même taille qu'Apache..
(5) Un serveur de nœud nécessite également un backend de JavaScript (sans extensions). Apache permet la plupart des langues backend, et il existe de nombreuses extensions gratuites pour un meilleur support. Mais pour le moment, Apache n’a rien pour le support Node.
(6) Gestion de base de données est l'endroit où vous trouverez la plus grande différence. LAMP utilise MySQL pour le stockage de données relationnelles, tandis que MEAN utilise MongoDB, une base de données non relationnelle. Les bases de données non relationnelles sont Plus vite, et fournir une méthode plus simple de mise à l'échelle avec un trafic plus élevé.
(7) Garde en tête que PHP n'est pas limité à MySQL. Il peut utiliser MongoDB et d’autres alternatives telles que PostgreSQL ou SQLite. C'est juste que la plupart des développeurs PHP connaissent MySQL, c'est donc le principal prétendant à une pile LAMP typique.
(8) MOYEN piles typiquement cours plus vite et échelle plus grande, mais nécessitent beaucoup plus de temps et de connaissances du serveur pour apprendre le système. Les piles de lampes sont essayé-et-vrai, et ils viennent hors de la boîte avec l'infrastructure la plus sécurisée et le support le plus large imaginable.
(9) Les langages de programmation font une différence majeure entre les deux piles. LAMP fonctionne principalement sur PHP, qui inclut WordPress et le framework Laravel. MEAN fonctionne sur ExpressJS / NodeJS pour le backend avec AngularJS sur le frontend.
(dix) MOYEN est JavaScript complet, et il vous faudra beaucoup de choses pour apprendre à le faire fonctionner. C'est un choix fréquent de nouvelles startups prêt à repousser les limites du développement d'applications Web. La lampe est plus traditionnelle avec JS sur le frontend, PHP sur le backend. C'est fait pour les gens qui veulent juste mettre les sites en ligne sans trop de soucis.
S'il vous plaît consulter ce guide de comparaison pour en apprendre un peu plus. Aucun choix n'est bon ou mauvais, juste différent et fait pour différents projets.
Emballer
Je dirais que la plupart des sites Web se tournent vers la pile LAMP car elle est testée et contient de nombreux fils de questions-réponses utiles indexés dans Google. MEAN est toujours en croissance et bénéficie également d'un soutien important, mais peut être plus technique que la plupart des gens ne veulent le faire.
N'hésitez pas à essayer les deux et à les voir par vous-même. Il est possible de installer les deux configurations localement sur votre ordinateur et utilisez-les sans serveur distant.
Et si vous recherchez plus d’informations sur l’une ou l’autre des piles, j’ai rassemblé ci-dessous un ensemble de liens utiles..
- Apprenez à créer des applications Web modernes avec MEAN (thinkster.io)
- Docker LAMP Stack Admin (jessesnet.com)
- Comment installer des piles Linux, Apache, MySQL et PHP (LAMP) sur Debian 8 (digitalocean.com)