CloudDomíniosHospedagem

Pontos negativos da utilização da arquitetura de microserviços.

Os microservices foram amplamente adotados há alguns anos, porém atualmente estão sendo observadas suas limitações em aplicações na nuvem.

storm clouds dark
Imagem: GernotBra/KaboomPics

Uma estrutura de microsserviços para o desenvolvimento de aplicações na nuvem é uma abordagem arquitetônica que consiste em construir uma aplicação de software como um conjunto de pequenos serviços interligados de forma flexível. Cada serviço nessa arquitetura representa uma funcionalidade ou capacidade de negócios específica, como inserir um item de inventário em um banco de dados ou verificar a análise de crédito de novos clientes. Esses serviços geralmente operam de forma independente, se comunicando com outros serviços por meio de APIs ou protocolos leves.

Os microserviços surgiram com base na arquitetura de serviços e na demanda por aplicações mais eficientes, sendo a abordagem preferida para o desenvolvimento de novas aplicações por diversos motivos. Eu prefiro utilizar a arquitetura de microserviços devido ao seu foco em acoplamento e isolamento.

Benefícios oferecidos pelos microserviços

Os serviços são concebidos para serem integrados de forma flexível, podendo operar de maneira autônoma, sem depender diretamente dos detalhes de implementação interna de outros serviços. Isso possibilita que as equipes desenvolvam, implementem e dimensionem os serviços de forma independente, o que promove uma maior agilidade. Além disso, há benefícios adicionais, como uma maior resiliência, uma vez que esses serviços funcionam de modo independente.

Isso destaca as vantagens da autonomia e separação, que são intimamente ligadas à integração flexível. Cada serviço pode ser criado, verificado, implementado e dimensionado de maneira independente.

Para ser honesto, isso não foi revolucionário quando apareceu no local. Foi mais uma evolução das melhores práticas arquitetônicas que começou na década de 1970 com desenvolvimento estruturado, então desenvolvimento orientado a objetos, desenvolvimento baseado em componentes, uso de serviços e microsserviços. Cada abordagem influencia os seguintes métodos; esperamos, melhorar as coisas ao longo do caminho.

RELACIONADO:  Downsides para usar sistemas de autoscaling em nuvem

Retornos de microserviços

Claro, não há almoços gratuitos em desenvolvimento. Cada abordagem, ferramenta, linguagem e arquitetura tem prós e contras que você deve considerar. Isso às vezes é perdido no hype. Vamos explorar algumas desvantagens da arquitetura de microserviços.

A maior é a complexidade. Os microsserviços introduzem um nível mais elevado de complexidade em comparação com arquiteturas mais monolíticas. Os sistemas são divididos em inúmeros serviços; a arquitetura torna-se mais complexa e a compreensão das interações entre diferentes serviços pode ser desafiadora.

Isso se torna mais desafiador quando se leva em conta que estamos lidando com sistemas distribuídos complexos, como as plataformas onde os microserviços são executados. Essa complexidade surge da implementação de multiclouds em praticamente todas as empresas.

A distribuição é outra consideração. Com microsserviços, a comunicação entre serviços ocorre frequentemente em uma rede, levando à latência, falhas de rede e aumento do estresse. Eu tive que atualizar as redes depois de implantar aplicativos baseados em microserviços por esta razão. Não é barato.

O gerenciamento de dados também é mais complicado. Os microsserviços podem ter suas próprias bases de dados ou lojas de dados, complicando a consistência de dados em vários serviços. Geralmente requer esforço adicional para manter a integridade dos dados que as empresas não entendem até que sofra. Isso é solvável, mas leva muitos mais recursos do que a maioria entende.

As dependências do serviço podem ser uma dor. À medida que os microserviços interagem através de APIs, as mudanças em um serviço podem ter implicações para outros. O resultado? Desafios de versão e problemas de compatibilidade potenciais, especialmente durante atualizações ou mudanças de serviço.

RELACIONADO:  O Oracle Autonomous Database agora oferece suporte para tecnologia de inteligência artificial em conversações.

Finalmente, sobrecarga de recursos. A execução de múltiplas instâncias de microserviços consumirá mais recursos do que uma única aplicação monolítica para a maioria das aplicações implantadas. Isso pode aumentar os custos de infraestrutura, especialmente se não for gerenciado de forma eficiente. A maioria não é.

Para onde agora?

Estou descobrindo que os desenvolvedores e arquitetos em nuvem se aproximam da arquitetura de microserviços com fervor quase religioso. Claro, eles não são a abordagem certa para todas as aplicações e, em muitos casos, tornam-se uma força adequada. Ao modernizar aplicativos que já foram movidos para a nuvem ou que estão se movendo para a nuvem, eles exigem muito mais recursos do que deveriam. Isto é devido a muitas das desvantagens que eu mencionei.

Dito isto, eles são muitas vezes a arquitetura exemplar para usar. No entanto, você deve ter considerado muitos dos trade-offs antes de comprometê-lo e você deve se concentrar nos requisitos principais da aplicação. Infelizmente, não estamos olhando para muitas coisas que devemos ser, e acabamos com ineficiências devido a abordagens incomparáveis aos requisitos principais de aplicação.

Os microsserviços, como qualquer outra abordagem, devem ser considerados apenas no contexto, também mantendo o propósito desta arquitetura em mente, quando deve ser usado, e quando não.

Artigos relacionados

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button