JP2023509369A - マルチクラウド環境におけるワークロードの実施 - Google Patents

マルチクラウド環境におけるワークロードの実施 Download PDF

Info

Publication number
JP2023509369A
JP2023509369A JP2022537262A JP2022537262A JP2023509369A JP 2023509369 A JP2023509369 A JP 2023509369A JP 2022537262 A JP2022537262 A JP 2022537262A JP 2022537262 A JP2022537262 A JP 2022537262A JP 2023509369 A JP2023509369 A JP 2023509369A
Authority
JP
Japan
Prior art keywords
cloud
workload
vendors
computer
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022537262A
Other languages
English (en)
Inventor
ジャイン、アビシェク
エダ、サシカンス
ディキシス、ディリープ
パティル、サンディープ
マニ、アンバザガン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023509369A publication Critical patent/JP2023509369A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0283Price estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Game Theory and Decision Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一態様によるコンピュータ実装方法は、複数のクラウド・ベンダーの特性を決定および記憶することと、ワークロードを複数の論理ステージに分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。

Description

本発明はワークロードの実施に関し、より詳細には、本発明はクラウド・ベンダーへのワークロード動作の分散に関する。
クラウド・ベンダーを使用して、コンピューティング、ストレージ、帯域幅などのリソースをワークロードに提供することがよくある。これらのワークロードの実施中に、サイバー・レジリエンスを維持することが重要な懸念事項になる。たとえば、ワークロードの実施中にワークロード・データは保護される必要があり得、ワークロードの実施中に所定のサービス・レベルが提供される必要があり得る。同様に、システム障害、マルウェアなどに関係なく、ワークロードは完了される必要があり得る。
しかしながら、現在のワークロードの実施では、ワークロードの実施を最適化および保護するために、利用可能なクラウド・ベンダーを考慮すると、ワークロードの様々な部分が最適化されていない。
一態様によるコンピュータ実装方法は、複数のクラウド・ベンダーの特性を決定および記憶することと、ワークロードを複数の論理ステージに分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
他の態様によれば、複数のクラウド・ベンダーのうちのそれぞれの特性は、クラウド・ベンダーを分析することによって決定され、分析することは、クラウド・ベンダーのスキャンを実行するために、能力および費用アプリケーション・プログラミング・インターフェース(API:application programming interfaces)を動作させることを含む。
このようにして、ワークロード内の各論理ステージの実施は、最適なクラウド・ベンダーに送られて実施され得る。これにより、各論理ステージを実行するために必要なリソース(たとえば、コンピューティング・リソース、ストレージ・リソース、セキュリティ・リソースなど)の量が減少し得、ひいては、ワークロードを実施(たとえば、実行など)する1つまたは複数のコンピューティング・システムのパフォーマンスが向上し得る。
他の態様によれば、マルチクラウド環境においてワークロードを実施するためのコンピュータ・プログラム製品は、プログラム命令を具現化するコンピュータ可読記憶媒体を含み、コンピュータ可読記憶媒体自体は一過性の信号ではなく、プログラム命令は、プロセッサによって実行可能であり、プロセッサに方法を実行させ、方法は、プロセッサによって、複数のクラウド・ベンダーの特性を決定および記憶することと、プロセッサによって、ワークロードを複数の論理ステージに分割することと、プロセッサによって、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、プロセッサによって、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
一態様によれば、複数のクラウド・ベンダーのうちのそれぞれの特性は、クラウド・ベンダーを分析することによって決定され、分析することは、クラウド・ベンダーに関して収集されたレビュー情報に基づいて、クラウド・ベンダーのそれぞれに関する1つまたは複数の実行可能性要因(viability factor)を推定することを含み、実行可能性要因は、サービス性、ネット・プロモーター・スコア(NPS:net promoter score)、ユーザ・レビュー、パフォーマンス・ベンチマーク、およびチューニングの柔軟性を含むグループから選択される。
他の態様によれば、システムは、プロセッサと、プロセッサと統合された、もしくはプロセッサによって実行可能な、またはプロセッサと統合され、プロセッサによって実行可能なロジックと、を含み、ロジックは、複数のクラウド・ベンダーの特性を決定および記憶することと、ワークロードを複数の論理ステージに分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を行うように構成される。
他の態様によれば、ワークロードを分割することは、ワークロード内のデータ入力および出力のポイント、ならびにワークロードへの入力に関連する依存関係を特定するために、ワークロードを解析することを含む。
このようにして、各論理ステージのサイバー・レジリエンシーが確保され得、これにより、システムの機能停止またはマルウェアによって失われるデータ/計算作業の量が減少し得、ひいては、ワークロードを実施するコンピューティング・システムのパフォーマンスも向上し得る。
他の態様によれば、コンピュータ実装方法は、複数のクラウド・ベンダーを分析することによって、複数のクラウド・ベンダーの特性を決定することであって、分析することは、複数のクラウド・ベンダーのスキャンを実行するために、能力および費用アプリケーション・プログラミング・インターフェース(API)を動作させることと、複数のクラウド・ベンダーのうちのそれぞれのレポート、傾向、脆弱性、セキュリティ問題などのうちの1つまたは複数を特定するために、1つまたは複数のパブリックおよびプライベート・セキュリティ・データベース情報を収集および解析することと、複数のクラウド・ベンダーのうちの1つまたは複数に関する既存のセキュリティ問題に対する既存の解決方法を決定するために、1つまたは複数の解決策データベースを解析することと、を含む、決定することと、ワークロードを複数の論理ステージに分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
他の態様によれば、コンピュータ実装方法は、複数のクラウド・ベンダーの特性を決定および記憶することと、ワークロードを複数の論理ステージに分割することであって、ワークロード内のデータ入力および出力のポイント、ならびにワークロードへの入力に関連する依存関係を特定するために、ワークロードを解析することと、ワークロード内のデータ入力および出力のインスタンスを予測するために、ワークロードのソース・コードをスキャンすることと、を含み、論理ステージのそれぞれは、ワークロード内の他の論理ステージに依存しないデータ入力を含む、分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
本発明の他の態様および実施形態は以下の詳細な説明から明らかになり、以下の詳細な説明は、図面と併せて解釈されるときに、本発明の原理を例として示す。
本発明の一態様によるクラウド・コンピューティング環境を示す図である。 本発明の一態様による抽象化モデル・レイヤを示す図である。 本発明の一態様によるクラウド・コンピューティング・ノードを示す図である。 本発明の一態様による階層型データ・ストレージ・システムを示す図である。 本発明の一態様による、マルチクラウド環境においてワークロードを実施するための方法のフローチャートである。 本発明の一態様による、クラウド・ベンダーをスキャンするための方法のフローチャートである。 本発明の一態様による、ワークロード要件を特定するための方法のフローチャートである。 本発明の一態様による、マルチテナント・ワークロード管理エンジンを実装するための方法のフローチャートである。 本発明の一態様による、例示的な算出されたオーケストレーション・スキーマを示す図である。
以下の説明は、本発明の一般的な原理を説明することを目的として行っており、本明細書で特許請求する本発明の概念を限定することを意図するものではない。さらに、本明細書に記載の特定の特徴は、様々な可能な組み合わせおよび置き換えのそれぞれにおいて、記載した他の特徴と組み合わせて使用することができる。
本明細書で特に明確に定義していない限り、全ての用語は、本明細書から暗示される意味、ならびに当技術分野の当業者によって理解され、または辞書、論文などで定義され、あるいはその両方である意味を含む、最も広い可能な解釈が与えられるべきである。
また、本明細書および添付の特許請求の範囲で使用する場合、単数形「a」、「an」および「the」は、別段の指定がない限り、複数の指示対象を含むことに留意されたい。「備える(comprises)」という用語、もしくは「備えている(comprising)」という用語、またはその両方は、本明細書で使用する場合、記述した特徴、整数、ステップ、動作、要素、もしくは構成要素、またはそれらの組み合わせの存在を示すものであるが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、もしくはそれらのグループ、またはそれらの組み合わせの存在または追加を排除するものではないということはさらに理解されよう。
以下の説明では、マルチクラウド環境においてワークロードを実施するいくつかの態様を開示する。
1つの一般的な態様では、一態様によるコンピュータ実装方法は、複数のクラウド・ベンダーの特性を決定および記憶することと、ワークロードを複数の論理ステージに分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
他の一般的な態様では、複数のクラウド・ベンダーのうちのそれぞれの特性は、クラウド・ベンダーを分析することによって決定され、分析することは、クラウド・ベンダーのスキャンを実行するために、能力および費用アプリケーション・プログラミング・インターフェース(API)を動作させることを含む。
このようにして、ワークロード内の各論理ステージの実施は、最適なクラウド・ベンダーに送られて実施され得る。これにより、各論理ステージを実行するために必要なリソース(たとえば、コンピューティング・リソース、ストレージ・リソース、セキュリティ・リソースなど)の量が減少し得、ひいては、ワークロードを実施(たとえば、実行など)する1つまたは複数のコンピューティング・システムのパフォーマンスが向上し得る。
他の一般的な態様では、マルチクラウド環境においてワークロードを実施するためのコンピュータ・プログラム製品は、プログラム命令を具現化するコンピュータ可読記憶媒体を含み、コンピュータ可読記憶媒体自体は一過性の信号ではなく、プログラム命令は、プロセッサによって実行可能であり、プロセッサに方法を実行させ、方法は、プロセッサによって、複数のクラウド・ベンダーの特性を決定および記憶することと、プロセッサによって、ワークロードを複数の論理ステージに分割することと、プロセッサによって、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、プロセッサによって、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
他の一般的な態様では、複数のクラウド・ベンダーのうちのそれぞれの特性は、クラウド・ベンダーを分析することによって決定され、分析することは、クラウド・ベンダーに関して収集されたレビュー情報に基づいて、クラウド・ベンダーのそれぞれに関する1つまたは複数の実行可能性要因を推定することを含み、実行可能性要因は、サービス性、ネット・プロモーター・スコア(NPS)、ユーザ・レビュー、パフォーマンス・ベンチマーク、およびチューニングの柔軟性を含むグループから選択される。
他の一般的な態様では、システムは、プロセッサと、プロセッサと統合された、もしくはプロセッサによって実行可能な、またはプロセッサと統合され、プロセッサによって実行可能なロジックと、を含み、ロジックは、複数のクラウド・ベンダーの特性を決定および記憶することと、ワークロードを複数の論理ステージに分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を行うように構成される。
他の一般的な態様では、ワークロードを分割することは、ワークロード内のデータ入力および出力のポイント、ならびにワークロードへの入力に関連する依存関係を特定するために、ワークロードを解析することを含む。
このようにして、各論理ステージのサイバー・レジリエンシーが確保され得、これにより、システムの機能停止またはマルウェアによって失われるデータ/計算作業の量が減少し得、ひいては、ワークロードを実施するコンピューティング・システムのパフォーマンスも向上し得る。
他の一般的な態様では、コンピュータ実装方法は、複数のクラウド・ベンダーを分析することによって、複数のクラウド・ベンダーの特性を決定することであって、分析することは、複数のクラウド・ベンダーのスキャンを実行するために、能力および費用アプリケーション・プログラミング・インターフェース(API)を動作させることと、複数のクラウド・ベンダーのうちのそれぞれのレポート、傾向、脆弱性、セキュリティ問題などのうちの1つまたは複数を特定するために、1つまたは複数のパブリックおよびプライベート・セキュリティ・データベース情報を収集および解析することと、複数のクラウド・ベンダーのうちの1つまたは複数に関する既存のセキュリティ問題に対する既存の解決方法を決定するために、1つまたは複数の解決策データベースを解析することと、を含む、決定することと、ワークロードを複数の論理ステージに分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
他の一般的な態様では、コンピュータ実装方法は、複数のクラウド・ベンダーの特性を決定および記憶することと、ワークロードを複数の論理ステージに分割することであって、ワークロード内のデータ入力および出力のポイント、ならびにワークロードへの入力に関連する依存関係を特定するために、ワークロードを解析することと、ワークロード内のデータ入力および出力のインスタンスを予測するために、ワークロードのソース・コードをスキャンすることと、を含み、論理ステージのそれぞれは、ワークロード内の他の論理ステージに依存しないデータ入力を含む、分割することと、複数の論理ステージのうちのそれぞれの特性を決定することと、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージを複数のクラウド・ベンダーのうちの1つに割り当てることと、を含む。
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に列挙した教示の実装形態はクラウド・コンピューティング環境に限定されないことを理解されたい。むしろ、本発明の態様は、現在知られているまたは今後開発される他の任意のタイプのコンピューティング環境と共に実装することが可能である。
クラウド・コンピューティングは、最小限の管理労力またはサービスのプロバイダとのやりとりによって迅速にプロビジョニングおよび解放することができる、設定可能なコンピューティング・リソース(たとえば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは、少なくとも5つの特徴と、少なくとも3つのサービス・モデルと、少なくとも4つのデプロイメント・モデルとを含み得る。
特徴は以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービスのプロバイダとの人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
ブロード・ネットワーク・アクセス:能力はネットワークを介して利用することができ、異種のシンまたはシック・クライアント・プラットフォーム(たとえば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースをプールして、様々な物理リソースおよび仮想リソースが需要に応じて動的に割り当ておよび再割り当てされるマルチ・テナント・モデルを使用して複数のコンシューマにサービス提供する。一般にコンシューマは、提供されるリソースの正確な位置に対して何もできず、知っているわけでもないが、より高い抽象化レベル(たとえば、国、州、またはデータセンターなど)では位置を特定可能であり得るという点で位置非依存の感覚がある。
迅速な弾力性:能力を迅速かつ弾力的に、場合によっては自動的にプロビジョニングして素早くスケール・アウトし、迅速に解放して素早くスケール・インすることができる。コンシューマにとって、プロビジョニング可能な能力は無制限であるように見えることが多く、任意の時間に任意の数量で購入することができる。
測定されるサービス:クラウド・システムは、サービスのタイプ(たとえば、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント)に適したある抽象化レベルでの計量機能を活用して、リソースの使用を自動的に制御し、最適化する。リソース使用量を監視、管理、および報告して、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供することができる。
サービス・モデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS:Software as a Service):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(たとえば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。コンシューマは、限定されたユーザ固有のアプリケーション構成設定を可能性のある例外として、ネットワーク、サーバ、オペレーティング・システム、ストレージ、さらには個々のアプリケーション機能を含む、基盤となるクラウド・インフラストラクチャを管理も制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS:Platform as a Service):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、コンシューマが作成または取得したアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成を制御する。
インフラストラクチャ・アズ・ア・サービス(IaaS:Infrastructure as a Service):コンシューマに提供される能力は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアをコンシューマがデプロイして動作させることが可能な、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることである。コンシューマは、基盤となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションを制御し、場合によっては選択したネットワーキング・コンポーネント(たとえば、ホスト・ファイアウォール)を限定的に制御する。
デプロイメント・モデルは以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは組織専用に運用される。これは組織または第三者によって管理され得、構内または構外に存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャはいくつかの組織によって共有され、共通の懸念(たとえば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項など)を有する特定のコミュニティをサポートする。これは組織または第三者によって管理され得、構内または構外に存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般大衆または大規模な業界団体に対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする標準化技術または独自技術(たとえば、クラウド間の負荷分散のためのクラウド・バースティング)によって結合された2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を合成したものである。
クラウド・コンピューティング環境は、ステートレス性、低結合性、モジュール性、および意味論的相互運用性に重点を置いたサービス指向型である。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
ここで図1を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示のように、クラウド・コンピューティング環境50は1つまたは複数のクラウド・コンピューティング・ノード10を含み、これらを使用して、たとえば、パーソナル・デジタル・アシスタント(PDA:personal digital assistant)もしくは携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、あるいはそれらの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信し得る。ノード10は相互に通信し得る。これらは、たとえば、上述のプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはそれらの組み合わせなどの1つまたは複数のネットワークにおいて、物理的または仮想的にグループ化され得る(図示せず)。これにより、クラウド・コンピューティング環境50は、クラウド・コンシューマがローカル・コンピューティング・デバイス上にリソースを維持する必要がない、インフラストラクチャ・アズ・ア・サービス、プラットフォーム・アズ・ア・サービス、またはソフトウェア・アズ・ア・サービス、あるいはそれらの組み合わせを提供することが可能になる。図1に示したコンピューティング・デバイス54A~Nのタイプは例示的なものにすぎないことが意図されており、コンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続(たとえば、Webブラウザを使用)あるいはその両方を介して任意のタイプのコンピュータ化デバイスと通信できることを理解されたい。
ここで図2を参照すると、クラウド・コンピューティング環境50(図1)によって提供される機能的抽象化レイヤのセットが示されている。図2に示したコンポーネント、レイヤ、および機能は例示的なものにすぎないことが意図されており、本発明の態様はこれらに限定されないことを事前に理解されたい。図示のように、以下のレイヤおよび対応する機能が提供される。
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65、ならびにネットワークおよびネットワーキング・コンポーネント66が含まれる。いくつかの態様では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化レイヤ70は抽象化レイヤを提供し、抽象化レイヤから、仮想エンティティの以下の例、すなわち、仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75が提供され得る。
一例では、管理レイヤ80は、下記の機能を提供し得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的調達を提供する。計量および価格決定82は、クラウド・コンピューティング環境内でリソースが利用されたときの費用追跡と、これらのリソースの消費に対する会計または請求とを提供する。一例では、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、クラウド・コンシューマおよびタスクの同一性検証だけでなく、データおよび他のリソースに対する保護も提供する。ユーザ・ポータル83は、コンシューマおよびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理84は、要求されたサービス・レベルが満たされるような、クラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA:Service Level Agreement)の計画および履行85は、SLAに従って将来要求されると予想されるクラウド・コンピューティング・リソースの事前手配および調達を提供する。
ワークロード・レイヤ90は、クラウド・コンピューティング環境が利用され得る機能性の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、取引処理95、およびワークロード実施96、を含む。
ここで図3を参照すると、クラウド・コンピューティング・ノードの一例の概略図が示されている。クラウド・コンピューティング・ノード10は、適切なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載の本発明の態様の使用または機能性の範囲に関するいかなる制限を示唆することも意図するものではない。いずれにしても、クラウド・コンピューティング・ノード10は、上記の機能性のいずれをも実装するまたは実行するあるいはその両方を行うことが可能である。
クラウド・コンピューティング・ノード10には、コンピュータ・システム/サーバ12が存在し、これは、他の多くの汎用または専用のコンピューティング・システム環境または構成で動作可能である。コンピュータ・システム/サーバ12での使用に適し得るよく知られているコンピューティング・システム、環境、または構成、あるいはそれらの組み合わせの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドもしくはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムもしくはデバイスのいずれか含む分散クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ12は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的なコンテキストで説明し得る。一般に、プログラム・モジュールには、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などが含まれ得る。コンピュータ・システム/サーバ12は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散クラウド・コンピューティング環境において実施され得る。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよびリモート両方のコンピュータ・システム記憶媒体に配置され得る。
図3に示すように、クラウド・コンピューティング・ノード10内のコンピュータ・システム/サーバ12は、汎用コンピューティング・デバイスの形態で示している。コンピュータ・システム/サーバ12のコンポーネントは、1つまたは複数のプロセッサまたは処理ユニット16と、システム・メモリ28と、システム・メモリ28を含む様々なシステム・コンポーネントをプロセッサ16に結合するバス18とを含み得るが、これらに限定されない。
バス18は、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、および様々なバス・アーキテクチャのいずれかを使用するプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA:Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、拡張ISA(EISA:Enhanced ISA)バス、ビデオ・エレクトロニクス規格協会(VESA:Video Electronics Standards Association)ローカル・バス、および周辺機器相互接続(PCI:Peripheral Component Interconnects)バスが含まれる。
コンピュータ・システム/サーバ12は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ12によってアクセス可能な任意の利用可能な媒体であり得、揮発性および不揮発性の媒体、取り外し可能および取り外し不可能な媒体の両方を含む。
システム・メモリ28は、ランダム・アクセス・メモリ(RAM:random access memory)30またはキャッシュ・メモリ32あるいはその両方などの、揮発性メモリの形態のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ12は、他の取り外し可能/取り外し不可能な揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含み得る。単なる例として、取り外し不可能な不揮発性の磁気媒体(図示しない、典型的には「ハード・ドライブ」と呼ばれるもの)に読み書きするためのストレージ・システム34を設けることができる。図示していないが、取り外し可能な不揮発性の磁気ディスク(たとえば、「フレキシブル・ディスク」)に読み書きするための磁気ディスク・ドライブと、CD-ROM、DVD-ROM、または他の光学媒体などの取り外し可能な不揮発性の光学ディスクに読み書きするための光学ディスク・ドライブと、を設けることができる。そのような例では、それぞれを、1つまたは複数のデータ・メディア・インターフェースによってバス18に接続することができる。以下でさらに図示および説明するように、メモリ28は、本発明の態様の機能を実行するように構成されるプログラム・モジュールのセット(たとえば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
プログラム・モジュール42のセット(少なくとも1つ)を有するプログラム/ユーティリティ40は、限定ではなく例として、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、システム・メモリ28に記憶され得る。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データまたはそれらの何らかの組み合わせのそれぞれは、ネットワーキング環境の一実装形態を含み得る。プログラム・モジュール42は、一般に、本明細書に記載の本発明の態様の機能または方法論あるいはその両方を実行する。
コンピュータ・システム/サーバ12はまた、キーボード、ポインティング・デバイス、ディスプレイ24などの1つまたは複数の外部デバイス14、ユーザがコンピュータ・システム/サーバ12とやりとりすることを可能にする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ12が1つまたは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)、あるいはそれらの組み合わせと通信し得る。そのような通信は、入力/出力(I/O:Input/Output)インターフェース22を介して行うことができる。またさらに、コンピュータ・システム/サーバ12は、ネットワーク・アダプタ20を介して、ローカル・エリア・ネットワーク(LAN:local area network)、一般的なワイド・エリア・ネットワーク(WAN:wide area network)、またはパブリック・ネットワーク(たとえば、インターネット)、あるいはそれらの組み合わせなどの、1つまたは複数のネットワークと通信することができる。図示のように、ネットワーク・アダプタ20は、バス18を介してコンピュータ・システム/サーバ12の他のコンポーネントと通信する。図示していないが、他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方を、コンピュータ・システム/サーバ12と併用できることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
ここで図4を参照すると、一態様によるストレージ・システム400が示されている。図4に示す要素の一部は、様々な態様に応じて、ハードウェアまたはソフトウェアあるいはその両方として実装され得ることに留意されたい。ストレージ・システム400は、少なくとも1つの上位ストレージ階層402および少なくとも1つの下位ストレージ階層406上の複数の媒体と通信するためのストレージ・システム・マネージャ412を含み得る。上位ストレージ階層(複数可)402は、好ましくは、1つまたは複数のランダム・アクセスおよび/またはダイレクト・アクセス媒体404、たとえば、ハード・ディスク・ドライブ(HDD:hard disk drive)内のハード・ディスク、不揮発性メモリ(NVM:nonvolatile memory)、ソリッド・ステート・ドライブ(SSD:solid state drive)内のソリッド・ステート・メモリ、フラッシュ・メモリ、SSDアレイ、フラッシュ・メモリ・アレイなど、ならびに/あるいは本明細書に記載しているか、または当技術分野で知られているその他のものを含み得る。下位ストレージ階層(複数可)406は、好ましくは、1つまたは複数のより低性能な記憶媒体408を含み得、これには、順次アクセス媒体、たとえば、テープ・ドライブ内の磁気テープおよび/または光メディア、より低速なアクセスのHDD、より低速なアクセスのSSDなど、ならびに/あるいは本明細書に記載しているか、または当技術分野で知られているその他のものが含まれる。1つまたは複数の追加のストレージ階層416は、システム400の設計者によって望まれるストレージ・メモリ媒体の任意の組み合わせを含み得る。また、上位ストレージ階層402または下位ストレージ階層406あるいはその両方のいずれかは、ストレージ・デバイスまたは記憶媒体あるいはその両方の何らかの組み合わせを含み得る。
ストレージ・システム・マネージャ412は、図4に示すように、ストレージ・エリア・ネットワーク(SAN:storage area network)などのネットワーク410、または他の何らかの適切なネットワーク・タイプを介して、上位ストレージ階層(複数可)402および下位ストレージ階層(複数可)406上の記憶媒体404、408と通信し得る。ストレージ・システム・マネージャ412はまた、ストレージ・システム・マネージャ412の一部である場合もそうでない場合もあるホスト・インターフェース414を介して、1つまたは複数のホスト・システム(図示せず)と通信し得る。ストレージ・システム・マネージャ412、またはストレージ・システム400の他の任意のコンポーネント、あるいはその両方は、ハードウェアまたはソフトウェアあるいはその両方で実装され得、当技術分野で知られているタイプのコマンドを実行するためのプロセッサ(図示せず)、たとえば、中央処理装置(CPU:central processing unit)、フィールド・プログラマブル・ゲート・アレイ(FPGA:field programmable gate array)、特定用途向け集積回路(ASIC:application specific integrated circuit)などを利用し得る。当然ながら、本説明を読めば当業者には明らかであるように、ストレージ・システムの任意の構成が使用され得る。
より多くの態様では、ストレージ・システム400は、任意の数のデータ・ストレージ階層を含み得、各ストレージ階層内に同じまたは異なるストレージ・メモリ媒体を含み得る。たとえば、各データ・ストレージ階層は、同じタイプのストレージ・メモリ媒体、たとえば、HDD、SSD、順次アクセス媒体(テープ・ドライブ内のテープ、光ディスク・ドライブ内の光ディスクなど)、ダイレクト・アクセス媒体(CD-ROM、DVD-ROMなど)、またはメディア・ストレージ・タイプの任意の組み合わせを含み得る。1つのそのような構成では、上位ストレージ階層402は、より高性能なストレージ環境にデータを記憶するための大多数のSSD記憶媒体を含み得、下位ストレージ階層406および追加のストレージ階層416を含む残りのストレージ階層は、より低性能なストレージ環境にデータを記憶するための、SSD、HDD、テープ・ドライブなどの任意の組み合わせを含み得る。このようにして、より頻繁にアクセスされるデータ、優先順位の高いデータ、より迅速にアクセスされる必要があるデータなどは、上位ストレージ階層402に記憶され得、これらの属性のうちの1つを有さないデータは、下位ストレージ階層406を含む追加のストレージ階層416に記憶され得る。当然ながら、当業者は、本説明を読めば、本明細書に提示する態様に従って、異なる記憶方式で実装される記憶媒体タイプの他の多くの組み合わせを考案し得る。
いくつかの態様によれば、ストレージ・システム(400など)は、データ・セットを開く要求を受信するように構成されるロジックと、要求されたデータ・セットが階層型データ・ストレージ・システム400の下位ストレージ階層406内の複数の関連付けられた部分に記憶されているか否かを判定するように構成されるロジックと、要求されたデータ・セットの各関連付けられた部分を階層型データ・ストレージ・システム400の上位ストレージ階層402に移動させるように構成されるロジックと、階層型データ・ストレージ・システム400の上位ストレージ階層402上で関連付けられた部分から要求されたデータ・セットを組み立てるように構成されるロジックと、を含み得る。
当然ながら、このロジックは、様々な態様によれば、任意のデバイスもしくはシステムまたはその両方における方法として、あるいはコンピュータ・プログラム製品として実装され得る。
ここで図5を参照すると、一態様による方法500のフローチャートが示されている。方法500は本発明に従って、様々な態様で、とりわけ図1~図4に示す環境のいずれかにおいて実行され得る。当然ながら、本説明を読めば当業者に理解されるように、図5に具体的に記載したものよりも多いまたは少ない動作が方法500に含まれ得る。
方法500の各ステップは、動作環境の任意の適切な構成要素によって実行され得る。たとえば、様々な態様において、方法500は、1つまたは複数のサーバ、コンピュータ、あるいは1つまたは複数のプロセッサを内部に有する他の何らかのデバイスによって部分的または全体的に実行され得る。方法500の1つまたは複数のステップを実行するために、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有するプロセッサ、たとえば、処理回路(複数可)、チップ(複数可)、またはモジュール(複数可)、あるいはそれらの組み合わせが任意のデバイスで利用され得る。例示的なプロセッサには、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、それらの組み合わせ、または当技術分野で知られている他の任意の適切なコンピューティング・デバイスが含まれる。
図5に示すように、方法500は動作502から開始し得、ここで複数のクラウド・ベンダーの特性が決定され、記憶される。一態様では、複数のクラウド・ベンダーのうちのそれぞれは、クラウドベースのサービス・プロバイダ(たとえば、クラウド・コンピューティング環境内に位置するサービス・プロバイダなど)を含み得る。他の態様では、複数のクラウド・ベンダーのうちのそれぞれは、計算処理、データ記憶などのサービスを提供し得る。たとえば、各クラウド・ベンダーは、ソフトウェア・アズ・ア・サービス(SaaS)、プラットフォーム・アズ・ア・サービス(PaaS)、インフラストラクチャ・アズ・ア・サービス(IaaS)などの1つまたは複数のサービスを提供し得る。
さらに、一態様では、複数のクラウド・ベンダーのうちのそれぞれの特性は、クラウド・ベンダーを分析することによって決定され得る。他の態様では、分析することは、クラウド・ベンダーのスキャンを実行するために、1つまたは複数の能力または費用あるいはその両方のアプリケーション・プログラミング・インターフェース(API)を動作させることを含み得る。さらに他の態様では、分析することは、各クラウド・ベンダーのレポート、傾向、脆弱性、セキュリティ問題などのうちの1つまたは複数を特定するために、1つまたは複数のパブリックおよびプライベート・セキュリティ・データベース情報を収集および解析することを含み得る。
さらに、一態様では、分析することは、クラウド・ベンダーのうちの1つまたは複数に関する既存のセキュリティ問題に対する既存の解決方法を決定するために、1つまたは複数の解決策データベースを解析することを含み得る。他の態様では、分析することは、クラウド・ベンダーに関して収集されたレビュー情報に基づいて、クラウド・ベンダーのそれぞれに関する1つまたは複数の実行可能性要因を推定することを含み得る。たとえば、実行可能性要因は、サービス性、ネット・プロモーター・スコア(NPS)、ユーザ・レビュー、パフォーマンス・ベンチマーク、チューニングの柔軟性などのうちの1つまたは複数を含み得る。
またさらに、一態様では、各クラウド・ベンダーについて、特性は、クラウド・ベンダーの能力、クラウド・ベンダーの実施の費用、クラウド・ベンダーによって実現されるセキュリティ・レベル、クラウド・ベンダーに関連する実行可能性要因などを含み得る。他の態様では、各特性のレベルを決定するために、各特性は1つまたは複数の事前定義された閾値と比較され得る。
たとえば、クラウド・ベンダーによって実現されるセキュリティの程度が第1の閾値を超えている場合、クラウド・ベンダーのセキュリティ特性に第1のレベル(たとえば、高レベル)が割り当てられ得る。他の例では、クラウド・ベンダーによって実現されるセキュリティの程度が第1の閾値よりも低いが第2の閾値を超えている場合、クラウド・ベンダーのセキュリティ特性に第2のレベル(たとえば、中レベル)が割り当てられ得る。さらに他の例では、クラウド・ベンダーによって実現されるセキュリティの程度が第2の閾値よりも低い場合、クラウド・ベンダーのセキュリティ特性に第3のレベル(たとえば、低レベル)が割り当てられ得る。
また、一態様では、特性は、ワークロードの実施中にクラウド・ベンダーによって提供されるセキュリティのレベルを示し得る各クラウド・ベンダーのサイバー・セキュリティ特性を含み得る。他の態様では、特性は、ワークロードの実施中にクラウド・ベンダーによって提供されるレジリエンシー(たとえば、クラッシュ保護、マルウェア保護、冗長データ保護など)のレベルを示し得る各クラウド・ベンダーのサイバー・レジリエンシー特性を含み得る。たとえば、各クラウド・ベンダーのサイバー・セキュリティ特性およびサイバー・レジリエンシー特性は、そのクラウド・ベンダーに対して特定される他の特性から導出され得る。
さらに、一態様では、クラウド・ベンダーの識別子が、特性のテキスト説明、各特性に関連する数値評価などのうちの1つまたは複数に関連付けて記憶され得る。他の態様では、特性は、1つまたは複数のストレージ・デバイス、クラウド・ストレージ環境などに記憶され得る。
さらに、方法500は動作504に進み得、ここでワークロードが複数の論理ステージに分割される。一態様では、ワークロードは、必要な入力(たとえば、ワークロードによって分析または操作あるいはその両方が行われるデータの1つまたは複数のインスタンスなど)を含み得る。他の態様では、ワークロードは、ワークロードの一部として実行される1つまたは複数の計算(たとえば、所定の入力に対して実行される1つまたは複数の計算アルゴリズムなど)を含み得る。さらに他の態様では、ワークロードは、ワークロードを実行した結果として出力される1つまたは複数の結果(たとえば、出力データなど)を含み得る。
またさらに、一態様では、ワークロードは、1つまたは複数の一般化された処理パイプライン・ステージを含み得る。他の態様では、ワークロード内のデータ入力および出力のポイント、ならびに入力に関連する依存関係を特定するために、ワークロードが解析され得る。たとえば、ワークロード内のデータ入力の所与のインスタンスについて、データ入力が同じワークロード内から出力されるデータに依存するか否かが判定され得る。
また、一態様では、ワークロード内のデータ入力および出力のインスタンスを予測するために、ワークロードのソース・コードがスキャンされ得る。たとえば、これは、ワークロードの分割/論理ステージの作成の精度を高めるために行われ得る。他の態様では、ワークロードは次いで論理ステージに分割され得、各論理ステージはワークロード内の他の論理ステージに依存しないデータ入力を含む。
さらに、一態様では、ワークロードを論理ステージに分割する場合に、所定の入力(たとえば、所定のステージを識別する入力など)が参照され得る。他の態様では、各論理ステージを解析して、論理ステージ内で1つまたは複数の非並列タスク(たとえば、1つまたは複数のデータまたはリソースの依存関係などのために並列に実行できないタスク)が実行されるか否かを判定し得る。たとえば、論理ステージが非並列タスクを含むと判定したことに応答して、論理ステージは、それぞれが非並列タスクのうちの1つを含む複数のより小さい論理ステージに分割され得る。
さらに、方法500は動作506に進み得、ここで複数の論理ステージのうちのそれぞれの特性が決定される。一態様では、ステージ内の入力、出力、および中間結果に基づいて各論理ステージの複雑性が決定され得る。たとえば、ステージ内の入力、出力、および中間結果を過去のワークロード・ステージと比較して、ステージの複雑性を決定し得る。
またさらに、一態様では、ステージの複雑性に基づいて各論理ステージの特性が決定され得る。たとえば、特性には、推定実行時間、1つまたは複数の所望のパフォーマンス特性、1つまたは複数のセキュリティ要件、1つまたは複数のリソース要件、1つまたは複数のサイバー・レジリエンシー要件などのうちの1つまたは複数が含まれ得る。
また、一態様では、複数のリソースのうちのそれぞれについて、全ての論理ステージの第1のランク付けが決定され得る。たとえば、リソースには、コンピュート・リソース、ストレージ・リソース、ネットワーク・リソース、外部リソースなどのうちの1つまたは複数が含まれ得る。他の例では、コンピュート・リソースの場合、第1の論理ステージは、多くの計算が実行されることを必要とし得、第2の論理ステージは、より少ない量の計算が実行されることを必要とし得る。さらに他の例では、それに応じて、第1の論理ステージは、コンピュート・リソースに関して第2の論理ステージよりも上位にランク付けされ得る。
さらに、一態様では、第1のランク付けに基づいて、サイバー・セキュリティ要因およびサイバー・レジリエンシー要因に関して、全ての論理ステージの第2のランク付けが実行され得る。たとえば、この第2のランク付けにより、実施中に論理ステージによって必要とされるセキュリティのレベルを示す各論理ステージのサイバー・セキュリティ・ランキングが決定され得る。他の例では、この第2のランク付けにより、実施中に論理ステージによって必要とされるレジリエンシー(たとえば、クラッシュ保護、マルウェア保護、冗長データ保護など)のレベルを示す各論理ステージのサイバー・レジリエンシー・ランキングも決定され得る。
さらに、方法500は動作508に進み得、ここで、複数の論理ステージのうちのそれぞれについて、複数のクラウド・ベンダーの特性と論理ステージの特性との比較に基づいて、論理ステージが複数のクラウド・ベンダーのうちの1つに割り当てられる。一態様では、各論理ステージについて、論理ステージの要件(たとえば、処理要件、ストレージ要件、帯域幅要件、サイバー・セキュリティ要件、サイバー・レジリエンシー要件など)を満たすことが可能な1つまたは複数のクラウド・ベンダーを決定するために、ステージの特性が複数のクラウド・ベンダーのうちのそれぞれの特性と比較され得る。
またさらに、一態様では、論理ステージをクラウド・ベンダーに割り当てることは、クラウド・ベンダーが論理ステージに必要な入力を受け取り、論理ステージに必要な操作を実行し、論理ステージに必要なデータを出力するように、論理ステージをクラウド・ベンダーにマッピングすること/割り当てることを含み得る。他の態様では、割り当ては過去のパフォーマンス・データに基づいて調整され得る。たとえば、所定のクラウド・ベンダーが、現在の論理ステージと所定のレベルの類似性を有する過去の論理ステージに関して所定の閾値を上回るパフォーマンスを提供した場合、その所定のクラウド・ベンダーが現在の論理ステージに割り当てられ得る。
また、一態様では、(たとえば、グラフィカル・ユーザ・インターフェース(GUI:graphical user interface)などを使用して)クラウド・ベンダーへの各論理ステージのマッピングが1人または複数のユーザに提示され得る。たとえば、ユーザは、GUI内に提供される選択肢を使用して、論理ステージを確認、調整、または実施、あるいはそれらの組み合わせを行い得る。
さらに、一態様では、ユーザ/エンティティの優先順位に基づいて各論理ステージ内のリソース割り当てが調整され得る。たとえば、過去のワークロード内で実行された過去のタスクに統計的学習を実行して、過去のタスクに必要な1つまたは複数のリソースを決定し得る。これらの過去のタスクを論理ステージ内の現在のタスクと比較して、そのタスクに必要なリソースを決定し得る。
たとえば、論理ステージ内で第1のエンティティによって実行される第1のタスクは、その論理ステージに割り当てられたクラウド・ベンダー内の所定のリソース(たとえば、高速ストレージなど)の使用を必要とし得る。他の例では、論理ステージ内で第2のエンティティによって実行される第2のタスクもまた、その論理ステージに割り当てられたクラウド・ベンダー内のその所定のリソースの使用を必要とし得る。さらに他の例では、第1のエンティティが第2のエンティティよりも高い優先順位を有すると判定したことに応答して、第1のエンティティに所定のリソースが割り当てられ得、第2のエンティティに他のリソース(たとえば、中速ストレージなど)が割り当てられ得る。
さらに、一態様では、各タスク中にデータが必要なクラウド・ベンダーに配置されるようにするために、ワークロードの実施中にクラウド・ベンダー間でデータ移行が実行され得る。たとえば、最初に高セキュリティのクラウド・ベンダーで生成されたデータは、後で操作するために低セキュリティのクラウド・ベンダーに移行され得るが、そのようなデータを安全に記憶するために、そのような操作が実行された後に高セキュリティのクラウド・ベンダーに移行し戻され得る。これにより、ライフ・サイクル管理が実施され、所定のデータのセキュリティが確保され得る。
このようにして、ワークロード内の各論理ステージの実施は、最適なクラウド・ベンダーに送られて実施され得る。これにより、各論理ステージを実行するために必要なリソース(たとえば、コンピューティング・リソース、ストレージ・リソース、セキュリティ・リソースなど)の量が減少し得、ひいては、ワークロードを実施(たとえば、実行など)する1つまたは複数のコンピューティング・システムのパフォーマンスが向上し得る。さらに、各論理ステージのサイバー・レジリエンシーが確保され得、これにより、システムの機能停止またはマルウェアによって失われるデータ/計算作業の量が減少し得、ひいては、ワークロードを実施するコンピューティング・システムのパフォーマンスも向上し得る。
ここで図6を参照すると、一態様による、クラウド・ベンダーをスキャンするための方法600のフローチャートが示されている。方法600は本発明に従って、様々な態様で、とりわけ図1~図4に示す環境のいずれかにおいて実行され得る。当然ながら、本説明を読めば当業者に理解されるように、図6に具体的に記載したものよりも多いまたは少ない動作が方法600に含まれ得る。
方法600の各ステップは、動作環境の任意の適切な構成要素によって実行され得る。たとえば、様々な態様において、方法600は、1つまたは複数のサーバ、コンピュータ、あるいは1つまたは複数のプロセッサを内部に有する他の何らかのデバイスによって部分的または全体的に実行され得る。方法600の1つまたは複数のステップを実行するために、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有するプロセッサ、たとえば、処理回路(複数可)、チップ(複数可)、またはモジュール(複数可)、あるいはそれらの組み合わせが任意のデバイスで利用され得る。例示的なプロセッサには、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、それらの組み合わせ、または当技術分野で知られている他の任意の適切なコンピューティング・デバイスが含まれる。
図6に示すように、方法600は動作602から開始し得、ここで、クラウド・ベンダーによって提供されるセキュリティおよびレジリエンシー特徴がスキャンされる。さらに、方法600は動作604に進み得、ここで、能力および費用見積アプリケーション・プログラミング・インターフェース(API)がクラウド・ベンダーに対して実行される。
さらに、方法600は動作606に進み得、ここで、クラウド・ベンダーが動作させる全てのアプリケーションに関するレポート、脆弱性に関連する傾向、セキュリティ情報、攻撃情報、および脅威情報を収集するために、パブリックおよびプライベート・ナレッジ・ベースにわたってスキャンが実行される。さらに、方法600は動作608に進み得、ここで、セキュリティ・データベース(たとえば、NISTなど)内で、特定された脆弱性に対する特定された解決策候補が解析される。
またさらに、方法600は動作610に進み得、ここで、クラウド・ベンダーが動作させる全てのアプリケーションに関して、レビュー共有クラウド・プラットフォームおよびコミュニティに登録されたフィードバックに基づいて、クラウド・ベンダーの実行可能性要因が推定される。
このようにして、クラウド・ベンダーの特性が特定され得る。
ここで図7を参照すると、一態様による、ワークロード要件を特定するための方法700のフローチャートが示されている。方法700は本発明に従って、様々な態様で、とりわけ図1~図4に示す環境のいずれかにおいて実行され得る。当然ながら、本説明を読めば当業者に理解されるように、図7に具体的に記載したものよりも多いまたは少ない動作が方法700に含まれ得る。
方法700の各ステップは、動作環境の任意の適切な構成要素によって実行され得る。たとえば、様々な態様において、方法700は、1つまたは複数のサーバ、コンピュータ、あるいは1つまたは複数のプロセッサを内部に有する他の何らかのデバイスによって部分的または全体的に実行され得る。方法700の1つまたは複数のステップを実行するために、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有するプロセッサ、たとえば、処理回路(複数可)、チップ(複数可)、またはモジュール(複数可)、あるいはそれらの組み合わせが任意のデバイスで利用され得る。例示的なプロセッサには、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、それらの組み合わせ、または当技術分野で知られている他の任意の適切なコンピューティング・デバイスが含まれる。
図7に示すように、方法700は動作702から開始し得、ここで、ワークロードに含まれるワークロード・ステージが識別されるか、または既存のパイプライン・ステージへの修正が提案される。さらに、方法700は動作704に進み得、ここで、入力および出力ならびに子/親機能(function)に基づいてワークロードが独立したステージに分割される。さらに、方法700は動作706に進み得、ここで、手動入力が受け取られ、そのような入力はワークロードの機密性要件に関連する。
またさらに、方法700は動作708に進み得、ここで、独立したステージを分析して、各ステージに存在する非並列タスクに基づいて実行時間に関するパイプラインの最適化を検証する。また、方法700は動作710に進み得、ここで、提案されたステージの分割が、元の独立したステージと共に提示され、ユーザ選択される。
さらに、方法700は動作712に進み得、ここで、ワークロード・スキャンに基づいて、各ステージのサイバー・セキュリティおよびレジリエンシー特徴が推定される。さらに、方法700は動作714に進み得、ここで、各ステージによって要求される推定リソースに基づいて、予想利用時間、致命性(criticalness)、および重要性に基づいてリソース間でランク付けが実行される。またさらに、方法700は動作716に進み得、ここで、ランク比較に基づいて、各ステージにマッチするクラウド・ベンダーが決定される。
このようにして、ワークロードに対して作成されたステージにクラウド・ベンダーがマッチングされ得る。
ここで図8を参照すると、一態様による、マルチテナント・ワークロード管理エンジンを実装するための方法800のフローチャートが示されている。方法800は本発明に従って、様々な態様で、とりわけ図1~図4に示す環境のいずれかにおいて実行され得る。当然ながら、本説明を読めば当業者に理解されるように、図8に具体的に記載したものよりも多いまたは少ない動作が方法800に含まれ得る。
方法800の各ステップは、動作環境の任意の適切な構成要素によって実行され得る。たとえば、様々な態様において、方法800は、1つまたは複数のサーバ、コンピュータ、あるいは1つまたは複数のプロセッサを内部に有する他の何らかのデバイスによって部分的または全体的に実行され得る。方法800の1つまたは複数のステップを実行するために、ハードウェアまたはソフトウェアあるいはその両方で実装され、好ましくは少なくとも1つのハードウェア・コンポーネントを有するプロセッサ、たとえば、処理回路(複数可)、チップ(複数可)、またはモジュール(複数可)、あるいはそれらの組み合わせが任意のデバイスで利用され得る。例示的なプロセッサには、中央処理装置(CPU)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)など、それらの組み合わせ、または当技術分野で知られている他の任意の適切なコンピューティング・デバイスが含まれる。
図8に示すように、方法800は動作802から開始し得、ここで、マルチテナント環境ワークロード管理プラットフォーム内で、ユーザの詳細を使用して、ユーザによって解決される問題およびタスクの性質を定義する。さらに、方法800は動作804に進み得、ここで、ユーザ・プロファイルに対して決定されたワークロードに基づいて、ワークロード計算アルゴリズムの要件が特定される。さらに、方法800は動作806に進み得、ここで、要件に基づいて、タスクの各ステージにクラウド・ベンダーがマッチングされる。
サイバー・レジリエンシーに基づいてリソースを管理するためのマルチクラウド・オーケストレーション、ワークロード管理エンジンの改善
マルチクラウド/ハイブリッド・オーケストレーション/マネージャ
マルチクラウド・オーケストレータは、複数のクラウド・リソースならびにオンプレミス・インフラストラクチャ間の相互接続およびインタラクションの管理に役立つ1つまたは複数のアプリケーションを含み得る。オーケストレーション・レイヤは、ビジネス要求およびワークロードをアプリケーション、データ、およびインフラストラクチャと調整し得る。オーケストレータは、自動化されたワークロード、プロビジョニング、および変更管理を通じてポリシーおよびサービス・レベルを定義するのに役立ち得る。オーケストレータは、各アプリケーションのニーズに基づいてスケール・アップまたはスケール・ダウンすることができる、アプリケーションに合わせたインフラストラクチャを作成し得る。オーケストレータはまた、消費の会計、計量、および支払取消を含む、リソース・プールの集中管理を提供し得る。
ワークロード管理エンジン
ワークロード管理エンジンは、既存の異種のITリソースに作業を分散させることによって、より高速で、より信頼性の高いワークロード・パフォーマンスを発揮し、費用を削減する、共有されたスケーラブルな耐障害性のインフラストラクチャを作成し得る。エンジンは、負荷のバランスを取り、リソースを割り当て、それらのリソースへのアクセスを提供し得る。エンジンは、ジョブ要件を取得し、ジョブを実行するための最適なリソースを見つけ、ジョブの進捗を監視するリソース管理フレームワークを提供し得る。ジョブは、ホストの負荷およびサイトのポリシーに従って実行され得る。
サイバー・レジリエンシー
サイバー・レジリエンシーは、有害なサイバー・イベントが発生した場合でも意図した結果を継続的に配信するエンティティの能力を含み得る。サイバー・レジリエンス能力を必要とする可能性のあるエンティティには、ITシステム、重要インフラストラクチャ、ビジネス・プロセス、組織、社会、および国民国家が含まれるが、これらに限定されない。有害なサイバー・イベントとは、ネットワーク化されたITシステムならびに関連する情報およびサービスの可用性、完全性、または機密性に悪影響を与えるイベントである。これらのイベントは、意図的なもの(たとえば、サイバー攻撃)または意図的でないもの(たとえば、ソフトウェア更新の失敗)であり得、人間によって、または自然に、あるいはそれらの組み合わせで引き起こされ得る。
サイバー・レジリエンシーの1つの目的は、(たとえば、危機中またはセキュリティ侵害後に)通常の配信メカニズムに障害が発生した場合でも、意図した結果を継続的に配信するエンティティの能力を維持することである。この概念はまた、そのようなイベントの後に通常の配信メカニズムを復旧する能力、ならびに新たなリスクに直面した場合に必要に応じてこれらの配信メカニズムを継続的に変更または修正する能力を含む。データ・バックアップおよびディザスタ・リカバリ動作の実行は、配信メカニズムを復旧するプロセスの一部である。
コンポーザブル・インフラストラクチャ
コンポーザブル・インフラストラクチャは、物理的なコンピュート、ストレージ、およびネットワーク・ファブリック・リソースがサービスとして扱われるフレームワークを含み得る。コンポーザブル・インフラストラクチャでは、リソースが論理的にプールされるので、管理者は特定のソフトウェア・アプリケーションをサポートするためにハードウェアを物理的に構成する必要がない。代わりに、ソフトウェアの開発者は、ポリシーおよびサービス・プロファイルを使用して物理的なインフラストラクチャに関するアプリケーションの要件を定義し得、次いでソフトウェアは、アプリケーション・プログラミング・インターフェース(API)呼び出しを使用して、ベア・メタルで、仮想マシン(VM:virtual machine)として、またはコンテナとして、動作させる必要のあるインフラストラクチャを作成(構成)し得る。
一態様では、オーケストレーションおよびワークロード管理エンジンが従来のクラウド・オーケストレータ・プラットフォームと統合され得る。エンジンは、提供されたワークフローに必要なリソースを関係付け(engage)ながら開始し得、関連するステージを識別し、ステージの特性を分析し、ステージごとに必要なサイバー・レジリエンシー特徴を推定し、それらの特徴を、複数のクラウドまたはオンプレミス・デコンポーザブル・インフラストラクチャ(on-premise decomposable infrastructure)によって提供される、事前に収集されたサイバー特徴と比較し、ステージごとにマッチするクラウドまたはオンプレミス・インフラストラクチャを決定し(必要に応じてセキュリティおよびパフォーマンスのチューニングを実行し)、リソースのライフ・サイクル管理を実行し得る。
一態様では、マルチテナント対応のオーケストレーションおよびワークロード管理エンジンが従来のクラウド・オーケストレータ・プラットフォームと統合され得る。ワークフロー入力が供給されるリソースをスピンアップしながら、エンジンは、(非並列タスク分析および依存ステージ分析に基づいて)関連するステージを自動識別し、(ステージに含まれるアルゴリズムの複雑性と、完了までの予想時間とに基づいて)ステージ特性を分析し、ステージごとに必要なサイバー・セキュリティおよびレジリエンシー特徴を推定し、これらを、複数のクラウドまたはオンプレミス・デコンポーザブル・インフラストラクチャによって提供される、事前に収集されたサイバー特徴と比較し、ステージごとにマッチするクラウドまたはオンプレミス・インフラストラクチャを決定し(また、必要に応じてセキュリティおよびパフォーマンスのチューニングを実行し)、リソースのライフ・サイクル管理(たとえば、デプロイメント、チューニング、移行、記憶、破棄など)を実行する。
1つの例示的なオーケストレーションおよびワークロード管理エンジンは以下を含む。
1.推奨クラウド・ベンダーによって提供されるサービスごとにセキュリティおよびレジリエンシー特徴を費用の関連付けと共にスキャンすること。
A.クラウド・ベンダーによって提供されるサービスごとに能力APIおよび費用見積APIを実行することによって、スキャン・アクションが実行される。
B.パブリックおよびプライベート・セキュリティ・データベースにわたってスキャン・アクションを(アクセスの契約レベルに応じて)実行して、クラウド・ベンダーごとに提供されるアプリケーションごとに、最新のレポート、脆弱性に関連する傾向、セキュリティ、攻撃、脅威などを収集および解析する。また、スケジューラは、特定されたセキュリティ問題に関してNISTなどのデータベースを解析することにより、解決策候補を特定する。
C.スキャン動作を実行して、クラウド・ベンダーごとに提供されるアプリケーションごとに、レビュー共有クラウド・プラットフォーム、コミュニティに登録されたフィードバック、開発者メール・スレッド、業界トレンド/調査レポートなどに基づいて、実行可能性要因(たとえば、サービス性、ネット・プロモーター・スコア(NPS)、ユーザ・レビュー、ユーザビリティ、パフォーマンス・ベンチマーク、最適化された使用/チューニングの柔軟性など)を推定する。
スキャン結果は、以下の表1に示すスキーマなどのテーブルに記憶することができる。このテーブルは、ネットワーク、VPN速度などの能力、およびNPS、チューニングなどの実行可能性要因などを含むように拡張され得る。
Figure 2023509369000002
2.入力ワークフローに含まれるステージを自動識別すること、または入力済みのパイプライン・ステージへの修正を提案すること。
A.自動識別は、ワークロード全体(入力、計算アルゴリズム(複数可)、および予想される出力)を解析し、それらを独立したステージに分割する(独立したステージは、入力がすぐに利用可能であり、またはより少ない子/機能を有する)アルゴリズムを含む。自動識別アルゴリズムは、入力ワークロードに関連する業界に関係する手動入力、機密性に関係する手動入力などを含み得る。
B.自動識別はまた、入力済みのパイプライン・ステージの分析を含む。各ステージに存在する非並列タスクを分析することにより、パイプラインが実行時間に関して最適化されているか否かを判定する。分析に基づいて、修正されたステージ分割を管理者に提案する(ここで、元のまたは修正されたステージ分割を選択してワークロードを実行する自由が提供される)。
3.ステージごとに必要なサイバー・セキュリティおよびレジリエンシー特徴を推定すること。
A.サイバー・セキュリティおよびレジリエンシー特徴は、各ステージの計算アルゴリズムと、それらの予想される入力、出力、および中間結果とをスキャンして分析する。推定は、各ステージを、ワークロード管理プラットフォームを使用して実行された過去のワークロード・ステージと比較すると共に、各ステージを、デプロイメント中に入力済みの事前定義されたステージ・テンプレートと比較することに基づく(入力テンプレートは、調査研究を通じて得られるソフトウェア・メーカーの経験、ベータ版プログラム、および他の顧客から借りたワークロード・テンプレートなどに基づく)。
B.計算アルゴリズムの複雑性に基づいて、概算の実行時間が決定される。推定時間に基づいて、推定計算時間と(たとえば、この場合、ステージごとの計算あたりの費用が管理者によって入力されるか、または自動的に決定される)、ステージに含まれるタスクによって要求されるセキュリティ要件およびリソース(たとえば、ネットワーク、外部要因-WAN速度、コンピュート、ストレージ)とにマッチする所望のパフォーマンス特性が決定される。
C.各ステージによって要求される推定リソースに基づいて、予想利用時間、リソースの致命性および入力の重要性、ならびにステージによって生成される出力に基づいて、リソース間でランク付けが実行される。たとえば、以下の表2に示すように、ステージNは、機密出力を生成するか、または入力が一般的もしくは周知である多くの計算の後に出力を生成することが予想される。同様に、ステージ1は、最小限の計算で一般的な出力を生成することが予想され、オンプレミスのデータストアから供給される入力データを必要とする。
Figure 2023509369000003
上記のランク付けに基づいて、提案したランク付けアルゴリズムは、以下の表3に示すように、サイバー・セキュリティおよびレジリエンシーに対してステージをランク付けする。
Figure 2023509369000004
ワークロード管理プラットフォームは、(上記のステップ3で)算出されたランキングを、複数のクラウドまたはオンプレミス・デコンポーザブル・インフラストラクチャによって提供される、事前に収集されたサイバー特徴、レジリエンシー特徴などを含む(上記のステップ1からの)スキャン結果と比較し得る。ランク比較に基づいて、マッチするクラウドまたはオンプレミス・インフラストラクチャが各ステージにマッチングされ得る。
さらに、オーケストレーション・スキーマが、承認のためにユーザ(たとえば、管理者)に提示され得る。承認されると、提案したワークロード管理プラットフォームは、それぞれのクラウド内のリソースを要求し、セキュリティおよびパフォーマンスのチューニングを実行し(これには、オンプレミス・クラスタおよびクラウド間のCPU速度の差に適応するためのアプリケーションのチューニング、ならびにローカル・ネットワークおよびWAN接続間の速度の差の調整が含まれ得る)、リソースのライフ・サイクル管理(たとえば、安全なデプロイメント、チューニング、移行、安全な記憶、破棄など)を実行する。
図9は、1つの例示的な態様による、ディスプレイに出力される例示的な算出されたオーケストレーション・スキーマ900を示している。図示のように、複数のステージ902A~Cはそれぞれ、リソース、費用、クラウド・ベンダー、および実行時間の決定結果を含む。ステージ902A~C間のデータ転送ボリューム904A~Bの表示も提供されており、算出されたオーケストレーション・スキーマ900を承諾906またはカスタマイズ908する選択肢も提供されている。
一態様では、ワークロード管理プラットフォームは、マルチテナント対応でもあり得る。たとえば、プラットフォームは、ユーザIDの詳細をランクまたは組織/部門の詳細と共に取得し、これらの詳細に基づいて、プラットフォームはユーザによって実行される問題/タスクの性質を推定する。たとえば、核研究の科学者が、ワークロード管理プラットフォームを利用し得る。アルゴリズムは、対応するユーザIDを「核科学者」として識別し得、ワークロードを核/原子のものとして識別し得る(これはスペクトル分析またはボルツマン分布などのアルゴリズムに対応するワークロードであり得る)。
同様に、同じワークロード管理プラットフォームが生物学の大学生によって共有され、使用され得る。提案したアルゴリズムは、対応するユーザIDを「生物学の学生」として識別し得、ワークロードを計算生物学のものとして識別し得る(これはシークエンシングまたはプロトン(proton)・モデル構築などのアルゴリズムに対応するワークロードであり得る)。それに応じて、核科学者は生物学の学生よりもコンピュート、ストレージ、および帯域幅に関して優先され得、その理由は、前者が後者よりも高い優先順位を有するためである。
ワークロード管理プラットフォームのアクセス許可が引き上げられ得、それによってシステムは、ユーザがデータを供給する予定のコンピュート・ソフトウェアまたはアルゴリズムのソース・コードをスキャンし得、そのようなコンピュート・ソフトウェアのコード・スキャンに基づいて、システムは入力/出力の性質を予測し得、同様に、最適化されたターゲット・クラウド・リソースを推定し、比較を実行してマルチクラウド・セキュリティ・スコアを算出し得る。ワークロード管理プラットフォームはまた、現在提供されているワークロード・パターンが過去にいずれかのクラウド・ベンダーによって既に実行されているか否かを特定し得、それがどれほどうまく機能したかを分析し得る。分析の結果に基づいて、ランク付けが改変される。
ワークロード管理プラットフォームはまた、ステージ/タスクごとに必要なデータの必要性を推定し得、ライフ・サイクル管理を実行し得る。たとえば、ワークロード管理プラットフォームは、(決定された最高ランクに基づいて)第1のクラウド・リソースを使用してワークロード・ステージの実行を開始し得る。しかしながら、ワークロード・ステージの完了後、プラットフォームは、現在のステージの入力または出力あるいは中間結果が、下位ランクのリソースを使用するように計画されている将来のステージで必要であることを特定し得るが、第1のクラウド・リソースは、下位ランクのリソースと比較して、長期保存に関して高いランクを提供する。この場合、ワークロード管理アルゴリズムは、必要なデータを所定の期間(この期間はステージ実行時間に依存する)、下位ランクのリソースに移行し、それが完了した後、データは長期保存のために第1のクラウド・リソースに安全に移行し戻される。
本発明は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、またはコンピュータ・プログラム製品、あるいはそれらの組み合わせであり得る。コンピュータ・プログラム製品は、本発明の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持および記憶可能な有形のデバイスとすることができる。コンピュータ可読記憶媒体は、たとえば、限定はしないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであり得る。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM:read-only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM:erasable programmable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM:compact disc read-only memory)、デジタル・バーサタイル・ディスク(DVD:digital versatile disk)、メモリー・スティック(R)、フレキシブル・ディスク、命令が記録されたパンチ・カードまたは溝の隆起構造などの機械的にコード化されたデバイス、およびこれらの任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書で使用する場合、たとえば、電波または他の自由に伝搬する電磁波、導波管もしくは他の伝送媒体を伝搬する電磁波(たとえば、光ファイバ・ケーブルを通過する光パルス)、または有線で伝送される電気信号などの一過性の信号自体であると解釈されるべきではない。
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、あるいは、たとえば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくは無線ネットワーク、またはそれらの組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはそれらの組み合わせを含み得る。各コンピューティング/処理デバイスのネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を転送して、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードまたはオブジェクト・コードであり得る。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上かつ部分的にリモート・コンピュータ上で、あるいは完全にリモート・コンピュータまたはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得、または(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータへの接続がなされ得る。いくつかの態様では、たとえば、プログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA:field-programmable gate array)、またはプログラマブル・ロジック・アレイ(PLA:programmable logic array)を含む電子回路は、本発明の態様を実行するために、コンピュータ可読プログラム命令の状態情報を利用してコンピュータ可読プログラム命令を実行することによって、電子回路を個人向けにし得る。
本発明の態様は、本発明の態様による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して本明細書で説明している。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装できることは理解されよう。
これらのコンピュータ可読プログラム命令を、コンピュータまたは他のプログラム可能データ処理装置のプロセッサに提供して、それらの命令がコンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為を実装するための手段が生成されるようなマシンを生成し得る。また、これらのコンピュータ可読プログラム命令を、コンピュータ、プログラム可能データ処理装置、または他のデバイス、あるいはそれらの組み合わせに特定の方法で機能するように指示することが可能なコンピュータ可読記憶媒体に記憶して、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為の態様を実装する命令を含む製造品を構成するようにし得る。
また、コンピュータ可読プログラム命令をコンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードして、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを実行させることによって、それらの命令がコンピュータ、他のプログラム可能装置、または他のデバイス上で実行された場合に、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて指定された機能/行為が実装されるようなコンピュータ実装処理を生成し得る。
図中のフローチャートおよびブロック図は、本発明の様々な態様によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を示している。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理的機能(複数可)を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替的実装形態では、ブロックに記載した機能は、図示した順序以外で行われ得る。たとえば、関与する機能に応じて、連続して示した2つのブロックは、実際には、1つのステップとして実現され得、同時に、実質的に同時に、部分的にまたは完全に時間的に重なるように実行され得、またはそれらのブロックは、場合により逆の順序で実行され得る。ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能もしくは行為を実行するか、または専用ハードウェアおよびコンピュータ命令の組み合わせを実行する専用のハードウェア・ベースのシステムによって実装できることにも気付くであろう。
さらに、様々な態様によるシステムは、プロセッサと、プロセッサと統合された、またはプロセッサによって実行可能な、あるいはその両方であるロジックと、を含み得、ロジックは、本明細書に記載の処理ステップのうちの1つまたは複数を実行するように構成される。「~と統合される」とは、特定用途向け集積回路(ASIC)、FPGAなど、ハードウェア・ロジックとしてロジックがプロセッサに組み込まれることを意味する。「プロセッサによって実行可能」とは、ロジックがハードウェア・ロジックであるか、ファームウェア、オペレーティング・システムの一部、アプリケーション・プログラムの一部などのソフトウェア・ロジックなどであるか、またはプロセッサによりアクセス可能であり、プロセッサによる実行時にプロセッサに一部の機能を実行させるように構成されるハードウェアおよびソフトウェア・ロジックの何らかの組み合わせであることを意味する。ソフトウェア・ロジックは、当技術分野で知られているように、任意のメモリ・タイプのローカルまたはリモートあるいはその両方のメモリに記憶され得る。当技術分野で知られている任意のプロセッサ、たとえば、ソフトウェア・プロセッサ・モジュール、またはハードウェア・プロセッサ、たとえば、ASIC、FPGA、中央処理装置(CPU)、集積回路(IC:integrated circuit)、グラフィックス処理装置(GPU:graphics processing unit)など、あるいはその両方が使用され得る。
前述のシステムまたは方法論あるいはその両方の様々な特徴を任意の方法で組み合わせて、上記の説明から複数の組み合わせを作成し得ることは明らかであろう。
本発明の態様が、オンデマンドでサービスを提供するために顧客のために展開されるサービスの形で提供され得ることがさらに理解されよう。
本発明の様々な態様の説明は例示の目的で提示しているが、網羅的であることも、開示した態様に限定されることも意図したものではない。記載した態様の範囲および思想から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用する用語は、態様の原理、実際の応用、または市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示した態様を理解できるようにするために選んでいる。

