Centralidade elevada indica estresse de um microsserviço e fragilidade de um sistema distribuído

Após extrair um microsserviço do sistema monolítico, segregando as bases de dados, com classificação apropriada de APIs internas e externas e instrumentação suficiente para observabilidade, é importante estabelecer indicadores que suportem a evolução arquitetural. Um das análises fundamentais acontece a partir da centralidade.

Centralidade

No âmbito da teoria dos grafos e da análise de redes, centralidade é uma medida de importância de um vértice em um grafo. Existem diferentes tipos de medidas de centralidade de um vértice num grafo que determinam a importância relativa, que permitem, por exemplo, estimar o quanto uma pessoa é influente dentro de uma rede social, o quão é importante uma sala dentro de um edifício e como é bem utilizada uma estrada dentro de uma rede urbana. Vários conceitos de centralidade foram primeiramente desenvolvidos na análise de redes sociais, e muitos dos termos usados para medir a centralidade refletem a sua origem sociológica.

Existem quatro medidas de centralidade que são amplamente utilizados na análise de rede: centralidade de grau, centralidade de intermediação, centralidade de proximidade e centralidade de vetor próprio.

Wikipedia

Em sistemas distribuídos, indicadores de centralidade ajudam a determinar a importância relativa de um componente para a operação. Quanto maior a centralidade, maior a importância.

Ferramentas, como o Jaeger, são excelentes fontes de informação para este tipo de análise.

Ter, em um ambiente produtivo, componentes com alta centralidade de grau indica acoplamento. Componentes com grau de entrada elevados (indegree) – ou seja, muito “consumidos” por outros componentes – convertem-se rapidamente em gargalos e, geralmente, são os pontos frágeis da estrutura. Componentes auto grau de saída elevados (outdegree) são, frequentemente, ofensores.

Na prática, analisamos a centralidade em duas perspectivas:

  1. estática – ignorando o número de interações, considerando apenas a existência de conexão entre os componentes
  2. dinâmica – ponderando o peso das conexões com base no número de interações, acumulado de response time, ou outra métrica mensurável.

Geralmente, a perspectiva dinâmica, analisando complexos de microsserviços e suas conexões como grafos direcionados e ponderados, produz insights mais valiosos.

***

Na medida em que um microsserviço amadurece, em análise dinâmica, deve haver redução de centralidade tanto do “bloco monólito” – que está sendo fragmentado – quanto dos recursos que este utiliza – principalmente o banco de dados.

***

Assumindo que 20% das features de um sistema correspondem a 80% do uso, uma estratégia de fragmentação de um monólito será tão mais impactante quanto for o ritmo de redução da centralidade “dinâmica” do código sendo convertido para microsserviços.

***

O surgimento de microsserviços com excessiva centralidade “estática” – ou seja, analisando a estrutura como um grafo não ponderado – é, geralmente, indicativo de falhas de design, como, por exemplo, a criação de “Entity Services Antipattern”

***

Componentes com maior centralidade, estática ou dinâmica, são aqueles que tem maior custo de manutenção, demandando mais cuidado para o deploy, maior cobertura por testes automatizados, sobretudo testes de integração.

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

Elemar Júnior
Fundador e CEO da EximiaCo atua como tech trusted advisor ajudando empresas e profissionais a gerar mais resultados através da tecnologia.

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:

Arquivo

Pós-pandemia, trabalho remoto e a retenção dos profissionais de TI

CTO Consulting e Especialista em Execução em TI
EximiaCo 2024 - Todos os direitos reservados
0
Queremos saber a sua opinião, deixe seu comentáriox
()
x
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

Centralidade elevada indica estresse de um microsserviço e fragilidade de um sistema distribuído

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

Centralidade elevada indica estresse de um microsserviço e fragilidade de um sistema distribuído

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?