Microservices

Este artigo descreve como os serviços presente em uma arquitetura de microsserviços pode ser acessada através de um padrão conhecido como API Gateway, e também no acesso ao serviço em si.

Introdução

Após diversas discussões sobre o que seria a vir microsserviços, segue algumas conclusões sobre esse padrão arquitetural:
um microsserviço não é somente uma fragmentação de tarefas providas pelo servidor, mas sim um serviço isolado que contém sua própria interface pública de comunicação, ou seja, é possível ser conectar diretamente ao serviço.


Microservices possui uma grande vantagem em relação aos outros padrões (Monolítico e SOA), porque permite que os serviços sejam implementados de forma heterogênea, ou seja, cada serviço pode ser implementado com uma tecnologia distinta (C, Python, Rust), como será visto no caso de uso, porém também traz consigo uma desvantagem, que é a complexidade empregada. Por serem independentes entre si, o debug da aplicação fica difícil de ser realizado, e exige conhecimento das tecnologias usadas.

API Gateway

API Gateway é uma padrão que centraliza todas as interfaces de comunicação relativo aos serviços disponíveis em uma única interface pública, sendo assim tendo como responsabilidade de rotear os endpoints para a respectiva interface pública que contém o serviço.

Caso de Uso

Para exemplificar o padrão, foi criado um projeto onde possui uma aplicação Gateway e 6 serviços sendo eles implementados em C, Java, Python, Rust, Ruby e Go.

Representação Gráfica da aplicação

microservices

Gateway

A aplicação Gateway é responsável por centralizar todas as requisições providas pelo cliente, e rotear para o endpoint correspondente através de leitura de um arquivo criado pelos serviços.

Service

A aplicação Service é responsável por enviar mensagens conforme são cadastradas por passagem de paramêtros. Cada serviço criado registra sua porta e seu endpoint em um arquivo informando que está disponível.

Uso

Build

Para realizar o build execute o script:

Usando o Gateway

Usando o Service

Iniciamos o gateway e os serviços

Exemplo de uso

Com o netstat podemos ver os serviços funcionando

Conectamos no gateway e realizamos as requisições

Porém podemos nos conectar diretamente no próprio serviço

Representação gráfica do fluxo de comunicação via Gateway e diretamente

animation
animation

Conclusão

Com diversos tutoriais disponíveis na internet, poucos ressaltam a necessidade de que cada serviço deve possuir sua própria interface de comunicação, dessa forma cada serviço se transforma em um servidor independente, capaz de prover o serviço sem a dependência de outro serviço, podendo ser acessado através de um gateway (proxy reverso) ou diretamente.

O link para o projeto aqui

Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments

WEBINAR

Visão Computacional para a redução de erros em processos manuais

DATA: 23/09 ÀS 17:00 H