Monolítica: Uma arquitetura de aplicações para WEB

Michel Bernardo
2 min readMay 13, 2020

--

Sabe aquele seu projeto com escopo pequeno e bem definido (teoricamente), e você tem quase certeza que ele não crescerá em termos de recursos? Pois é, a arquitetura Monolítica é a ideal para ele.

Um pouco de teoria:

Em engenharia de software, uma aplicação monolítica descreve uma única aplicação de software em camadas no qual a interface de usuário e código de acesso aos dados são combinados em um único programa a partir de uma única plataforma.

Uma aplicação monolítica é autônoma e independente de outras aplicações de computação. A filosofia do projeto consiste em um aplicativo que não é responsável apenas por uma determinada tarefa, mas que também pode executar todos os passos necessários para completar uma determinada função.[1][2] Fonte: Wikipedia

De acordo com os meus estudos iniciais, percebi que este tipo de arquitetura pode ser ser utilizada em projetos pequenos, principalmente quando estes projetos não visam crescimento absurdo. Se não for o caso, os micro-services são mais indicados.

Mas como este tipo de arquitetura funciona?

Funcionamento da arquitetura monolítica

Na arquitetura monolítica a complexidade do sistema é quebrado em módulos, projetados para a criação de um único executável monolítico. Os módulos compartilham recursos de processamento, memória, bancos de dados e arquivos. Basicamente as requisições passam por toda aplicação até chegar ao banco de dados. Existem alguns vantagens em utilizar este tipo de arquitetura mas também existem desvantagens.

Principais vantagens da arquitetura monolítica:

  • Baixa complexidade
  • Monitoramento simplificado

Um codebase único facilita a implementação de recursos para monitoramento e tratamento do código da aplicação.

Principais desvantagens da arquitetura monolítica:

  • Stack única
  • Compartilhamento de recursos
  • Acoplamento
  • Mais complexo fazer escalabilidade (Não recomendável)

No caso das desvantagens, os problemas são relação a escalabilidade da aplicação devido ao compartilhamento de recursos, acoplamento e stack única.

Basicamente é isso, existem varias outras arquitetura de sistemas para WEB que também apresentam vantagens e desvantagens. Vale a pena ler sobre este assunto já que é ele a base para a criação de sistemas, sejam eles simples ou super complexos.

Espero ter contribuído com os seus estudos!

--

--

Michel Bernardo
Michel Bernardo

Written by Michel Bernardo

English Teacher & iOS Developer. Passionate for writing and listening good music! 😝

No responses yet