API Gateway Trends behind Features: Apache APISIX 3.0 vs. Kong 3.0

Yilia Lin

Yilia Lin

October 16, 2022

Products

28 сентября 2022 года Kong выпустил новую версию Kong Gateway 3.0, которая представила новые функции и улучшения производительности. 21 сентября Apache APISIX, проект высшего уровня Apache Software Foundation, также выпустил предварительную версию Apache APISIX 3.0, представив десять ключевых моментов в экосистеме и функциональности.

Давайте подробнее рассмотрим версию 3.0 этих двух популярных проектов с открытым исходным кодом для API Gateway и выясним тенденции развития, стоящие за этими обновлениями.

Сначала рассмотрим восемь ключевых моментов Kong Gateway 3.0.

Восемь ключевых моментов Kong Gateway 3.0

Ключевые моментыOSS/EnterpriseТипЦелевые пользователиУлучшениеПоддерживает ли APISIXПримечания
FIPS 140-2Enterprise версияСоответствиеСевероамериканские финансовые корпорации и правительстваСоответствиеНетНеприменимо
Управление секретамиобе версииСоответствиеФинансовые корпорацииOSS: переменные окружения

Enterprise: AWS Secrets Manager и HashiCorp Vault
ДаAPISIX поддерживает HashiCorp Vault с декабря 2021 года в OSS: feat(vault): vault lua module, integration with jwt-auth authentication plugin

Kong февраль 2022: feat(vaults) adds vaults beta support to kong
Порядок выполнения плагиновEnterprise версияУдобство использованияКрупные и средние предприятия со сложными сценариямиУвеличение гибкости бизнеса с помощью плагиновДаAPISIX июнь 2022: feat: allows users to specify plugin execution priority

Kong июль 2022: feat(plugins) add support for ordering
Kong Manager 3.0Enterprise версияУдобство использованияСредние и крупные предприятия без большого количества технических командЛучшее управление API для корпоративных пользователейДаНеприменимо
Глубокая поддержка WebSocketEnterprise версияФункциональностьКорпоративные пользователи, активно использующие WebSocketПроверка схемы WebSocket и ограничение размера фреймов WebSocketДа, частичноKong декабрь 2016: feat(proxy) supports websockets

APISIX поддерживает проксирование запросов WebSocket и может использоваться с плагинами, такими как limit-conn, с января 2020: feature: upstream support websocket enable
OpenTelemetryобе версииФункциональностьКрупные и средние предприятия со сложными цепочками вызовов бизнесаУлучшение наблюдаемостиДаKong июнь 2022: feat(plugins) opentelemetry plugin

APISIX январь 2022: feat: add opentelemetry plugin
Улучшения производительностиобе версииПроизводительностьОблачные провайдеры, быстрорастущие SaaS-провайдерыСнижение затрат на серверыДаApache APISIX превосходит другие API Gateway по производительности с момента открытия исходного кода в 2019 году.
Новый механизм маршрутизацииобе версииПроизводительностьОблачные провайдеры, быстрорастущие SaaS-провайдерыРешение проблем производительности с большим количеством API и снижение затрат на серверыДаKong июль 2022: feat(router) new DSL based router support and tests fix

APISIX август 2019: feature: supported to use router lua-resty-radixtree

Мы можем выделить три тенденции из ключевых моментов Kong Gateway 3.0:

  1. Инвестиции Kong в безопасность и соответствие требованиям в финансовом секторе относительно велики, что можно проанализировать с точки зрения соответствия FIPS 140-2 и управления секретами.
  • Соответствие FIPS 140-2: FIPS 140-2 — это стандарт компьютерной безопасности, используемый североамериканскими финансовыми компаниями и правительствами для утверждения модулей шифрования. Kong Gateway 3.0 Enterprise Version построен на основе BoringSSL и адаптирует плагины для соответствия требованиям стандарта. Поддержка FIPS 140-2 в Kong отражает этап развития компании: после семи лет итераций Kong постепенно сосредоточился на платящих пользователях, стремясь удовлетворить потребности финансовых компаний и правительств.

  • Управление секретами: Целевые пользователи этой функции также являются финансовыми предприятиями. Kong Gateway 3.0 позволяет пользователям безопасно хранить конфиденциальную информацию в AWS Secrets Manager и HashiCorp Vault, к которым Kong может получить доступ во время выполнения. Таким образом достигается более высокий уровень защиты безопасности.

  1. Из ссылок на PR каждого ключевого момента можно узнать, что большинство из восьми ключевых моментов Kong Gateway 3.0 были реализованы в Apache APISIX раньше.

  2. Kong Gateway 3.0 имеет относительно значительное улучшение производительности по двум причинам:

  • Kong добавляет слой кэширования на маршрутизацию, значительно улучшая производительность для тестов. Однако проблема в том, что кэш становится недействительным при изменении URL-адреса. Подробности можно узнать по ссылке на код ниже: atc.lua

  • Kong использует Rust для реализации нового механизма маршрутизации, используя DSL для увеличения выразительности слоя маршрутизации. При получении и отправке HTTP-запросов можно писать выражения следующим образом:

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

    В сценариях, где запрашиваемый маршрут соответствует определенному хосту, можно написать следующее выражение:

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

    Мы можем сравнить с Apache APISIX. Apache APISIX реализовал аналогичную функцию маршрутизации с использованием Lua-resty-radixtree в августе 2019 года. Выражения APISIX поддерживают произвольные переменные NGINX и имеют более богатые операторы. Помимо обычных числовых и строковых сравнений, поддерживаются регулярные выражения, массивы и IP-адреса.

