Padrões de Implantação de API Gateway

Bobur Umurzokov

Bobur Umurzokov

December 16, 2022

Technology

APIs estão mudando a forma como construímos aplicações e como expomos dados, tanto dentro quanto fora de nossas organizações. Além disso, o sucesso de nossas APIs depende de sua integridade, disponibilidade e desempenho. Com um API Gateway como o Apache APISIX, podemos alcançar esses indicadores de sucesso.

Quando se trata da implantação de API Gateways, existem 4 padrões bem conhecidos: Gateway de borda centralizado, Gateway de dois níveis, Microgateway e Sidecar. Neste post, vamos explorar esses padrões e dar uma ideia de como escolher o padrão de implantação de API gateway certo para o seu negócio.

O que é um API gateway?

Um API gateway é uma ferramenta de gerenciamento que fica na borda de um sistema entre um consumidor e uma coleção de serviços de backend e atua como um ponto único de entrada para um grupo definido de APIs. O consumidor pode ser um aplicativo ou dispositivo de usuário final, como um aplicativo web de página única ou um aplicativo móvel, outro sistema interno ou um aplicativo ou sistema de terceiros.

Componentes de implantação de um API gateway

Um API gateway é implementado com dois componentes fundamentais de alto nível: um plano de controle e um plano de dados. Esses componentes podem ser empacotados juntos ou implantados separadamente. O plano de controle é onde os operadores interagem com o gateway e definem rotas, políticas e a telemetria necessária. O plano de dados é o local onde todo o trabalho especificado no plano de controle ocorre, os pacotes de rede são roteados, as políticas são aplicadas e a telemetria é emitida. Por exemplo, o APISIX tem três diferentes modos de implantação (tradicional, desacoplado e autônomo) para diferentes casos de uso em produção.

Gateway de borda centralizado

Um API gateway é tipicamente implantado na borda de um sistema, mas a definição de "sistema" neste caso pode ser bastante flexível. Para startups e muitas pequenas e médias empresas, um API gateway será frequentemente implantado na borda do data center ou da nuvem. Nessas situações, pode haver apenas um único API gateway (implantado e executado por meio de várias instâncias para alta disponibilidade) que atua como a porta de entrada para todo o backend, e o API gateway fornecerá toda a funcionalidade de borda.

Gateway de borda centralizado

Um API gateway fornece requisitos transversais como autenticação de usuário, autorização, limitação de taxa de solicitação, cache, tempos limite/tentativas, transformação de solicitação/resposta, pode fornecer métricas, logs e dados de rastreamento para suportar a implementação de observabilidade dentro do sistema.

Além disso, muitos API gateways fornecem recursos adicionais que permitem aos desenvolvedores gerenciar o ciclo de vida de uma API, auxiliar na integração e gerenciamento de desenvolvedores que usam as APIs (como fornecer um portal de desenvolvedor e administração de contas relacionadas e controle de acesso) e fornecer governança empresarial.

Gateway de dois níveis

Para grandes organizações e empresas, um API gateway será tipicamente implantado em vários locais, muitas vezes como parte da pilha de borda inicial no perímetro de um data center, e gateways adicionais podem ser implantados como parte de cada produto, linha de negócios ou departamento organizacional. Nesse contexto, esses gateways seriam mais tipicamente implementações separadas e podem oferecer funcionalidades diferentes dependendo da localização geográfica (governança necessária) ou das capacidades de infraestrutura (executando em recursos de computação de borda de baixa potência).

Como o diagrama abaixo mostra, o API gateway Apache APISIX geralmente fica entre a internet pública e a zona desmilitarizada (DMZ) de uma rede privada.

Gateway de dois níveis

Microgateway

Microgateways são projetados inteiramente para comunicação interna entre microsserviços. Cada microgateway individual pode ter um conjunto diferente de políticas, regras de segurança e exigir agregação de monitoramento e métricas de vários serviços.

Microgateway

O conceito é fornecer a capacidade (um gateway dedicado) à equipe individual que gerencia os microsserviços para controlar como eles vão expor os serviços de forma segura. A mesma equipe de desenvolvedores gerenciará e manterá seus microsserviços e microgateways, para que possam corrigir bugs, fornecer atualizações, realizar melhorias de forma independente e enviar rapidamente as alterações para produção com menos interação com outras dependências e sem impactar outros aplicativos na implantação.

Gateway API Sidecar

Sidecar implementa um API gateway como um contêiner anexado a um serviço em um runtime independente, como o Kubernetes. Sidecar é um padrão que corresponde a um sidecar anexado a uma motocicleta, da mesma forma, ele é anexado a um aplicativo principal (um componente de software chamado service mesh) e fornece recursos de suporte para o aplicativo. O sidecar também compartilha o mesmo ciclo de vida do aplicativo principal, sendo criado e encerrado junto com o principal, e introduz recursos adicionais como monitoramento, registro, configuração e serviços de rede.

Os benefícios de adotar esse padrão são que cada runtime de serviço pode configurar seu próprio API gateway da melhor maneira. Porque a necessidade de habilitar as funcionalidades e configurações do API gateway pode variar de serviço para serviço. Ao mesmo tempo, ele separa as preocupações se um problema ocorrer na infraestrutura compartilhada do API gateway, então todos os serviços não são impactados. Por exemplo, Amesh é outra solução de service mesh baseada no Apache APISIX.

Gateway API Sidecar

O diagrama anterior ilustra um ingress atuando como um balanceador de carga de API e roteador de recursos para cada endpoint de serviço. O ponto de entrada para o serviço não é o endpoint do serviço em si, mas sim um gateway API sidecar. O sidecar pode então realizar qualquer uma das capacidades oferecidas pelo API gateway, além de rotear o tráfego para o endpoint do serviço.

Conclusão

Como entendemos, não há um único padrão de implantação que seja adequado para todas as condições. Às vezes, você pode usar um ou vários gateways em seu sistema. A escolha da implantação depende da complexidade e das necessidades do seu negócio. Se precisar de ajuda para decidir qual padrão de implantação seria o melhor para você, você pode se juntar ao nosso canal Slack da comunidade e os especialistas ajudarão você a tomar uma decisão.

Recursos relacionados

Modelos de implantação do Apache APISIX.

O que é um API Gateway e por que ele é essencial na era da nuvem nativa?.

Conteúdo recomendado

➔ Leia os posts do blog:

Tags: