Apache APISIX助力WPS Office轻松应对数百万QPS
September 28, 2021
プレビュー
KingsoftとWPS Officeについて
Kingsoft Officeは、中国を拠点とする主要なソフトウェアおよびインターネットサービス企業であるKingsoftの子会社です。香港証券取引所に上場しており、主力製品であるWPS Officeは、Writer、Spreadsheet、Presentation、PDFを備えたオールインワンのオフィススイートです。2022年までに、WPS Officeは4億9400万人以上の月間アクティブユーザーと12億回以上のインストールを達成しました。
当初、KingsoftはNGINXをAPIゲートウェイとして使用し、運用上の課題に対処していました。初期バージョンでは、動的なアップストリーム、ブラックリスト機能、Webアプリケーションファイアウォール(WAF)などの基本的な機能しかありませんでした。しかし、要件が拡大するにつれ、Kingsoft Officeは進化するニーズにより適したAPIゲートウェイソリューションを探求するようになりました。
課題
- 以前のシステムでは、基本的な運用および保守ニーズを満たすことができず、動的なスケーリングが不可能でした。
- システムは大量のトラフィックを処理する必要があり、最適なパフォーマンスを実現するためには堅牢なAPIゲートウェイが必要でした。
- 変更を動的にロードする機能がなく、変更を反映するためにリロードが必要でした。
結果
- 高性能で低遅延の動的更新を実現し、シームレスなカスタマイズと拡張を可能にするソリューションを導入しました。
- システムのキャパシティを大幅に向上させ、毎秒数百万のクエリ(QPS)を容易に処理できるようになり、ビジネスの安定性を確保しました。
- 高可用性対策を確立し、システムのセキュリティを強化して重要な操作を保護しました。
背景
初期段階では、Kingsoft Officeは運用上の問題に対処するためにAPIゲートウェイを使用し、OpenRestyとLuaを基に独自のソリューションを開発しました。このソリューションにより、動的なアップストリーム管理、ブラックリスト機能、Webアプリケーションファイアウォール(WAF)などの機能が実現されました。しかし、1.0フェーズではいくつかの欠点がありました。
例えば、
- アップストリームのみが動的でした。
- 新しいドメイン名を更新して反映するためにリロードが必要で、チームは毎日新しいドメインとルートを変更する負担を抱えていました。
- 基盤となるアーキテクチャは効率的な管理と運用のために設計されており、機能とスケーラビリティが限定的でした。
同時に、ビジネスの成長に伴い、KingsoftはAPIゲートウェイの機能に対する要件が増加しました。その結果、新しいAPIゲートウェイソリューションを探し始めました。
Kingsoft OfficeがAPISIXを選んだ理由
2019年後半、Kingsoft OfficeがAPIゲートウェイ製品の調査を開始した際、多くの人気のある選択肢がありました。しかし、その後のテストにより、評価したAPIゲートウェイのパフォーマンスが要件を満たしていないことが明らかになりました。
より堅牢なソリューションを求めて、Kingsoft Officeはさらに調査を進め、その際にApache APISIXを発見しました。
他のAPIゲートウェイの中には、PostgreSQLを設定センターとして使用しているものもあり、ルートの更新は非イベント駆動型の方法でしか行えず、各ノードでルートをリロードする必要がありました。
Kingsoft Officeは、パフォーマンス、技術アーキテクチャ、コミュニティの3つの主要な考慮事項に基づいてAPISIXを選択しました。
1. 超高性能
Apache APISIXは、他のAPIゲートウェイの中で最高のパフォーマンスを提供し、シングルコアで18,000 QPS、平均遅延0.2 msを実現しています。Kingsoft Office内での厳密なテストとベンチマークにより、APISIXの優れたパフォーマンスが一貫して確認され、高負荷に対応し、最適なユーザーエクスペリエンスを提供できることが保証されました。
2. スケーラブルで回復力があり、高可用性のアーキテクチャ
APISIXは、etcdを設定センターとして使用し、ルート、プラグイン、その他の重要なコンポーネントを効率的かつ動的に管理できます。この分散型キーバリューストアにより、APISIXの柔軟性が向上し、シームレスな更新が可能になり、手動での設定変更に伴う運用負荷が軽減されました。Apache APISIXを使用することで、Kingsoft Officeはイベント駆動型のアプローチを活用し、個々のノードでの手動ルートリロードの必要性を排除しました。
3. 活発で支援的なコミュニティ
Kingsoft Officeは、イノベーションを推進し、リソースを提供するための活発で支援的なコミュニティの価値を認識しました。APISIXは、開発に貢献し、ベストプラクティスを共有し、支援を提供する活発で関与度の高いコミュニティを誇っています。このコミュニティ主導の環境は、イノベーションとコラボレーションを促進し、Kingsoft Officeの技術進歩の最前線に立つというコミットメントと完全に一致しました。
Kingsoft Officeでの最適化されたetcdアーキテクチャ
Kingsoft Officeの元のアーキテクチャでは、多数のNGINX静的設定があったため、チームはAPISIXのCLIを使用して設定を自動生成することを選択せず、代わりにApache APISIXをフォールバックとして使用し、設定を徐々にAPISIXに移行することで、スムーズな移行を確保しました。
実装中、Kingsoft OfficeチームはAPISIXに基づいていくつかのカスタマイズを行いました。例えば、etcdアーキテクチャの最適化です。一般的に、企業内のAPIゲートウェイアーキテクチャには複数のマシンが関与し、時には数百台に及ぶこともあります。さらに、ワーカーの数がマシンの負荷を増大させます。
その結果、複数のマシンが同じキーを監視すると、etcdに大きな負荷がかかります。このような状況下では、データの一貫性を保つために、etcdはすべてのイベントがリクエストに返されるまで新しいリクエストを処理しません。複数のマシンが同時に監視している場合、etcdがタイムアウトしたり、過負荷エラーが表示されたりする問題が発生します。
この問題に対処するため、Kingsoft Officeはetcdプロキシを開発しました。以下のアーキテクチャ図の右側に示すように、このプロキシはApache APISIXとetcdの間に位置し、キーを監視し、結果を受け取った後にApache APISIXに返します。APISIXバージョン3.2以降、接続数はリソースに影響されなくなり、etcdへの負荷が大幅に軽減されました。
さらに、会社の規模が拡大するにつれ、ルートの数も増加します。ルートが頻繁に更新されると、ゲートウェイのCPU使用率が上昇し、パケットロスが発生します。Kingsoft Officeチームは、Luaコード環境内でのtable.sort
の非効率性の問題を修正しました。Apache APISIXも、更新されたバージョンでこの問題に対処しています。
APISIX採用後のメリット
1. 数百万QPSを容易にサポート
ビジネスレベルでは、Kingsoft Officeは数千のサービスからなる複雑なエコシステムを運営しており、内部のクラウドネイティブプラットフォームにコンテナ化されてデプロイされています。このダイナミックな環境内で、Apache APISIXは中心的なゲートウェイとして重要な役割を果たし、さまざまなサービスとユーザー間のシームレスな通信とインタラクションを促進しています。特にミドルプラットフォーム部門のニーズに合わせて設計されたAPISIXは、膨大なリクエストの流入を効率的に管理し、毎秒数百万のクエリを驚異的な精度と信頼性で処理します。
2. スケーラブルで柔軟なAPI管理を実現
APISIXを採用することで、Kingsoft Officeは以前のAPI管理ソリューションの限界を超え、将来の成長とイノベーションの基盤となるスケーラビリティと柔軟性を実現しました。
APISIXへの移行により、Kingsoft Officeは急速に拡大するユーザーベースと進化するビジネス環境のニーズに応えるために、APIインフラストラクチャを容易にスケーリングできるようになりました。APISIXのモジュール型アーキテクチャにより、既存のシステムやサービスとのシームレスな統合が可能になり、進行中の操作を中断することなくAPI管理機能を拡張できました。
さらに、APISIXは、ルーティング、トラフィック、認証ポリシーに対する細かい制御を提供することで、Kingsoft Officeに比類のない柔軟性をもたらしました。この新たな柔軟性により、会社は特定のユースケースに合わせてAPI管理戦略を調整し、パフォーマンスを最適化し、ユーザーエクスペリエンスを向上させることができました。
3. システムの高可用性とセキュリティの向上
さらに、Kingsoft Officeは、複数のデータセンター間での比例トラフィック分散や、ワンクリックでのルート禁止機能など、システムの高可用性とセキュリティを強化するためのいくつかの機能を実装しました。
比例を設定することで、トラフィックやリクエストの分散が事前に定義された比率に基づいて最適化されます。これにより、システムリソースの効率的な利用が確保され、単一のデータセンターでの障害の影響が軽減され、負荷分散、システムの可用性向上、およびフォールトトレランスの向上が実現されます。
特定のルートに問題が発生した場合や一時的なブロックが必要な場合、管理者はワンクリックでのルート禁止機能を使用して、そのルートのトラフィック伝送やアクセスを即座に停止できます。これにより、システムが悪意のある活動から保護され、ネットワークトラフィックとルートの管理に対するシームレスで便利なアプローチが提供されます。
結論
実際のアプリケーションにおいて、Kingsoft OfficeチームはApache APISIXの卓越した柔軟性とパワーを発見しました。APISIXの安定性と信頼性はKingsoft Officeの信頼を獲得し、プラグインの変更やカスタムコンパイルに対応する能力は、十分なカスタマイズの余地を提供します。
チームはAPISIXの製品変更を注意深く追跡し、最新のアップデートと同期を保っています。APISIXを導入することで、Kingsoft Officeは毎秒数百万のクエリを容易に処理し、ソリューションの堅牢性と急速に拡大するユーザーベースのニーズに対応できることを実証しました。Apache APISIXを採用することで、Kingsoft Officeは進化する要件に対応し、運用効率を向上させ、ダイナミックなネットワーキング製品の景観の中で将来の成長に向けて位置づけられました。