Claims (25)

  1. 複数のクラウド・ベンダーの特性を決定および記憶することと、
    ワークロードを複数の論理ステージに分割することと、
    前記複数の論理ステージのうちのそれぞれの特性を決定することと、
    前記複数の論理ステージのうちのそれぞれについて、前記複数のクラウド・ベンダーの前記特性と前記論理ステージの前記特性との比較に基づいて、前記論理ステージを前記複数のクラウド・ベンダーのうちの1つに割り当てることと、
    を含む、コンピュータ実装方法。
  2. 前記複数のクラウド・ベンダーのうちのそれぞれの前記特性は、前記クラウド・ベンダーを分析することによって決定され、前記分析することは、前記クラウド・ベンダーのスキャンを実行するために、能力および費用アプリケーション・プログラミング・インターフェース(API)を動作させることを含む、請求項1に記載のコンピュータ実装方法。
  3. 前記複数のクラウド・ベンダーのうちのそれぞれの前記特性は、前記クラウド・ベンダーを分析することによって決定され、前記分析することは、前記複数のクラウド・ベンダーのうちのそれぞれのレポート、傾向、脆弱性、セキュリティ問題などのうちの1つまたは複数を特定するために、1つまたは複数のパブリックおよびプライベート・セキュリティ・データベース情報を収集および解析することを含む、請求項1に記載のコンピュータ実装方法。
  4. 前記複数のクラウド・ベンダーのうちのそれぞれの前記特性は、前記クラウド・ベンダーを分析することによって決定され、前記分析することは、前記複数のクラウド・ベンダーのうちの1つまたは複数に関する既存のセキュリティ問題に対する既存の解決方法を決定するために、1つまたは複数の解決策データベースを解析することを含む、請求項1に記載のコンピュータ実装方法。
  5. 前記複数のクラウド・ベンダーのうちのそれぞれの前記特性は、前記クラウド・ベンダーを分析することによって決定され、前記分析することは、前記クラウド・ベンダーに関して収集されたレビュー情報に基づいて、前記クラウド・ベンダーのそれぞれに関する1つまたは複数の実行可能性要因を推定することを含み、前記実行可能性要因は、サービス性、ネット・プロモーター・スコア(NPS)、ユーザ・レビュー、パフォーマンス・ベンチマーク、およびチューニングの柔軟性を含むグループから選択される、請求項1に記載のコンピュータ実装方法。
  6. 前記複数のクラウド・ベンダーのうちのそれぞれについて、前記クラウド・ベンダーの前記特性は、前記クラウド・ベンダーの能力、前記クラウド・ベンダーの実施の費用、前記クラウド・ベンダーによって実現されるセキュリティ・レベル、および前記クラウド・ベンダーに関連する実行可能性要因を含む、請求項1に記載のコンピュータ実装方法。
  7. 前記複数のクラウド・ベンダーの前記特性のうちのそれぞれのレベルを決定するために、前記複数のクラウド・ベンダーの前記特性のうちのそれぞれが1つまたは複数の事前定義された閾値と比較される、請求項1に記載のコンピュータ実装方法。
  8. 前記複数のクラウド・ベンダーのうちのそれぞれについて、前記クラウド・ベンダーの前記特性は、
    ワークロードの実施中に前記クラウド・ベンダーによって提供されるセキュリティのレベルを示すサイバー・セキュリティ特性と、
    ワークロードの実施中に前記クラウド・ベンダーによって提供されるクラッシュ保護、マルウェア保護、および冗長データ保護のレベルを示すサイバー・レジリエンシー特性と、
    を含む、請求項1に記載のコンピュータ実装方法。
  9. 前記ワークロードは、
    分析および操作されるデータの1つまたは複数のインスタンスと、
    実行される1つまたは複数の計算と、
    出力される1つまたは複数の結果と、
    を含む、請求項1に記載のコンピュータ実装方法。
  10. 前記ワークロードを分割することは、前記ワークロード内のデータ入力および出力のポイント、ならびに前記ワークロードへの入力に関連する依存関係を特定するために、前記ワークロードを解析することを含む、請求項1に記載のコンピュータ実装方法。
  11. 前記ワークロード内のデータ入力および出力のインスタンスを予測するために、前記ワークロードのソース・コードがスキャンされる、請求項1に記載のコンピュータ実装方法。
  12. 前記論理ステージのそれぞれは、前記ワークロード内の他の論理ステージに依存しないデータ入力を含む、請求項1に記載のコンピュータ実装方法。
  13. 前記論理ステージ内の入力、出力、および中間結果に基づいて前記論理ステージのうちのそれぞれの複雑性が決定される、請求項1に記載のコンピュータ実装方法。
  14. 前記論理ステージの複雑性に基づいて前記論理ステージのうちのそれぞれの特性が決定される、請求項1に記載のコンピュータ実装方法。
  15. 各論理ステージについて、前記論理ステージの要件を満たすことが可能なクラウド・ベンダーを決定するために、前記論理ステージの前記特性が前記複数のクラウド・ベンダーのうちのそれぞれの前記特性と比較される、請求項1に記載のコンピュータ実装方法。
  16. 前記論理ステージをクラウド・ベンダーに割り当てることは、前記クラウド・ベンダーが前記論理ステージに必要な入力を受け取り、前記論理ステージに必要な操作を実行し、前記論理ステージに必要なデータを出力するように、前記論理ステージを前記クラウド・ベンダーにマッピングすることを含む、請求項1に記載のコンピュータ実装方法。
  17. グラフィカル・ユーザ・インターフェース(GUI)を使用して前記クラウド・ベンダーへの各論理ステージのマッピングを1人または複数のユーザに提示することをさらに含む、請求項1に記載のコンピュータ実装方法。
  18. ユーザの優先順位に基づいて各論理ステージ内のリソース割り当てを調整することをさらに含む、請求項1に記載のコンピュータ実装方法。
  19. 前記ワークロードの各タスク中にデータが必要なクラウド・ベンダーに配置されるようにするために、前記ワークロードの実施中に前記クラウド・ベンダー間でデータ移行を実行することを含む、ライフ・サイクル管理を実施することをさらに含む、請求項1に記載のコンピュータ実装方法。
  20. マルチクラウド環境においてワークロードを実施するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、プログラム命令を具現化するコンピュータ可読記憶媒体を含み、前記コンピュータ可読記憶媒体自体は一過性の信号ではなく、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに方法を実行させ、前記方法は、
    前記プロセッサによって、複数のクラウド・ベンダーの特性を決定および記憶することと、
    前記プロセッサによって、ワークロードを複数の論理ステージに分割することと、
    前記プロセッサによって、前記複数の論理ステージのうちのそれぞれの特性を決定することと、
    前記複数の論理ステージのうちのそれぞれについて、前記プロセッサによって、前記複数のクラウド・ベンダーの前記特性と前記論理ステージの前記特性との比較に基づいて、前記論理ステージを前記複数のクラウド・ベンダーのうちの1つに割り当てることと、
    を含む、コンピュータ・プログラム製品。
  21. 前記複数のクラウド・ベンダーのうちのそれぞれの前記特性は、前記クラウド・ベンダーを分析することによって決定され、前記分析することは、前記クラウド・ベンダーのスキャンを実行するために、能力および費用アプリケーション・プログラミング・インターフェース(API)を動作させることを含む、請求項20に記載のコンピュータ・プログラム製品。
  22. 前記複数のクラウド・ベンダーのうちのそれぞれの前記特性は、前記クラウド・ベンダーを分析することによって決定され、前記分析することは、前記複数のクラウド・ベンダーのうちのそれぞれのレポート、傾向、脆弱性、セキュリティ問題などのうちの1つまたは複数を特定するために、1つまたは複数のパブリックおよびプライベート・セキュリティ・データベース情報を収集および解析することを含む、請求項20に記載のコンピュータ・プログラム製品。
  23. プロセッサと、
    前記プロセッサと統合された、もしくは前記プロセッサによって実行可能な、または前記プロセッサと統合され、前記プロセッサによって実行可能なロジックと、
    を備え、前記ロジックは、
    複数のクラウド・ベンダーの特性を決定および記憶することと、
    ワークロードを複数の論理ステージに分割することと、
    前記複数の論理ステージのうちのそれぞれの特性を決定することと、
    前記複数の論理ステージのうちのそれぞれについて、前記複数のクラウド・ベンダーの前記特性と前記論理ステージの前記特性との比較に基づいて、前記論理ステージを前記複数のクラウド・ベンダーのうちの1つに割り当てることと、
    を行うように構成される、システム。
  24. 複数のクラウド・ベンダーを分析することによって、前記複数のクラウド・ベンダーの特性を決定することであって、前記分析することは、
    前記複数のクラウド・ベンダーのスキャンを実行するために、能力および費用アプリケーション・プログラミング・インターフェース(API)を動作させることと、
    前記複数のクラウド・ベンダーのうちのそれぞれのレポート、傾向、脆弱性、セキュリティ問題などのうちの1つまたは複数を特定するために、1つまたは複数のパブリックおよびプライベート・セキュリティ・データベース情報を収集および解析することと、
    前記複数のクラウド・ベンダーのうちの1つまたは複数に関する既存のセキュリティ問題に対する既存の解決方法を決定するために、1つまたは複数の解決策データベースを解析することと、
    を含む、前記決定することと、
    ワークロードを複数の論理ステージに分割することと、
    前記複数の論理ステージのうちのそれぞれの特性を決定することと、
    前記複数の論理ステージのうちのそれぞれについて、前記複数のクラウド・ベンダーの前記特性と前記論理ステージの前記特性との比較に基づいて、前記論理ステージを前記複数のクラウド・ベンダーのうちの1つに割り当てることと、
    を含む、コンピュータ実装方法。
  25. 複数のクラウド・ベンダーの特性を決定および記憶することと、
    ワークロードを複数の論理ステージに分割することであって、
    前記ワークロード内のデータ入力および出力のポイント、ならびに前記ワークロードへの入力に関連する依存関係を特定するために、前記ワークロードを解析することと、
    前記ワークロード内のデータ入力および出力のインスタンスを予測するために、前記ワークロードのソース・コードをスキャンすることと、
    を含み、
    前記論理ステージのそれぞれは、前記ワークロード内の他の論理ステージに依存しないデータ入力を含む、
    前記分割することと、
    前記複数の論理ステージのうちのそれぞれの特性を決定することと、
    前記複数の論理ステージのうちのそれぞれについて、前記複数のクラウド・ベンダーの前記特性と前記論理ステージの前記特性との比較に基づいて、前記論理ステージを前記複数のクラウド・ベンダーのうちの1つに割り当てることと、
    を含む、コンピュータ実装方法。
JP2022537262A 2020-01-02 2020-12-01 マルチクラウド環境におけるワークロードの実施 Pending JP2023509369A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/732,690 2020-01-02
US16/732,690 US11995479B2 (en) 2020-01-02 2020-01-02 Implementing workloads in a multi-cloud environment with data migration between cloud vendors
PCT/IB2020/061315 WO2021137046A1 (en) 2020-01-02 2020-12-01 Implementing workloads in a multi-cloud environment

Publications (1)

Publication Number Publication Date
JP2023509369A true JP2023509369A (ja) 2023-03-08

Family

ID=76655187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537262A Pending JP2023509369A (ja) 2020-01-02 2020-12-01 マルチクラウド環境におけるワークロードの実施

Country Status (8)

Country Link
US (1) US11995479B2 (ja)
JP (1) JP2023509369A (ja)
KR (1) KR20220086686A (ja)
CN (1) CN114930291A (ja)
AU (1) AU2020418595B2 (ja)
DE (1) DE112020005306T5 (ja)
GB (1) GB2607224A (ja)
WO (1) WO2021137046A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11995479B2 (en) 2020-01-02 2024-05-28 International Business Machines Corporation Implementing workloads in a multi-cloud environment with data migration between cloud vendors
US11973770B1 (en) 2020-12-09 2024-04-30 Wiz, Inc. Techniques for multi-tenant vulnerability scanning
US20220217136A1 (en) * 2021-01-04 2022-07-07 Bank Of America Corporation Identity verification through multisystem cooperation
CN116723114B (zh) * 2023-08-07 2023-12-29 国网信息通信产业集团有限公司 一种面向多云环境的多云接口适配方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8272061B1 (en) * 2002-10-01 2012-09-18 Skyobox security Inc. Method for evaluating a network
US8886806B2 (en) 2010-04-07 2014-11-11 Accenture Global Services Limited Generic control layer in a cloud environment
US9454406B2 (en) * 2011-02-28 2016-09-27 Novell, Inc. Techniques for cloud bursting
AU2011254039A1 (en) * 2011-12-14 2013-07-04 Canon Kabushiki Kaisha Dynamically adjusting the complexity of worker tasks in a multi-threaded application
WO2013110965A1 (en) * 2012-01-27 2013-08-01 Empire Technology Development Llc Spiral protocol for iterative service level agreement (sla) execution in cloud migration
US9401835B2 (en) * 2013-03-15 2016-07-26 International Business Machines Corporation Data integration on retargetable engines in a networked environment
CN103685540A (zh) 2013-12-20 2014-03-26 上海电机学院 基于云计算的任务分解复合方法
US10320893B2 (en) * 2014-07-31 2019-06-11 Corent Technology, Inc. Partitioning and mapping workloads for scalable SaaS applications on cloud
US9825881B2 (en) 2014-09-30 2017-11-21 Sony Interactive Entertainment America Llc Methods and systems for portably deploying applications on one or more cloud systems
US10263879B2 (en) * 2015-09-14 2019-04-16 International Business Machines Corporation I/O stack modeling for problem diagnosis and optimization
US10178096B2 (en) * 2017-03-31 2019-01-08 International Business Machines Corporation Enhanced data leakage detection in cloud services
US10171377B2 (en) 2017-04-18 2019-01-01 International Business Machines Corporation Orchestrating computing resources between different computing environments
US10447806B1 (en) * 2017-06-09 2019-10-15 Nutanix, Inc. Workload scheduling across heterogeneous resource environments
US10827025B2 (en) 2017-10-18 2020-11-03 Hewlett Packard Enterprise Development Lp Allocations of arbitrary workloads among hyperconverged nodes
EP3724760A1 (en) 2017-12-14 2020-10-21 Telefonaktiebolaget LM Ericsson (publ.) Dynamic adjustment of workload forecast
CN109040193B (zh) 2018-07-10 2021-01-15 广东工业大学 基于无依赖子任务的移动设备云资源分配方法
CN109783189B (zh) 2018-12-07 2022-11-22 西北大学 一种静态工作流调度方法与装置
US10929310B2 (en) * 2019-03-01 2021-02-23 Cisco Technology, Inc. Adaptive address translation caches
CN110308967B (zh) 2019-06-06 2023-05-30 东南大学 一种基于混合云的工作流成本-延迟最优化任务分配方法
CN110502323B (zh) 2019-07-18 2022-02-18 国网浙江省电力有限公司衢州供电公司 一种云计算任务实时调度方法
US11995479B2 (en) 2020-01-02 2024-05-28 International Business Machines Corporation Implementing workloads in a multi-cloud environment with data migration between cloud vendors

