Шаблоны развертывания API Gateway

Bobur Umurzokov

Bobur Umurzokov

December 16, 2022

Technology

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) частной сети.

Двухуровневый API Gateway

Микрогейтвей

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

Микрогейтвей

Идея заключается в предоставлении возможности (выделенного шлюза) отдельной команде, управляющей микросервисами, контролировать, как они будут безопасно предоставлять свои службы. Та же команда разработчиков будет управлять и поддерживать свои микросервисы и микрогейтвеи, что позволит им исправлять ошибки, предоставлять обновления, выполнять улучшения независимо и быстро внедрять изменения в производство с меньшим взаимодействием с другими зависимостями и без влияния на другие приложения в развертывании.

Sidecar API Gateway

Sidecar реализует API Gateway как контейнер, прикрепленный к службе в независимой среде выполнения, такой как Kubernetes. Sidecar — это шаблон, который соответствует креслу-коляске, прикрепленному к мотоциклу, аналогично, он прикреплен к родительскому приложению (программному компоненту, называемому сервисной сетью) и предоставляет вспомогательные функции для приложения. Sidecar также разделяет тот же жизненный цикл, что и родительское приложение, создается и завершает работу вместе с ним, а также предоставляет дополнительные функции, такие как мониторинг, логирование, конфигурация и сетевые службы.

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

Sidecar API Gateway

На приведенной выше диаграмме показано, как входной шлюз действует как балансировщик нагрузки API и маршрутизатор ресурсов для каждой конечной точки службы. Точка входа для службы — это не сама конечная точка службы, а sidecar API Gateway. Sidecar может выполнять любые из возможностей, предоставляемых API Gateway, в дополнение к маршрутизации трафика к конечной точке службы.

Заключение

Как мы понимаем, не существует единого шаблона развертывания, который подходил бы для всех условий. Иногда вы можете использовать один или несколько шлюзов в вашей системе. Выбор развертывания зависит от сложности и потребностей вашего бизнеса. Если вам нужна помощь в принятии решения о том, какой шаблон развертывания будет лучшим для вас, вы можете присоединиться к нашему сообществу в Slack, и эксперты помогут вам принять решение.

Связанные ресурсы

Модели развертывания Apache APISIX.

Что такое API Gateway и почему он важен в эпоху облачных технологий?.

Рекомендуемый контент

➔ Прочитайте статьи в блоге:

Tags: