MEAN vs LAMP Stack Prós e Contras
Pilhas da Web evoluíram ao longo de décadas com avanços em tecnologia e idiomas de backend. Duas das mais populares pilhas atualmente são LAMP e MEAN. Eles contam com duas tecnologias diferentes para idiomas de backend, bancos de dados e ambientes de servidor. O termo "pilha" refere-se a tecnologias que se empilham umas sobre as outras para criar um ambiente de servidor web.
Neste artigo, gostaria de esclarecer essas duas pilhas da Web examinando suas opções de tecnologia, tanto os prós quanto os contras. Onde cada pilha se sobressai? E que tipos de projetos se beneficiariam mais com qualquer uma das opções? Se você é novato em tecnologias web ou apenas quer aprender sobre essas duas pilhas, então este guia tem tudo que você precisa.
Desenvolvimento tradicional de LAMP
A maioria dos desenvolvedores deve saber sobre a tradicional pilha LAMP, porque ela existe desde a primeira web. LUMINÁRIA apoia Linux, Apache, MySQL e PHP. Cada um destes é pacotes de software individuais que são combinados para formar uma solução de servidor versátil.
A maior razão para ficar com LAMP é segurança e apoio generalizado. Já existe há décadas, e é um método comprovado de hospedagem de sites.
Todas as tecnologias de backend como PHP e MySQL são bem conhecidas, e suportado por todos os principais provedores de hospedagem. Se você trabalha em uma pilha LAMP, basicamente pode hospedar em qualquer lugar. Além disso, você obtém acesso aos motores CMS mais populares. WordPress, Drupal e Joomla são executados em PHP / MySQL.
tem opções personalizáveis dentro da arquitetura LAMP, como LEMP substituindo o Apache por nginx. Você também pode executar uma variante em um servidor Windows como uma pilha WAMP.
No entanto, todo o software principal - incluindo Apache, MySQL e PHP - foram de código aberto, e feito principalmente para o Linux. É por isso que o Linux faz mais sentido para um ambiente de servidor, e é por isso que o LAMP resistiu ao teste do tempo para o desenvolvimento moderno da Web..
A maioria dos desenvolvedores segue esse caminho porque é a maneira mais simples de obter um site online. Você encontrará muito suporte em fóruns que cobrem tudo o que você precisa para configurar e solucionar problemas de um ambiente LAMP. Por exemplo, você pode conferir esta questão ServerFault para mais informações.
Back-end JavaScript com MEAN
O Node.js é a mais nova tecnologia para desenvolvedores determinados a executar aplicativos escaláveis criados com JavaScript. Nó alimenta a pilha MEAN, e oferece uma vantagem principal: tudo é executado em um único idioma.
SIGNIFICAR apoia MongoDB, Express.js, Angular.js, e claro Node.js. Esse acrônimo não coloca nenhum requisito para um sistema operacional de servidor ou software de servidor. Uma pilha MÉDIA pode ser executado em qualquer sistema operacional, e o Node ainda vem com seu próprio servidor para manipular JS no backend.
Você encontrará muita documentação e suporte no site da Mean.io.
Embora essa pilha tenha ganhado muita atenção, ainda não tem nem um pouco de suporte estável como uma tradicional pilha LAMP.
Então, por que alguém iria com o MEAN? Porque é finalmente mais rápido e mais fácil de escalar. O MongoDB é um Banco de dados NoSQL que otimiza as consultas. O uso do JavaScript fullstack também melhora o desenvolvimento porque um idioma se aplica a todos os trabalhos frontend e backend.
Além disso, muitos outros frameworks JS estão chegando ao mercado como soluções estáveis. Por exemplo, MEAN pode ser comutado para um Pilha MEEN substituindo Angular por Ember.
Os programadores vão adorar a pilha MEAN porque separa código para manutenção e crescimento. Isso faz com que mais fácil organizar seus aplicativos da Web JavaScript para que eles sejam executados em um ambiente natural.
Há muito o que aprender sobre esse assunto, e essa é provavelmente a maior barreira à entrada de novos desenvolvedores. Aprender todas as tecnologias necessárias para gerenciar um aplicativo MEAN pode levar meses. Mas se você ama o Node, e quer rodar tudo em JavaScript, vale a pena o esforço.
Aqui estão alguns tutoriais para iniciantes para você começar.
- Um Guia Absoluto para Iniciantes do Node.js
- Felix's Node.js Guia para iniciantes
- Introdução ao Express.js
- Aprenda a construir aplicativos da Web modernos com o MEAN
- Primeiros passos com o Node.js, Express e MongoDB
PHP vs. Node
O PHP existe desde meados dos anos 90 e é verdadeiramente a linguagem de backend mais popular. Muitos desenvolvedores da Web iniciam com (ou eventualmente aprendem) PHP porque é tão predominante em plataformas web e provedores de hospedagem.
O Node é um framework mais novo, mas sua popularidade aumentou extraordinariamente rápido. Isso inclui a popularidade do NPM como gerenciador de pacotes para desenvolvedores da Web e expande ainda mais a estrutura de frontend poderosa, como o Angular 2..
O outro benefício do Node é que vem com seu próprio servidor web. JavaScript está na raiz de tudo em uma pilha MEAN, então se você ama JS, então você vai adorar construir aplicativos web MEAN.
Muitos desenvolvedores acham que o PHP é uma linguagem mal projetada porque o criador, Rasmus Lerdorf não o projetou como uma linguagem. PHP começou como um solução genérica para sites, e rapidamente cresceu em uma grande biblioteca de funções não relacionadas.
Mas com o PHP 7 tentando corrigir muitos erros da linguagem, e com livre OOP frameworks, como o Laravel, o PHP é uma linguagem muito melhor agora do que nunca.
Então, o debate da linguagem se resume a sua escolha pessoal. Você realmente ama escrever JavaScript? Então Node com uma pilha MEAN pode valer a pena considerar.
Se você já conhece PHP, e quer ficar com o que você sabe, o LAMP é uma rota viável também.
Prós e contras gerais:
tem várias camadas de cada pilha da web para comparar, incluindo sistema operacional, software de servidor, banco de dados e idioma de back-end.
(1) o Pilha MÉDIA Além disso inclui Angular que é um framework frontend. Não há nenhuma estrutura necessária em uma pilha LAMP, mas você sempre pode adicionar a sua própria para qualquer aplicativo que você criar.
(2) Com relação ao sistema operacional, a pilha LAMP procura um derivado do Linux. O Linux é tipicamente a melhor escolha para um ambiente de servidor, independentemente da pilha, e é verdade também de MEAN.
(3) Agora o sistema operacional do servidor é apenas o software do computador, mas não é o software de servidor web. Para obter isso, você precisa de um programa como Apache ou nginx. O LAMP usa o Apache porque é uma das escolhas mais estáveis disponíveis.
(4) MEAN usa o servidor Node.js, que é parte do pacote Node. Ainda é relativamente novo, e embora haja muito suporte por aí, o Node não tem nem perto da comunidade de mesmo tamanho que o Apache..
(5) Também um servidor Node requer um backend de JavaScript (sem extensões). Apache permite a maioria dos idiomas de backend, e há muitas extensões gratuitas para maior suporte. Mas a partir de agora o Apache não tem nada para o suporte do Node.
(6) Gerenciamento de banco de dados é onde você encontrará a maior diferença. O LAMP usa o MySQL para armazenamento de dados relacional, enquanto o MEAN usa o MongoDB, que é um banco de dados não relacional. DBs não relacionais são muito mais rapido, e fornecer um método mais fácil de escalar com maior tráfego.
(7) Tenha em mente que PHP não é limitado apenas ao MySQL. Pode usar o MongoDB e outras alternativas como o PostgreSQL ou o SQLite. É só que a maioria dos desenvolvedores PHP conhecem o MySQL, então é o principal contendor de uma pilha LAMP típica.
(8) MEAN stacks tipicamente correr mais rápido e escala maior, mas requer muito mais tempo e conhecimento do servidor para aprender o sistema. LAMP pilhas são experimentada e verdadeira, e eles vêm sai da caixa com a infra-estrutura mais segura e o suporte mais amplo que se possa imaginar.
(9) Linguagens de programação fazem uma grande diferença entre as duas pilhas. LAMP funciona principalmente em PHP, que inclui o WordPress e o framework Laravel. MEAN trabalha no ExpressJS / NodeJS para o backend com o AngularJS no frontend.
(10) MEIO é JavaScript de pilha completa, e há muito o que você precisa aprender para fazer isso funcionar. É um escolha frequente de novas startups dispostos a empurrar os limites no desenvolvimento de aplicativos da web. LAMP é mais tradicional com JS no frontend, PHP no backend. É feito para pessoas que só querem obter sites on-line sem muita preocupação.
Por favor, confira este guia de comparação para aprender um pouco mais. Nenhuma escolha é certa ou errada, apenas diferente e feita para diferentes projetos.
Empacotando
Eu diria que a maioria dos sites se inclina para a pilha LAMP porque ela é testada e tem muitos tópicos de perguntas e respostas úteis indexados no Google. MEAN ainda está crescendo e também tem muito apoio, mas pode ser mais técnico do que a maioria das pessoas quer lidar.
Sinta-se à vontade para experimentar os dois e vê-los por si mesmo. É possível instale as duas configurações localmente no seu computador, e construir sobre eles sem um servidor remoto.
E se você está procurando mais informações em qualquer pilha, eu coletei um conjunto de links úteis abaixo.
- Aprenda a construir aplicativos da Web modernos com o MEAN (thinkster.io)
- Docker LAMP Stack Admin (jessesnet.com)
- Como Instalar o Linux, Apache, MySQL, PHP (LAMP) Stack no Debian 8 (digitalocean.com)