Большинство из этих восьми ключевых моментов в версии Kong Gateway 3.0 ориентированы на Enterprise версию. Следующие два графика могут более наглядно отразить тенденции технологического развития Kong.

Соотношение OSS и Enterprise версий в восьми ключевых моментах Kong Gateway 3.0

Ключевые моменты, поддерживаемые Apache APISIX в Kong Gateway 3.0

Функции, выпущенные в Kong Gateway 3.0, ориентированы на правительство, финансовую отрасль и крупные предприятия, которые больше заботятся о безопасности и соответствии требованиям.

Анализ восьми ключевых моментов Apache APISIX 3.0

API Gateway с открытым исходным кодом Apache APISIX выпустил предварительную версию 3.0, которая включает десять ключевых моментов версии 3.0 Apache APISIX. Автор выбрал наиболее важные восемь моментов для анализа. Эти восемь ключевых моментов относятся к версии с открытым исходным кодом и сосредоточены на улучшениях в экосистеме и технологиях.

Ключевые моментыТипЦелевые пользователиУлучшениеПоддерживает ли Kong
Полная поддержка ARM64ЭкосистемаКомпании, масштабно мигрирующие в облакоСнижение затрат на серверыДа, частично
gRPC-клиентПроизводительностьТребования к оптимизации APISIXОптимизацияНет
Улучшенная поддержка сервисного обнаруженияЭкосистема, ФункциональностьБизнесы, зависящие от микросервисовНет
Фреймворк xRPCЭкосистема, ФункциональностьИнтернет-компанииСнижение затрат на серверыНет
Наблюдаемость на уровне L4ФункциональностьКрупные и средние предприятия со сложными бизнес-функциямиУлучшение наблюдаемостиНет
Поддержка Gateway APIЭкосистемаИнтернет-компанииЛучшее управление API для корпоративных пользователейДа
Больше плагинов: OpenFunction, ClickHouse, Elasticsearch, SAML, CASЭкосистема, ФункциональностьИнтернет-компанииПеременные окружения для OSS, AWS Secrets Manager и HashiCorp Vault для EnterpriseНет
AI-плоскостьИнтеллектИнтернет-компанииПроблемы производительности с большим количеством API и снижение затрат на серверыНет

Еще одна информация, которую мы можем получить из приведенной выше таблицы, заключается в том, что Apache APISIX улучшается в экосистеме и функциональных аспектах. Среди этих ключевых моментов можно выделить два основных пункта.

  • AI-плоскость: В дополнение к плоскости данных и плоскости управления, Apache APISIX добавляет AI-плоскость в версии 3.0, которая снимает давление с разработчиков приложений и операторов через анализ и обучение на основе трафика API и конфигурации. Например, следующие два сценария могут быть автоматически оптимизированы AI-плоскостью:

    1. Обнаружение API без аутентификации и отправка предупреждений об рисках менеджерам.
    2. Ускорение обработки за счет пропуска ненужных этапов для API, которые настроены только с плагинами на этапе доступа, такими как аутентификация.

    AI-плоскость открывает новые возможности для обработки трафика. В будущем автоматический прогрев вышестоящих сервисов и обнаружение угроз безопасности могут быть обработаны через AI-плоскость.

  • Полная поддержка ARM64: ARM64 стала очень популярной архитектурой серверов для облачных провайдеров. Различные облачные провайдеры начали выпускать серверы на основе архитектуры Arm, такие как AWS Graviton и GCP Tau T2A. Apache APISIX провел всесторонние регрессионные тесты CI на ARM64, чтобы обеспечить бесперебойную работу Apache APISIX под архитектурой Arm. Пользователи очень заботятся об этом. Сравнение производительности архитектуры ARM с GCP и AWS получило почти 100 комментариев на Hacker News.

Заключение

Kong Gateway 3.0 сделал новые шаги в области соответствия требованиям, удобства использования, функциональности и производительности, уделяя больше внимания безопасности и соответствию требованиям предприятий. Все функции, представленные в Apache APISIX 3.0, являются открытыми, при этом больше внимания уделяется экосистеме и исследованию новых технологий.

Давайте посмотрим, как Kong и Apache APISIX будут развиваться в будущем!

Tags: