O que é um gateway de API?

Um gateway de API aceita solicitações de API de um cliente, processa-as com base em políticas definidas, direciona-as para os serviços apropriados e combina as respostas para uma experiência de usuário simplificada. Normalmente, ele lida com uma solicitação invocando vários microsserviços e agregando os resultados. Ele também pode traduzir entre protocolos em implantações legadas.

Um gateway de API aceita solicitações de API de um cliente, processa-as com base em políticas definidas, direciona-as para os serviços apropriados e combina as respostas para uma experiência de usuário simplificada. Normalmente, ele lida com uma solicitação invocando vários microsserviços e agregando os resultados. Ele também pode traduzir entre protocolos em implantações legadas.

TEXTO ALT. DA IMAGEM AQUI

Capacidades do gateway de API

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ção/resposta, circuit braker, implantações azul-verde e canário, testes A/B, balanceamento de carga, verificações de integridade e tratamento de erros personalizado
  • Política de observabilidade — Métricas históricas e em tempo real, registro e rastreamento

Para segurança adicional em nível de aplicação e API, os gateways de API podem ser complementados com firewall de aplicação da web (WAF) e proteção contra negação de serviço (DoS).

Benefícios do gateway de API

A implantação de um gateway de API para entrega de aplicações pode ajudar:

  • Reduza a complexidade e acelere os lançamentos de aplicações ao encapsular a arquitetura interna da aplicação e fornecer APIs personalizadas para cada tipo de cliente
  • Simplifique e agilize o processamento de solicitações e a aplicação de políticas ao centralizar o ponto de controle e transferir requisitos não funcionais para a camada de infraestrutura
  • Simplifique a solução de problemas com métricas e painéis granulares em tempo real e históricos

Arquitetura de gateway de API e microsserviços

Para aplicativos baseados em microsserviços, um gateway de API atua como um único ponto de entrada no sistema. Ele fica na frente dos microsserviços e simplifica tanto as implementações do cliente quanto o aplicativo de microsserviços ao desvincular a complexidade de um aplicativo de seus clientes.

Em uma arquitetura de microsserviços, o gateway de API é responsável pelo roteamento de solicitações, composição e aplicação de políticas. Ele lida com algumas solicitações simplesmente encaminhando-as para o serviço de backend apropriado e lida com outras invocando vários serviços de backend e agregando os resultados.

Um gateway de API pode fornecer outros recursos para microsserviços, como autenticação, autorização, monitoramento, balanceamento de carga e tratamento de resposta, 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, acelerando os lançamentos de aplicações.

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 da aplicação, um gateway de API pode ser implantado na frente do cluster do Kubernetes como um balanceador de carga (nível de vários clusters), em sua borda como um controlador de entrada (nível de cluster) ou dentro dele como uma malha de serviços (nível de serviço).

TEXTO ALT. DA IMAGEM AQUI

Para implantações de gateway de API na borda e dentro do cluster do Kubernetes, é uma prática recomendada usar uma ferramenta nativa do Kubernetes como gateway de API. Essas ferramentas são fortemente integradas à API do Kubernetes, oferecem suporte a YAML e podem ser configuradas por meio da CLI padrão do Kubernetes; exemplos incluem NGINX Ingress Controller e NGINX Service Mesh .

Saiba mais sobre gateways de API e Kubernetes em API Gateway vs. Controlador de entrada vs. Service Mesh em nosso blog.

Gateway de API e gateway Ingress ou Ingress Controller

Gateways de entrada e controladores de entrada são ferramentas que implementam o objeto Ingress , uma parte da API de entrada do Kubernetes, para expor aplicativos em execução no Kubernetes a clientes externos. Eles gerenciam as comunicações entre usuários e aplicativos (conectividade usuário-serviço ou norte-sul). Entretanto, o objeto Ingress por si só é muito limitado em suas capacidades. Por exemplo, ele não suporta a definição das políticas de segurança anexadas a ele. Como resultado, muitos fornecedores criam definições de recursos personalizadas (CRDs) para expandir os recursos do controlador Ingress e satisfazer as necessidades e os requisitos em evolução dos clientes, incluindo o uso do controlador Ingress como um gateway de API.

Por exemplo, o NGINX Ingress Controller pode ser usado como um gateway de API completo na borda de um cluster Kubernetes com seus recursos personalizados VirtualServer e VirtualServerRoute , TransportServer e Policy .

Gateway de API não é o mesmo que API de gateway

