Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Detectando Armadilhas: Uma Análise de Antipadrõ...

Detectando Armadilhas: Uma Análise de Antipadrões em Arquitetura de Microserviços utilizando grafos e IA Generativa

Nesta palestra, exploraremos como identificar e evitar antipadrões em arquitetura de microserviços.

Usando grafos e IA generativa, mergulharemos fundo nas armadilhas comuns e aprenderemos a construir sistemas mais robustos e eficientes

Avatar for Raphael Inacio

Raphael Inacio

September 19, 2024

Other Decks in Technology

Transcript

  1. Quem nunca? É um padrão de solução que, apesar de

    frequente, é ineficiente e causa mais danos do que benefícios.
  2. O termo foi cunhado em 1995 inspirado pelo livro do

    Design Patterns. Popularizado três anos depois pelo livro AntiPatterns
  3. Um antipadrão é uma solução que inicialmente parece um caminho

    atraente, forrado de flores… ...mas mais adiante te leva a um labirinto cheio de monstros https://martinfowler.com/bliki/AntiPattern.html
  4. Shared Database Muitos micro serviços conectados na mesma base de

    dados. Formas de identificar: • Referências da base no código • Documentação da arquitetura • APM
  5. God Service Um serviço que agrega muitas responsabilidades e ou

    é utilizado por outros serviços. Sintomas: • Muitos endpoints • Serviço inflado • Alto grau de Fan-In
  6. Cadeia de Serviços (Service Chain) Múltiplos serviços são chamados em

    sequência para completar uma funcionalidade. Sintomas: • Fragmentação excessiva • Excesso de timeouts • Erros em cadeia
  7. Antipadrão Algoritmos Métricas Relevantes Dependência Cíclica • SCC • Busca

    em Profundidade • Número de componentes fortemente conectados • comprimento dos ciclos Monolito Distribuído • Comunidade • Centralidade • Centralidade de grau • Betweenness God Service • Centralidade • Centralidade de grau • Betweenness Gargalo • Centralidade • Centralidade de betweenness Ponto Único de Falha • Centralidade • Centralidade de grau eigenvector Service Chain • Busca em Profundidade • Comprimento dos caminhos Chatty Service • Centralidade • Centralidade de grau
  8. Grau de Centralidade • A centralidade é uma forma de

    medir a importância de um ponto (vértice) dentro de um grafo. • Conta o número de relacionamentos diretos de um nó • Podendo ser de entrada, saída ou ambos https://pt.wikipedia.org/wiki/Centralidade 3 1 1 1
  9. Natural Language Queries Neo4J MATCH (:Microservice)-[:DEPEND_ON]->.. Pergunta: Quais serviços usam

    a mesma base de dados? Resposta: Os serviços God Service, Payment Service utilizam o Banco Shared Database….
  10. Geração Aumentada de Recuperação (RAG). Neo4J Pergunta + Resultado Relevante

    Pergunta: Quais são as decisões de arquitetura do Microservice …? Resposta: As decisões de arquitetura são: Compartilhamento de …. Geração da resposta