Шаблоны развертывания API Gateway
December 16, 2022
API меняют способ создания приложений и способ предоставления данных как внутри, так и за пределами наших организаций. Кроме того, успех наших API зависит от их целостности, доступности и производительности. С использованием API Gateway, такого как Apache APISIX, мы можем достичь этих показателей успеха.
Когда речь идет о развертывании API Gateway, существует 4 известных шаблона: Централизованный шлюз на границе сети, Двухуровневый шлюз, Микрогейтвей и Sidecar. В этой статье мы рассмотрим эти шаблоны и дадим вам представление о том, как выбрать правильный шаблон развертывания API Gateway для вашего бизнеса.
Что такое API Gateway?
API Gateway — это инструмент управления, который находится на границе системы между потребителем и набором серверных служб и выступает в качестве единой точки входа для определенной группы API. Потребителем может быть конечное приложение или устройство, такое как одностраничное веб-приложение или мобильное приложение, другая внутренняя система или стороннее приложение или система.
Компоненты развертывания API Gateway
API Gateway реализуется с использованием двух основных компонентов высокого уровня: плоскость управления и плоскость данных. Эти компоненты могут быть упакованы вместе или развернуты отдельно. Плоскость управления — это место, где операторы взаимодействуют с шлюзом и определяют маршруты, политики и необходимую телеметрию. Плоскость данных — это место, где происходит вся работа, указанная в плоскости управления: маршрутизация сетевых пакетов, применение политик и сбор телеметрии. Например, APISIX предлагает три различных режима развертывания (традиционный, разделенный и автономный) для различных производственных сценариев.
Централизованный шлюз на границе сети
API Gateway обычно развертывается на границе системы, но определение "системы" в данном случае может быть довольно гибким. Для стартапов и многих малых и средних предприятий API Gateway часто развертывается на границе центра обработки данных или облака. В таких ситуациях может быть только один API Gateway (развернутый и работающий через несколько экземпляров для обеспечения высокой доступности), который выступает в качестве входной точки для всего серверного окружения, и этот API Gateway будет предоставлять всю функциональность на границе сети.

API Gateway предоставляет сквозные требования, такие как аутентификация пользователей, авторизация, ограничение скорости запросов, кэширование, тайм-ауты/повторы, преобразование запросов/ответов, может предоставлять метрики, логи и данные трассировки для поддержки реализации наблюдаемости в системе.
Кроме того, многие API Gateway предоставляют дополнительные функции, которые позволяют разработчикам управлять жизненным циклом API, помогают с подключением и управлением разработчиками, использующими API (например, предоставляя портал разработчика и связанное с ним управление учетными записями и контроль доступа), а также обеспечивают корпоративное управление.
Двухуровневый шлюз
Для крупных организаций и предприятий API Gateway обычно развертывается в нескольких местах, часто как часть начального стека на границе центра обработки данных, и дополнительные шлюзы могут быть развернуты как часть каждого продукта, направления бизнеса или организационного подразделения. В этом контексте эти шлюзы чаще всего представляют собой отдельные реализации и могут предлагать различную функциональность в зависимости от географического расположения (требуемого управления) или возможностей инфраструктуры (работа на маломощных ресурсах граничных вычислений).
Как показано на диаграмме ниже, API Gateway Apache APISIX часто находится между публичным интернетом и демилитаризованной зоной (DMZ) частной сети.

Микрогейтвей
Микрогейтвей предназначены исключительно для внутреннего взаимодействия между микросервисами. Каждый отдельный микрогейтвей может иметь различный набор политик, правил безопасности и требовать агрегации мониторинга и метрик от нескольких служб.

Идея заключается в предоставлении возможности (выделенного шлюза) отдельной команде, управляющей микросервисами, контролировать, как они будут безопасно предоставлять свои службы. Та же команда разработчиков будет управлять и поддерживать свои микросервисы и микрогейтвеи, что позволит им исправлять ошибки, предоставлять обновления, выполнять улучшения независимо и быстро внедрять изменения в производство с меньшим взаимодействием с другими зависимостями и без влияния на другие приложения в развертывании.
Sidecar API Gateway
Sidecar реализует API Gateway как контейнер, прикрепленный к службе в независимой среде выполнения, такой как Kubernetes. Sidecar — это шаблон, который соответствует креслу-коляске, прикрепленному к мотоциклу, аналогично, он прикреплен к родительскому приложению (программному компоненту, называемому сервисной сетью) и предоставляет вспомогательные функции для приложения. Sidecar также разделяет тот же жизненный цикл, что и родительское приложение, создается и завершает работу вместе с ним, а также предоставляет дополнительные функции, такие как мониторинг, логирование, конфигурация и сетевые службы.
Преимущества использования этого шаблона заключаются в том, что каждая среда выполнения службы может настроить свой собственный API Gateway наилучшим образом. Поскольку требования для включения функциональности и настроек API Gateway могут варьироваться от службы к службе. В то же время это разделяет ответственность: если проблема возникает в общей инфраструктуре API Gateway, то не все службы будут затронуты. Например, Amesh — это еще одно решение для сервисной сети, основанное на Apache APISIX.

На приведенной выше диаграмме показано, как входной шлюз действует как балансировщик нагрузки API и маршрутизатор ресурсов для каждой конечной точки службы. Точка входа для службы — это не сама конечная точка службы, а sidecar API Gateway. Sidecar может выполнять любые из возможностей, предоставляемых API Gateway, в дополнение к маршрутизации трафика к конечной точке службы.
Заключение
Как мы понимаем, не существует единого шаблона развертывания, который подходил бы для всех условий. Иногда вы можете использовать один или несколько шлюзов в вашей системе. Выбор развертывания зависит от сложности и потребностей вашего бизнеса. Если вам нужна помощь в принятии решения о том, какой шаблон развертывания будет лучшим для вас, вы можете присоединиться к нашему сообществу в Slack, и эксперты помогут вам принять решение.
Связанные ресурсы
➔ Модели развертывания Apache APISIX.
➔ Что такое API Gateway и почему он важен в эпоху облачных технологий?.
Рекомендуемый контент
➔ Прочитайте статьи в блоге: