API Gateway com Kong

Fabio Ariati
Aurum Tech
Published in
3 min readNov 3, 2018

--

Gateway é um proxy que intermedia todas as requisições para seus sistemas internos. É um grande portão de entrada para os serviços de seu sistema, oferecendo funcionalidades relacionadas ao acesso e consumo da sua API. Aqui na Aurum trabalho em uma equipe especializada em prover serviços para aplicações internas e externas. Usamos o gateway Kong para fornecer acesso aos nossos serviços. Escolhemos ele devido a simplicidade, por ser opensource e pela diversidade de plugins.

Kong

Kong é um Gateway API escrito em Lua integrado ao Nginx. Por meio de plugins escritos em Lua ele pode customizar o proxy do Nginx para, ao encaminhar requisições, prover de forma performática funcionalidades como as descritas na figura abaixo.

Uso na Aurum

Atualmente temos 23 serviços especializados (incluindo de terceiros) no nosso cluster e alguns dos usos que temos do Kong são:

  • Centralização do acesso aos serviços da nossas APIs para o mesmo DNS.
  • Controle de acesso fornecendo uma camada segura de autenticação. Podemos fazer nossos serviços de forma simples sem se preocupar com o controle de acesso, pois todos ficam privados dentro do nosso cluster.
  • Monitoramento do tráfego que chega na API através de um plugin que envia dados das requisições para o Statsd.
  • Transformação de requisições e respostas para diversos fins como, por exemplo, mudar a requisição e resposta para manter compatibilidade com sistemas legados.

Exemplo — criando um sistema de autenticação básica para seu consumidor

Para demostrar o funcionamento do Kong, a seguir descrevo 4 passos para adicionar uma rota e um consumidor que irá consumir a mesma através de autenticação básica. Nos passos a seguir foi utilizado a Kong-Dashboard, mas todos os passos podem ser feitos direto pela API do Kong.

1 — Cadastro da rota
Na figura abaixo vemos um exemplo simples de cadastro de rota para a API. Ele cria uma rota http://seudominio/test que mapeia para o serviço interno http://servicointerno/test

2 — Adicionando plugin de autenticação básica
Na figura abaixo estamos adicionando autenticação básica para a rota criada anteriormente através de um plugin.

3 — Cadastro de consumidor
Na figura abaixo estamos cadastrando um comsumidor para a nossa API.

4 — Adicionando credenciais
Agora vamos adicionar credenciais de autenticação básica para o nosso consumidor.

Resultados

Somos uma equipe especializada em serviços de extração e tratamento de dados jurídicos. Possuímos diversidade de soluções e tecnologias, ter um Gateway nos ajudou a aumentar nossa rede de serviços especializados. É muito mais ágil quando podemos iniciar um serviço sem se preocupar em implementar soluções relacionadas ao controle e monitoramento do acesso da API.

Até mais..

--

--