APISIX значительно повысил эффективность R&D в Junrunrenli

Peng Yuan

December 12, 2022

Case Study

Обзор

Проблемы

  1. Слишком много бизнес-систем, переадресация трафика CLB (configurable logic block) и частые изменения конфигурации потребляют много времени на разработку и обслуживание.
  2. Высоконагруженный бизнес, нестабильная база данных при экспорте больших объемов данных, и проблема может быть решена только перезапуском сервиса или выпуском новой версии.
  3. Отсутствие единой платформы для контроля доступа к бизнес-данным.
  4. Большой и сложный трафик, отсутствие эффективной стратегии управления трафиком.
  5. Десятки миллионов API-запросов в день, огромное количество данных логов и ограниченная емкость диска.

Результаты

  1. Apache APISIX предоставляет Junrunrenli различные методы наблюдаемости и защиты, эффективно поддерживая десятки миллионов посещений в день.
  2. Значительно повышена эффективность доставки разработок: конфигурация общих доменных имен вступает в силу за секунды, а контрольная плоскость снижает нагрузку на DevOps.
  3. Количество балансировщиков нагрузки сокращено с 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.

Выбор API-шлюза Junrunrenli

На диаграмме выше указаны функции Apache APISIX, а красным выделены те, которые Junrunrenli подчеркивает больше всего, потому что:

  1. У Junrunrenli много внутренних бизнес-систем и собственная внутренняя экосистема. Поэтому необходим надежный API-шлюз для поддержки быстрых изменений бизнеса, так как Junrunrenli часто нужно настраивать и изменять маршруты. APISIX позволяет Junrunrenli гибко управлять доступом к API.

  2. Бизнес Junrunrenli сосредоточен на выполнении одних и тех же действий одновременно, например, выплата миллиардов зарплат или снятие этих средств. Сотни тысяч синих воротничков одновременно отмечаются, подписывают контракты, получают задания и зарплаты. Следовательно, параллельный трафик огромен, особенно во время китайского "Черного пятницы", когда он удваивается по сравнению с обычным.

  3. Различные системы и персонализированные потребности приводят к самостоятельной разработке Junrunrenli. "APISIX удовлетворяет 99% наших потребностей, но оставшиеся 1% нужно разрабатывать самостоятельно", — сказал Юань, технический эксперт Junrunrenli. Все знают, что Kong и APISIX разработаны на основе OpenResty NGINX + Lua. Если Junrunrenli будет разрабатывать плагины на Lua, это потребует дополнительных затрат. К счастью, внешний плагин APISIX поддерживает язык программирования Java, что экономит затраты на обучение. Кроме того, сообщество APISIX особенно активно.

Junrunrenli укрепляет свои системы с помощью APISIX

Ниже приведен общий обзор архитектурной диаграммы Junrunrenli.

Общая архитектурная диаграмма 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, содержащая множество важных сервисов.

Диаграмма контроля безопасности Junrunrenli в сочетании с APISIX

3. Плагин traffic-split APISIX позволил Junrunrenli автоматически управлять трафиком

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

Существует два сценария:

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

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

  • Сосуществование нескольких версий: Существует множество версий одного сервиса. Таким образом, разные бизнес-системы могут обращаться к разным версиям. Трафик может быть перенаправлен на нужные сервисы с использованием тегов.

Автоматическое управление трафиком после использования APISIX

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

Улучшение процесса сбора логов с помощью APISIX

Как видно из этой диаграммы, 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.

Tags: