Tendências do API Gateway por trás dos recursos: Apache APISIX 3.0 vs. Kong 3.0

Yilia Lin

Yilia Lin

October 16, 2022

Products

Em 28 de setembro de 2022, a Kong lançou o novo Kong Gateway 3.0, que trouxe novas funcionalidades e melhorias de desempenho. Em 21 de setembro, o Apache APISIX, projeto de nível superior da Apache Software Foundation, também lançou a versão prévia do Apache APISIX 3.0, introduzindo dez destaques em termos de ecossistema e funcionalidades.

Vamos dar uma olhada mais detalhada na versão 3.0 desses dois populares projetos de API Gateway de código aberto e entender as tendências de desenvolvimento por trás dessas atualizações.

Primeiro, vamos analisar os oito destaques do Kong Gateway 3.0.

Oito Destaques do Kong Gateway 3.0

DestaquesOSS/EnterpriseTipoPúblico-AlvoMelhoriaSe o APISIX suportaNotas
FIPS 140-2Versão EnterpriseConformidadeCorporações financeiras e governos da América do NorteConformidadeNãoInaplicável
Gerenciamento de SegredosAmbosConformidadeCorporações financeirasOSS: variáveis de ambiente

Enterprise: AWS Secrets Manager e HashiCorp Vault
SimO APISIX suporta HashiCorp Vault desde dezembro de 2021 no OSS: feat(vault): módulo vault lua, integração com o plugin de autenticação jwt-auth

Kong fevereiro de 2022: feat(vaults) adiciona suporte beta para vaults no kong
Ordenação de PluginsVersão EnterpriseUsabilidadeEmpresas de médio e grande porte com cenários complexosAumentar a flexibilidade dos negócios com pluginsSimAPISIX junho de 2022: feat: permite que os usuários especifiquem a prioridade de execução dos plugins

Kong julho de 2022: feat(plugins) adiciona suporte para ordenação
Kong Manager 3.0Versão EnterpriseUsabilidadeEmpresas de médio e grande porte sem muitas equipes técnicasGerenciar APIs melhor para usuários empresariaisSimInaplicável
Suporte Profundo a WebsocketVersão EnterpriseFuncionalidadeUsuários empresariais que utilizam profundamente websocketVerificar esquema websocket e limitar o tamanho do frame websocketSim, parcialmenteKong dezembro de 2016: feat(proxy) suporta websockets

APISIX suporta proxy de requisições websocket e pode ser usado com plugins como limit-conn em janeiro de 2020: feature: upstream suporta websocket enable
OpenTelemetryAmbosFuncionalidadeEmpresas de médio e grande porte com cadeias de chamadas complexasMelhorar a observabilidadeSimKong junho de 2022: feat(plugins) plugin opentelemetry

APISIX janeiro de 2022: feat: adiciona plugin opentelemetry
Melhorias de DesempenhoAmbosDesempenhoFornecedores de nuvem, fornecedores de SaaS em rápido crescimentoReduzir custos de servidorSimO Apache APISIX tem superado outros gateways de API em desempenho desde que foi lançado como código aberto em 2019.
Novo Mecanismo de RoteamentoAmbosDesempenhoFornecedores de nuvem, fornecedores de SaaS em rápido crescimentoResolver problemas de desempenho com um grande número de APIs e reduzir custos de servidorSimKong julho de 2022: feat(router) novo suporte e testes de roteador baseado em DSL

APISIX agosto de 2019: feature: suporta o uso do roteador lua-resty-radixtree

Podemos analisar três tendências a partir dos destaques do Kong Gateway 3.0:

  1. O investimento da Kong em segurança e conformidade no setor financeiro é relativamente grande, o que pode ser analisado em termos de conformidade com FIPS 140-2 e gerenciamento de segredos.
  • Conformidade com FIPS 140-2: FIPS 140-2 é um padrão de segurança de computador usado por empresas financeiras e governos da América do Norte para aprovar módulos de criptografia. A versão Enterprise do Kong Gateway 3.0 é construída com base no BoringSSL e adaptará os plugins para serem compatíveis com os requisitos do padrão. O suporte da Kong ao FIPS 140-2 reflete a fase de desenvolvimento da Kong: após sete anos de iteração, a Kong gradualmente se concentrou em usuários pagantes, tendendo a atender às necessidades de empresas financeiras e governos.

  • Gerenciamento de Segredos: Os usuários-alvo dessa funcionalidade também são empresas financeiras. O Kong Gateway 3.0 permite que os usuários armazenem informações sensíveis de forma segura no AWS Secrets Manager e no HashiCorp Vault, que a Kong pode acessar em tempo de execução. Dessa forma, é alcançado um nível mais alto de proteção de segurança.

  1. A partir dos links de PR de cada destaque, podemos saber que a maioria dos oito destaques do Kong Gateway 3.0 foi implementada anteriormente pelo Apache APISIX.

  2. O Kong Gateway 3.0 teve uma melhoria relativamente significativa no desempenho por duas razões:

  • A Kong adicionou uma camada de cache no roteamento, melhorando muito o desempenho para o benchmark. No entanto, o problema é que o cache se torna inválido quando o endereço URL muda. Para mais detalhes, confira o link do código abaixo: atc.lua

  • A Kong usou Rust para implementar um novo mecanismo de roteamento, usando DSL para aumentar a expressividade da camada de roteamento. Ao receber e enviar requisições HTTP, você pode escrever expressões como esta:

    net.protocol == "https" && (http.method == "GET" || http.method == "POST")

    Em cenários onde a rota solicitada corresponde a um host específico, a seguinte expressão pode ser escrita:

    (http.host == "example.com" && http.headers.x_example_version == "v2" ) || (http.host == "store.example.com" && http.headers.x_store_version == "v1")

    Podemos comparar com o Apache APISIX. O Apache APISIX implementou uma função de expressão de roteamento semelhante usando Lua-resty-radixtree em agosto de 2019. As expressões do APISIX suportam variáveis NGINX arbitrárias e têm operadores mais abundantes. Além de comparações numéricas e de strings comuns, também são suportadas expressões regulares, arrays e direcionamento de IP.

