14 Gateway de API de código aberto e gerenciado para aplicações modernas

Views: 1517
0 0
Read Time:13 Minute, 45 Second

Vamos discutir o que é o API Gateway, por que é essencial ter uma e como ela pode gerenciar melhor as APIs. Também vamos explorar e listar alguns dos melhores gateways de API de código aberto e manged disponíveis no mercado.

O que é o API Gateway?

Um gateway de API é um conceito importante na arquitetura de microsserviços. Ele forma um ponto de entrada para clientes externos (qualquer coisa que não faça parte do sistema de microsserviço). É um componente que atua como um ponto de entrada para uma aplicação.

Em outras palavras, um gateway de API é um servidor de gerenciamento de API que tem informações sobre pontos finais. Ele também é capaz de realizar autenticação, limitação de taxas, balanceamento de carga e muito mais.

Para obter uma imagem melhor de um gateway de API, precisamos saber por que é essencial ter um gateway de API.

Por que precisamos do Portal da API?

Para entender a necessidade de um gateway de API, vamos discutir um caso de uso de um aplicativo de e-commerce.

Estudo de Caso

Considere um estudo de caso de uma página complexa( digamos, página de produto) de um aplicativo de e-commerce. Se olharmos para a página abaixo da listagem de produtos da Amazon, podemos ver muitas informações necessárias para serem prestadas por esta página específica.

Para fins de ilustração, vamos listar todos os microsserviços que talvez precisemos para renderizar a página acima específica.

Considere o Produto de Pesquisa, Inventário, Envio, Classificação e Avaliações, Mecanismo de Recomendação, Comerciantes e Finanças e Seguros são os diferentes microsserviços de sete (7) que estão sendo usados para renderizar a página acima.

P.S: Acima de sete (7) microserviços são apenas uma suposição para explicar o conceito de gateway de API. Na realidade, a Amazon poderia ter um número diferente de microsserviços.

O Problema

Uma vez que esses microsserviços foram implantados separadamente em um servidor diferente se um cliente quiser acessar esses serviços, pelo menos sete (7) chamadas devem ser solicitadas para uma única página.

Mas é realmente uma boa abordagem?

Eu não acho que é uma abordagem recomendada porque temos que fazer sete chamadas diferentes, o que definitivamente afetaria o desempenho, o consumo de recursos, o tempo de carga, etc. O cliente também está fortemente associado a todos os serviços, e suponha que se tivermos que separar os microsserviços de Reviews e Rating em dois serviços diferentes, temos que atualizar o código do cliente. O cliente tem que fazer uma chamada para obter avaliações, e uma chamada para obter classificações, que realmente não é a melhor maneira de lidar com isso.

A Solução

Então, qual é a abordagem recomendada?

É um gateway da API.

Nesta abordagem, temos uma camada entre o cliente e os microsserviços chamado gateway API. É um serviço voltado para todos os microsserviços. Agora, qualquer cliente que queira acessar os microsserviços, o cliente tem que ligar para o gateway da API. Agora, o portal da API, por sua vez, faz uma chamada para todos os microsserviços e obtém qualquer resposta que possamos precisar. Esse processo é chamado de composição de API.

Em poucas palavras, um gateway de API fica entre o cliente e os microsserviços e atua como uma porta de entrada para todos os microsserviços.

Não só isso, mas o uso de um API Gateway nos beneficia de muitas maneiras.

Benefícios de um Gateway de API

Os gateways de API nos beneficiam na implementação de testes A/B, cache, gerenciamento de cotas de acesso, monitoramento de saúde da API, versionamento de API, teste de macaco chaos e muito mais. Vamos tocar em alguns dos seguintes benefícios.

🛡️ de segurança

Toda vez que uma chamada de API é realizada, ela tem que acessar os serviços usando endereços IP públicos. Isso expõe riscos.

Ao ligar para gateways de API, esses microsserviços podem ser acessados apenas usando endereços IP privados. Isso resulta em uma forma mais segura da transação de dados. Além disso, o uso do API Gateway também protege os dados contra ataques maliciosos e DDoS.

Para garantir a segurança, um certificado TLS é necessário, o API Gateway lida com todas elas mantendo todas as nossas APIs atrás de um único IP ou domínio estático e ajudando a protegê-las com chaves, tokens e filtragem de IP.

Autenticação, autorização e tolerância a falhas 🔐

broken authentication

É importante garantir a autenticação e a autorização do usuário que faz login nos aplicativos. O API Gateway facilita por ser um único ponto de entrada e satisfaz todos os requisitos facilmente. Assim, permite que apenas usuários autorizados façam login, e autentica usuários façam alterações, para que a tolerância a falhas seja obtida.

🚏 de balanceamento e roteamento de carga

No caso de várias solicitações chegando e aumentando o tráfego, o API Gateway ajuda a cuidar dele. É feito criando multiplicações de serviços e chamando-os como Round-Robin. Ele pode gerenciar e roteirar as solicitações do cliente com base na segmentação do usuário. Assim, diferentes qualidades ou taxa de velocidade de conteúdo são fornecidas para diferentes usuários.

load balancing

Considere um caso de uso onde dois microsserviços são definidos para o retorno de imagens/vídeos de baixa qualidade e imagens/vídeos de alta qualidade para um desktop e celular, respectivamente. Neste caso, podemos configurar um gateway de API de tal forma que ele aja como um roteador e se a solicitação vier de um celular, ele encaminhará essa solicitação para o serviço de imagens/vídeos de baixa qualidade, e se a solicitação estiver vindo da área de trabalho, ela pode encaminhar para o serviço de imagens/vídeos de alta qualidade. Este roteamento pode ser feito com base em cabeçalhos, caminhos e params, etc.

Isolamento

Se um ou mais microsserviços tiverem sido adicionados ao aplicativo ou removidos, não atualizaremos o código do cliente. Neste caso, precisamos realizar algumas alterações no próprio gateway da API para fazer uma chamada de acordo com os microsserviços atualizados.

Proxy reverso e cache

Servir um arquivo estático (HTML, JS, CSS, fontes) por um microserviço não é o melhor uso, neste caso, podemos mover esses arquivos para o gateway de API.

Um gateway de API pode manter todos os conteúdos estáticos e pode atender diretamente o cliente. Da mesma forma, considere um serviço que avalia os produtos em tendência, e essas tendências estão sendo calculadas de hora em hora ou diariamente. Assim, uma vez que a tendência é calculada para o resto do tempo, o serviço retornará a mesma resposta repetidamente. Neste caso, um gateway de API tem um recurso chamado cache de resposta, onde podemos mencionar uma URL e tempo limite para o qual ele precisa armazenar as respostas.

Adaptador de protocolo

Se quisermos aproveitar o protocolo como o soquete web ou uma versão mais recente do HTTP, ou seja, HTTP/2, e mesmo que nossos serviços de backend não estejam prontos ou não compatíveis com HTTP/2 ou tomada web, um gateway de API pode assumir a responsabilidade de converter um novo para um protocolo mais antigo. Pode funcionar como um adaptador de protocolo.

Vamos explorar o gateway da API.

Primeiro,soluções de ❤️ de código aberto e auto-hospedagem.

Kong Gateway

O Kong Gateway é o gateway de API nativo de nuvem de código aberto mais popular construído em cima de um proxy leve. Está escrito em Lua correndo com a ajuda do Nginx. É um motor modelo que ajuda a acelerar o tempo de evento. Ele garante fornecer desempenho de latência e escalabilidade incomparáveis para todos os nossos aplicativos de microsserviço, independentemente de onde eles funcionam.

Empresas como Nasdaq, Honeywell, Cisco, FAB, Expedia, Samsung, Siemens e Yahoo Japan usam extensivamente o gateway Kong API.

Alguns dos recursos oferecidos por Kong são:

  • Autenticação
  • Controle de Tráfego
  • Analytics
  • Transformações
  • Log
  • Sem servidor
  • Extensível usando arquitetura Plugin

Kong tem documentação e integraçãomuito boas.

Você pode executar Kong em sua plataforma de nuvempreferida .

Apache APISIX

Apache APISIX nasceu inicialmente na tecnologia ZhiLiu da China e um estágio posterior, entrou na incubadora apache e fez código aberto. O vice-presidente do projeto, Ming Wen,afirma que este gateway da API resolve vários desafios trazidos por meios de microsserviços nativos da nuvem.

Apache ApiSix está sendo usado por empresas como 360, HelloTalk, NetEase, TravelSky,e muito mais.

