Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
November 25, 2022 10:59 pm GMT

Arquitetura: Monolticos, Monolticos Distribudos e Microsservios

Nesse post iremos falar um pouco sobre os tipos de arquitetura, cada caso de uso e seus pontos positivos e negativos de acordo com diferentes conjunturas.

Introduo

A primeiro momento vale relembrar que a escolha do tipo de arquitetura de software ir depender do contexto em que a equipe de desenvolvimento est inserida, se a equipe possui o conhecimento necessrio para aplicar regras de complexidade arquitetural e se a regra de negcios necessite de um tipo de desenvolvimento mais trabalhoso.
Sendo assim, pode-se dizer que a escolha pelo tipo de arquitetura ir depender de mltiplas variveis, e responsvel do arquiteto determinar qual a melhor escolha a ser feita de acordo com cada peso e complexidade dos requisitos de negcio.

Arquitetura Monoltica

De modo geral, arquitetura monoltica aquela em que toda aplicao roda em nico processo, de forma que cada componente esto ligados a um nico programa. Apesar da dependncia gerada por esse tipo de arquitetura serem amenizados com tcnicas de desenvolvimento, como a Inverso de Controle e/ou Injeo de Dependncia, ele sofre de rigidez, mesmo que fraca. Isso acontece pelo fato do sistema ficar disponvel ou indisponvel por completo, tendo em vista que todas suas implementaes estarem inseridas no mesmo processo.

um tipo arquitetural em que h a necessidade de desenvolvimento de uma aplicao em que necessite uma facilidade de gerenciamento e menor complexidade de cdigo, nas quais os seus servios no necessite funcionar de maneira isolada.

Mas como saber se meus servios precisam funcionar de maneira isolada?

Para saber se seus servios necessite funcionar de maneira isolada, primeiro necessrio definir quais so suas responsabilidade, sua complexidade, e qual atuao ele vai ter perante o sistema. Por outro lado, a depender da regra de negcio, seus servios tero que funcionar de maneira isolada quando a disponibilidade (capacidade de um servio continuar funcionando perante o mal funcionamento dos outros, 24 horas/7 dias na semana) for mais necessria que a consistncia.

Vale ressaltar, que arquitetura monoltica caracterizada por diferentes reas/controllers da aplicao terem acesso a um mesmo banco de dados, como representado na imagem abaixo:

Arquitetura Monoltica

O grande problema, que em regras de negcios que necessitem de um processamento denso de informaes, como o levantamento de relatrios, o banco de dados pode sofrer de gargalos, de modo a afetar outros componentes da aplicao que necessite acesso ao mesmo banco de dados.

Normalmente, as arquiteturas monolticas sofrem de Memory Leak's.

Pontos Positivos

  • Facilidade de gerenciamento do cdigo (A primeiro momento);
  • Menor complexidade de cdigo;
  • Menor custo/Menos uso de recursos tecnolgicos;
  • Necessidade de menor conhecimento tcnico;

Pontos Negativos

  • Dificuldade de gerenciamento do cdigo (A longo prazo);
  • Acoplamento entre as partes do sistema;
  • Riscos de 100% de indisponibilidade de acesso;
  • Dificuldade em escalar horizontalmente;

Arquitetura de Monoltico Distribudo

De modo geral, arquitetura monoltica distrbuida aquela em que a aplicao roda em diferentes processos, no entanto, seu banco de dados est unificado, ou seja, diferentes processos/servios acessam o mesmo ponto de armazenamento de dados. Como na imagem a seguir:

Image description

Esse tipo de arquitetura est sujeita a inconsistncia de acesso a dados e performance, haja vista que enquanto um servio est realizando trocas de dados com o banco, outro tambm estar, podendo um afetar o outro, havendo sobre carregamento ou at mesmo bug's por acesso paralelo.

Por outro lado, esse tipo de arquitetura no abstrai o conhecimento que um servio tem sobre o outro, tendo em vista que eles so interligados pelos dados armazenados no banco.

Sendo assim, pode-se dizer que o monoltico distribudo se aproveita da complexidade dos microsservios, mas no se aproveita da abstrao das relaes de cada processo.

Pontos Positivos:

  • Disponibilidade de servio (em caso de queda de outros componentes);

Pontos Negativos:

  • Perda de rastreabilidade de inconsistncia de dados;
  • Inconsistncia de dados;
  • Sobre carregamento de banco de dados em contextos de alto processamento de dados;
  • Complexidade de um microservio.

Arquitetura em Microsservios

De modo geral, arquitetura monoltica distrbuida aquela em que a aplicao roda em diferentes processos, em que cada processo possui sua prpria complexidade e acessa sua prpria fonte de dados. Como na imagem a seguir:

Image description

Desse modo, com cada complexidade de funcionalidade possuindo seu prprio servio, a disponibilidade, flexibilidade e rastreabilidade de cada um potencializada positivamente.

Pontos positivos:

  • Problemas de funcionamento com hospedagem de dados e de aplicao fica apenas no prprio servio;
  • Baixo custo para manuteno (a longo prazo);
  • Facilidade no desenvolvimento de novas funcionalidades;
  • Facilidade em escalar de acordo com a necessidade (servio mais sobrecarregado escalado mais vezes);
  • Alta disponibilidade;

Pontos negativos:

  • Alto custo;
  • Alta complexidade;
  • Alto custo para manuteno (a primeiro momento);
  • Inconsistncia de dados;

Concluso

Portanto, pode-se concluir que por meio da explicao breve dada a cima, sem aprofundamento, a escolha da arquitetura vai variar de acordo com diferentes trade-off's do atual contexto da empresa e a necessidade da regra de negcios. Por conseguinte, no existe bala de prata, cada caso um, e deve ser estudado e analisado da melhor forma pela equipe.


Original Link: https://dev.to/otaviovb/arquitetura-monoliticos-monoliticos-distribuidos-e-microsservicos-3epc

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To