Рубрики
Uncategorized

Зачем микросервисы нужен шлюз API?

API -шлюзы становятся все более популярными среди архитектуры микросервиса. Недавно Google A … Tagged с DevOps, Microservices.

API -шлюзы становятся все более популярными среди архитектуры микросервиса. Недавно Google объявил о своем собственном API-Gateway Анкет Время созрело, чтобы взглянуть на то, почему микросервисная архитектура нуждается в них и как они в настоящее время выглядят без шлюза API.

Давайте посмотрим на архитектуру микросервиса без шлюза API.

Каждый микросервис, помимо его основной функциональности, традиционно делал это,

  • Аутентификация запросов на основе токена OAuth или JWT или простой аутентификации на основе ключей. (Эта аутентификация должна проверить, имеют ли другие службы или пользователи доступ к этой услуге, а не типичную аутентификацию пользователей, которая происходит на основе данных приложения.)
  • Разрешить CORS запросы от других микросервисов
  • Разрешить/отрицать запросы на основе их IPS.
  • Ограничение скорости — разрешить только определенное количество запросов. Запросы по указанному пределу будут отвечать кодом состояния 429 (слишком много запросов). Эти правила также защищают микросервис от DDOS атаки Это происходит на уровне приложения.

  • Мониторинг — Сбор метрик из запросов/ответа на получение ценной информации. Например: количество запросов в минуту, количество запросов на API, количество запросов, которые конкретный пользователь достиг выше предела ставки.

  • Оповещение — это подмножество мониторинга, где предупреждения генерируются для конкретных событий. Например: генерирование предупреждения, когда время отклика превышает 500 мс для 1000 Использование инструмента наблюдения, такого как Prometheus, помогает как в мониторинге, так и в предупреждении.

  • Регистрация — регистрирование всех запросов, сделанных на сервер.

  • Запрос прекращения — временно отключить запрос на некоторые API или отключить услугу во время простоя.

Хорошо, это некоторые из них. Это может быть еще больше.

Основные недостатки этого подхода:

  • Когда появится новый микросервис, все эти функции необходимо воспроизвести.
  • Любое изменение в одной функциональности должно повторяться во всех услугах. Например: перемещение регистрации запросов от loggly в STATSD.
  • Логически, все эти функции не являются специфическими для базового приложения. Они могут быть отделены от самого приложения.

API Gateway:

API Gateway сейчас не нуждается в вступлении. Ворота API можно считать еще одним микросервисом в вашей архитектуре, который выполняет все вышеупомянутые функции.

  • Это точка входа для ваших микросервисов и действует как привратник, выполняющий все основные функции перед передачей запроса соответствующему микросервису.
  • Все функции сейчас находятся в централизованном месте, что позволяет легко поддерживать и анализировать их.
  • Когда появится новый микросервис, все, что ему нужно сделать, это обработать запросы и отправить ответ обратно в шлюз. API Gateway заботится об остальных.
  • При на месте API функциональные возможности, такие как запрос/преобразование ответа, также становятся возможными развертыванием канарейских развертываний.

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

Независимо от того, существует ли абсолютная потребность в воротах API или нет, просто внимательно посмотрев на дизайн до существования API Gateway, очевидно, что он нарушает Принцип единственной ответственности , Не повторяйся и Высокая сплоченность и низкая связь Анкет

Оригинал: «https://dev.to/rahul_ramfort/why-do-microservices-need-an-api-gateway-503i»