Финансовые практики содействия облачной трансформации с использованием APISIX в качестве API-шлюза

Yonghui Lu

January 13, 2023

Case Study

Эта статья основана на выступлении Юнхуэй Лу, директора API Gateway в Essence Securities, на конференции ApacheCon Asia 2022. Юнхуэй поделился опытом использования облачного API-шлюза Essence Securities на основе Apache APISIX.

Обзор

Проблемы

  • Исходный технологический стек был сложным и включал NGINX, Spring Cloud Gateway и собственные разработки.
  • Сложность управления системой из-за отсутствия единого технологического стека.
  • Дублирование работы и высокие затраты в различных бизнес-проектах.

Цели

  • Облачная архитектура и легкая интеграция с бизнес-системами Essence Securities.
  • Управление развертыванием, мониторингом и оповещениями.
  • Высокая производительность и возможность масштабирования.
  • Настройка функций и быстрая интеграция с системами.
  • Включение мощных и разнообразных функций, таких как управление трафиком, безопасность, преобразование протоколов, авторизация, аутентификация и т.д.

Результаты

  • Улучшение управления трафиком, безопасное управление всплесками трафика.
  • Повышение эффективности и удобства разработки.
  • Ускорение облачного развития Essence Securities.
  • Улучшение безопасности данных и управления правами доступа за счет создания независимых доменов.

О компании Essence Securities

Essence Securities Co., Ltd. (Essence Securities) — одна из ведущих брокерских компаний Китая. С момента своего основания в 2006 году Essence Securities быстро стала одной из 15 крупнейших брокерских компаний Китая, с подтвержденной репутацией предоставления высококачественных услуг как частному, так и государственному сектору. У компании есть четыре независимые дочерние компании и более 120 розничных отделений в 25 крупных провинциях по всей стране.

Основные направления деятельности Essence Securities включают брокерские услуги, консультации по инвестициям, финансовые услуги, связанные с торговлей и инвестициями, андеррайтинг и спонсорство ценных бумаг, управление активами и другие виды деятельности, одобренные Комиссией по регулированию ценных бумаг Китая.

Почему был выбран APISIX?

С 2021 года Essence Securities начала миграцию приложений в облако и разработала план по внедрению API-шлюза. В 2022 году компания приступила к созданию API-шлюза. После тщательного сравнения Essence Securities выбрала Apache APISIX среди множества решений для API-шлюзов благодаря нескольким ключевым преимуществам:

Высокая производительность

Брокерские компании имеют характерную особенность: в часы пик наблюдаются всплески трафика. Apache APISIX — это API-шлюз с самой высокой производительностью, с QPS 23,000 на одном ядре и средней задержкой всего 0,6 миллисекунды.

«Нам нужен API-шлюз, который сможет справляться с всплесками трафика и не станет следующим узким местом. После сравнения некоторых API-шлюзов, основанных на OpenResty или других технологических стеках, Apache APISIX выделяется своим конкурентным преимуществом в виде высокой производительности и соответствует нашим требованиям к API-шлюзу.» — сказал Юнхуэй.

Масштабируемость и удобство для разработчиков

APISIX предоставляет пользователям богатый набор функций. В Essence Securities наиболее широко используются ограничение скорости, автоматическое отключение, авторизация и аутентификация, а также канареечное развертывание.

Для этого Essence Securities разработала собственные плагины, чтобы удовлетворить внутренние потребности бизнес-групп. APISIX официально поддерживает множество языков программирования, включая Java, Golang, Python и Lua. В соответствии с сообществом, Essence Securities выбрала Lua. В результате весь процесс разработки прошел очень гладко. Essence Securities также рассматривает возможность внесения своих плагинов в сообщество.

Сценарии виртуальных машин и контейнеров

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

«Нам необходимо учитывать совместимость этих двух состояний приложений при выборе API-шлюза, хотя наш план больше ориентирован на контейнеры. APISIX предоставляет значительную поддержку в сценариях совместимости.» — сказал Юнхуэй.

Облачная разработка

Apache APISIX отлично поддерживает облачные сценарии, а Essence Securities идет в ногу с трендом облачной разработки. Используя APISIX, APISIX Ingress Controller и Service Mesh, Essence Securities также с нетерпением ждет новых достижений и развития APISIX.

Активное сообщество

Как проект с открытым исходным кодом, APISIX активно развивает свое сообщество. Вопросы обсуждаются и решаются своевременно. В 2022 году было проведено почти 40 очных и онлайн-мероприятий сообщества APISIX. Люди, знакомые с APISIX, с энтузиазмом относятся к этим мероприятиям.

Как Essence Securities выигрывает от использования APISIX?

Ниже приведена архитектура микросервисов Essence Securities, которая часто встречается в облачных сценариях.

архитектура примеров API финтех

  • Авторизация и аутентификация: До использования APISIX авторизация и аутентификация управлялись несколькими микросервисами, что приводило к большому количеству повторяющейся работы.

  • Управление трафиком: Essence Securities реализовала управление трафиком с помощью APISIX, среди которых наиболее типичными сценариями являются ограничение скорости и канареечное развертывание. До использования APISIX эти функции реализовывались с помощью NGINX, что требовало изменения конфигурации и перезапуска узлов. В отличие от этого, визуальная панель управления и функция горячей перезагрузки APISIX значительно упрощают управление трафиком в Essence Securities.

  • Канареечное развертывание: APISIX гибок в канареечном развертывании, которое может быть выполнено по объему и характеристикам трафика, включая заголовки запросов, параметры запросов, cookie и т.д. Например, Essence Securities необходимо перенаправлять трафик пользователей на серверы с канареечной версией по идентификатору пользователя.

  • Наблюдаемость: Раньше Essence Securities необходимо было реализовывать наблюдаемость через метрики, трассировку и логи. Это было сложно для многомерного управления. Однако после использования APISIX достаточно включить три плагина с простой конфигурацией, чтобы достичь того же эффекта. Какое замечательное улучшение!

Инновации на основе APISIX

Единый вход через CAS

Essence Securities использует CAS (Central Authentication Service) в качестве стандартного метода аутентификации, что подходит для размещения аутентификации на шлюзе.

Essence Securities расширила APISIX и добавила новую функцию — единый вход через CAS. Это имеет несколько преимуществ.

Размещение CAS на уровне шлюза позволяет легко интегрировать CAS и использовать его функции. Например, существуют унифицированные сервисы аутентификации для получения информации о пользователях.

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

плагин единого входа Essence Securities api

Плагин аутентификации authz-casbin

Плагин аутентификации APISIX authz-casbin — это плагин авторизации, основанный на Lua Casbin. Этот плагин поддерживает мощные сценарии авторизации на основе модели RBAC (ролевое управление доступом).

Он поддерживает хранение в CSV-файлах, конфигурацию плагинов APISIX и хранение политик через настройку метаданных.

Ниже приведен пример.

пример кода лучшего API-шлюза для финтеха

В Essence Securities существует важное понятие: домен. Пользователи имеют разные права доступа в различных доменах. Например, сотрудник A является менеджером домена A, но может быть только наблюдателем в домене B.

управление трафиком API-шлюза для финтеха

При определении запросов, политик и ролей необходимо указывать домен. Поэтому Essence Securities модифицировала casbin для соответствия такому сценарию. Плагин использует репозиторий Lua, который поддерживает RBAC с доменами. Таким образом, вышеуказанное требование может быть удовлетворено простым вызовом соответствующего интерфейса репозитория Lua, что очень удобно. Это значительно повышает безопасность данных и управление правами доступа.

Наблюдаемость

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

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

Что касается анализа трассировки, когда вышестоящий сервис подключен к Skywalking, полная трассировка вызовов может быть отслежена после включения Skywalking.

Essence Securities планирует извлечь больше пользы из сбора логов. Отправка логов доступа в kafka может помочь Essence Securities анализировать и считать данные.

Планы на будущее

Мультитенантность

Ранее системы Essence Securities имели независимые кластеры для снижения рисков ошибок и разделения информации пользователей. Apache APISIX использует etcd в качестве центра конфигурации, что подходит для текущего этапа.

Общие кластеры полезны для унифицированного управления ресурсами и повышения эффективности эксплуатации и обслуживания. Essence Securities объединит независимые кластеры с мультитенантностью, чтобы усилить свои возможности управления.

Маркетплейс приложений

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

После внедрения уровня шлюза было добавлено множество функций управления API-шлюзом, таких как аутентификация, авторизация и управление трафиком.

Наблюдаемость и мониторинг данных

Плагин kafka-logger APISIX может помочь Essence Securities отправлять логи доступа шлюза в kafka. Kafka может очищать, форматировать и считать информацию, а затем получать более ценные статистические данные, такие как Top N вызовов, аномальные запросы и задержки запросов.

«Или мы можем получить распределение статусных кодов, распределение IP-адресов клиентов, статистику трафика, распределение пиковых и непиковых часов, обнаружение аномального трафика и т.д. Эта часть имеет большое значение для расширения наблюдаемости нашей системы.» — сказал Юнхуэй.

Essence Securities также с нетерпением ждет большего сотрудничества с APISIX Ingress Controller и Service Mesh.

Ищете поддержку APISIX?

Apache APISIX — это открытый, динамичный, масштабируемый и высокопроизводительный облачный API-шлюз для всех ваших API и микросервисов. Будучи переданным в Apache Software Foundation компанией API7.ai, APISIX стал топовым проектом с открытым исходным кодом Apache.

Хотите ускорить свою разработку с уверенностью, как Essence Securities? Чтобы получить максимальную поддержку APISIX, вам нужен API7. Мы предоставляем глубокую поддержку APISIX и решения для управления API в соответствии с вашими потребностями!

Свяжитесь с нами сейчас: https://api7.ai/contact.

Tags: