APISIX 为大型CDN云服务提供商赋能网络

Jing Yan

Jing Yan

January 31, 2023

Case Study

概要

UPYUNについて

UPYUNは、中国を代表する企業向けクラウドサービスプロバイダーであり、シナリオベースのCDN(コンテンツデリバリネットワーク)ソリューションを専門としています。10のデータ処理センター、1000以上の国内CDNノード、約100のグローバルCDNノード、40,000台のサーバー、10TBの予備帯域幅を備え、UPYUNはさまざまなシナリオ向けに安全なソリューションを提供し、1日あたり1500億を超えるリクエストを処理しています。

課題

  • UPYUNは、パブリックネットワークのゲートウェイとして機能するKongを使用してトラフィック接続を管理する際に課題に直面していました。

  • イングレスコントローラーに関しては、Ingress-Nginxが複雑なコンポーネント依存性、移植性の低さ、セマンティック能力の弱さといった問題を抱えており、ゲートウェイのメンテナンスが困難でした。

成果

  • APISIXは、トラフィック処理において優れており、バックアップとトラフィック負荷の要件を満たす動的ルーティング機能を提供しています。UPYUNはAPISIXの助けを借りてコンポーネントの統一性を高め、トラフィック処理とログ記録の効率を向上させました。

  • APISIXのプラグインを使用することで、UPYUNは従業員の認証とLarkとの統合を成功裏に実装し、パブリックネットワークのゲートウェイの機能を向上させました。

  • APISIXは、PrometheusとSkyWalkingをサポートすることで、UPYUNのシステムのモニタリングヘルスチェックを強化しました。

背景

UPYUNのビジネス特性

ゲートウェイは、UPYUNのビジネスエコシステムにおいて不可欠です。さまざまなサービスを調整、最適化し、円滑な運用を確保することで、UPYUNに効率的で安全かつ安定したソリューションを提供します。そのため、UPYUNは内部ゲートウェイアーキテクチャの改善に取り組んできました。

UPYUNのビジネスシナリオ

内部では、UPYUNはAPISIXをパブリックネットワークのゲートウェイおよびイングレスコントローラーとして使用しています。

  • パブリックネットワークのゲートウェイは、インターネットトラフィックの処理に焦点を当て、外部サービスのゲートウェイとして機能します。

  • イングレスコントローラーは、Kubernetesクラスター内のサービスへの外部アクセスを管理し、イングレスリソースの設定を通じて柔軟なトラフィックルーティングと制御を可能にします。

APISIX採用前の課題

APISIXを採用する前、UPYUNはパブリックネットワークのゲートウェイとしてKongを使用し、イングレスコントローラーとしてIngress-Nginxを使用していました。しかし、UPYUNはすぐにいくつかの問題に直面しました。

  • データベース接続の負荷が高い: UPYUNのKongアーキテクチャ内でPostgreSQLデータベースに接続すると、多数の接続が発生し、データベースのパフォーマンスが低下する可能性があります。

  • 接続システムの制御が複雑: フロントエンドにプロキシを追加しても、システムの更新や再起動時に接続システムを効果的に管理することが難しく、システムのメンテナンスが複雑になります。

  • Ingress-Nginxの運用が複雑: Ingress-Nginxは、複雑な依存関係によりプラグイン開発が困難で、移植性が低く、開発とメンテナンスの複雑さを増します。また、セマンティック能力が弱く、複雑なビジネスシナリオでの柔軟性に影響を与えます。イングレスルールを変更するたびにリロード操作が必要なため、持続的な接続に依存するシナリオでは特に不便です。

既存のロジックを維持する複雑さの中で、これらの問題はUPYUNにとって大きな課題となりました。その結果、チームは運用効率を向上させるため、より簡潔で先進的なゲートウェイの代替手段を探し始めました。

UPYUNがAPISIXを選んだ理由

強力なプラグインアーキテクチャによる柔軟性の向上

Apache APISIXのプラグインシステムを活用し、UPYUNは内部プラグインのセットを設計しました。これには、内部権限システムの検証や精密なレート制限などの機能が含まれます。この戦略的な取り組みにより、会社はより適応性の高い機能カスタマイズを実現し、ゲートウェイクラスターに多様な内部サポートを提供しました。

優れた安定性

クラウドベースの運用において、安定性は最優先事項です。特に小規模な企業や運用チームのメンバーが限られている企業にとって、APISIXをゲートウェイソリューションとして選択することは、外部ユーザーにとって安定したユーザー体験を保証するだけでなく、内部ビジネス展開の運用コストを効果的に管理します。

支援的なオープンソースコミュニティ

UPYUNの技術チームにとって、ゲートウェイがオープンソースであるかどうかは重要な考慮事項です。APISIXはオープンソースソリューションであり、活発なコミュニティサポートを活用することで、報告されたバグに対する迅速な対応と解決を保証します。

優れた拡張性

クローズドソースソフトウェアとは異なり、APISIXの優れた拡張性は、開発者がシームレスに適応し統合する方法を提供します。例えば、APISIXの多言語拡張機能により、UPYUNはビジネス拡大の文脈でビジネスニーズに合わせた追加機能を作成できます。この機能は、UPYUNの開発効率を大幅に向上させるだけでなく、今後の機能イテレーションとメンテナンスの利便性も高めます。

シームレスな統合と簡素化されたカスタマイズ

UPYUNは、一部のKubernetesクラスターでIngress-Nginxを統合しています。以前はIngress-Nginxにプラグインシステムがなかったため、特定のプラグインをカスタマイズしていました。内部データセンターとコンテナ化環境のゲートウェイにおいて、Apache APISIXとNGINXの間に顕著な機能的重複があるため、UPYUNは以前使用していたIngress-Nginxコンテナ化ゲートウェイをすべてApache APISIX Ingress Controllerに置き換える予定です。このステップは、ゲートウェイレベルでのコンポーネントの統一を図り、将来の開発と運用の取り組みにおける冗長性を軽減することを目的としています。

強化されたリロードサポート

APISIX Ingress Controllerはリロードサポートを備えており、運用効率を新たな高みに引き上げます。この機能により、サービスを中断することなく設定を動的に更新でき、迅速なデプロイメントと柔軟な運用操作が可能になります。その結果、運用効率が大幅に向上し、システムメンテナンスがより便利で迅速になります。

APISIXの実装

UPYUNの現在の内部ゲートウェイアーキテクチャは以下の図に示されています。外部トラフィックは最初にApache APISIXを通過し、その後APISIXを介してAPISIX Ingress Controllerに転送され、最終的にバックエンドサービスに到達してビジネス処理が行われます。

APISIXの実装

パブリックネットワークのゲートウェイ

トラフィック制御

パブリックネットワークのゲートウェイは、外部トラフィックの主要な入口として機能し、内部データセンターへのすべての流入を正確に制御および管理する重要な責任を担っています。この重要な側面において、APISIXはその強力な機能を通じてUPYUNにさまざまなトラフィック制御サービスを提供しました。

まず、APISIXゲートウェイは、CDNエッジノードからのAPIアクセスを処理することでトラフィックを管理しました。この支援により、CDNノードのパフォーマンスが最適化されただけでなく、今後のトラフィック管理の基盤が築かれました。さらに、APISIXは公式ウェブサイトの静的ページと技術サポートに関連するトラフィックを巧みに処理し、その多様なトラフィック制御能力を示しました。このターゲットを絞ったトラフィック処理アプローチにより、UPYUNは多様なアクセス要件に柔軟に対応し、システム全体の効率を向上させることができました。

認証

プラグインは、特に従業員が内部プラットフォームにアクセスする際に、UPYUN内で重要な役割を果たしています。現在、従業員はメールやLarkなどの方法で認証を受けます。Apache APISIXの強力なopenid-connectプラグインのおかげで、これらのプラットフォームとのシームレスな統合が実現され、従業員の認証が容易になりました。この革新的なアプリケーションは、APISIXプラグインの強力な能力を鮮明に示し、UPYUNに管理プラットフォームへのアクセスに対する効率的で統一された認証ソリューションを提供しました。

インテリジェントな連携とセキュリティ保護

より具体的なシナリオでは、UPYUNはopenid-connectプラグインとserverless-post-functionプラグインを組み合わせて、Feishuアプリケーションとのインテリジェントな連携を実現しました。これらのプラグインの協調的な動作により、ユーザー名、メール、またはLark内の一意の識別子などの関連ユーザー情報が、パブリックネットワークゲートウェイを通過した後にサービスに送信されます。ゲートウェイが関連する識別子情報を取得すると、それを効率的にサーバーに転送し、Larkの通知やメンションなどの機能を実現します。このプロセス中に、consumer-restrictionプラグインはユーザーに特定の権限制限を課すこともでき、システム全体のセキュリティと制御性を高めます。