Apache APISIX é baseado em Nginx e etcd, e tem roteamento dinâmico e carregamento quente plug-in, que é especialmente adequado para o gerenciamento de API sob o sistema de microsserviço.

Tyk

O Tyk é um gateway de API de código aberto pronto para empresas. Você tem a opção de ir para auto-hospedado ou gerenciado.

A seguir, alguns dos recursos fora da caixa oferecidos pela TYK.

  • Autenticação
  • Limitação de Cotas e Taxas
  • Controle de versão
  • Notificações e Eventos
  • Zombe das APIs
  • Monitoramento detalhado e análise
  • Comprometido com a compatibilidade retrógrada
  • GraphQL Out of the Box

A TYK também está disponível no mercado AWS. Uma boa escolha se sua pilha de aplicativos estiver no AWS.

Ocelot

Ocelot é um gateway de API .NET.

Este projeto visa usar .NET, executando microsserviços ou arquitetura orientada a serviços que precisa de um ponto de entrada unificado em seu sistema. No entanto, ele funcionará com qualquer coisa que fale HTTP e seja executado em qualquer plataforma que ASP.NET Core suporte.

A jaguatirica age como middleware em uma ordem específica. Ele manipula o objeto HttpRequest em um estado especificado por sua configuração até chegar a um middleware de construtor de solicitações. Ele cria um objeto HttpRequestMessage, que é usado para solicitar um serviço a jusante. O middleware que faz a solicitação é a última coisa no oleoduto Ocelot. Não chama o próximo middleware. Uma peça de middleware mapeia o HttpResponseMessage no objeto HttpResponse e é devolvida ao cliente.

A Jaguatirica oferece recursos padrão como roteamento, autenticação, limitação de taxas, cache, balanceamento de carga e muito mais. Ele não fornece suporte para codificação chunked, encaminhamento de um cabeçalho host e Swagger.

Goku

Goku API Gateway é um projeto guarda-chuva da EOLINK Inc. É um gateway de microsserviço baseado em Golang que permite roteamento dinâmico de alto desempenho, orquestração de serviços, gerenciamento de multi-locação, controle de acesso à API, etc.

Goku fornece uma interface gráfica e um sistema plug-in para facilitar a configuração e expandir de forma mais conveniente. Além dos recursos padrão, goku oferece clustering, atualizações quentes, alerta, registro, etc.

Gateway Expresso

O Express Gateway é construído no Express.js. O Express Gateway é um monte de componentes que se constroem declarativamente ao redor do Express para atender ao caso de uso do API Gateway. O poder do Express Gateway é aproveitado no rico ecossistema em torno do Middleware Express.

Empresas como Joyent, The Linux Foundation, VIRICITI, Switch Media, Coozy e Musement estão usando o Gateway Express extensivamente.

É simples, rápido e oferece todas as características básicas.

Gloo

Gloo é um gateway de API de última geração totalmente caracterizado e controlador de ingress para ambientes nativos da nuvem. Ele é construído no Envoy Proxy para conectar, proteger e controlar o tráfego em seus serviços de aplicativos.

A Gloo suporta a conexão com uma ampla gama de cargas de trabalho para proteger e gerenciar isso, e é excepcional em seu roteamento de nível funcional. Está disponível como código aberto e empresa. A versão corporativa oferece o seguinte.

  • Portal de desenvolvedores
  • Waf
  • Prevenção de perdas de dados
  • Mais maneira de autenticar
  • Limitação avançada de taxas e gerenciamento de vários clusters

Krakend

KrakenD é um Gateway API de código aberto de alto desempenho. Sua funcionalidade principal é criar uma API que atue como um agregador de muitos microsserviços em pontos finais únicos, fazendo o levantamento pesado automaticamente para você: agregar, transformar, filtrar, decodificar, acelerador, auth e muito mais.

Ele oferece uma maneira declarativa de criar os pontos finais. Ele é bem estruturado e em camadas e aberto para ampliar sua funcionalidade usando middleware plug-and-play desenvolvido pela comunidade ou internamente.

KrakenD diz ser mais rápido que Kong e Tyk. Confira os resultados de benchmarking.

Fusio

O Fusio é um sistema de gerenciamento de API porque ajuda a desenvolver pontos finais reais de API (ou seja, solicitar e transformar dados a partir de um banco de dados). Não se limita a solicitações de proxy para outra API. Ele fornece um backend simples e intuitivo para controlar e gerenciar sua API

