APISIX значительно повысил эффективность R&D в Junrunrenli
Peng Yuan
December 12, 2022
Обзор
Проблемы
- Слишком много бизнес-систем, переадресация трафика CLB (configurable logic block) и частые изменения конфигурации потребляют много времени на разработку и обслуживание.
- Высоконагруженный бизнес, нестабильная база данных при экспорте больших объемов данных, и проблема может быть решена только перезапуском сервиса или выпуском новой версии.
- Отсутствие единой платформы для контроля доступа к бизнес-данным.
- Большой и сложный трафик, отсутствие эффективной стратегии управления трафиком.
- Десятки миллионов API-запросов в день, огромное количество данных логов и ограниченная емкость диска.
Результаты
- Apache APISIX предоставляет Junrunrenli различные методы наблюдаемости и защиты, эффективно поддерживая десятки миллионов посещений в день.
- Значительно повышена эффективность доставки разработок: конфигурация общих доменных имен вступает в силу за секунды, а контрольная плоскость снижает нагрузку на DevOps.
- Количество балансировщиков нагрузки сокращено с 200+ до всего 10+, что позволило сэкономить значительные средства.
О Junrunrenli Human Resources
Junrunrenli Human Resources — это технологически ориентированный поставщик решений в области человеческих ресурсов, в основном предоставляющий комплексные услуги для рынка занятости синих воротничков.
Основанная в 2019 году, Junrunrenli обслужила 1000+ клиентов, охватив 300W+ синих воротничков. За три года команда разработчиков выросла с менее 20 человек до 250+, и было разработано 15+ платформ для услуг в области человеческих ресурсов. Кроме того, Junrunrenli создала интегрированную экосистему услуг в области человеческих ресурсов, включая SaaS-приложения для B-стороны и C-стороны для конечной группы синих воротничков.
Темпы инноваций приводят к более высоким требованиям к архитектуре системы. Помимо высокой доступности, параллелизма и производительности, Junrunrenli требует эластичной масштабируемости.
Итак, как Junrunrenli выбирает API-шлюз?
Почему APISIX выделяется?
Команда Junrunrenli составила короткий список и провела исследование многих API-шлюзов. Несколько из них были исключены, так как они не полностью соответствовали потребностям Junrunrenli. Мы можем внимательно рассмотреть нижеприведенную диаграмму выбора API-шлюза Junrunrenli.

На диаграмме выше указаны функции Apache APISIX, а красным выделены те, которые Junrunrenli подчеркивает больше всего, потому что:
-
У Junrunrenli много внутренних бизнес-систем и собственная внутренняя экосистема. Поэтому необходим надежный API-шлюз для поддержки быстрых изменений бизнеса, так как Junrunrenli часто нужно настраивать и изменять маршруты. APISIX позволяет Junrunrenli гибко управлять доступом к API.
-
Бизнес Junrunrenli сосредоточен на выполнении одних и тех же действий одновременно, например, выплата миллиардов зарплат или снятие этих средств. Сотни тысяч синих воротничков одновременно отмечаются, подписывают контракты, получают задания и зарплаты. Следовательно, параллельный трафик огромен, особенно во время китайского "Черного пятницы", когда он удваивается по сравнению с обычным.
-
Различные системы и персонализированные потребности приводят к самостоятельной разработке Junrunrenli. "APISIX удовлетворяет 99% наших потребностей, но оставшиеся 1% нужно разрабатывать самостоятельно", — сказал Юань, технический эксперт Junrunrenli. Все знают, что Kong и APISIX разработаны на основе OpenResty NGINX + Lua. Если Junrunrenli будет разрабатывать плагины на Lua, это потребует дополнительных затрат. К счастью, внешний плагин APISIX поддерживает язык программирования Java, что экономит затраты на обучение. Кроме того, сообщество APISIX особенно активно.
Junrunrenli укрепляет свои системы с помощью APISIX
Ниже приведен общий обзор архитектурной диаграммы Junrunrenli.

Junrunrenli достигла следующих четырех результатов после использования APISIX.
1. Созданы инновационные стратегии маршрутизации для эффективного управления маршрутами
На основе Radixtree и etcd, Apache APISIX способен к высокоскоростному сопоставлению маршрутов и быстрой синхронизации конфигурации. Все это предназначено для достижения высокой производительности и сверхнизкой задержки.
В период пиковой нагрузки системы база данных MySQL не могла отвечать при экспорте миллионов данных отчетов, что приводило к недоступности сервиса, который мог возобновить нормальную работу только после перезапуска. Более того, ситуация усугублялась, если экспорт продолжался, и могла быть решена только новыми выпусками.
APISIX позволяет интеллектуально управлять маршрутами, поддерживая Junrunrenli с конфигурацией приоритетов маршрутов и аварийным отключением API с помощью serverless плагина в течение нескольких минут.
Кроме того, бизнес-системы Junrunrenli, особенно SaaS-системы, должны поддерживать доступ по доменным именам, определенным клиентом. В результате команда Junrunrenli унифицировала вход, настроив несколько доменных имен для одного сервиса. Конфигурации могут быть использованы во всех системах, настроив их только один раз.
2. Отделена PaaS-платформа для общего контроля безопасности
Junrunrenli использует характеристики APISIX, такие как канареечные выпуски, контроль безопасности и идентификация, чтобы установить PaaS-шлюз для контроля безопасности верхнеуровневой бизнес-системы.
На диаграмме ниже показано, что Junrunrenli создала двухуровневую архитектуру шлюза на основе APISIX и логически изолировала шлюз на ней — PaaS-платформу.
Пользователь обращается к CLB, затем APISIX перенаправляет запрос в бизнес-систему. Если функция, используемая пользователем, требует использования возможностей PaaS, она будет доступна через шлюз PaaS-сервиса. PaaS-платформа — это закрытая область внутри k8s, содержащая множество важных сервисов.

