AIクラウドネイティブに関する簡単な講演:将来のAIミッド台湾の実践

はじめに:  2020年のYunqi Conferenceで、将来AIを担当するLiu Dongdongが、AIクラウドネイティブと将来のAIの実践についての理解を共有しました。この記事はスピーチの内容です。

AI時代の到来は、企業の基盤となるITリソースの豊富さと俊敏性に大きな課題をもたらします。AlibabaCloudの安定した柔軟なGPUクラウドサーバー、最先端のGPUコンテナ化された共有および分離テクノロジー、K8Sクラスター管理プラットフォームを使用してください。将来的には、クラウドネイティブアーキテクチャは、リソースの柔軟なスケジューリングを実現し、AIミドルステーションの俊敏で強固な技術的基盤を築きます。

2020年のYunqiConferenceで、将来のAI担当者であるLiu Dongdongが、AIクラウドネイティブと将来のAIにおけるAIの実践についての理解を共有しました。この記事はスピーチの内容です。

みなさん、こんにちは。GoodFutureAIの真ん中の技術責任者で台湾のLiuDongdongです。今日の私のスピーチのトピックは、「Good Future AICloudNativeに関する簡単な話」です。私の共有は主に4つの部分に分かれています。

まず、クラウドネイティブへのAIサービスの挑戦。
次に、AIとクラウドネイティブサービスの展開。
第三に、AIとクラウドネイティブのサービスガバナンス。
最後に、K8SとSpringCloudの有機的な組み合わせについてお話したいと思います。

1.クラウドネイティブへのAIサービスの挑戦

まず、クラウドネイティブに対するAIサービスの課題についてお話ししましょう。クラウドネイティブ時代において、AIサービスの最大の特徴の1つは、より優れたコンピューティング能力とより強力なサービスの安定性の必要性です。

 

image.png

私たちのサービスは、元の単一のサービスだけでなく、クラスターサービスに移管されました。同時に、パフォーマンスの安定性要件は、スリーナインからファイブナインに挑戦されています。

そうすると、これらの問題は、元の従来の技術アーキテクチャでは解決できなくなります。したがって、新しい技術アーキテクチャが必要です。

この新しい技術アーキテクチャとは何ですか?クラウドネイティブです。

クラウドネイティブが私たちにもたらす変化を見てみましょう。クラウドネイティブによってもたらされた最大の変化は、4つの主要なポイントと2つの主要な側面に要約しました。

4つの主要なポイントは、DevOps、継続的デリバリー、マイクロサービス、およびコンテナーの4つの特性です。2つの側面は、サービスの展開とサービスのガバナンスです。もちろん、12の要素のシステム全体の要約もあります。

 

image.png

今日の焦点は、サービスの展開とサービスのガバナンスです。

クラウドネイティブの波では、サービスの展開とサービスのガバナンスにどのように対処しますか?

まず、AIとクラウドネイティブサービスのデプロイを使用します。つまり、K8Sに加えて、リソース仮想化、リソースプーリング、その他のテクノロジーを使用して、AIサービスのさまざまなハードウェアリソースに対する需要の桁違いを解決します。

第二に、AIサービスは、クラウドネイティブのサービスガバナンスと有機的に組み合わされています。サービス検出、HPA、負荷分散などを含むサービスガバナンスのテクノロジーを通じて、AIサービスの5 9SLA要件を解決できます。

 

image.png

2.AIサービスのクラウドネイティブ展開

最初のポイントは、AIとクラウドネイティブサービスの展開を組み合わせる方法です。

まず、AI時代のサービス展開の特徴を見てみましょう

1つ目は、ハードウェアリソース要件とコストの増加の間の矛盾です。ハードウェア向けのAIサービスの需要は桁違いに増加していますが、ハードウェアの予算は桁違いに増加していません。

第二に、AIサービスのハードウェア要件は多様化しています。たとえば、高GPUの需要、高CPUの需要、高メモリの需要、さらにはいくつかの混合需要です。

第三に、AIサービスにはリソースの分離が必要です。各AIサービスは、互いに干渉することなく、これらのリソースを個別に使用できます。

第4に、AIサービスにはリソースプーリングの要件があります。AIサービスは、マシンの特定の構成を認識する必要はありません。すべてのリソースがプールされると、リソースの断片化を減らし、使用率を上げることができます。

最後に、AIサービスには予期しないリソースの要求があります。トラフィックは予測できないため、企業はいつでもリソースプールを拡張する機能を維持する必要があります。

 

image.png

私たちの解決策は何ですか?

まず、Dockerの仮想化テクノロジーを使用してリソースの分離を実現します。

次に、GPU共有テクノロジーを使用して、GPU、メモリ、CPUなどのリソースをプールし、リソース全体の統合管理を実行します。

最後に、汚染、公差、その他の技術的機能を含むK8Sリソースを使用して、サービスの柔軟な構成を実現します。

さらに、いくつかの高構成マシンを購入することをお勧めします。これらの高構成マシンは、主に断片化をさらに減らすためのものです。

もちろん、クラスターハードウェア全体の監視を実現し、ECSのさまざまな複雑なタイムルールスケジューリング機能(下図のcronは時間ベースのジョブスケジューリングタスク)を最大限に活用して、ピークに対処する必要があります。トラフィック。

 

image.png

次に、AIミドルステーションがこれらのAI展開の問題を将来どのように解決するかを詳しく見ていきましょう。

このページはノードサービス管理です。このビジネスを通じて、リソースの使用状況、展開されているポッド、ノードなど、各サーバーの展開ステータスを明確に確認できます。

 

image.png

2つ目は、実際にはAIミドルステーションのサービス展開ページです。圧縮ファイルを使用して、各ポッドのメモリ、CPU、GPUの使用量を正確に制御できます。同時に、汚染などの技術により、サーバーの多様な展開が実現されます。

 

image.png

比較実験によると、クラウドネイティブ展開とユーザーによる自己展開を使用すると、コストを約65%節約できます。さらに、AIクラスターの成長に伴い、このような利点は、経済的利益と一時的なトラフィックの拡大という点でより多くの利益をもたらします。

3.AIとクラウドのネイティブサービスガバナンス

次に、AIとクラウドネイティブサービスガバナンスについて説明します。

マイクロサービスとは何ですか?実際、マイクロサービスは単なるアーキテクチャスタイルのサービスであり、実際には小さなサービスのセット全体として単一のサービスを開発し、各アプリケーションには独自の実行プロセスがあり、HTTP、APIなどの軽量なプロセスもあります。コミュニケーションをとること。

 

image.png

これらのサービスは、実際にはビジネス自体を中心に構築されており、自動展開やその他の手段を通じて一元管理できます。同時に、それは異なる言語で書かれており、異なるストレージリソースを使用しています。

要約すると、マイクロサービスの特徴は何ですか?

まず、マイクロサービスは十分に小さいため、1つのことしか実行できません。
第二に、マイクロサービスはステートレスです。
第三に、マイクロサービスは互いに独立しており、インターフェース指向です。
最後に、マイクロサービスは高度に自律的であり、誰もが自分自身にのみ責任を負います。

 

image.png

これらのマイクロサービスの特徴を見た後、AIサービスとマイクロサービスの特徴をもう一度考えてみてください。AIサービスは本質的にマイクロサービスに適していることがわかりました。各マイクロサービスは、実際には本質的に1つのことしか実行しません。たとえば、OCR、OCRサービス、OCRサービスのみ、ASR、主にASRサービス。

次に、各AIサービスリクエストは独立しています。簡単な例として、1つのOCR要求と別のOCR要求は本質的に無関係です。

AIサービスは、本質的に水平方向の拡張を要求しています。どうして?AIサービスチームのリソースに対する需要が非常に大きいためです。したがって、この拡張は非常に必要です。

AIサービス間の依存関係も特に小さいです。たとえば、OCRサービスと同様に、NLPサービスやその他のAIサービスに大きな要件はない場合があります。

すべてのAIサービスは、宣言型HTTPまたはAPIを作成することでAI機能を提供できます。
AIサービスを詳しく見ると、すべてのAIサービスをマイクロサービスできるわけではないことがわかります。それで、私たちは何をしましたか?

まず、AIサービスをステートレスサービスにする必要があります。これらのステートレスサービスはすべて動物化され、ステートレスであり、破棄可能であり、一部のストレージを実行するためにディスクやメモリの要求方法を使用しません。機能。このようにして、サービスは任意のノードと場所に展開できます。

もちろん、すべてのサービスがステートレスになるわけではありません。ステータスがある場合はどうなりますか?これらのリクエストのステータスは、構成センター、ログセンター、Redis、MQ、SQLなどのデータベースを介して保存されます。同時に、これらのコンポーネントの高い信頼性を確保してください。

 

image.png

これは、将来のAIプラットフォームにおけるPaaSの全体的なアーキテクチャ図です。まず、最外層がサービスインターフェイス層であることがわかります。最も外側のインターフェース層は、外部にAI機能を提供します。

プラットフォーム層で最も重要な層はサービスゲートウェイです。サービスゲートウェイは、主に動的ルーティング、フロー制御、負荷分散、および認証を担当します。以下は、サービスディスカバリ、レジストリ、フォールトトレランス、構成管理、エラスティックスケーリングおよびその他の機能の一部です。

