Apache APISIX обеспечивает WPS Office возможность легко справляться с миллионами QPS
September 28, 2021
Предварительный просмотр
О Kingsoft и WPS Office
Kingsoft Office является дочерней компанией Kingsoft, ведущей компании в области программного обеспечения и интернет-услуг, базирующейся в Китае и зарегистрированной на фондовой бирже Гонконга. Флагманский продукт — WPS Office — это универсальный офисный пакет, включающий Writer, Spreadsheet, Presentation и PDF для управления офисными задачами. К 2022 году WPS Office достиг более 494 миллионов активных пользователей в месяц и более 1,2 миллиарда установок.
Изначально Kingsoft использовал NGINX в качестве API-шлюза для решения операционных задач. Первоначальная версия имела только базовые функции, такие как динамический апстрим, функционал черного списка и веб-приложение брандмауэра (WAF). Однако по мере расширения требований Kingsoft Office начал поиск альтернативных решений для API-шлюза, которые лучше соответствовали бы их растущим потребностям.
Проблемы
- Предыдущая система имела ограничения в удовлетворении базовых операционных и эксплуатационных потребностей, не обладая возможностью динамического масштабирования.
- Система обрабатывает значительный объем трафика и требует надежного API-шлюза для оптимальной производительности.
- Отсутствовала возможность динамической загрузки изменений, что требовало перезагрузки для вступления изменений в силу.
Результаты
- Внедрено решение, обеспечивающее высокую производительность и низкую задержку при динамических обновлениях, что позволяет легко настраивать и расширять систему.
- Значительно увеличена пропускная способность системы, позволяющая без труда обрабатывать миллионы запросов в секунду (QPS), обеспечивая стабильность бизнеса.
- Успешно реализованы меры по обеспечению высокой доступности и повышена безопасность системы для защиты критически важных операций.
Предыстория
На ранних этапах Kingsoft Office использовал API-шлюз для решения операционных задач, разработав собственное решение на основе OpenResty и Lua. Это решение включало функции динамического управления апстримами, черный список и веб-приложение брандмауэра (WAF). Однако в версии 1.0 были некоторые недостатки.
Например:
- Только апстрим был динамическим.
- Для обновления и отражения новых доменных имен требовалась перезагрузка, что создавало нагрузку на команду, ежедневно изменяющую домены и маршруты.
- Базовая архитектура была разработана для эффективного управления и эксплуатации, но была упрощенной с ограниченными функциями и масштабируемостью.
Одновременно с ростом бизнеса Kingsoft столкнулся с увеличением требований к функциональности API-шлюза. В результате они начали поиск нового решения для API-шлюза.
Почему Kingsoft Office выбрал APISIX?
В конце 2019 года, когда Kingsoft Office начал исследовать продукты для API-шлюзов, было много популярных вариантов. Однако последующие тесты показали, что производительность API-шлюзов, которые они оценивали, не соответствовала их требованиям.
В поисках более надежного решения Kingsoft Office углубился в исследования, и именно тогда они обнаружили Apache APISIX.
Некоторые другие API-шлюзы использовали PostgreSQL в качестве центра конфигурации, что означало, что обновление маршрутов могло быть достигнуто только через не событийно-ориентированные методы, что требовало перезагрузки маршрутов на каждом узле.
Kingsoft Office выбрал APISIX, основываясь на трех ключевых аспектах: производительность, техническая архитектура и сообщество.

1. Сверхвысокая производительность
Apache APISIX демонстрирует лучшую производительность среди других API-шлюзов с одноядерным QPS в 18 000 и средней задержкой в 0,2 мс. Тщательные тесты и бенчмаркинг внутри Kingsoft Office подтвердили превосходную производительность APISIX, что позволило Kingsoft Office справляться с высокими нагрузками и обеспечивать оптимальный пользовательский опыт.
2. Масштабируемая, устойчивая и высокодоступная архитектура
APISIX, используя etcd в качестве центра конфигурации, позволяет эффективно и динамически управлять маршрутами, плагинами и другими критически важными компонентами. Это распределенное хранилище ключей-значений повысило гибкость APISIX, позволяя легко обновлять систему и снижая операционные затраты, связанные с ручными изменениями конфигурации. С Apache APISIX Kingsoft Office смог использовать событийно-ориентированный подход, устранив необходимость ручной перезагрузки маршрутов на отдельных узлах.
3. Активное и поддерживающее сообщество
Kingsoft Office признал ценность активного и поддерживающего сообщества в стимулировании инноваций и предоставлении ресурсов. APISIX обладает активным и вовлеченным сообществом, которое способствует его развитию, делится лучшими практиками и оказывает помощь. Это сообщество способствует инновациям и сотрудничеству, что идеально соответствует стремлению Kingsoft Office оставаться на переднем крае технологических достижений.
Оптимизированная архитектура etcd в Kingsoft Office
Из-за большого количества статических конфигураций NGINX в оригинальной архитектуре Kingsoft Office команда решила не использовать CLI APISIX для автоматической генерации конфигураций. Вместо этого они использовали Apache APISIX в качестве резервного решения и постепенно переносили конфигурации на APISIX, обеспечивая плавный переход.
Во время внедрения команда Kingsoft Office внесла некоторые изменения в APISIX, такие как оптимизация архитектуры etcd. Обычно в архитектуре API-шлюза внутри компаний задействовано множество машин, иногда их количество достигает сотен. Кроме того, количество рабочих процессов увеличивает нагрузку на машины.
Следовательно, когда несколько машин отслеживают один и тот же ключ, это создает значительную нагрузку на etcd. В таких условиях для обеспечения согласованности данных etcd требует, чтобы все события были возвращены в запросы на прослушивание перед обработкой новых запросов. Когда несколько машин одновременно прослушивают, возникают проблемы, такие как тайм-ауты etcd и ошибки перегрузки.
Для решения этой проблемы Kingsoft Office разработал прокси etcd, как показано на правой части архитектурной схемы ниже. Работая между Apache APISIX и etcd, прокси etcd отслеживает ключи и возвращает результаты в Apache APISIX после получения результатов. Начиная с версии APISIX 3.2, количество соединений больше не зависит от ресурсов, что значительно снижает нагрузку на etcd.

Кроме того, по мере роста компании увеличивается и количество маршрутов. Когда маршруты часто обновляются, шлюз испытывает увеличение использования CPU и потерю пакетов. Команда Kingsoft Office устранила проблему с неэффективностью использования table.sort в среде кода Lua. Apache APISIX также решил эту проблему в своих обновленных версиях.
Преимущества после внедрения APISIX
1. Легкая поддержка миллионов QPS
На уровне бизнеса Kingsoft Office управляет сложной экосистемой, состоящей из тысяч сервисов, тщательно контейнеризированных и развернутых на внутренней облачной платформе. В этой динамичной среде Apache APISIX играет ключевую роль в качестве центрального шлюза, обеспечивая бесперебойное взаимодействие между различными сервисами и пользователями. Специально адаптированный для удовлетворения потребностей отдела Middle Platform, APISIX эффективно управляет огромным потоком запросов, легко обрабатывая миллионы запросов в секунду с высокой точностью и надежностью.
2. Достигнуто масштабируемое и гибкое управление API
Перейдя на APISIX, Kingsoft Office преодолел ограничения своих предыдущих решений для управления API, достигнув масштабируемости и гибкости, которые заложили основу для будущего роста и инноваций.
Мигрировав на APISIX, Kingsoft Office получил возможность легко масштабировать свою инфраструктуру API для удовлетворения потребностей быстро растущей пользовательской базы и изменяющегося бизнес-ландшафта. Модульная архитектура APISIX позволила легко интегрировать его с существующими системами и сервисами, что дало компании возможность расширять свои возможности управления API без нарушения текущих операций.
Кроме того, APISIX предоставил Kingsoft Office беспрецедентную гибкость в управлении API, предлагая детальный контроль над маршрутизацией, трафиком и аутентификацией. Эта новая гибкость позволила компании адаптировать свои стратегии управления API под конкретные случаи использования, оптимизируя производительность и улучшая пользовательский опыт.
3. Улучшена высокая доступность и безопасность системы
Кроме того, Kingsoft Office внедрил несколько функций для повышения высокой доступности и безопасности системы, включая пропорциональное распределение трафика между несколькими центрами обработки данных и возможность мгновенного блокирования маршрутов.
Настраивая пропорции, распределение трафика или запросов между различными центрами обработки данных оптимизируется на основе предопределенных соотношений. Это обеспечивает эффективное использование ресурсов системы и снижает влияние сбоев в одном центре обработки данных, что приводит к балансировке нагрузки, повышению доступности системы и увеличению отказоустойчивости.
В случае проблем с определенным маршрутом или необходимости временного блокирования администраторы могут быстро использовать функцию мгновенного блокирования маршрутов, чтобы мгновенно остановить передачу трафика или доступ для этого маршрута. Это защищает систему от злонамеренных действий, предоставляя удобный и эффективный подход к управлению сетевым трафиком и маршрутами.
Заключение
В ходе практического применения команда Kingsoft Office обнаружила исключительную гибкость и мощь Apache APISIX. Стабильность и надежность APISIX завоевали доверие Kingsoft Office, а его способность адаптироваться к модификациям плагинов и пользовательской компиляции предоставляет широкие возможности для индивидуальной настройки.
Команда внимательно отслеживает изменения в продукте APISIX, обеспечивая синхронизацию своей версии с последними обновлениями. С APISIX Kingsoft Office легко справляется с миллионами запросов в секунду, демонстрируя надежность решения и его способность удовлетворять потребности быстро растущей пользовательской базы. Внедрив Apache APISIX, Kingsoft Office эффективно решает свои растущие требования, повышает операционную эффективность и готовится к будущему росту в динамичной сфере сетевых продуктов.