Algumas das características oferecidas pela Fusio são:

  • Monetização
  • Suporte por assinatura
  • Gerar OAI, especificação do esquema RAML
  • Documentação

e outros recursos padrão de gateway de API.

WSO2

WSO2 é uma solução completa de gerenciamento de API do ciclo de vida que pode ser executada em qualquer lugar. Ele pode ser implantado on-prem, cloud ou de forma híbrida onde seus componentes podem ser distribuídos e implantados em várias infraestruturas de nuvem e on-prem.

Ele compreende um gateway de API nativo da nuvem e fornece a um operador Kubernetes para converter microserviços brutos em APIs gerenciadas facilmente. O API Manager integra-se com as malhas de serviço e fornece um plano de controle e plano de controle de gerenciamento completo para gerenciar, monitorar e monetizar APIs e produtos de API.

Ele suporta publicação de API, gerenciamento do ciclo de vida, desenvolvimento de aplicativos, controle de acesso, limitação de taxas e análises em um sistema integrado.

Em seguida,vamos explorar as plataformas comerciais.

Apigee

Apigee é uma plataforma de gerenciamento de API em nuvem cruzada do Google Cloud.

apigee

Ele vem nos seguintes sabores:

  • Apigee: uma solução SaaS hospedada onde você paga pelo que usa. Você se concentra em construir negócios e descarregar o ambiente Apigee para GCP.
  • Apigee híbrido: deixe você gerenciar APIs no local, na Google Cloud Platform (GCP), ou uma mistura de ambos.

A Apigee oferece gerenciamento de API de ponta a ponta, que vem com monetização e monitoramento embutido.

Pontos finais de nuvem

Outro do Google Cloud.

Loading video
https://youtube.com/watch?v=AgYImGHmvBA%3Fenablejsapi%3D1%26amp%3D1%26playsinline%3D1

Endpoints é uma versão mais leve do Apigee pelo Google Cloud. É melhor para desenvolvedores desenvolver, implantar e gerenciar APIs em qualquer back-end do Google Cloud. Fornece ferramentas e bibliotecas para seus clientes a partir do aplicativo App Engine. Ele ajuda a criar e configurar usando o Google Codelab. O Codelab ajuda a executar a API amostral usando o App Engine em Java 8 e o Maven 3.6.0.

Os Endpoints do Google Cloud integram-se firmemente com outros produtos como Trace e Logging para monitoramento, Auth0 e Firebase para autenticação, GKE e App Engine para implantação automatizada, etc.

Amazon API Gateway

A AWS pode oferecer qualquer coisa que você precisa para executar suas aplicações.

Assim como a API.

O Amazon API Gateway é um serviço totalmente gerenciado que é feito para os desenvolvedores formarem – > publicar -> manter e proteger APIs facilmente em qualquer escala. Ele suporta APIs RESTful e WebSocket e nos permite a comunicação em tempo real de duas vias.

Abaixo está a representação pictórica da Amazon, que ilustra como funciona o gateway da API da Amazon.

Se seus Microsserviços ou API já estão hospedados no AWS, então faz sentido se integrar ao Amazon API Gateway. Eles oferecem 1 milhão de chamadas de API sob o nível FREE, o que é bom para você ver como funciona.

Azure

Por que deixar o Azure para trás?

O Microsoft Azure oferece gerenciamento de API de ponta a ponta em nuvem, no local ou híbrido. Você pode gerenciar o gerenciamento de API programáticamente através da API REST e SDK.

Boas notícias se você usar SABÃO. Você pode importar a linguagem de descrição de serviços web (WSDL) de seu serviço SOAP, e o Azure criará um soap front-end. Eles oferecem todos os recursos padrão, incluindo monetização. Vá em frente e dê uma tentativa de experimentar a plataforma.

Conclusão

Uma vez que sua API esteja pronta, não se esqueça de monitorá-las e fixá-las. Se você ainda estiver em desenvolvimento, confira essas ferramentas para agilizar os testes e desenvolvimento da API.

O acima deve dar-lhe uma ideia sobre as soluções disponíveis de Gateway e Gerenciamento de API. Se você está com um orçamento apertado, então você pode tentar de código aberto. O melhor para instalar alguns deles em sua VM de nuvem para ver o que funciona para você.

Boa sorte!

FONTE: GEEKFLARE

POSTS RELACIONADOS