Entenda o papel crucial do API Gateway na infraestrutura de TI

Entenda o papel crucial do API Gateway na infraestrutura de TI

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 Guia Completo: Monitorando OpenVPN no Firewall pfSense com Prometheus e Grafana
Próxima Como utilizar o serviço RDS da AWS e receber o endpoint diretamente pelo Terraform

About author

Guilherme Zanelato
Guilherme Zanelato 5 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

DevOps

Kubernetes – Configurando um Cluster Multi-Master

Neste post vamos configurar um cluster Kuberentes Multi-Master apenas com a sua máquina. Mas antes de falarmos sobre um cluster em Kubernetes trabalhando em modo Multi-Master… Uma palavra sobre containers…

Cloud

Amplie seus conhecimentos em Cloud com o novo curso da 4Linux

Olá, para você que trabalha ou tem interesse na área de Cloud! Gostaria de aprender a gerenciar serviços nos principais Cloud Providers do mercado? Então a 4Linux é o lugar

Infraestrutura TI

Criando um Pendrive Bootável com Múltiplas ISOs no Linux

Criar um pendrive bootável no Linux, não é nada muito complexo, mas para algumas pessoas nem sempre é um processo tão simples quanto desejado. No entanto, com a ferramenta certa,