Стратегия канареечного перенаправления трафика API7 Enterprise для точного управления трафиком

January 29, 2024

Products

В современной архитектуре микросервисов API-шлюз служит точкой входа для трафика систем, выполняя такие важные задачи, как маршрутизация запросов, аутентификация, ограничение скорости и реализация механизма "circuit breaker". API7 Enterprise, как мощная платформа управления API, построенная на основе APISIX, предоставляет пользователям богатые и гибкие функциональные возможности, где канареечное распределение трафика играет ключевую роль в таких сценариях, как плавное обновление сервисов и проверка новых функций.

Обзор функций

Создание Upstream на основе существующих сервисов

После развертывания сервиса в группах шлюзов API7 Enterprise администраторы могут легко создать новый upstream для канареечного распределения трафика на основе существующих базовых upstream. Upstream может наследовать все конфигурации от базового upstream или выборочно наследовать проверенные исторические конфигурации. Этот дизайн значительно упрощает процесс настройки, сокращая повторяющуюся работу и потенциальные ошибки конфигурации. Кроме того, upstream для канареечного распределения трафика поддерживает настройку новых узлов или интеграцию механизмов обнаружения сервисов. Это означает, что без влияния на существующую бизнес-логику часть трафика может быть перенаправлена на новые серверы или среды для тестирования производительности, проверки функций или других видов оценки.

Гибкие условия и веса распределения

При запуске стратегий канареечного распределения трафика администраторы могут точно определить условия и веса для перенаправления трафика:

Условия распределения: Они определяют, какой трафик должен быть направлен в upstream для канареечного распределения. Администраторы могут комбинировать несколько условий с помощью логических операторов (таких как "И" и "ИЛИ"), чтобы гарантировать, что только запросы, соответствующие определенным условиям, попадут в среду канареечного распределения.

Свойства, которые могут быть использованы для оценки, включают:

  • Header: Определенные поля в заголовке запроса, такие как User-Agent.

  • Cookie: Информация о cookie, отправленная клиентом, часто используемая для идентификации пользователя или состояния сессии.

  • Query Parameters: Параметры строки запроса в URL.

  • Variables: Системные или пользовательские переменные, такие как географическое местоположение или роли пользователей.

    Логика сопоставления включает равенство (==), неравенство (~=), регулярное сопоставление (~~) и другие методы, обеспечивая гибкость и точность оценки условий.

    Например, администраторы могут установить следующее условие распределения: "Когда поле User-Agent в заголовке запроса содержит 'iPhone', а поле user_group в Cookie равно 'test_group', перенаправить запрос в upstream для распределения трафика."

Веса распределения: Они определяют, какой процент трафика должен быть направлен в upstream для канареечного распределения. Это процентное значение, которое позволяет администраторам постепенно увеличивать или уменьшать трафик, поступающий в среду канареечного распределения.

Изначально вес может быть установлен на низкое значение (например, 10%), чтобы обеспечить тестирование новых функций в небольшом диапазоне. По мере прогресса тестирования и сбора результатов вес может постепенно увеличиваться, пока в конечном итоге 100% трафика не переключится на новую версию.

Гибко настраивая условия и веса распределения, администраторы могут эффективно контролировать масштаб и влияние тестирования канареечного распределения трафика, обеспечивая плавный запуск новых функций и стабильность системы.

Распределение трафика в API7 Enterprise

Практические сценарии применения

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

  2. Тестирование производительности: Во время значительных событий или сценариев с высокой нагрузкой администраторы могут использовать канареечное распределение трафика для перенаправления части трафика на новые, более мощные узлы, чтобы проверить пределы производительности и стабильность системы.

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

Лучшие практики

  1. Разумная настройка условий распределения: Выбор подходящих условий распределения на основе реальных потребностей имеет решающее значение. Например, для тестов, ориентированных на определенные группы пользователей, точное распределение может быть достигнуто через идентификаторы пользователей в Cookies или Headers.

  2. Динамическая корректировка весов: Во время тестирования динамическая корректировка весов распределения на основе результатов тестирования и отзывов пользователей может ускорить сбор достоверных данных или сузить область проблем.

  3. Мониторинг и оповещение: Усиление мониторинга соответствующих метрик во время распределения трафика и настройка соответствующих механизмов оповещения позволяют своевременно обнаруживать и устранять проблемы.

Заключение

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

Tags: