Финансовые практики содействия облачной трансформации с использованием APISIX в качестве API-шлюза
Yonghui Lu
January 13, 2023
Эта статья основана на выступлении Юнхуэй Лу, директора 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, которая часто встречается в облачных сценариях.

-
Авторизация и аутентификация: До использования 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 устанавливает информацию о пользователе в заголовок запроса и передает ее в вышестоящий сервис, чтобы сохранить статус входа пользователя. Таким образом, нет необходимости повторно входить в другие системы, что экономит время пользователей и повышает удобство.

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

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

При определении запросов, политик и ролей необходимо указывать домен. Поэтому 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.