API7 Enterprise v3.5.0: Multi-Upstream Configuration
February 19, 2025
Upstream: Точная навигация запросов
Чтобы лучше понять концепцию upstream, давайте воспользуемся метафорой: представьте себе оживленный аэропорт, где люди постоянно приходят и уходят. Путешественники, как и API-запросы, прибывают толпами, стремясь найти свои выходы на посадку, чтобы отправиться в путь. В мире API7 Gateway upstreams похожи на эти выходы на посадку. Однако они не являются физическими местами, а представляют собой логические группировки. Эти логические группировки четко определяют, куда должны быть направлены входящие API-запросы.
Upstream может представлять собой один бэкенд-сервис, как выделенный выход на посадку, где все связанные запросы могут точно достичь своего назначения. Он также может представлять собой пул идентичных сервисов для балансировки нагрузки, подобно нескольким функционально идентичным выходам на посадку, которые эффективно распределяют поток пассажиров. Кроме того, он может указывать на реестр сервисов, где соответствующие бэкенды динамически изменяются, чтобы адаптироваться к изменяющимся бизнес-потребностям. В большинстве случаев один upstream в рамках сервиса может подключать несколько маршрутов внутри сервиса, обеспечивая эффективный поток запросов.
По своей сути, upstreams умно создают уровень абстракции между маршрутами и фактическими бэкенд-сервисами. Эта абстракция имеет большое значение. Она значительно упрощает управление конфигурацией, делая громоздкий процесс конфигурации четким и упорядоченным. Она также плавно обеспечивает балансировку нагрузки, гарантируя, что нагрузка на каждый бэкенд-сервис является разумной, и повышая общую производительность системы.
Многоканальная конфигурация: Новая эра управления трафиком
Многоканальная конфигурация — это выдающаяся функция API7 Enterprise. Она ломает традиционные ограничения, позволяя сервису свободно настраивать несколько upstream-сервисов в любое время и в любом месте. Это не ограничивается сценариями canary, но также распространяется на различные продвинутые сценарии управления трафиком. В сочетании с плагинами она может гибко настраивать правила маршрутизации для точного распределения запросов на разные upstream-сервисы.
Сценарии использования
-
Canary-развертывание: Во время canary-тестирования создайте новый upstream, указывающий на новую версию того же сервиса. Затем умно направьте часть трафика на новую версию микросервиса. Это позволяет вам проверить корректность новых функций в небольшом масштабе, эффективно снижая риск, подобно небольшой репетиции перед официальным выступлением.
-
Сине-зеленое развертывание: Сначала плавно переключите весь трафик на новую версию. После подтверждения стабильной работы новой версии безопасно снимите старую версию с эксплуатации. Это обеспечивает развертывание без простоев, гарантируя непрерывную доступность сервиса и делая пользователей практически незаметными для обновления системы.

-
A/B-тестирование: Разделите трафик на несколько групп и направьте их на разные upstream-сервисы. Это позволяет вам интуитивно сравнивать эффекты различных решений, предоставляя сильную поддержку для принятия решений, подобно сравнению различных продуктовых решений в маркетинговых исследованиях.
-
Аварийное переключение: Когда основной upstream-сервис, к сожалению, выходит из строя, система может быстро переключить трафик на резервный upstream-сервис. Это действует как "страховка" для сервиса, обеспечивая его доступность и поддерживая хороший пользовательский опыт.
-
Управление несколькими кластерами: В средах с несколькими центрами обработки данных или облаками многоканальная конфигурация может разумно распределять трафик между различными кластерами, такими как обычные и VIP-кластеры. Это не только повышает доступность системы и возможности аварийного восстановления, но также обеспечивает балансировку нагрузки и изоляцию ресурсов, гарантируя стабильную работу системы в сложных условиях.
Однако важно отметить, что хотя многоканальная конфигурация приносит мощные функции, она также значительно увеличивает сложность и трудности управления. Это требует тщательного планирования бизнеса и глубокого понимания конфигурации API-шлюза.
Советы по эффективному использованию многоканальной конфигурации
-
Постепенное внедрение: При внедрении многоканальной конфигурации начните с простых сценариев, таких как базовые тесты разделения трафика. Накопите опыт, прежде чем постепенно расширяться до более сложных сценариев, чтобы избежать перегрузки сложностью с самого начала.
-
Тщательное тестирование: Полное тестирование перед публикацией обязательно. Смоделируйте различные возможные сценарии, чтобы убедиться в правильности конфигурации, подобно проведению строгого контроля качества перед запуском нового продукта.
-
Мониторинг и оповещения: Установите надежный механизм мониторинга и оповещений, чтобы непрерывно отслеживать работу системы. Если обнаружены какие-либо аномалии, своевременные оповещения и меры могут быть приняты для устранения проблем, обеспечивая стабильную работу системы.

Мощный инструмент: Плагин traffic-split
Для достижения мощных функций многоканальной конфигурации незаменим плагин traffic-split. Этот плагин обладает высокой функциональностью, динамически распределяя трафик между различными upstream-сервисами на основе предопределенных условий и весов.
В плане соответствия условий он может формулировать сложные правила распределения трафика на основе информации, такой как URL, заголовок, куки запроса, и даже внешних факторов, таких как время и дата. Например, он может направлять запросы от определенных VIP-пользователей на upstream-сервис, соответствующий VIP-кластеру, или направлять часть трафика на upstream-сервис, соответствующий новой версии, в определенный период времени. В плане настройки весов, устанавливая различные веса, можно точно контролировать соотношение распределения трафика между различными upstream-сервисами. Например, во время canary-релиза можно направить 90% трафика на upstream, соответствующий производственной среде, и 10% на upstream, соответствующий тестовой среде.
Эффективно используя функцию многоканальной конфигурации и плагин traffic-split, вы можете значительно повысить гибкость и надежность API-шлюза. Это закладывает прочную основу для успешной реализации микросервисной архитектуры, позволяя нам уверенно двигаться вперед по цифровому пути и справляться с различными сложными бизнес-задачами.
Заключение
Служа точной системой навигации для запросов, upstreams эффективно направляют API-запросы к целевым сервисам через логические группировки. Многоканальная конфигурация API7 Enterprise дополнительно повышает гибкость управления трафиком, поддерживая продвинутые сценарии, такие как canary-развертывание, сине-зеленое развертывание, A/B-тестирование, аварийное переключение и управление несколькими кластерами. С помощью плагина traffic-split трафик может быть динамически распределен на основе предопределенных условий и весов, обеспечивая высокую производительность и стабильность системы.
