LAMP e MEAN são stacks de código aberto populares usadas para desenvolver aplicativos móveis e web de alto desempenho de nível empresarial. Como outras stacks da web, elas combinam tecnologias (sistemas operacionais, linguagens de programação, bancos de dados, bibliotecas e estruturas de aplicações) que os desenvolvedores podem usar para criar, implementar e gerenciar um aplicativo web totalmente funcional de forma eficiente e confiável por meio do desenvolvimento de stacks.
LAMP e MEAN são diferentes, pois fornecem aos desenvolvedores diferentes camadas — ou "stacks" — de tecnologias que um aplicativo da web precisa para funcionar em todas as atividades de interface de front-end, rede e servidor de back-end. Por exemplo, uma aplicação bancária baseada na web pode depender do stack LAMP ou do stack MEAN para interpretar a solicitação de um usuário para ver a atividade bancária, recuperar os dados necessários e exibi-los em uma interface do usuário.
LAMP significa as seguintes tecnologias em stack:
O sistema operacional Linux permite que todo o aplicativo da web funcione corretamente em um determinado hardware. O servidor da web Apache traduz a solicitação de um usuário e, em seguida, recupera e "entrega" informações de volta ao usuário via HTTP (protocolo de transferência de hipertexto). O banco de dados MySQL (um sistema de gerenciamento de banco de dados relacional) armazena os dados (por exemplo, arquivos de extratos bancários, atividade financeira, arquivos de imagem, planilhas de estilo CSS) que o servidor da web pode recuperar e fornecer com base na solicitação específica do usuário. A linguagem de programação PHP trabalha com o Apache para recuperar conteúdo dinâmico do banco de dados MySQL e apresentá-lo de volta ao usuário. Enquanto o HTML pode exibir conteúdo estático (por exemplo, um título que permanece na interface independentemente dos dados), o conteúdo dinâmico que muda com base na interação do usuário depende do PHP. As linguagens de programação PERL e Python também podem ser usadas na stack LAMP. O escritor Michael Kunze foi o primeiro o acrônimo stack LAMP em um artigo para uma revista alemã de computação publicada em 1998.
Figura 1: Como uma solicitação de usuário é processada na stack LAMP.
MEAN significa as seguintes tecnologias em stack:
O framework AngularJS processa uma solicitação de usuário recebida. O Node.js analisa a solicitação e a traduz em entradas que o aplicativo da web pode entender. O Express.js usa essas entradas traduzidas para determinar quais chamadas fazer para o MongoDB , um banco de dados NoSQL não relacional. Depois que o MongoDB fornece as informações necessárias, o Express.js envia os dados de volta para o Node.js, que por sua vez, os envia para o framework AngularJS para que possa exibir as informações solicitadas na interface do usuário.
Embora o framework front-end AngularJS possa ser substituído por outros, como React.js, o ambiente Node.js é crítico para o stack MEAN e não pode ser substituído. Isso ocorre porque o Node.js permite o desenvolvimento full stack JavaScript, um principal benefício que torna o desenvolvimento e o gerenciamento de aplicações com o MEAN stack altamente eficientes. Quando o framework AngularJS é substituído por React.js, a stack é chamado de MERN. O acrônimo stack MEAN foi usado pela primeira vez em 2013 pelo desenvolvedor do MongoDB Valeri Karpov.
A Figura 2 mostra um exemplo de alto nível de como um aplicativo da web responde em sua stack MEAN para atender à solicitação de informações de um usuário:
Figura 2: Como um aplicativo da web responde em toda a stack MEAN para atender a uma solicitação.
A seguir estão alguns benefícios do uso do LAMP para criar, implementar e gerenciar aplicações da web:
As desvantagens de usar o LAMP para criar, implementar e gerenciar aplicações da web incluem o seguinte:
Os benefícios do uso do MEAN para criar, implementar e gerenciar aplicações da web incluem o seguinte:
Estas são algumas desvantagens de usar o MEAN para criar, implementar e gerenciar aplicações da web:
Nenhuma stack é melhor que outra per se. No entanto, a stack LAMP ou a stack MEAN podem ser mais adequadas para um caso de uso específico de desenvolvimento web.
A stack LAMP é geralmente a melhor opção para aplicações da web ou sites com as seguintes características:
Por outro lado, a stack MEAN é a melhor escolha para aplicações da web ou sites como estes:
Para voltar ao básico, a stack LAMP aproxima você um pouco mais da veiculação técnica de páginas da web e de como isso é feito. Você tem seu banco de dados, sua linguagem de script e uma maneira de entregá-los aos clientes — isso é LAMP.
Se você quiser ver como é fácil desenvolver e implementar uma aplicação na nuvem usando uma stack LAMP ou MEAN, a IBM oferece os seguintes tutoriais:
Modernize com facilidade suas cargas de trabalho Java com o serviço totalmente gerenciado da IBM.
Libere a inovação e dê a suas equipes recursos para modernizar rapidamente as aplicações existentes e entregar novos serviços nativos da nuvem.
O desenvolvimento de aplicações na nuvem permite criar uma vez, iterar rapidamente e implementar em qualquer lugar.