A maioria desses oito destaques na versão 3.0 do Kong Gateway é voltada para a versão Enterprise. As duas figuras a seguir podem refletir de forma mais intuitiva a tendência de desenvolvimento tecnológico da Kong.

A proporção das versões OSS e Enterprise nos 8 destaques do Kong Gateway 3.0

Destaques suportados pelo Apache APISIX no Kong Gateway 3.0

As funcionalidades lançadas no Kong Gateway 3.0 focam no governo, setor financeiro e grandes empresas que estão mais preocupadas com a conformidade de segurança.

Análise dos Oito Destaques do Apache APISIX 3.0

O API Gateway de código aberto Apache APISIX lançou uma prévia da versão 3.0, que envolve dez destaques da versão 3.0 do Apache APISIX. O autor selecionou os oito pontos mais críticos para análise. Esses oito destaques são todos para versões de código aberto, focando em melhorias de ecossistema e tecnológicas.

DestaquesTipoPúblico-AlvoMelhoriaSe o Kong suporta
Suporte Completo a ARM64EcossistemaEmpresas migrando para a nuvem em escalaReduzir custos de servidorSim, parcialmente
Cliente gRPCDesempenhoRequisitos de otimização do APISIXOtimizaçãoNão
Suporte Aprimorado a Descoberta de ServiçosEcossistema, FuncionalidadeNegócios dependentes de microsserviçosNão
Framework xRPCEcossistema, FuncionalidadeEmpresas de internetReduzir custos de servidorNão
Observabilidade em L4FuncionalidadeEmpresas de médio e grande porte com funções de negócio complexasMelhorar a observabilidadeNão
Suporte a Gateway APIEcossistemaEmpresas de internetGerenciar APIs melhor para usuários empresariaisSim
Mais Plugins: OpenFunction, ClickHouse, Elasticsearch, SAML, CASEcossistema, FuncionalidadeEmpresas de internetVariáveis de ambiente para OSS, AWS Secrets Manager e HashiCorp Vault para EnterpriseNão
Plano AIInteligênciaEmpresas de internetProblemas de desempenho com um grande número de APIs e redução de custos de servidorNão

Outra informação que podemos obter da tabela acima é que o Apache APISIX melhora em aspectos de ecossistema e funcionalidades. Entre esses destaques, há dois pontos principais:

  • Plano AI: Além do plano de dados e do plano de controle, o Apache APISIX adiciona um plano AI na versão 3.0, que alivia a pressão de uso e O&M (operações e manutenção) dos desenvolvedores de aplicativos e operações por meio da aprendizagem e análise do tráfego e configuração de APIs. Por exemplo, os dois cenários a seguir podem ser otimizados automaticamente pelo plano AI:

    1. Descobrir APIs sem autenticação e enviar alertas de risco aos gerentes.
    2. Acelerar o processamento pulando estágios desnecessários para APIs que são configuradas apenas com plug-ins no estágio de acesso, como autenticação de identidade.

    O plano AI traz novas possibilidades para o processamento de tráfego. No futuro, um aquecimento automático de serviços upstream e detecção de ameaças de segurança podem ser processados pelo plano AI.

  • Suporte completo a ARM64: ARM64 tornou-se uma arquitetura de servidor muito popular para fornecedores de nuvem. Vários fornecedores de nuvem começaram a lançar servidores baseados na arquitetura Arm, como AWS Graviton e GCP Tau T2A. O Apache APISIX fez um teste de regressão CI abrangente no ARM64 para garantir a suavidade quando os usuários executam o Apache APISIX sob a arquitetura Arm. Os usuários se importam muito com isso. A comparação de desempenho da arquitetura ARM com GCP e AWS recebeu quase 100 comentários no Hacker News.

Conclusão

O Kong Gateway 3.0 fez novos progressos em conformidade, usabilidade, funcionalidades e desempenho, focando mais na conformidade de segurança empresarial. Todas as funcionalidades introduzidas pelo Apache APISIX 3.0 são de código aberto, enquanto prestam mais atenção ao ecossistema e à exploração de novas tecnologias.

Vamos aguardar e ver como a Kong e o Apache APISIX irão iterar e se desenvolver no futuro!

Tags: