Как работают API-шлюзы?

Как работают API-шлюзы? Каковы типичные компоненты шлюза API? Существуют ли общие стандарты управления безопасностью, ведением журнала вызовов и управлением?

1 ответ

Это довольно широкий вопрос, поскольку существует множество различных типов шлюзов (и решений для управления). В самом широком смысле шлюз - это фильтр где-то в вашем веб-стеке (размещенный вами или третьей стороной), который каким-то образом фильтрует ваш трафик API. Часть фильтрации может произойти:

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

Как правило, типы функций, которые может предоставлять шлюз, могут включать в себя: управление доступом (фильтрация трафика так, что проходит только аутентифицированный / авторизованный трафик), ограничение скорости (ограничение объема трафика, который может быть отправлен каждым клиентом API), захват аналитики / метрик и ведение журнала (отслеживание того, что происходит в API), фильтрация безопасности (проверка содержимого входящих сообщений на предмет атак, перенаправление / маршрутизация трафика (отправка трафика на различные конечные точки в вашей собственной инфраструктуре в зависимости от отправителя или запроса).

Шлюз, как правило, работает как набор модулей и фильтров, которые обрабатывают трафик при его прохождении через него с высокой скоростью, и вы обычно можете включить те модули / фильтры, которые вам нужны, и управлять их параметрами. Очевидно, существует довольно много разных способов сделать реализацию + различные поставщики и системы с открытым исходным кодом на выбор.

Я постараюсь написать это нейтрально, поскольку я работаю в 3scale, которая предоставляет как коммерческие решения, так и решения с открытым исходным кодом, но я бы посоветовал вам взглянуть на различные варианты и сделать свои собственные выводы! Основными вариантами выбора являются:

  • Локальные проприетарные шлюзы от таких поставщиков, как Apigee и Layer7, - это обычно жесткие или программные устройства, которые вы устанавливаете локально в своем центре обработки данных.
  • Облачные шлюзы от таких производителей, как Mashery, Apigee и WSO2 API Cloud, которые эффективно перенаправляют трафик API через свои серверы для работы.
  • Архитектуры плагинов / агентов, такие как 3scale (для которых я работаю), которые предоставляют программные модули, которые могут быть развернуты в помещении внутри приложения, в помещении в прокси-шлюзе с открытым исходным кодом, например Varnish, и также подключены к CDN.
  • Решения с открытым исходным кодом, такие как APIAXLE и WSO2, которые могут быть развернуты в помещении или в облаке.

Различные подходы работают по-разному, и это зависит от того, к чему вы стремитесь. В 3scale у нас явно есть предвзятость к нашему подходу, поскольку он позволяет вам добавлять фильтрующих агентов практически в любом месте вашего стека - но, несомненно, каждый поставщик будет иметь свое мнение!

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

Это как раз роль шлюза API в распределенном приложении. Он принимает запросы и перенаправляет их в нужную службу. Вставьте в изображение, вот как это может выглядеть.

Что такое API-шлюз

По сути, это стойка регистрации между вашими микросервисами и различными запросами клиентов (браузеры, приложения и т. Д.). Что касается того, как они работают, какие компоненты и так далее, это полностью зависит от реализации и требований. Некоторые шлюзы API обрабатывают аутентификацию и авторизацию, другие обрабатывают и проверяют входные данные или преобразуют ответы. Некоторые предоставляют информацию для мониторинга, а некоторые и все.

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

Другие вопросы по тегам