API Gateway Pattern um belo conceito dentro de Micros serviços

Vou começar um assunto que acho mega interessante, e um pouco diferente do que eu costumo falar aqui no blog.

A ideia é iniciar com o conceito e irmos avançando a até chegarmos na implementação do que vamos abordar aqui no post.

Vamos apenas alinhar expectativas, nesse primeiro post não teremos implementações do padrão nem nada do tipo, a ideia é de fato fazer um percurso pelo padrão e entendermos o porque da utilização.

Se você nunca ouviu falar sobre Micro Serviços aconselho, dar uma pausa nesse post e olhar alguns artigos antes de continuar aqui.

Eu vou deixar uma breve lista de alguns materiais sobre Micro Serviços.

API Gateway Pattern

Vamos tentar simplificar ao máximo as coisas, a grosso modo, quando falamos de um API Gateway estamos falando de colocar uma camada na frente dos nossos Micros Serviços.

E com isso o nosso ponto de entrada das requisições passa a ser essa camada API Gateway ao invés de ser diretamente o nosso serviço.

Essa estratégia nos trás um monte de benefícios não só para os serviços mas principalmente para o consumidor desses serviços.

Otimização de EndPoints

Se pegarmos um cenário normal, quando estamos consumindo uma aplicação que segue uma arquitetura de Micro Serviços, sempre caímos em um caso comum.
Realizar diversas requisições para diferentes serviços para conseguir todas as informações necessárias.

Cenário normal

Quando utilizamos um API Gateway nós abstraímos essa complexidade para o cliente pois ele passa a fazer a requisição para o nosso ponto de entrada onde tudo será centralizado.

Cenário API Gateway

Outro ponto para levarmos em consideração é o fato do cliente não precisar saber do endereço do seu serviço, ele simplesmente sabe o endereço do Gateway, e solicita a um único lugar.

Pensando que podemos mudar a implementação do nosso serviço e isso continuar sendo transparente para o cliente é fantástico.

Centralização de funcionalidades

Uma outra vantagem de trabalharmos com um Gateway é conseguimos centralizar algumas funcionalidades que são comuns entre os Micros Serviços, tais como:

  • Autenticação e Autorização
  • Controle de Tráfego
  • Log

Estratégias de Publicação

Essa é uma das grandes vantagens quando estamos trabalhando com uma arquitetura de Micro Serviços, temos uma agilidade de publicação da nossa aplicação infinitamente maior do que temos quando seguimos em um modelo monolítico.

Porém quando estamos utilizando um Gateway em nossos serviços conseguimos tirar mais proveitos dessa nossa arquitetura.

Podemos seguir diversas estratégias de publicação, tais como direcionamento de tráfego, liberação de tráfego sobre demanda e por ai vai.

Outros conceitos.

Realmente temos muitas opções quando estamos trabalhando com um Gateway na frente dos nossos serviços, e todos eles facilitam muito a nossa vida de alguma maneira, vou deixar uma lista com mais alguns conceitos que provavelmente vamos para os próximos posts.

  • Balanceamento de carga
  • Circuit Breakers

Por onde começar?

Quando falamos disso tudo, talvez assuste algumas pessoas pensando que teremos que implementar todos esses conceitos na mão.

Relaxa que não será preciso, hoje já temos diversos serviços que nos fornecem esses tipos de funcionalidades, tais como:

  • Azure API Management
  • Mashape
  • AWS API Gateway

Com toda a certeza essa lista é bem maior, eu só coloquei os que mais vejo falar.

Próximos passos

Pretendo continuar os posts sobre API Gateway mas levarei o assunto para dentro da plataforma do Microsoft Azure utilizando o seu serviços Azure API Management, a ideia é mostrar como esse conceito dentro de uma plataforma de nuvem facilita muito mais a nossa vida.

Espero que vocês gostem.

Caso tiver algumas duvida ficarei feliz em tentar ajudar.

Abraços

Referências

Nicolas Takashi

FullStack | Agilista | Blogueiro | Palestrante | Casado | Brasileiro

Braga - Portugal http://ntakashi.net

Subscribe to Nicolas Takashi

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!