イングレスコントローラー

内部アーキテクチャの変化

Apache APISIX Ingress Controllerを統合した後、UPYUNの内部アーキテクチャは以下の構造を示しています。

APISIX内部アーキテクチャ

前述のIngress-Nginxフレームワークとは異なり、基礎となるデータプレーンはApache APISIXクラスターに置き換えられました。上位のコントローラーはAPI Serverの変更を積極的に監視し、その後etcdを介して設定リソースをApache APISIXクラスターのすべてのノードに配布します。

APISIX比較

Apache APISIXの動的ルート変更能力が、右側のIngress-Nginx設定との決定的な違いです。Apache APISIXでは、すべての着信ビジネストラフィックが単一の場所に集約され、Luaコードを通じてルート選択が実行されます。この効率性により、コードのデプロイメントが簡素化され、管理が容易になります。一方、右側のIngress-Nginxのnginx.conf設定ファイルは複雑で、各Ingress変更ごとにリロード操作が必要です。

動的ルーティングと宣言的設定

Apache APISIXの動的ルーティング能力を活用し、Apache APISIX Ingress Controllerはその機能を効果的に実装しました。その主な役割は、APIServer内のリソース変更を監視し、データ構造の変換、検証、重要なDIFFの計算を実行することです。最後に、これらの変更をApache APISIX Admin APIに適用します。また、Apache APISIX Ingress Controllerは、Kubernetesリーダー選出メカニズムを直接介して高可用性ソリューションを導入し、外部コンポーネントを必要としません。

宣言的設定に関しては、UPYUNは強力なセマンティクスを持つCRDリソースを選択しました。この構造化されたデータ設定アプローチにより、Apache APISIXがサポートするあらゆる機能を実装できます。

CRDリソース

APISIX使用後の成果

トラフィック管理の改善

Apache APISIXは、UPYUNのトラフィック処理効率を大幅に向上させました。その強力なバックアップメカニズムと優れたトラフィック負荷処理能力により、特に大規模なトラフィック量を扱う際にUPYUNの安定性を確保します。緻密なトラフィック制御を通じて、APISIXはバックアップとトラフィック管理に関連する課題に効果的に対処し、UPYUNに信頼性の高いビジネスサポートを提供し、システムパフォーマンスを最適化しました。

統合と認証の簡素化

APISIXは、認証とプラグイン統合において優れています。openid-connectプラグインを使用することで、APISIXは多様な認証方法を効率的にサポートし、UPYUNに効果的な認証ソリューションを提供します。serverless-post-functionconsumer-restrictionなどのプラグインの組み合わせ機能により、インテリジェントなデータ転送と強力なアクセス制御が可能になり、システム全体の統合能力が大幅に向上しました。

ログ処理効率の向上

ログ処理に関しては、UPYUNは内部で複数のApache APISIXクラスターを実装し、データセンターゲートウェイとコンテナゲートウェイでの統一された使用を確保しました。この一貫性により、後続のログ処理と消費のための標準化されたロジックが確立されました。注目すべきは、Apache APISIXのログプラグインの強力な機能です。内部では、UPYUNはカスタムログ形式をサポートするKafka-Loggerプラグインを選択しました。

APISIXログ

モニタリングとヘルスチェックの最適化

モニタリングに関しては、UPYUNはPrometheusSkyWalkingなどのツールを使用しており、Prometheusが優先オプションです。基本的なプロキシとして機能するApache APISIXは、アプリのステータスコードとリクエストを監視できます。

まとめ

CDNクラウドサービス業界の主要プレイヤーとして、UPYUNはApache APISIXをそのインフラストラクチャに統合し、特にパブリックネットワークのゲートウェイとイングレスコントローラーに使用しています。APISIXの強力なプラグインシステムと優れたトラフィック管理能力は、UPYUNの運用品質と効率を大幅に向上させる上で重要な役割を果たしました。

今後の展望として、UPYUNはAPISIXとのさらなる協力を期待し、シナリオベースのCDNを強化し、クラウドストレージ、クラウド処理、クラウドセキュリティ、トラフィックマーケティングなどのサービスを提供する予定です。

Tags: