1725067861
2024-08-30 15:02:35
「急速に進化する今日のデジタル環境において、お客様がAzure上で利用するサービスや環境(それらのサービスが実行される環境)の数が増えています。Azureのパフォーマンスとセキュリティを確保するには、当社のチームが定期的なメンテナンスと更新に注意を払い、お客様のニーズに対応する必要があります。安定性、信頼性、タイムリーな更新は、今後も変わりません。
「急速に進化する今日のデジタル環境では、お客様が Azure で利用するサービスと環境 (それらのサービスが実行される環境) の数が増えています。Azure のパフォーマンスとセキュリティを確保するには、チームが定期的なメンテナンスと更新に注意を払い、お客様のニーズに対応する必要があります。変更をテストして展開する際、安定性、信頼性、タイムリーな更新のローリングは、常に最優先事項です。お客様とサービスへの影響を最小限に抑えるには、多面的なソフトウェア、ハードウェア、プラットフォームの状況を考慮する必要があります。これは最適化問題の一例です。最適化問題は、コストを抑え、さまざまな制約を順守しながら、リソースを割り当て、ワークロードを管理し、パフォーマンスを確保するための最適な方法を見つけることを中心とした業界の概念です。クラウド環境の複雑さと絶えず変化する性質を考えると、このタスクは重要かつ困難です。
Azure Core Insights データ サイエンス チームのプリンシパル データ サイエンティスト マネージャーの Rohit Pandey 氏とデータ サイエンティストの Akshay Sathiya 氏に、クラウド コンピューティングにおける最適化の問題へのアプローチについて話し合い、お客様が独自の環境でこれらの問題を解決するために使用できるように開発したリソースを共有するよう依頼しました。「—Azure CTO、マーク・ルッシノビッチ
クラウドコンピューティングにおける最適化問題
最適化の問題は、テクノロジ業界全体に存在します。今日のソフトウェア製品は、Web サイト、アプリケーション、オペレーティング システムなど、さまざまな環境で機能するように設計されています。同様に、Azure は、運用環境全体にわたるハードウェア モデル、仮想マシン (VM) の種類、オペレーティング システムにまたがる多様なサーバーとサーバー構成で適切に動作する必要があります。時間、計算リソース、およびサービス、ハードウェア、VM の追加に伴う複雑さの増大という制限により、最適なソリューションに到達できない場合があります。このような問題の場合、最適化アルゴリズムを使用して、妥当な時間とリソースを使用するほぼ最適なソリューションを特定します。ソフトウェアおよびハードウェア テスト プラットフォームの環境をセットアップする際に発生する最適化の問題を使用して、このような問題の複雑さについて説明し、ドメイン全体に適用できるこれらの種類の問題を解決するために作成したライブラリを紹介します。
環境設計と組み合わせテスト
新しい薬を評価するための実験を設計する場合、特定のグループの人々に影響を与える可能性のある潜在的な悪影響を評価するために、さまざまなユーザー層でテストすることになります。クラウド コンピューティングでも同様に、理想的には Azure のすべてのプロパティを代表し、運用環境で考えられるすべての構成を十分にテストできる実験プラットフォームを設計する必要があります。実際には、そうするとテスト マトリックスが大きくなりすぎるため、重要でリスクの高いものを対象にする必要があります。さらに、互いに悪影響を与える可能性のある 2 つの薬の服用を避けるのと同じように、クラウド内のプロパティにも、運用環境で適切に使用するために遵守する必要がある制約があります。たとえば、ハードウェア 1 は VM タイプ 1 と 2 でのみ機能し、3 と 4 では機能しない可能性があります。最後に、顧客が追加の制約を持っている場合があり、それを私たちの環境で考慮する必要があります。
考えられるすべての組み合わせを考慮して、重要な組み合わせをテストでき、さまざまな制約を考慮できる環境を設計する必要があります。AzQualify は、Azure 内部プログラムをテストするためのプラットフォームであり、制御された実験を活用して、ロールアウト前に変更を検証します。AzQualify では、プログラムはさまざまな構成と構成の組み合わせで A/B テストされ、運用展開前に潜在的な問題を特定して軽減します。
新しい薬をテストし、あらゆるシナリオであらゆるユーザーとあらゆる薬とのあらゆる相互作用に関するデータを収集するのが理想的ですが、それを行うには時間もリソースも足りません。クラウド コンピューティングでも同じ制約付き最適化問題に直面しています。この問題は NP 困難な問題です。
NP困難な問題
NP 困難、つまり非決定性多項式時間困難である問題は、解決が難しく、検証さえ困難です (誰かが最善の解決策を提示したとしても)。複数の病気を治す可能性がある新薬を例にとると、この薬のテストには、さまざまな患者グループ、環境、条件にわたる一連の非常に複雑で相互に関連した試験が含まれます。各試験の結果は他の試験の結果に依存する可能性があるため、実施が難しいだけでなく、相互に関連したすべての結果を検証することも非常に困難です。この薬が最善かどうかを知ることも、最善であることを確認することもできません。コンピューター サイエンスでは、NP 困難問題の最善の解決策が効率的に得られることはまだ証明されていません (また、証明される可能性は低いと考えられています)。
AzQualify で検討するもう 1 つの NP 困難な問題は、負荷を分散するためにハードウェア間で VM を割り当てることです。これには、リソース使用率を最大化し、応答時間を最小化し、単一の物理マシンの過負荷を回避する方法で、顧客の VM を物理マシンに割り当てることが含まれます。最適なアプローチを視覚化するために、プロパティ グラフを使用して、相互接続されたデータに関連する問題を表現および解決します。
プロパティグラフ
プロパティ グラフは、エンティティ間の複雑な関係をモデル化するためにグラフ データベースでよく使用されるデータ構造です。この場合、各タイプに独自の頂点を使用し、互換性関係を表すエッジを使用して、さまざまな種類のプロパティを表すことができます。各プロパティはグラフ内の頂点であり、2 つのプロパティが互いに互換性がある場合は、それらの間にエッジが存在します。このモデルは、制約を視覚化するのに特に役立ちます。さらに、この形式で制約を表現すると、新しい最適化問題を解決するときに既存の概念とアルゴリズムを活用できます。
以下は、3 種類のプロパティ (ハードウェア モデル、VM タイプ、オペレーティング システム) で構成されるプロパティ グラフの例です。頂点は、ハードウェア モデル (A、B、C、青い円で表されます)、VM タイプ (D と E、緑の三角形で表されます)、OS イメージ (F、G、H、I、黄色のひし形で表されます) などの特定のプロパティを表します。エッジ (頂点間の黒い線) は互換性の関係を表します。エッジで接続された頂点は、ハードウェア モデル C、VM タイプ E、OS イメージ I など、互いに互換性のあるプロパティを表します。

図 1: ハードウェア モデル (青)、VM タイプ (緑)、オペレーティング システム (黄) 間の互換性を示すプロパティ グラフの例
Azure では、ノードは複数のリージョンにまたがるデータセンターに物理的に配置されています。Azure のお客様は、ノード上で実行される VM を使用します。1 つのノードが同時に複数の VM をホストし、各 VM にノードの計算リソース (メモリやストレージなど) の一部が割り当てられ、ノード上の他の VM とは独立して実行されます。ノードにハードウェア モデル、実行する VM タイプ、その VM 上のオペレーティング システム イメージを持たせるには、3 つすべてが互いに互換性を持っている必要があります。グラフ上では、これらすべてが接続されます。したがって、有効なノード構成は、グラフ内でクリーク (それぞれ 1 つのハードウェア モデル、1 つの VM タイプ、1 つの OS イメージを持つ) によって表されます。
AzQualify で解決する環境設計の問題の一例として、上のグラフにあるすべてのハードウェア モデル、VM タイプ、オペレーティング システム イメージをカバーする必要があることが挙げられます。ハードウェア モデル A を実験のマシンの 40% に、VM タイプ D をマシンで実行されている VM の 50% に、OS イメージ F をすべての VM の 10% に配置するとします。最後に、マシンは正確に 20 台使用する必要があります。図 1 の互換性制約を満たし、他の要件を可能な限り満たすように、これらのマシン間でハードウェア、VM タイプ、オペレーティング システム イメージを割り当てる方法を解決することは、効率的なアルゴリズムが存在しない問題の例です。
最適化アルゴリズムのライブラリ
私たちはNP困難な問題を解くことから得た知識から汎用コードを開発し、 楽観的 ライブラリ。実装したアルゴリズム用の Python ライブラリと R ライブラリは存在しますが、これらのライブラリには制限があり、このような複雑な組み合わせの NP 困難な問題に使用するのは実用的ではありません。Azure では、このライブラリを使用して、さまざまな動的なタイプの環境設計問題を解決し、ドメイン間の拡張性を考慮しながら、あらゆるタイプの組み合わせ最適化問題に使用できるルーチンを実装しています。このライブラリを使用する環境設計システムにより、テストでより幅広いプロパティをカバーできるようになり、1 か月あたり 5 ~ 10 件の回帰を検出できるようになりました。回帰を特定することで、変更がまだ試作段階にある間に Azure の内部プログラムを改善し、変更が広く展開された後のプラットフォームの安定性と顧客への影響を最小限に抑えることができます。
optimiznライブラリの詳細
最適化問題へのアプローチ方法を理解することは、効率の最大化、コストの削減、パフォーマンスと信頼性の向上を目指す組織にとって極めて重要です。 楽観的 ライブラリを使用すると、コンピューティング環境で NP 困難な問題を解決できます。最適化や NP 困難な問題に不慣れな場合は、ライブラリの README.md ファイルにアクセスして、さまざまなアルゴリズムとのインターフェイス方法を確認してください。クラウド コンピューティングの動的な性質から学び続ける中で、一般的なアルゴリズムを定期的に更新するとともに、特定のクラスの NP 困難な問題に特に対応するように設計された新しいアルゴリズムを公開しています。
これらの課題に対処することで、組織はリソースの利用率を向上させ、ユーザー エクスペリエンスを強化し、急速に進化するデジタル環境において競争力を維持できます。クラウド最適化への投資は、コスト削減だけではありません。長期的なビジネス目標をサポートする堅牢なインフラストラクチャを構築することも重要です。
#最適化アルゴリズムによるクラウド #プラットフォームの運用と信頼性の向上