1. 分散システムの複雑さ1. AutoMLの事例例から始めましょう。上の写真は、自動分散機械学習サービスを構築するために最近構築した AutoML の例です。 図中の点線のボックスは自動機械学習サービスです。このサービスには次の役割があります: proxy は、AutoML クラスター全体でサービス エントリを提供する役割を担う常駐サービスです。さまざまな AutoML タスクに応じて、小さなボックスにトレーニング クラスターを作成します。小さなボックスには、トレーナーとワーカーの 2 つの役割があります。トレーナーはコーディネーターに似た役割で、完全な AutoML タスクを調整し、調整プロセス中に継続的にワーカーを作成して、AutoML 計算全体を完了します。 AutoML サービスはクラスター外部のクライアントを介してアクセスされ、AutoML に必要なモデルとデータの組み合わせがプロキシに送信されます。プロキシはユーザーのリクエストに基づいてトレーナーを作成します。もちろん、このプロセスでは、トレーナーの Pod またはプロセスを作成するために、K8S を通じてリソースを管理する必要があります。トレーナーは、クライアント側でモデルとデータを解析して必要なワーカーの数を計算し、K8S を通じて対応するワーカーを作成して、トレーニング タスク全体を開始します。 各ワーカーがトレーニングを完了すると、トレーナーは結果を収集し、AutoML タスク全体が完了したかどうかを確認し、最後に結果をプロキシに返します。結果を返すと、トレーナーとワーカーは破棄されます。 これは比較的完成度の高い AutoML サービスです。その特徴は、クラウド ネイティブ、マルチロール、高い弾力性、動的、ステートフル、頻繁な通信です。高い弾力性は主にプロキシとトレーナーの 2 つの役割に反映され、どちらも実行時に継続的にリソースを適用します。 2. テクノロジースタック分析次に、このケースをクラウドネイティブ環境で実装する場合に考慮すべき点について説明します。以下の分析は2つの側面から行われます。 テクノロジースタックの観点から、現在のアプリケーションシナリオが AI であると仮定すると、主なプログラミング言語は Python です。まず、プロキシ、トレーナー、ワーカーのロールを含む単一のアプリケーションを開発する必要があります。モノリシック アプリケーションの作成では、次の点に留意します。
3. プログラミング言語分析プログラミング言語の観点から、上記の分散システムを実装するには、次のプログラミング言語を適用する必要があります。
上記は、従来の考え方で分散システムを実装する際に考慮する必要があるテクノロジースタックとプログラミング言語です。 4. 分散システムの一般的な機能クラウドネイティブ環境全体における分散システムの構築は非常に複雑であることがわかります。しかし、分析してみると、開発および保守が必要なロジックの多くは一般的な分散システム ロジックであり、実際のビジネス ロジックとは直接関係がないことがわかります。たとえば、前述の AutoML のケースでは、ビジネス開発者やシステム開発者は AutoML 自体のロジックに重点を置きます。では、システムまたはビジネスの研究開発チームがビジネス ロジック自体に集中できるように、分散システムの一般的な機能をすべて解決できるシステムはあるのでしょうか? Ray はこの問題を解決するために作成されました。 2. レイの紹介Ray を使用して分散システムを構築する方法について説明する前に、まず Ray について簡単に紹介しましょう。 1. レイについてまず、GitHub 上の Ray のスター数の推移を見ると、2016 年半ばのオープンソース化から現在までに 2 つのマイルストーンを経験しています。左上の写真の赤い線は、レイの星番号の履歴データです。 2021年、レイの星の数はフリンクを超えました。 2023年5月には、カフカを超えるという新たなマイルストーンを達成しました。現時点では、Sparkの星の数とはまだ一定の距離があります。星の数から見ると、レイは非常に急速に成長しました。 右上は、Google の PATHWAYS 論文のスクリーンショットです。 PATHWAYS は実際には、Google 内で次世代 AI のインフラストラクチャとして認識されています。この論文では Ray が何度も言及されており、Ray が実際にこのインフラストラクチャにおける分散コンピューティング フレームワークになる可能性が非常に高いと考えられています。 中央右には、最近よく知られるようになった大手言語モデル企業であるOpenAIの情報があります。今年、OpenAI は GPT3.5 と GPT4 の分散トレーニングの詳細をいくつか公開しました。基盤となるレイヤーでも、Ray を使用して分散システム全体を構築します。 左下は、2022年にRayコミュニティがビッグデータ分野で行った作業です。クラウド リソースを使用してデータを並べ替え、シャッフル機能を適用します。このソートシステムは世界記録を破り、初めて 1 TB あたり 1 ドル未満のコスト (0.97 ドル) を達成しました。 右下の画像は、オフライン バッチ推論に関する Ray コミュニティによる最近の作業を示しています。 Ray を他の既存のソリューションと比較し、Ray を通じてデータを処理し、トレーニング システムにデータを提供するパイプライン プロセスを実装します。 Sparkと比較すると、スループットは2〜3倍高くなります。 上記の情報を通じて、Ray について高度な理解を得ることができます。 2. レイとは何かRay は、カリフォルニア大学バークレー校の RISELab 研究所が開始したオープン ソース プロジェクトです。 RISELab 研究所は業界では非常によく知られており、Spark もこの研究所から生まれました。 Ray は汎用分散コンピューティング エンジンです。その汎用性により、新世代のコンピューティング技術施設となる可能性があります。分散分野では、Ray のエコシステム全体により、AI 分野での統一されたプログラミング フレームワークになる可能性がさらに高まります。この部分については、後ほどオープンソース エコシステムのセクションでさらに詳しく説明します。 3. ユニバーサル分散プログラミングAPIレイの多才さはどこにあるのでしょうか?実際、Ray Core の API を見ると、Ray の設計思想は、任意のコンピューティング モードをバインドするのではなく、スタンドアロン プログラミングで基本概念を配布することであることがわかります。 API の設計から、Ray はビッグデータ システムではないことがわかります。特に、Ray Core レイヤーにはビッグデータ関連の演算子はありません。代わりに、スタンドアロン プログラミングの基本概念に基づいて配布されます。 具体的にどのように配布するのでしょうか?スタンドアロン プログラミングでは、関数とクラスという 2 つのコア概念がよく使用されます。オブジェクト指向プログラミング言語では、基本的にこれら 2 つの概念を中心にコードが開発されます。 Ray では、これら 2 つの基本概念は分散されており、分散システムのタスクとアクターに対応します。 4. 一般的な分散プログラミングAPI: ステートレスコンピューティングユニットタスクまず、タスクについて説明します。タスクはスタンドアロン プログラミングにおける分散機能であり、ステートレスなコンピューティング ユニットです。 上の写真は一例です。 CPU を集中的に使用する操作である、heavy_compute と呼ばれる関数があります。たとえば、単一のマシンで 10,000 回操作する必要がある場合、単一のコアでは、左側のコード、つまり単純な for ループが使用されます。マルチコア機能を使用する必要がある場合は、マルチスレッドまたはマルチプロセスを使用する必要があります。 Ray では、複数のマシンの機能を活用して機能を分散したい場合、全体のプロセスは非常にシンプルで、右の図に示すように 3 つのステップのみが必要です。
分散プロセス全体が非常に単純であり、プログラミング フレームワークとプロセス全体がスタンドアロン プログラミングの習慣を崩していないことがわかります。これは Ray のコア API 全体の中核機能でもあり、プログラマーに最大限の利便性を提供します。 5. 一般的な分散プログラミングAPI: 分散オブジェクトRay におけるオブジェクトの概念を見てみましょう。オブジェクトについて説明する理由は、Ray が別のノードに対して Heavy_compute 関数を実行し、結果を返すことができる理由を全員に理解してもらうためです。これは、Ray の基盤となる分散オブジェクト ストアに依存します。全体のプロセスは上の図の左側に示されています。 ノード 1 で、heavy_compute 関数を実行します。この関数は、Ray の基盤となるスケジューリング システムを介してリモートを使用してノード 2 にスケジュールされます。ノード 2 はこの関数を実行し、実行後に結果をローカル オブジェクト ストアに格納します。オブジェクト ストアは Ray のコア コンポーネントです。最終結果は、Ray の基盤となるオブジェクト ストア間のオブジェクト転送を通じて呼び出し元に返されます。 プロセス全体から、heavy_compute.remote は最終結果ではなく ObjectRef を返します。 ObjectRef は、分散型 future であり、最終結果が ray.get を通じて取得できることを除いて、スタンドアロン プログラミングの future に似ています。 Ray の分散オブジェクト ストアは、Ray の分散 API 全体の設計を完全にサポートするコア コンポーネントです。その特徴は次のとおりです。
6. 一般的な分散プログラミングAPI: ステートフルコンピューティングユニットアクタータスクとオブジェクトについては上記で説明しました。次にActorを紹介します。アクターも非常にシンプルで、スタンドアロン プログラミングのクラス概念の分散実装です。 左の図は、ステートフル コンピューティング ユニットである Counter クラスを示しています。右図のように分布しています。
3. Rayを使用して分散システムを迅速に構築する上記では、Ray のいくつかの中心となる概念を紹介しています。次に、先ほど述べたケースを見て、Ray を使用してこの分散システムを構築する方法を見てみましょう。 1. AutoML サービス - Ray クラスターのデプロイRay は、2 つの方法でデプロイできるクラスター化されたサービスです。
2. AutoMLサービスRay クラスターができたので、前の AutoML アーキテクチャ図に戻りましょう。ここでRayシステムが追加されました。 Kubernetes+Ray を使用してこの分散システムをどのように実装するのでしょうか? ユーザーの観点から見ると、K8s リソースは実際には見えなくなります。先ほどの紹介で、Ray の Actor と Task を使用して、システム全体でどれがステートフル コンピューティング ユニットでどれがステートレス コンピューティング ユニットであるかを分析し、それらを分散するという実装のアイデアは、誰でも簡単に思いつくと思います。
以下は、上記のアーキテクチャ図で、サービス システム全体が右から左にどのように実装されるかを簡単に説明したものです。 3. AutoML サービス - ワーカー (Ray タスク)ワーカーはタスクなので、関数をカプセル化する必要があります。関数 train_and_evaluate の主なロジックは、モデル、トレーニング データ セット、テスト データ セットを取得して、単一のマシンのトレーニングと評価を完了することです。上記は単一のマシンの計算に抽象化されています。次に、ray.remote を使用してそれをタスクに変換します。 4. AutoML サービス - トレーナー (Ray Actor)トレーナーは、複数のワーカーをスケジュールし、異なるワーカーに異なるタスクを割り当て、結果を収集して、単一の AutoML リクエストの計算プロセスを完了する必要があります。 まず、Trainer ビジネス ロジック全体をカプセル化する Trainer クラスがあります。次に、ray.remote を使用して Actor に変換します。 Trainer の train メソッドは、2 層のループを通じて複数のワーカーのスケジュールを実装します。実際には、上で実装したワーカーの train_and_evaluate 関数のリモート実行です。このようにして、分散システムで並行コンピューティングを実現できます。同時計算が完了すると、Trainer は結果を収集し、プロキシに返します。 5. AutoML サービス - プロキシ (Ray Actor)プロキシは外部サービスのエントリ ポイントであり、次の 2 つの機能を定義します。
ここで注目すべき点は、プロキシを展開するときに、サービス検出の名前を設定する必要があることです。 6. AutoML サービス - クライアントRay Client でアクセスすると、クライアントを取得した AutoML ユーザーは、まず ray.get_actor を介して上記のアクター名を渡すことでプロキシ ハンドルを取得し、次にプロキシ ハンドルを介してプロキシ メソッドを呼び出して AutoML アクセスを実現し、最後にプロキシの get_result を呼び出して最終的な計算結果を取得できます。 7. AutoML サービス - カスタマイズされたリソース次に、詳細をいくつか説明します。 最初の詳細はリソースのカスタマイズです。 純粋なクラウドネイティブ実装では、Ray がない場合、リソースのカスタマイズは YAML に書き込まれます。たとえば、トレーニングに必要な GPU の数や、コンピューティング ノードに必要な CPU の数など、これらはすべて YAML コンテナ仕様でカスタマイズされます。 Ray は、完全に気付かないコード化された構成という別のオプションを提供します。ユーザーは、実行時または Ray のタスクやアクターのデコレータでパラメータを追加し、Ray システムのスケジューリング機能を使用して対応するリソースを割り当てることができるため、分散システム全体のリソースをカスタマイズするという目的を達成できます。 GPU、CPU、メモリのサポートに加えて、Ray のリソース カスタマイズではカスタム リソースを挿入することもできます。 Ray のスケジューリングには、リソース グループやアフィニティ スケジューリング、アンチアフィニティ スケジューリングなどの高度な機能もいくつかあり、現在サポートされています。 8. AutoML サービス — ランタイム環境2 番目の詳細はランタイム環境です。 分散システムでは、分散システムのさまざまなコンポーネントが環境に対して異なる要件を持つことがよくあります。従来の考え方だと、環境をイメージに固めて、Dockerfile を通じて環境をカスタマイズする必要がありました。 Ray は、より柔軟なオプションを実装します。このオプションもコード化されており、実行時にタスクまたはアクターを作成する前に、指定されたコンピューティング ユニットのランタイム環境をいつでもカスタマイズできます。上図では、ワーカーのタスクにruntime_envを設定し、専用のPythonバージョンをカスタマイズし、そのバージョンにいくつかのpipパッケージをインストールすることで、Python向けの分離環境のカスタマイズが完了します。このとき、Ray クラスターはタスクを作成する前に環境を準備し、その環境でタスクが実行されるようにスケジュールします。 Ray のランタイム環境はプラグインベースで設計されています。ユーザーはニーズに応じてさまざまなプラグインを実装できます。 Ray は、Pip、Conda、Container などのいくつかのプラグインをネイティブにサポートしています。環境に関連している限り、コード依存関係だけでなく、プラグインを通じて実装できるデータ依存関係も可能です。 実行環境の観点から見ると、右下の図は、Python を例にとると、分離のサポートには次の次元があることを示しています。1 つ目はプロセス レベルの分離、2 つ目は仮想環境レベルの分離、3 つ目は Conda レベルの分離、最後はコンテナー レベルの分離です。 孤立という点では、右から左へ、弱いものから強いものへです。プロセスの分離は非常に弱く、コンテナの分離はより強力です。 ユーザー エクスペリエンスの観点から見ると、環境のカスタマイズに関しては、コンテナーの方が重く、プロセスの方が軽量です。 そのため、Ray では、ユーザーは自分の環境カスタマイズのニーズに応じて、カスタマイズする環境の粒度を選択できます。完全なコンテナ レベルの分離が必要な人もいれば、プロセス レベルの分離のみが必要な人もいます。ニーズに合わせてお選びいただけます。 9. AutoML サービス - 運用と監視3 番目の詳細は、操作、保守、監視です。 Ray は Ray Dashboard を提供します。 Ray ダッシュボードは、Ray ノード、Ray アクターなど、Ray クラスター全体のさまざまなディメンション情報の公開を実現します。さらに、クラスター内にはログとイベントがあります。たとえば、Actor のメソッドが異常に実行された場合、Ray はイベントを通じてダッシュボードにスタックを収集するため、問題をすばやく特定するのに便利です。さらに、プロファイリング ツールもあります。 Ray ダッシュボードはフレーム グラフをサポートしており、ワンクリックで任意のアクターまたはタスクのプロセス ステータスまたはスタックを確認することもできます。 Ray ダッシュボードに加えて、Ray はブラック スクリーンの Ray State Client も提供しており、これを使用してクラスター全体のステータスを照会することもできます。 監視に関しては、Ray は Metrics フレームワークを統合します。ユーザーは Ray のメトリック インターフェースを直接呼び出してメトリックを書き込んだ後、Ray ダッシュボードに iframe の形式で Grafana を埋め込んで簡単な監視を行うことができます。 10. レイの建築以下は Ray のアーキテクチャの紹介です。 Ray のアーキテクチャは多くのビッグ データ システムに似ており、マスター ノード (ヘッド ノード) とその他はワーカー ノードです。 マスターノードには GCS ロール (グローバル コントロール サービス) があります。 GCS は、Hadoop アーキテクチャの Yarn のリソース マネージャーと同様に、主にクラスター全体のリソースのスケジューリングとノード管理を担当します。 Ray のワーカー ノードは主に Raylet の役割を果たします。スタンドアロンのプロセス管理とスケジューリングに加えて、先ほど述べた分散オブジェクト ストアも Raylet プロセスに統合されている重要な機能です。 11. まとめ上の写真は私たちが行った実験です。 Ray+ のクラウドネイティブ実装に加えて、同じロジックをクラウドネイティブな方法で実装するための一連のコードも作成しました。コードは上記画像の下の GitHub リポジトリに配置されています。ご興味があればぜひご覧ください。 実験評価結果は次のとおりです。
4. Rayオープンソースエコシステム最後に、Ray のオープンソースステータスを紹介します。 1. 活動Ray の活動状況を見ると、2016 年にオープンソース化されて以来、着実に成長を続けていることがわかります。現在、コミュニティには 800 人以上の貢献者がおり、スターの数は 26,000 を超えています。 2. レイ中国コミュニティレイは中国に中国人コミュニティを持っており、これは長い間 Ant によって維持されています。
3. レイフォワード2023中国ではレイフォワードが5回開催されており、アントは2023年7月2日に最新のレイフォワードを開催したばかりです。5回のレイフォワードからトレンドが感じられます。最初の 2 年間は、講演のほとんどを Ant とカリフォルニア大学バークレー校の RISELab 研究所の担当者が行いました。過去2年間で、ますます多くの国内企業がレイフォワードを訪れ、自社のトピックを共有してきました。今年はトピックが最も多くあります。 4. レイ 2.0 - レイ AIR私が今言ったことは、Ray のコンセプトとケース全体の観点から見ると、実際には Ray の基盤となる Core の中核機能です。 Ray エコシステムは AI の分野で多大な努力を費やしてきました。上の写真は、Ray AIR (Ray AI Runtime) と呼ばれる Ray 2.0 の中核概念です。 Ray AIR の設計コンセプトは、データ処理、トレーニング、チューニング、サーブなど、AI パイプラインの各処理フローにさまざまな主流ツールを統合することです。 Ray を使用して AI パイプラインを構築する場合、データ処理に Spark を選択することも、Mars や Dask などの Python 科学計算ツールを選択したり、Ray のネイティブ Ray データセットを選択したりすることもできます。トレーニングに関しては、ビジネスニーズに応じて PyTorch や TensorFlow などのトレーニング フレームワークを選択できます。 Ray AIR は、拡張可能で統合された機械学習ツールセットとして位置付けられており、最終的にはユーザーが 1 つのスクリプトだけで AI パイプライン全体を構築するのに役立ちます。これは融合コンピューティングのアイデアです。 Ray が導入される前は、パイプライン全体に複数のシステムが直列に接続されていました。 Ray の後には、オーケストレーションとスケジューリングを完了するための統合ランタイムが最下層にあります。 5. エコシステム上の写真は古い写真で、主に Ray のエコシステムを示すために使用されました。主に 2 つのライブラリに分かれており、1 つは Ray のネイティブ ライブラリ、もう 1 つはサードパーティ ライブラリです。
6. エンタープライズアプリケーションRay のエンタープライズ アプリケーションは非常に広範囲にわたります。 先ほど述べた大規模言語モデルのシナリオにおける OpenAI に加えて、上の図には、長年 Ray を統合してきた企業がいくつかリストされています。全体的に見ると、海外での開発が多く、中国での開発は比較的少ないです。いくつかの伝統的な企業を含む多くの大手外国企業が、基盤となる分散システムの構築に Ray を使用しています。 7. 大規模モデルのトレーニング上の図は、大規模モデルのトレーニング用に Ray を統合したいくつかのオープンソース フレームワークをまとめたものです。
8. 大規模モデルのトレーニング - Alpa on Ray上の写真は、Alpa の詳細なアーキテクチャを示しています。レイは主に中間層にいることがわかります。 Alpha プロジェクトでは、レイヤー間およびレイヤー内の並列化を自動的に実現できます。全体的なイノベーションの観点から見ると、これは最先端の分散トレーニング フレームワークです。 9. 他のオープンソースプロジェクトとの統合上の図は、AI に加えて Ray の機能を統合したオープンソース フレームワークを示しています。
5. 質疑応答A1: Ray の現在の使用シナリオは何ですか?リアルタイム ストリーム コンピューティング シナリオをサポートしていますか?Q: Ray の使用シナリオは実はかなり多岐にわたります。特に、Ant は、先ほど述べたフロー グラフ コンピューティング フレームワークである GeaFlow など、Ray をベースにした多くのフレームワークを構築しており、これは比較的大きな方向性です。さらに、先ほど述べたプライバシー コンピューティングも別の方向性です。これに加えて、Ant は社内に同様の機能を持つコンピューティング システムも持っており、これも Ray をベースに構築できます。 Ray API から、Ray が関数計算に非常に便利であることがわかります。さらに、科学計算やオンライン機械学習もあります。最近では、Ray をベースに検索およびプッシュ エンジンを構築できるかどうかも検討しています。 AI に関して言えば、Ant 内で最も一般的に使用されている AI オンライン サービスは、1 つ以上のモデルまたは大規模なモデルを適用して推論サービスを提供する方法です。フェイルオーバーを含む外部リソースのオーケストレーションとスケジューリングの全プロセスで、Ray Serve を使用してオンライン サービスをサポートできます。 Ray は、AI データ処理、トレーニング、Ray Tune、最近の大規模モデル シーンなど、AI で広く使用されています。これらすべてにおいて、基盤となる分散シャーシを完成させるために Ray が使用されています。 A2: Ray はストレージとコンピューティングの分離をサポートしていますか?ノード 2 は計算を完了し、結果をローカル オブジェクト ストアに保存して、他のノードが結果を取得するのを待機します。すべての結果が得られるまで待ってからリリースする必要がありますか?Q: はい。 Ray のネイティブ オブジェクト ストアに基づく場合、結果をノード 2 に配置する必要があります。配置後、ノード 2 が異常終了すると、データが失われる可能性があります。もちろん、ユーザーは Ray のネイティブ系統機能または独自のフェイルオーバー機能を通じて回復できます。データが失われないようにする必要がある場合は、高可用性を実現し、オブジェクト ストアを拡張する必要があります。現在、Ray オブジェクト ストアはコンピューティング エンジンの中間結果を格納するために使用されており、永続的に格納する必要はありません。 A3:レイはほとんどのシナリオでSparkを直接置き換えることができますか、それとも互いに対立していない2つはできますか?Q:それらの間に対立はないと思います。 Rayの設計コンセプトから、ビッグデータシステムに対してベンチマークされていません。先ほど述べたように、Ray Ecosystem全体で、ユーザーはRayでSparkを実行することもできます。また、Ray On Sparkで作業するプロジェクトもあります。 Sparkには、データ処理の分野にコア機能があります。トレーニング前にシンプルなデータの前処理を行い、複雑なオペレーターを巻き込む必要がない場合は、Rayを直接使用できます。ただし、コンピューティングシナリオがより複雑で、ビッグデータ処理の傾向があり、より複雑なシャッフルロジックまたはより複雑な演算子を使用する場合でも、Sparkを処理してからRay Ecosystemに接続することができます。ユーザーは、独自のコンピューティングシナリオに基づいてテクノロジーを選択できます。 A4:両方とも俳優モデルと同様に、RayとAkkaの分散コンピューティングフレームワークを比較できますか?Q:AkkaのAPIがどのように見えるかについて、私はそれほど深い印象を持っていません。 RayのAPIとはまったく異なるはずだと理解しています。レイは、主にプログラミングの観点に基づいており、タスクとアクターがあります。レイの俳優モデルの概念は、伝統的な俳優モデルとはわずかに異なります。レイの俳優はより分配されており、現在、単一のマシン上のスレッド間の相互作用をサポートしていません。 A5:レイはどのように障害を容認しますか?Q:フォールトトレランスには2つの次元があると考えています。 最初の次元は、レイがタスクであろうと俳優であろうと、プロセスを提供するため、粗い粒度のプロセスレベルの断層トレランスです。タスク/俳優のフェールオーバーは、最初にタスク/アクターが配置されているプロセスを検出し、異常に終了したかどうかを特定します。これは分散システムの基本的な機能であり、RayのRayによって完全に実装されています。 2つ目は、プロセスディメンションのフェールオーバーです。タスク、特に俳優が異常に終了すると、レイは新しいインスタンスのために異常に排出されたエンティティを再スケジュールする責任があります。言い換えれば、粗粒の回復はレイによって完全に処理できます。 2番目の次元は、主にプロセスの状態に関するものです。 Rayは、実際には内部コンピューティングロジックを指定していません。バッチコンピューティング、AIトレーニング、または任意の機能を実行できます。レイは内部コードが何をしているのかわかりません。したがって、州の回復に関しては、現在のRayの主流の使用は、州の回復をユーザーのビジネスコードに任せることです。もちろん、ユーザーはRayインターフェイスを使用して、システムが再起動されたかどうか、何回再起動したかを知ることができます。ユーザーは、以前のステータスのチェックポイントを作成する必要があります。これらのステータスは、ストレージまたはRayの下部にあるオブジェクトストアに保存できます。 ユーザーは、さまざまなフェイルオーバー信頼性要件に基づいて特定の計画を立てることができます。しかし、一般的に、一般的な使用法は、粗粒のフェールオーバーがRayによって管理されており、Ray自体のアプリケーションによって細粒状態の回復が実行されることです。 |
>>: 異なるクラウド インフラストラクチャ間で一貫したセキュリティを確保する方法
ドメイン名が 2006 年に登録された gatenode は、6 年間の業界経験を誇るホスティング会...
[[423396]]背景現在、一部のインターネット企業は、コアビジネスを実行するためにメッセージ キ...
現在、To C分野の配当が枯渇したため、To Bのトレンドに追いつくために、BATは抜本的な構造調整...
[[259759]]エッジ コンピューティングのコンセプト株はしばらく前に大いに宣伝され、多くの本物...
最近、宇通はWeChatで小規模なTaobao販売者からいくつかの支援要請を受けました。彼らはTao...
「安い、早い、良い、2つ選んでください」? CAP 定理: ケーキを食べて、それをまた手に入れること...
テンセントクラウドやアリババクラウドなどの国内企業は、新規顧客を獲得し市場を拡大するために、長年にわ...
5月28日、アリババクラウドサミット2021において、アリババクラウドは金融機関が新世代のクラウドネ...
編集者注: Murthy Nukala 氏は、多くの有名ブランドに広告テクノロジーを提供する企業、A...
クラウド コンピューティングの概念は、誕生以来、誤解、混乱、誇大宣伝から逃れられずにきました。何年も...
[[433078]] RTA の背景RTA 配信モデルは過去 2 年間で徐々に人気が高まり、現在では...
さらに読む: Renren Videoが再びダウン、同じタイプのウェブサイトへのアクセスは正常Ren...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています現在、携帯...
Hyperfilter は 2011 年から運営されており、主に強力な DDoS 防御サービスを提供...
2022年が近づき、防疫のさらなる安定化に伴い、ビジネスの革新と生産の再開が新年の主なテーマとなるこ...