Afinal, você sabe o que é um API Gateway?

Afinal, você sabe o que é um API Gateway?

Com o aumento considerável do uso dos conhecidos cloud providers, alguns tópicos que eram restritos ao vocabulário dos profissionais de infraestrutura acabaram transbordando para outras áreas, em especial para os times de desenvolvimento.

Um destes termos é o API Gateway. Afinal, você saberia descrever para que serve este componente? Bem, se fosse possível achar um exemplo do nosso cotidiano que se assemelhasse às atividades e responsabilidades de um API Gateway, uma boa sugestão seria o contexto de uma portaria de um prédio empresarial.

Imagine que você é um fornecedor de uma empresa que está neste prédio e que você precisa entregar um pedido. Nesse cenário, dependendo da portaria, você:

  1. Não terá acesso direto à empresa em questão;
  2. Você terá de interagir com um intermediário (um(a) recepcionista por exemplo)
  3. Caso você precise se dirigir até o andar da empresa, a recepcionista irá fazer algumas confirmações com empresa por motivos de segurança;
  4. Além dessas confirmações, para entrar no prédio você receberá um cartão de acesso que permite apenas acessar o andar da empresa em questão;

Se convertermos o cenário da portaria do prédio para um cenário de uma aplicação web qualquer, as empresas seriam as APIs, a encomenda seria uma requisição HTTP, e a portaria seria o API Gateway.

Essas responsabilidades relacionadas ao isolamento, controle de acesso e ser um intermediário entre as requisições definem o escopo de atuação de um API Gateway:

Isolamento: as requisições HTTP nunca chegam diretamente ao serviço, o API Gateway tem a responsabilidade de recebê-las e redirecionar para o serviço correspondente de forma transparente.
Proxy Reverso: para o solicitante, as respostas das requisições se apresentarão como do próprio serviço; no entanto, o API Gateway é que estará se passando de serviço realizando os redirecionamentos, tanto de requisição como de resposta.
Autenticação: é possível delegar ao API Gateway a camada de autenticação e acesso para as APIs em questão, sendo capaz de implementar o fornecimento de tokens, ou até mesmo cenários do protocolo Oauth 2.0.

Mas como tudo no mundo de TI há um preço, ao implementar um API gateway à frente de suas APIs, tenha em mente que:

1. Adição de um elemento na sua infraestrutura  – aumento de complexidade e manutenção ;
1. Dependendo do tipo de implementação, o API Gateway poderá ser um ponto único de falha, ou seja, caso ele falhar, nenhuma aplicação conseguirá acessar às suas APIs;
1. Aumento de latência, haja vista que para cada requisição será obrigatório a passagem pelo API Gateway, e o mesmo será responsável por redirecionar a requisição, coletar a resposta e devolver ao remetente de forma transparente;

 

Figura 1: Isolamento com API Gateway

No mundo Open Source podemos destacar três ferramentas que visam resolver esse tipo de problema. O primeiro é o Kong – derivado do famoso _NGINX_, que estende suas características para atuar como um API Gateway. O segundo que vale menção é o KrakenD, que além de atuar como API Gateway, foi construído para ser escalado, ou seja, não sofrer do mal de ser um single point of failure. Por fim, o Traefik também pode ser considerado um API Gateway – desenvolvido em GO, além dessas responsabilidades já citadas, se destaca por ter uma funcionalidade de service discovery automático, ou seja, identifica as APIs de sua infraestrutura sem precisar de esforços de configuração, além de possuir esse comportamento de forma dinâmica – assim sendo, se algum serviço ficar indisponível ou adicionarmos novas APIs em nossa infraestrutura, ele é capaz de identificar tais status.

Figura 2: API Gateways de Código Aberto

 

Nos cloud providers (como AWS, GCP, Digital Ocean, OCI, Azure entre outros), os API Gateways nos são apresentados como um produto da própria cloud, em geral, responsável por direcionar as requisições para as APIs ou, em arquiteturas _serverless_, para funções.

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Monitorando o serviço OpenVPN PfSense com Prometheus e Grafana.
Próxima Novo curso gratuito Cloud Fundamentals na 4Linux

About author

Guilherme Zanelato
Guilherme Zanelato 4 posts

Guilherme Zanelato é formado em Ciências Sociais pela universidade de São Paulo e atualmente cursa Análise e Desenvolvimento de Sistemas na FATEC. Possui mais de 2 anos de experiência em desenvolvimento e 4 anos lidando com tecnologias open source. Possui a certificação PCAP - Certified Associate in Python Programming.

View all posts by this author →

Você pode gostar também

Infraestrutura TI

Novo curso de Infraestrutura Ágil

Olá pessoal, faz um tempinho que criamos um novo curso de infraestrutura ágil! Eu particularmente gosto bastante desta versão porque ela atende várias necessidades dos nossos alunos. Para quem é

Infraestrutura TI

Conhecendo o kernel Linux pelo /proc (parte 4) – comportamentos da memória virtual

No post anterior vimos como o kernel mantem os mapeamentos de memória virtual para memória física e como essa tradução é realizada em tempo de execução pela MMU. Neste post

DevOps

Terraform #parte4 – Criando módulos

Este seria o último capítulo da nossa série de postagens sobre Terraform, mas se podemos também falar sobre versionamento de infraestrutura, acho que vale a pena no aprofundarmos em mais