Entenda como funciona o Service Discovery - Full Cycle FullCycle

Voltar

Wesley Willians

Entenda como funciona o Service Discovery

6 min de leitura

Muitas vezes os nossos sistemas sofrem quedas devido à sobrecarga de informações que eles trocam entre si. Para resolver isso nós podemos recorrer à criação de novas instâncias para escalar essa carga, mas isso também implica que o nosso sistema ficará dividido em duas máquinas diferentes.

Como outro sistema precisa acessar a parte que estava sobrecarregada, esse processo normalmente é feito através de um IP. Mas isso também gera um outro problema, porque quando nós temos duas máquinas, cada uma delas terá um IP diferente. Para saber qual IP acessar nós podemos utilizar o Service Discovery, que é basicamente um recurso capaz de descobrir quando nós adicionamos novas máquinas ou serviços.

Então, assim que adicionarmos uma segunda máquina, por exemplo, o Service Discovery também vai adicionar esse IP ao seu registro  (que nós chamamos de Service Registry). Dessa forma, o sistema não precisa consultar diferentes listas, já que ele simplesmente utiliza o Service Registry para receber o IP e permitir o acesso.

Além dessa função, o Service Discovery também verifica constantemente o estado de saúde das nossas máquinas. E se nós adicionarmos uma terceira máquina, por exemplo, que começa a apresentar algum problema com o risco de sair do ar, automaticamente o Service Discovery percebe esse problema e consegue removê-la do Service Registry, garantindo que ao acessarmos o registro nós simplesmente iremos pegar o estado atualizado das máquinas que estiverem funcionando.

Diferente de um Load Balancer, que requer a configuração manual na adição e remoção de cada máquina e IP, o Service Discovery facilita muito esse processo. Considerando que atualmente nós trabalhamos de uma forma mais dinâmica através do Auto Scaling, onde as máquinas são criadas e destruídas o tempo inteiro, fazer esse tipo de tarefa manualmente pode ser muito trabalhoso.

— Vantagens e variações ao trabalharmos com Service Discovery:

Entre as vantagens para o cliente, aquele que vai construir a máquina, ele conta com a possibilidade de acessar o registro para conferir se a máquina está funcionando corretamente; ou mesmo adicionar um Load Balancer para balancear toda a carga necessária.

Existem diversas variações, mas o mais importante é reconhecer que o Service Discovery tem a responsabilidade de manter uma lista atualizada de todos os serviços que estão no ar para não cairmos numa máquina errada.

Nós podemos encontrar o Service Discovery em diversos setores, como os Load Balancers que trabalham de forma automática ou nos Pods do Kubernetes quando criamos novos serviços.

Em resumo, esse serviço tem a capacidade de localizar redes automaticamente sem a necessidade de ajustar processos de configuração. Integrando tudo através de uma linguagem comum na sua rede de comunicação, ele permite que diversos devices e serviços sejam conectados a ele sem nenhuma intervenção manual.

Caso ainda tenha dúvidas sobre o que seja Service Discovery, confira nosso nosso canal do youtube!

Veja também: O que é Clean Architecture