Also Published As

Publication number Publication date
US11995479B2 (en) 2024-05-28
KR20220086686A (ko) 2022-06-23
GB202210291D0 (en) 2022-08-24
DE112020005306T5 (de) 2022-09-01
CN114930291A (zh) 2022-08-19
WO2021137046A1 (en) 2021-07-08
GB2607224A (en) 2022-11-30
AU2020418595A1 (en) 2022-06-23
AU2020418595B2 (en) 2024-01-25
US20210208952A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
US10489217B2 (en) Determining storage tiers for placement of data sets during execution of tasks in a workflow
US10958515B2 (en) Assessment and dynamic provisioning of computing resources for multi-tiered application
US11442764B2 (en) Optimizing the deployment of virtual resources and automating post-deployment actions in a cloud environment
US9798635B2 (en) Service level agreement-based resource allocation for failure recovery
US10228984B2 (en) Management of virtual machine migration in an operating environment
US11093289B2 (en) Provisioning disaster recovery resources across multiple different environments based on class of service
US10210054B1 (en) Backup optimization in hybrid storage environment
AU2020418595B2 (en) Implementing workloads in a multi-cloud environment
US9823941B2 (en) Optimized placement of virtual machines on physical hosts based on user configured placement policies
US9733970B2 (en) Placement of virtual machines on preferred physical hosts
US11526404B2 (en) Exploiting object tags to produce a work order across backup engines for a backup job
US10642540B2 (en) Aligning tenant resource demand in a multi-tier storage environment
WO2023072252A1 (en) Task failover
US20230325256A1 (en) Deep neural network management of overbooking in a multi-tenant computing environment
US11556387B2 (en) Scheduling jobs
US11811888B2 (en) Ensuring data protection and control in distributed hybrid multi-cloud environment
WO2023098185A1 (en) Query resource optimizer
CN116304660A (zh) 模型更新确定

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230525