以下はビジネスレイヤーです。これらのビジネスレイヤーは、私たちがいくつかのAI推論サービスと呼んでいるものです。

下部には、AlibabaCloudが提供するK8Sクラスターがあります。

つまり、全体的なアーキテクチャでは、K8Sがサービスのデプロイを担当し、SpringCloudがサービスのガバナンスを担当します。

 

image.png

上記の全体的なアーキテクチャ図を実現するために、技術的な手段をどのように使用しますか?

1つは、Eurekaを登録センターとして使用して、分散システムでのサービスの検出と登録を実現することです。構成センターApollを介してサーバーの構成プロパティを管理し、動的更新をサポートします。ゲートウェイは、内層と外層を分離する効果を実現できます。Hystrixフュージングは​​、主にタイムシェアリングフュージングと数量フュージングに分けられ、サービスがブロックされないように保護します。

負荷分散とFegin操作により、トラフィック全体の負荷分散を実現し、Eureka関連の登録情報を利用できます。コンシューマバスKafkaは、非同期処理のコンポーネントです。次に、認証はOuth2 + RBAC方式で行われ、インターフェースの認証管理を含むユーザーのログインを実現し、安全性と信頼性を確保します。

リンク追跡はSkywalkingを使用します。このAPMのアーキテクチャを通じて、各要求のステータスを追跡できます。これは、各要求を見つけて警告するのに便利です。

最後に、ログシステムはFilebeat + ESを使用して、クラスター全体のログを分散して収集します。

 

image.png

同時に、展開サービスや制御サービスなど、独自のサービスもいくつか開発しました。主に、K8Sとの通信、K8Sクラスター全体でのサービスのサービス展開の収集、およびK8S関連のハードウェア情報を担当します。

次に、アラームシステムはPrometheus + Monitorを介して実行されます。これにより、ハードウェアデータを収集し、リソース、ビジネス、およびその他の関連するアラームを処理できます。

データサービスは主に、データのリフローを含むダウンロード、および推論シナリオでのデータ状況の傍受に使用されます。

現在の制限サービスは、各顧客の要求とQPS関連の機能を制限することです。

HPAは実際に最も重要な部分です。HPAは、メモリレベルまたはCPUレベルのHPAをサポートするだけでなく、一部のP99、QPS、GPU、およびその他の関連ルールもサポートします。

最後は統計サービスで、主にリクエストなどの関連する通話の量をカウントするために使用されます。

 

image.png

統合コンソールを通じて、AI開発者にワンストップソリューションを提供し、プラットフォームを通じてすべてのサービスガバナンスの問題を解決し、運用と保守の自動化を改善し、元々数人が維持する必要があったAIサービスを作成します。人は12以上のAIサービスを維持できます。

このページには、サービスルーティング、ロードバランシング、および電流制限に関連する設定ページが表示されます。

 

image.png

このページには、インターフェイスレベルでのいくつかのアラームと、展開レベルでのハードウェアアラームが表示されます。

 

image.png

これは、リアルタイムのログ関連機能を含むログ取得です。

 

image.png

手動スケーリングと自動スケーリングの操作ページです。その中で、自動スケーリングには、CPUおよびメモリレベルでのHPAと、対応する応答時間およびタイミングHPAでのHPAが含まれます。

 

image.png

4.K8SとSpringCloudの有機的な組み合わせ

最後に、K8SとSpringCloudの有機的な組み合わせについて説明しましょう。

 

image.png

あなたはこれらの2つの写真を見ることができます。左の写真は、ルートへのSpringCloudデータセンターの写真です。右側は、ポッドへのK8Sサービスの写真です。

2つの図は構造が非常に近いです。どうやってやったの?実際、アプリケーションをK8Sサービスにバインドすることです。つまり、最終的にSpringCloudのLBのアドレスに登録され、実際にはK8Sサービスのアドレスに変換されます。このようにして、K8SをSpringCloudと組み合わせることができます。これはルーティングレベルのコレクションです。このコレクションで、最終結果を達成することができます

 

image.png

SprigCloudは、Javaの技術言語ステーションです。AIサービスの言語は、C ++、Java、さらにはPHPを含む多様です。

クロスランゲージを実現するために、サイドカーテクノロジーを導入しました。RPCを介してAIサービスとサイドカーを通信することで、言語機能をシールドできます。

Sidecarの主な機能には、アプリケーションサービスの検出と登録、ルートトラッキング、リンクトラッキング、ヘルスチェックが含まれます。

これで本日のスピーチは終わりです。お聴きいただき、誠にありがとうございます。皆さん、ありがとうございました。

元のリンク

この記事はAlibabaCloudのオリジナルのコンテンツであり、許可なく複製することはできません。

おすすめ

転載: blog.csdn.net/xxscj/article/details/114092542