3. Плагин traffic-split APISIX позволил Junrunrenli автоматически управлять трафиком
Плагин traffic-split APISIX наделяет Junrunrenli возможностью управлять трафиком своих ключевых сервисов, таких как SSO (Single Sign On), PaaS-сервис и сервис выплаты зарплат.
Существует два сценария:
- Фильтрация по тегам: Трафик тестовых пользователей может быть перенаправлен на предпродукционные сервисы на основе тегов, таких как заголовки и другие параметры. Затем тестовые инженеры могут сначала проверить в предпродукционной среде, а затем в производственной.
После прохождения проверки инженеры могут переключить трафик на основе веса, а затем переключить весь трафик на новую версию после периода наблюдения.
- Сосуществование нескольких версий: Существует множество версий одного сервиса. Таким образом, разные бизнес-системы могут обращаться к разным версиям. Трафик может быть перенаправлен на нужные сервисы с использованием тегов.

4. Плагин Kafka APISIX обеспечил прозрачный мониторинг данных логов Junrunrenli

Как видно из этой диаграммы, APISIX и сервисы pod развернуты на k8s, и все внутренние маршруты связаны с одним сервисом. Плагин Kafka APISIX кажется специально созданным для сбора данных логов.
Данные наблюдений показывают, что ежедневно происходит десятки миллионов API-запросов, генерируя 30 ГБ данных логов в день, а общий объем логов превышает 1 ТБ.
Skywalking и Sky Agent также были настроены в скрипте запуска сервиса на pod. В сочетании с плагином Kafka, весь цепочка вызовов на Skywalking и облаке логов может быть наблюдаема в соответствии с requestId и traceId, а записи логов и время выполнения API-запросов каждого звена стали прозрачными для мониторинга данных логов.
Преимущества после использования APISIX в Junrunrenli
1. Поддержка развития бизнеса
После использования APISIX система Junrunrenli стала более функциональной, а производительность более мощной. Она предоставляет различные методы наблюдаемости и защиты для API-сервисов, эффективно поддерживая десятки миллионов ежедневного трафика.
2. Повышение эффективности доставки разработок
До использования APISIX Junrunrenli тратила 10 минут на настройку каждого DNS-разрешения, но теперь это занимает всего секунды для настройки панорамных доменных имен. Существует более 10 систем и более 100 сервисов с множеством конфигураций. Разработчикам нужно было изменять конфигурацию как в CLB, так и в NGINX. APISIX предоставляет центральную плоскость данных для изменения конфигурации, значительно снижая нагрузку на DevOps.
3. Экономия затрат
Сэкономлены значительные затраты на балансировщики нагрузки, сократив 200+ сервисов до всего 10+.
Планы Junrunrenli на будущее
-
Junrunrenli будет настраивать java-plugin-runner и интегрировать sentinel для включения сервиса подключаемого динамического ограничения скорости, а также поддержки ежедневного и ежемесячного контроля трафика.
-
Команда Junrunrenli также рассматривает возможность хранения данных логов API-запросов и затем проведения идентификации рисков на основе механизма правил, отправки информации о тревогах и быстрого вмешательства в эксплуатацию и обслуживание.
-
Junrunrenli будет проводить многоуровневое управление. В настоящее время существует только один вход, и позже будет предоставлено несколько наборов кластеров APISIX. Например, открытая платформа может получить доступ к внутренним сервисам k8s Junrunrenli через отдельный вход.
-
Кроме того, Junrunrenli объединит плагины логов и sky с полным анализом цепочки логов.
Ищете поддержку APISIX?
Apache APISIX — это открытый, динамичный, масштабируемый и высокопроизводительный облачный API-шлюз для всех ваших API и микросервисов. Будучи переданным Apache Software Foundation компанией API7.ai, APISIX стал топовым открытым проектом Apache.
Хотите ускорить свою разработку с уверенностью, как Junrunrenli Human Resources? Чтобы максимально использовать поддержку APISIX, вам нужен API7. Мы предоставляем глубокую поддержку APISIX и решения для управления API в соответствии с вашими потребностями!
Свяжитесь с нами в любое время: https://api7.ai/contact.