Mitigando riscos de se criar monolíticos distribuídos

A adoção de arquitetura baseada em microsserviços sem o conhecimento das suas desvantagens tem sido umas das principais dores de cabeças em diversos projetos de modernização que estamos encontrando no mercado atualmente. Acreditamos que decompor sistemas em serviços sem combater adequadamente o acoplamento aumenta a complexidade e, frequentemente, decisões equivocadas transformam essas aplicações em verdadeiros monolíticos distribuídos.

Um dos principais indícios de que estamos trabalhando em um monolito distribuído é quando uma nova funcionalidade gera um deploy sincronizado de um conjunto de serviços, ao invés de um único serviço impactado pela nova funcionalidade. Essa característica evidencia que o isolamento das aplicações provavelmente não está ocorrendo de maneira adequada e os principais benefícios de uma arquitetura de microsserviços não estão sendo aproveitados.

Este problema geralmente acontece por falta de conhecimento profundo do domínio, onde os microsserviços são segmentados sem levar em consideração a coesão dos contextos propiciando um forte acoplamento entre eles. Contudo, podemos adotar algumas estratégias para mitigar estas dores de cabeça.

Comece simples, comece com um monolito bem feito

Geralmente não é recomendável já iniciar uma arquitetura de maneira muito fragmentada devido ao custo advindo da complexidade. Uma boa estrutura monolítica pode ser muito mais simples de ser mantida. E quando o conhecimento do negócio se tornar mais sólido, faça (se necessário) a separação dos serviços levando em consideração os contextos, a estrutura do time e a necessidade de escala.

Tenha um padrão coerente para segmentar os microsserviços

Definir as fronteiras de cada microsserviço não é tarefa simples, mas é a chave para evitar acoplamentos desnecessários. O Domain Driven Design apresenta o conceito de bounded-context que pode ser útil como diretriz para definir uma estratégia consistente de segmentação dos microsserviços.

Evolua de maneira incremental

É interessante que a segregação dos serviços seja feita de forma gradual. Aumentar a granularidade dos serviços tornando-os “micro” de maneira desnecessária vai apenas aumentar a complexidade e o custo para manter as aplicações.

E não se esqueça…

De forma geral, é melhor ter que, eventualmente, segmentar um serviço do que ter que lidar de maneira desnecessária com uma explosão de serviços e os seus desafios de consistência eventual. 

Esse tema é discutido de maneira mais ampla no livro “Monolith to Microservices” que recomendamos, do Sam Newman.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
View all comments

AUTOR

Raphael Castilho
Desenvolvedor especialista em .NET com experiência em aplicações corporativas de larga escala

Arquitetura Corporativa

Ajudamos empresas a estruturar e fortalecer sua capacidade interna em Arquitetura Corporativa, promovendo alinhamento estratégico entre TI e Negócios, eficiência operacional e sustentação da transformação digital.

INSIGHTS EXIMIACO

Arquitetura de Software

Evolução e modernização de aplicações para suportar mudanças de escala.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Arquitetura de Software
17/04/2024

|

Gabriel Kohlrausch

O seu cadastro foi realizado com sucesso!

Em breve enviaremos a apresentação desta palestra para o seu e-mail.

Seu contato foi enviado com sucesso!

Em breve retornaremos seu contato com mais informações sobre como realizar a sua inscrição na capacitação C# do Jeito Certo. Aproveite para conferir o programa completo da capacitação:

Capacitação

C# do Jeito Certo

Garanta qualidade e escalabilidade no desenvolvimento de software.

Domine boas práticas e padrões modernos, criando códigos confiáveis, eficientes e alinhados às melhores demandas do mercado.

A sua inscrição foi realizada com sucesso!

O link de acesso à live foi enviado para o seu e-mail. Nos vemos no dia da live.

Muito obrigado!

Deu tudo certo com seu envio!
Logo entraremos em contato

Mitigando riscos de se criar monolíticos distribuídos

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Mitigando riscos de se criar monolíticos distribuídos

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

0
Queremos saber a sua opinião, deixe seu comentáriox
× Precisa de ajuda?