Интеграция APISIX Declarative CLI с API7 Enterprise
March 20, 2024
Что такое ADC?
ADC (APISIX Declarative CLI), представленный API7.ai, является декларативным инструментом конфигурации, предназначенным для помощи пользователям в реализации возможностей GitOps в средах, не связанных с Kubernetes. Пользователи могут легко интегрировать его в свои CI/CD-конвейеры для управления жизненным циклом API, что упрощает обновления и выпуски.
В текущей версии ADC интегрирован с APISIX для облегчения экспорта и синхронизации ресурсов APISIX.
Что такое API7 Enterprise?
API7 Enterprise построен на основе APISIX, предоставляя расширенные возможности управления API, включая группировку шлюзов и управление версиями сервисов, с целью предложить комплексное решение для управления API для предприятий. Существуют некоторые различия по сравнению с управлением API на основе GitOps, так как пользователи могут легко управлять функциями API7 Enterprise через веб-интерфейс.
Некоторые пользователи активно стремятся внедрить режим GitOps в API7 Enterprise для лучшего управления полным жизненным циклом API. Они хотят хранить все определения API в виде декларативных конфигурационных файлов и обеспечивать корректность деклараций API через механизмы проверки кода на Pull Requests. Также они используют CI в репозитории для предварительного просмотра развертываний API в среде разработки перед их выпуском в производственную среду.
ADC создал основу для управления декларативными конфигурациями и завершил задачи обнаружения изменений и синхронизации ресурсов API. Поэтому очевидно, что поддержка ADC в API7 Enterprise станет направлением развития.

Новые функции версии ADC 0.7
Для поддержки API7 Enterprise в ADC были внесены несколько ключевых улучшений, описанных ниже.
Бэкенд API7 Enterprise
Мы выпустили новую версию ADC с предварительной поддержкой его использования на бэкенде API7 Enterprise. Основные функции, такие как dump, diff и sync, теперь доступны на бэкенде API7 Enterprise.
С этой новой поддержкой бэкенда пользователи могут напрямую экспортировать ресурсы API из APISIX и синхронизировать их с API7 Enterprise, что облегчает миграцию старых конфигураций из APISIX для полного использования мощных корпоративных функций, предоставляемых API7 Enterprise.
Группа шлюзов
API7 Enterprise предлагает расширенные возможности управления несколькими экземплярами шлюзов. Пользователи могут распределять экземпляры шлюзов по разным группам для достижения изоляции конфигураций в разных средах. Например, можно создавать разные кластеры шлюзов для разработки и производства, что позволяет отдельно публиковать сервисы в разных группах шлюзов для удовлетворения различных требований. Помимо сервисов, глобальные плагины и TLS-сертификаты также управляются через группы шлюзов.
Управление группами шлюзов — это ключевая новая функция API7 Enterprise, и ADC предоставляет поддержку для нее. При использовании основных команд ADC пользователи могут указать флаг командной строки с именем gateway-group, который указывает ADC на получение и синхронизацию указанных пользователем ресурсов из этой группы шлюзов.
Фильтрация ресурсов на основе меток
В предыдущих версиях ADC конфигурации API полностью извлекались и синхронизировались через Admin API. Однако, даже если мы вносили незначительные изменения в конфигурации API, система все равно требовала предоставления всех декларативных конфигурационных файлов, даже если некоторые из них не изменились. Непредоставление этих неизмененных конфигурационных файлов приводило к тому, что система считала ресурсы, перечисленные в Admin API, но не предоставленные в командной строке, удаленными, что приводило к их удалению из производственной среды. Это могло нарушить ожидаемое состояние конфигурации и повлиять на обработку трафика, что нежелательно.
Для решения этой проблемы мы теперь предоставляем фильтр ресурсов на основе меток. Этот фильтр позволяет пользователям указать одну или несколько пар ключ-значение меток, которые должны быть выполнены ресурсами, через флаг командной строки с именем label-selector. Любые локальные и удаленные ресурсы, не соответствующие требованиям этого фильтра меток, будут игнорироваться, что эффективно предотвращает случайное нарушение конфигураций шлюзов.
Перспективы новых функций
Помимо упомянутых выше новых функций, мы продолжаем исследовать новые области для улучшения функциональности ADC и предоставления большей ценности пользователям. Некоторые примеры включают:
-
Предоставление механизма плагинов для пользовательской настройки бэкендов API-шлюзов. Пользователи смогут экспортировать декларативные конфигурации ADC из любого API-шлюза и определять конфигурации API через ADC для развертывания на любом API-шлюзе.
-
Предоставление программируемых возможностей для предоставления хуков пользователям для проверки и изменения конфигураций ADC на определенных этапах. Это поможет реализовать проверки базовых уровней безопасности для определенных API и предотвратить распространенные небезопасные сценарии.
-
Предоставление конвертеров определений API, отличных от OpenAPI, для обогащения экосистемы инструментов API, которые может использовать ADC.
ADC 0.7 доступен только для внутреннего использования в API7 Enterprise и не был публично выпущен. Эта функция будет внесена в открытое сообщество Apache APISIX во втором квартале этого года.