360 通过 APISIX 提升云资源管理
December 11, 2020
概要
360基本運用保守プラットフォームについて
360基本運用保守プラットフォームは、企業向けのクラウドベースのアプリケーション管理および監視プラットフォームであり、企業がクラウドリソースをより効果的に管理し、アプリケーションの可用性とパフォーマンスを向上させ、ビジネスニーズの増大に対応することを支援するために設計されています。
APISIXを使用する前、360基本運用保守プラットフォームのゲートウェイ層には、大規模なトラフィック処理時のパフォーマンスと拡張性の低さ、および管理と監視の複雑さといった欠点がありました。そのため、チームはゲートウェイ層を改修し、プラットフォームの応答時間と管理効率を向上させることを計画しました。チームは、高性能で拡張性が高く、管理が容易なゲートウェイ層を構築し、クラウドアプリケーションの管理と監視をより効果的に行うことを目指しています。
課題
- アプリケーションの複雑さ: クラウドベースのアプリケーションは、通常、従来のアプリケーションよりも複雑で、複数のモジュールとサービスが関与し、より複雑なデプロイメントと管理が必要です。
- アプリケーションの可用性とパフォーマンス: クラウドベースのアプリケーションは、ユーザーの要求を満たすために高い可用性とパフォーマンスを維持する必要があります。これには、より優れた監視とトラブルシューティングが求められます。
- アプリケーションのセキュリティ: クラウドベースのアプリケーションは、データのセキュリティとプライバシーを確保する必要があり、より優れたアクセス制御とセキュリティポリシーが必要です。
成果
- プラグインベースのアーキテクチャが正常に構築され、システムのカスタマイズと拡張の柔軟性が大幅に向上しました。
- プラットフォームは、高負荷下でも高い可用性と応答性を維持できます。
- 管理者はシステムをリアルタイムで監視し、迅速に問題を特定して解決できるため、システムが常に最高効率で動作することを保証できます。
360がAPISIXを選んだ理由
360基本運用保守プラットフォームチームが最終的にApache APISIXを選択した主な理由は、etcdのストレージオプションが使用シナリオに適していたためです。ストレージソリューションを選択する際には、データタイプ、データ量、読み書き頻度、データアクセスパターン、データセキュリティなど、複数の要素を考慮する必要があります。etcdと比較して、他のストレージオプションにはいくつかの欠点があります。
例えば、Postgresは複雑なデータクエリとトランザクション処理に適していますが、読み書きパフォーマンスと拡張性に欠けています。Cassandraは大規模なデータストレージと分析に適していますが、高い読み書きパフォーマンスとデータ一貫性に欠けています。Redisは高速キャッシングとデータストレージに適していますが、データ一貫性と信頼性を向上させる必要があります。PaaSは迅速なアプリケーションの構築、デプロイ、管理に適していますが、より柔軟で拡張性のあるストレージソリューションが必要です。Zookeeperは分散アプリケーションの管理と調整に適していますが、データ一貫性と信頼性に欠けています。
比較すると、etcdは、高い信頼性、拡張性、パフォーマンス、使いやすさを備えた分散キーバリューストレージシステムとして、360クラウドコンピューティング基本運用保守プラットフォームのニーズをよりよく満たすため、ストレージソリューションとして選択されました。ストレージオプションに加えて、APISIXは360基本運用保守プラットフォームチームに他の驚きももたらしました。以下の表は、ストレージ選択以外のさまざまな側面でAPISIXと類似製品の違いを示しています。
APIゲートウェイ | APISIX | Kong | Tyk | Apigee | AWS | Aliyun |
---|---|---|---|---|---|---|
デプロイメントモード | シングルノード & クラスター | シングルノード & クラスター | シングルノード & クラスター | シングルノードデプロイメント非対応 | PaaS | PaaS |
ストレージ選択 | etcd | Postgres, Cassandra | Redis | Postgres, Cassandra, Zookeeper | PaaS | PaaS |
オープンソースかどうか | Apache License 2.0 | Apache License 2.0 | MPL License | No | No | No |
コア技術 | NGINX + Lua | NGINX + Lua | Golang | / | / | / |
プライベートデプロイメント | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
カスタムプラグイン | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
コミュニティ参加度 | 高 | 高 | 高 | 中 | 低 | 低 |
YAMLサポート | サポート | サポート | サポートなし | サポートなし | サポートなし | サポートなし |
以下の図は、360基本運用保守プラットフォームプロジェクトの最終的なアーキテクチャを示しており、企業のコンテナクラウドにデプロイされたゲートウェイサービスと、3台の仮想マシンにまたがるクラスターにデプロイされたetcdサービスが含まれています。
APISIX使用後の成果
プラグインベースの開発を成功裏に構築
Apache APISIXは、トラフィック処理や特定のシナリオに対する顧客のさまざまな要件を満たすためにプラグインを利用しています。現在、100以上のすぐに使用できるプラグインがあり、ユーザーは新しい機能をサポートするためにカスタムプラグインを開発できます。
現在、360運用保守プラットフォームは、APISIXが提供する自社開発およびネイティブプラグインを使用して、ユーザー認証、IPレート制限、リクエスト転送、ログ記録、アラーム機能など、さまざまな機能を実装しています。
360基本運用保守プラットフォームのプロジェクトファイルには、「libs」と「plugins」の2つのディレクトリがあります。「libs」ディレクトリにはいくつかの一般的なライブラリが含まれており、「plugins」ディレクトリにはカスタムビジネスプラグインが含まれています。360プラットフォームのすべてのビジネス操作は、プラグインメカニズムを使用して開発されています。プロジェクトには2つのエントリドメインがあります。1つはOpenAPIアクセス用で、basic-auth認証プラグインを使用し、もう1つはWebブラウザアクセス用で、web-auth(クッキー認証)プラグインを使用します。以下の図は、プロジェクトで現在使用されているプラグインを示しています。
高トラフィックを容易に管理
適切な技術を選択し、効果的に実装することで、360基本運用保守プラットフォームは、ビジネスニーズの増大に対応できる高性能で堅牢なクラウドベースのアプリケーション管理プラットフォームを構築することができました。
360基本運用保守プラットフォームには現在、ゲートウェイに約900のAPIが追加されており、1日あたりの平均PVは約1000万です。監視システムによると、ゲートウェイとそのさまざまなマイクロサービスは順調に動作しています。これは、プラットフォームのインフラストラクチャが高トラフィックを処理し、ユーザーに高い可用性を確保できることを示しています。また、APISIXをゲートウェイ層として選択することで、開発チームがシステムアーキテクチャの設計と実装において優れた仕事をしたことも示しています。この成功は、APISIXの拡張性と信頼性、およびetcdをストレージソリューションとして使用したことなど、いくつかの要因に起因しています。今後、プラットフォームはシステムパフォーマンスを監視し、必要に応じて改善を続け、ユーザーに対して高い品質とサービスを維持することを目指します。
システムを効率的に監視
APISIXが提供する可観測性機能は、360基本運用保守プラットフォームに複数の利点をもたらします:
-
まず、APISIXの可観測性機能は、開発者がシステムをより効率的に監視し、潜在的な問題をタイムリーに検出して解決し、システムの信頼性を向上させるのに役立ちます。
-
次に、アクセスログとリアルタイムメトリック監視は、開発者が問題を迅速に特定し、システムパフォーマンスを最適化し、システムの可用性とパフォーマンスを向上させるのに役立ちます。
-
最後に、ヘルスチェックはバックエンドサービスの可用性を確保し、リクエスト転送戦略を自動的に調整し、ユーザーエクスペリエンスを向上させ、ユーザーにより良いサービスを提供します。
APISIXの可観測性機能は、360基本運用保守プラットフォームがシステムをより効率的に監視および管理し、システムの可用性、パフォーマンス、信頼性を向上させ、ユーザーにより良いサービスエクスペリエンスを提供するのに役立ちます。
まとめ
360基本運用保守プラットフォームは、etcdのストレージオプションが使用シナリオに適していたため、APISIXを選択しました。APISIXはまた、プラグインベースの開発、優れた可観測性、システムの監視と管理の向上など、他の利点ももたらしました。