Gateway de API
Um gateway de API recebe solicitações de API de um cliente, processa-as com base em políticas definidas, encaminha-as aos serviços apropriados e combina as respostas para simplificar a experiência do usuário. Normalmente, ele processa uma solicitação acionando vários microsserviços e agregando os resultados. Também pode fazer a conversão entre protocolos em implantações de sistemas legados.
O que é um gateway de API?
Um gateway de API recebe solicitações de API de um cliente, processa-as com base em políticas definidas, encaminha-as aos serviços apropriados e combina as respostas para simplificar a experiência do usuário. Normalmente, ele processa uma solicitação acionando vários microsserviços e agregando os resultados. Também pode fazer a conversão entre protocolos em implantações legadas.
Recursos do API Gateway
Os gateways de API geralmente implementam recursos que incluem:
- Política de segurança – Autenticação, autorização, controle de acesso e criptografia
- Política de roteamento – Roteamento, limitação de taxa, manipulação de solicitações/respostas, circuit breaker, implantações blue-green e canário, testes A/B, balanceamento de carga, verificações de integridade e tratamento personalizado de erros
- Política de observabilidade – Métricas históricas e em tempo real, registro de logs e rastreamento
Para aumentar a segurança no nível de aplicativos e APIs, os gateways de API podem ser complementados com um firewall de aplicações web (WAF) e proteção contra ataques de negação de serviço (DoS).
Benefícios de um gateway de API
A implantação de um gateway de API para a entrega de aplicativos pode ajudar a:
- Reduza a complexidade e acelere os lançamentos de aplicativos encapsulando a arquitetura interna da aplicação e fornecendo APIs adaptadas a cada tipo de cliente
- Otimize e simplifique o processamento de solicitações e a aplicação de políticas centralizando o ponto de controle e transferindo os requisitos não funcionais para a camada de infraestrutura
- Simplifique a solução de problemas com métricas e painéis granulares, históricos e em tempo real
Arquitetura de gateway de API e microsserviços
Para aplicações baseadas em microsserviços, um gateway de API atua como um ponto único de entrada no sistema. Ele fica à frente dos microsserviços e simplifica tanto as implementações dos clientes quanto a aplicação de microsserviços, desacoplando a complexidade da aplicação de seus clientes.
Em uma arquitetura de microsserviços, o gateway de API é responsável pelo roteamento e pela composição de solicitações, bem como pela aplicação de políticas. Ele processa algumas solicitações simplesmente encaminhando-as ao serviço de backend apropriado e processa outras acionando vários serviços de backend e agregando os resultados.
Um gateway de API também pode oferecer outros recursos para microsserviços, como autenticação, autorização, monitoramento, balanceamento de carga e tratamento de respostas, transferindo a implementação de requisitos não funcionais para a camada de infraestrutura e ajudando os desenvolvedores a se concentrarem na lógica de negócios principal, o que acelera o lançamento de aplicativos.
Saiba mais sobre Como criar microsserviços usando um gateway de API em nosso blog.
Gateway de API para Kubernetes
Os contêineres são a maneira mais eficiente de executar microsserviços, e o Kubernetes é o padrão de fato para implantar e gerenciar aplicações e cargas de trabalho em contêineres.
Dependendo da arquitetura do sistema e dos requisitos de entrega de aplicações, um gateway de API pode ser implantado à frente do cluster do Kubernetes como um balanceador de carga (nível multicluster), na borda como um controlador de Ingress (nível de cluster) ou dentro dele como uma malha de serviços (nível de serviço).
Para implantações de gateway de API na borda e dentro do cluster do Kubernetes, a prática recomendada é usar uma ferramenta nativa do Kubernetes como gateway de API. Essas ferramentas são totalmente integradas à API do Kubernetes, oferecem suporte a YAML e podem ser configuradas por meio da CLI padrão do Kubernetes. Alguns exemplos são o NGINX Ingress Controller e o NGINX Service Mesh.
Saiba mais sobre gateways de API e Kubernetes no artigo Gateway de API vs. controlador de Ingress vs. malha de serviços em nosso blog.
Gateway de API e Gateway de Ingress ou Controlador de Ingress
Os gateways de Ingress e controladores de Ingress são ferramentas que implementam o objeto Ingress, que faz parte da API Ingress do Kubernetes, para expor aplicações executadas no Kubernetes a clientes externos. Eles gerenciam a comunicação entre usuários e aplicações (conectividade entre usuário e serviço ou norte-sul). No entanto, o objeto Ingress, por si só, tem recursos muito limitados. Por exemplo, ele não permite definir as políticas de segurança associadas a ele. Por isso, muitos fornecedores criam definições de recursos personalizados (CRDs) para ampliar os recursos de seus controladores de Ingress e atender às necessidades e aos requisitos em constante evolução dos clientes, incluindo o uso do controlador de Ingress como um gateway de API.
Por exemplo, NGIN Ingress Controller pode ser usado como um gateway de API completo na borda de um cluster do Kubernetes com seus recursos personalizados VirtualServer e VirtualServerRoute, TransportServer e Policy.
API Gateway não é o mesmo que Gateway API
Embora os nomes sejam semelhantes, um gateway de API não é a mesma coisa que a API Gateway do Kubernetes. A API Gateway do Kubernetes é um projeto de código aberto gerenciado pela comunidade do Kubernetes para aprimorar e padronizar a rede de serviços no Kubernetes. A especificação da API Gateway evoluiu da API Ingress do Kubernetes para solucionar diversos desafios relacionados à implantação de recursos Ingress para disponibilizar aplicações do Kubernetes em produção, incluindo a capacidade de definir políticas granulares para o processamento de solicitações e delegar o controle da configuração entre várias equipes e funções.
As ferramentas criadas com base na especificação da Gateway API, como o NGINX Kubernetes Gateway, podem ser usadas como gateways de API em casos de uso que incluem o roteamento de solicitações para microsserviços específicos, a implementação de políticas de tráfego e a viabilização de implantações canário e azul-verde.
Assista a este vídeo rápido em que Jenn Gile, da NGINX, explica a diferença entre um gateway de API e a API Gateway do Kubernetes.
Service Mesh vs. Gateway de API
Uma malha de serviços é uma camada de infraestrutura que controla a comunicação entre os serviços de um cluster Kubernetes (conectividade serviço a serviço ou leste-oeste). A malha de serviços oferece recursos essenciais para os serviços executados no Kubernetes, incluindo balanceamento de carga, autenticação, autorização, controle de acesso, criptografia, observabilidade e padrões avançados de gerenciamento de conectividade (disjuntor, testes A/B e implantações blue-green e canário), garantindo uma comunicação rápida, confiável e segura.
Implantada mais próxima dos aplicativos e serviços, uma malha de serviços pode ser usada como um gateway de API distribuído, leve e, ao mesmo tempo, abrangente para a comunicação entre serviços no Kubernetes.
Saiba mais sobre service mesh em Como escolher um service mesh em nosso blog.
Gateway de API e gerenciamento de APIs
Os termos gateway de API e gerenciamento de APIs são frequentemente — mas de forma incorreta — usados para descrever a mesma funcionalidade.
Um gateway de API é um ponto de entrada do plano de dados para chamadas de API que representam solicitações de clientes a aplicações e serviços de destino. Normalmente, ele processa as solicitações com base em políticas definidas, incluindo autenticação, autorização, controle de acesso, descarregamento de SSL/TLS, roteamento e balanceamento de carga.
Gerenciamento de APIs é o processo de implantação, documentação, operação e monitoramento de APIs individuais. Normalmente, ele é realizado com um software de plano de gerenciamento (por exemplo, um gerenciador de APIs) que define e aplica políticas a gateways de API e portais de desenvolvedores.
Dependendo dos requisitos de negócios e funcionais, um gateway de API pode ser implantado como um componente independente no plano de dados ou como parte de uma solução integrada de gerenciamento de APIs, como o F5 NGINX Management Suite API Connectivity Manager.
Considerações para escolher um gateway de API
Há vários fatores importantes a considerar ao definir os requisitos do seu gateway de API:
- Arquitetura – O local onde você implanta o gateway de API pode influenciar sua escolha de ferramentas, assim como a decisão de usar as opções integradas do seu provedor de nuvem. Você precisa da flexibilidade de um gateway de API independente de plataforma e ambiente de execução?
- Desempenho – O desempenho é fundamental para sites e aplicações com alto volume de tráfego. Seu gateway de API oferece a alta taxa de transferência e a baixa latência de que você precisa?
- Escalabilidade – Seu gateway de API precisa ser facilmente escalável para atender às crescentes demandas de tráfego. Seu gateway de API oferece suporte ao escalonamento vertical (alta taxa de transferência) e horizontal (alta disponibilidade) para garantir que suas APIs estejam sempre rápidas e disponíveis?
- Segurança – Os gateways de API são uma parte importante de uma arquitetura de confiança zero. Seu gateway de API oferece controle de acesso (AuthN/AuthZ), mTLS e outros recursos avançados de segurança, como um WAF integrado e validação de esquema OpenAPI para segurança positiva?
- Custo – Entenda o custo total de propriedade (TCO) do gateway de API. Quais são os custos e as vantagens e desvantagens de desenvolver e manter uma solução personalizada em comparação com a aquisição de um gateway de API de nível empresarial?
Como o NGINX pode ajudar
A NGINX oferece várias opções para implantar e operar um gateway de API, dependendo dos seus casos de uso e padrões de implantação.
Ferramentas nativas do Kubernetes:
- NGINX Ingress Controller – Gerencia a conectividade de aplicações na borda de um cluster Kubernetes com recursos de gateway de API, identidade e observabilidade
- NGINX Service Mesh – Solução intuitiva para desenvolvedores que oferece conectividade entre serviços, segurança, orquestração e observabilidade
Comece solicitando sua avaliação gratuita de 30 dias do NGINX Ingress Controller com NGINX App Protect WAF e proteção contra DoS e baixe o NGINX Service Mesh, que é sempre gratuito.
Ferramentas universais:
- NGINX Plus como gateway de API – Gateway de API leve e de alto desempenho que pode ser implantado em ambientes de nuvem, locais e de borda
- F5 NGINX Management Suite API Connectivity Manager – Implante e opere gateways de API com ferramentas intuitivas para desenvolvedores, voltadas ao gerenciamento, à governança e à segurança de APIs
Para saber mais sobre como usar o NGINX Plus como gateway de API, solicite sua avaliação gratuita de 30 dias e confira Como implantar o NGINX como gateway de API em nosso blog. Para experimentar o NGINX Management Suite, solicite sua avaliação gratuita de 30 dias.