Embora seus nomes sejam semelhantes, um API gateway não é o mesmo que o Kubernetes Gateway API . O Kubernetes Gateway API é um projeto de código aberto gerenciado pela comunidade Kubernetes para melhorar e padronizar a rede de serviços no Kubernetes. A especificação da API Gateway evoluiu da API Ingress do Kubernetes para resolver vários desafios relacionados à implantação de recursos do Ingress para expor aplicativos do Kubernetes em produção, incluindo a capacidade de definir políticas refinadas para processamento de solicitações e delegar controle sobre a configuração entre várias equipes e funções.

Ferramentas criadas na especificação da API Gateway, como o NGINX Kubernetes Gateway , podem ser usadas como gateways de API para casos de uso que incluem roteamento de solicitações para microsserviços específicos, implementação de políticas de tráfego e habilitação de implantações canário e azul-verde.

Assista a este vídeo rápido onde Jenn Gile, da NGINX, explica a diferença entre um gateway de API e a API do Kubernetes Gateway .

Malha de serviços vs. gateway de API

Uma malha de serviço é uma camada de infraestrutura que controla as comunicações entre serviços em um cluster Kubernetes (conectividade serviço a serviço ou leste-oeste). A malha de serviços fornece recursos essenciais para serviços executados no Kubernetes, incluindo balanceamento de carga, autenticação, autorização, controle de acesso, criptografia, observabilidade e padrões avançados para gerenciar conectividade (circuit braker, testes A/B e implantações azul-verde e canário), para garantir que a comunicação seja rápida, confiável e segura.

Implantada mais próximo das aplicações e serviços, uma malha de serviços pode ser usada como um gateway de API distribuído leve, mas abrangente, para comunicações de serviço para serviço no Kubernetes.

Saiba mais sobre service mesh em Como escolher um service mesh em nosso blog.

Gateway de API e gerenciamento de API

Os termos gateway de API e gerenciamento de API são frequentemente – mas incorretamente – usados para descrever a mesma funcionalidade.

Um gateway de API é um ponto de entrada no plano de dados para chamadas de API que representam solicitações de clientes para aplicativos e serviços de destino. Ele normalmente executa o processamento de 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 API é o processo de implantação, documentação, operação e monitoramento de APIs individuais. Normalmente, isso é feito com software de plano de gerenciamento (por exemplo, um gerenciador de API) que define e aplica políticas a gateways de API e portais de desenvolvedores.

Dependendo dos requisitos comerciais e funcionais, um gateway de API pode ser implantado como um componente autônomo no plano de dados ou como parte de uma solução de gerenciamento de API integrada, como o F5 NGINX Management Suite API Connectivity Manager .

Considerações para escolher um gateway de API

Há vários fatores importantes a serem considerados ao decidir sobre os requisitos para seu gateway de API:

  • Arquitetura – O local onde você implanta o gateway de API pode impactar sua escolha de ferramentas, assim como a decisão de usar opções integradas do seu provedor de nuvem. Você precisa da flexibilidade de um gateway de API independente de plataforma e tempo de execução?
  • Desempenho – O desempenho é essencial para sites e aplicativos de alto tráfego. Seu gateway de API oferece o alto rendimento e a baixa latência de que você precisa?
  • Escalabilidade – Seu gateway de API precisa ser facilmente dimensionado para atender às crescentes demandas de tráfego. Seu gateway de API oferece suporte ao dimensionamento vertical (alto rendimento) 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 de segurança avançados, como 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 compensações de criar e manter uma solução personalizada em vez de comprar um gateway de API de nível empresarial?

Como o NGINX pode ajudar

O NGINX oferece diversas 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 do aplicativo na borda de um cluster Kubernetes com recursos de gateway de API, identidade e observabilidade
  • NGINX Service Mesh – Solução amigável ao desenvolvedor para conectividade de serviço a serviço, 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 DoS e baixe o NGINX Service Mesh sempre gratuito.

Ferramentas universais:

  • NGINX Plus como um gateway de API – Gateway de API leve e de alto desempenho que pode ser implantado em ambientes de nuvem, locais e de ponta
  • F5 NGINX Management Suite API Connectivity Manager – Implante e opere gateways de API com ferramentas amigáveis ao desenvolvedor para gerenciamento, governança e segurança de API

Para saber mais sobre como usar o NGINX Plus como um gateway de API, solicite seu teste gratuito de 30 dias e consulte Implantando o NGINX como um gateway de API em nosso blog. Para experimentar o NGINX Management Suite, solicite seu teste gratuito de 30 dias .