Um aplicativo monolítico combina a interface do usuário e as camadas de acesso a dados para vários recursos em um único aplicativo. Normalmente, um aplicativo monolítico existirá como uma única base de código que é modificada por várias equipes dentro de uma organização e será implantado como uma única unidade contendo todas as funcionalidades que essas equipes mantêm.
Aplicações monolíticas geralmente podem ser mais fáceis de desenvolver e implantar graças à forte integração de seus componentes. No entanto, à medida que o escopo da aplicação e as demandas de desempenho aumentam, um monólito pode se tornar difícil de manter e dimensionar.
Sistemas monolíticos podem ser uma boa opção para aplicações menores e menos complexas que não precisam ser dimensionadas rapidamente ou mantidas rotineiramente. Abaixo estão alguns exemplos de aplicativos que geralmente têm bases monolíticas (embora suas funcionalidades mais recentes possam ser baseadas em uma infraestrutura mais conteinerizada ).
Embora alguns aspectos das arquiteturas monolíticas tenham ficado desatualizados, ainda existem muitos propósitos e atributos positivos.
Algumas vantagens dos monólitos incluem:
Embora a natureza singular dos monólitos tenha seus aspectos positivos, ela também pode levar a problemas.
Algumas desvantagens dos monólitos incluem:
Em contraste com a arquitetura monolítica, existe a arquitetura de microsserviços . Microsserviços é uma abordagem à arquitetura de software que cria um aplicativo grande e complexo a partir de pequenos componentes. Cada um desses componentes pode executar uma única função (por exemplo, autenticação, notificação ou processamento de pagamento) ou funcionar como pacotes dentro de um monólito. “Microsserviços” (ou apenas “serviços”) também é o termo para os próprios pequenos componentes.
Enquanto aplicativos monolíticos são fortemente acoplados (o que significa que seus componentes são interconectados), um aplicativo de microsserviços é distribuído (o que significa que seus componentes podem agir de forma independente). À medida que os aplicativos se tornam maiores e mais complexos, muitas organizações estão explorando a possibilidade de migrar de monólitos ou incorporar novos aplicativos em um formato de microsserviços.
O NGINX tem o orgulho de oferecer os seguintes recursos educacionais gratuitos para quem explora monolíticos e microsserviços