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
Inline Feedbacks
View all comments

AUTOR

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

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

Consciência Situacional: O Sucesso do Software em Constante Evolução

Arquiteto de Software com experiência executiva em Tecnologia
Arquitetura de Software

Automação de Processos de Negócio: A Chave para Operações Eficientes e Lucrativas

Arquiteto de software e solução com larga experiência corporativa
Arquitetura de Software

A Evolução da Arquitetura de Software para Produtos Digitais Escaláveis

Arquiteto de Software com experiência executiva em Tecnologia
0
Queremos saber a sua opinião, deixe seu comentáriox
Oferta de pré-venda!

Mentoria em
Arquitetura de Software

Práticas, padrões & técnicas para Arquitetura de Software, de maneira efetiva, com base em cenários reais para profissionais envolvidos no projeto e implantação de software.

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ê:

× Precisa de ajuda?