JP2023541896A - トランスクラウドアプリケーションテンプレートを実装するためのシステムおよび方法 - Google Patents

トランスクラウドアプリケーションテンプレートを実装するためのシステムおよび方法 Download PDF

Info

Publication number
JP2023541896A
JP2023541896A JP2023516143A JP2023516143A JP2023541896A JP 2023541896 A JP2023541896 A JP 2023541896A JP 2023516143 A JP2023516143 A JP 2023516143A JP 2023516143 A JP2023516143 A JP 2023516143A JP 2023541896 A JP2023541896 A JP 2023541896A
Authority
JP
Japan
Prior art keywords
tosca
template
server
cloud
acyclic graph
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
JP2023516143A
Other languages
English (en)
Inventor
ホーファー、クリスチャン
ペレス-グリフォ、ハビエル
バノス、パブロ
バレ、アルベルト デル
Original Assignee
クラウドブルー エルエルシー
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 クラウドブルー エルエルシー filed Critical クラウドブルー エルエルシー
Publication of JP2023541896A publication Critical patent/JP2023541896A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • 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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

トランスクラウドインフラストラクチャデプロイメントを実装するためのシステムおよび方法は、ユーザから入力を受信し、該入力は、クラウドアプリケーションのためのトポロジおよびオーケストレーション仕様(TOSCA)テンプレートと、グラフィカルユーザインタフェース(GUI)を介してのインスタンス化のための入力パラメータとを含み、TOSCAテンプレートに入力パラメータを適用することと、定義された関係に基づいてTOSCAテンプレートの有向非巡回グラフを作成することと、非巡回グラフに定義された順序に基づいてオーケストレーションエンジンへのAPIコールを通じてインスタンス化モデルを実行することと、を含む。TOSCAテンプレートおよび入力パラメータは、デプロイメントおよび/またはサーバプランのためのリージョンを指定することができる。【選択図】図1

Description

関連出願への相互参照
本出願は、2020年9月16日に出願された米国仮特許出願第63/079,413号の優先権を主張し、その全体が本明細書に組み込まれる。
開示される実施形態の技術分野
本開示は、クラウドコンピューティングインフラストラクチャの構成およびデプロイメントに関する。
クラウドコンピューティング環境においてインフラストラクチャをデプロイするためのシステムは、特定のクラウドベンダへのインフラストラクチャの自動化されたデプロイメントに集中している。このようなシステムは、RightScale Cloud Application Templates、Cloudify、およびHashicorp Terraformなどのクラウドインフラストラクチャの構成およびデプロイメントを可能にする。しかし、既知のソリューションは、構成が特定のクラウドベンダに限定されることを要求するため、困難かつ非効率的である。これらのソリューションは、さまざまなクラウドベンダ上のインフラストラクチャを記述することを可能にするという意味で「マルチクラウド」であるが、クラウドベンダごとに特定の記述を要求する。しかし、このようなソリューションでは、一度に複数のクラウドベンダ全体にわたってインフラストラクチャを構成することが一般には可能でない。
本明細書に開示される実施形態は、クラウドベンダとは独立にインフラストラクチャを記述することを可能にし、クラウドベンダの選択を、インフラストラクチャの自動化されたデプロイメント中の単なるパラメータにし、任意のクラウドベンダのクラウドにおける完全なインフラストラクチャの自動化されたデプロイメントを可能にする。このトランスクラウド手法は、一度に複数のクラウドベンダ全体にわたってインフラストラクチャを構成することを可能にする。
本明細書に開示される実施形態は、ユーザが、インフラストラクチャ記述(サービステンプレート)に基づいて、複数のクラウドベンダ内にインフラストラクチャを自動的にデプロイすることを可能にする。本明細書に開示される実施形態は、特定のクラウドベンダインフラストラクチャに対する抽象化を提供する。本明細書に開示される実施形態は、実装とは独立にインフラストラクチャを記述するために、クラウドアプリケーションのためのトポロジおよびオーケストレーション仕様(TOSCA)標準を使用するとともに、ワークフロー自動化を可能にするために、新しいコンポーネント、すなわち、既知のオーケストレーションエンジン(例えば、Ingram Micro Cloud Orchestrator)を拡張するTOSCAインタプリタを使用する。この改良は、ユーザが、クラウドアプリケーションテンプレートのデプロイメント中に動的にクラウドベンダ、リージョン、サーバプランなどを選択することを可能にする。
提供されるシステムおよび方法は、クラウドインフラストラクチャの自動化されたトランスクラウドデプロイメントを可能にする。
添付の図面とともに本開示のさまざまな例示的実施形態の以下の説明を参照することによって、本明細書に含まれる実施形態ならびに他の特徴、利点および開示と、それらを達成する仕方とが明らかになり、本開示はより良く理解されるであろう。
一例示的実施形態による、クラウドインフラストラクチャのデプロイメントを自動化するためのシステムの一実施形態の概略図である。
一例示的実施形態による、クラウドオーケストレータアーキテクチャの概略図である。
一例示的実施形態による、TOSCAインタプリタによって実行されるプロセスの概略図である。
一例示的実施形態による、TOSCAインタプリタによって提供される有向非巡回グラフ(DAG)インスタンス化を示す図である。
一例示的実施形態による、例示的なコンピューティングデバイスを示す図である。
本開示の原理の理解を促進する目的のため、以下、図面に示される実施形態を参照し、特定の用語を用いてそれらの実施形態を説明する。それにもかかわらず、本開示の範囲のいかなる限定もそれによって意図されないと理解されたい。
一実施形態では、ソリューションは、Ingram Micro Cloud Orchestrator(米国カリフォルニア州IrvineのIngram Micro Inc.から提供される)などのクラウドオーケストレータを用いて実装され得る。いくつかの実施形態では、クラウドオーケストレータは、ユーザが、ステップごとに(すなわち、ブループリントごとに、ネットワークごとに、ファイアウォールプロファイルごとに、サーバごとに)、完全にインフラストラクチャを作成しデプロイすることを可能にする。クラウドオーケストレータは、完全なインフラストラクチャを自動的にデプロイすることを可能にしない。
図1は、任意のクラウドベンダのクラウドにおける完全なインフラストラクチャの自動化されたデプロイメントを可能にするクラウドインフラストラクチャデプロイメントシステムを示す。いくつかの実施形態によれば、トランスクラウドアプリケーションテンプレートが、インフラストラクチャをデプロイするために作成および処理され得るトランスクラウド抽象化を提供する。図1に概略的に示されるように、クラウドオーケストレータ110は、コネクタ140を介してクラウドサービス仲介(CSB)プラットフォーム120(例えば、「Ingram Micro Cloud Blue Platform」、または他のCSBプラットフォーム)と統合される。
いくつかの実施形態では、クラウドオーケストレータ110は、異なるクラウドベンダ105のクラウドインフラストラクチャを管理するための1つまたは複数のシステムを含み得る。クラウドベンダ105は、例えば、パブリッククラウドベンダ(例えば、Amazon Web Services(AWS)、Azure、Googleクラウドプラットフォーム、IBM Bluemixなど)およびプライベートクラウドベンダ(例えば、VMware、OpenStackなど)を含み得る。
いくつかの実施形態では、コネクタ140は、管理アプリケーションプログラミングインタフェース(API)を用いて実装され得る。コネクタ140は、CSBプラットフォーム120上で顧客、ユーザおよびクラウドクレデンシャルをプロビジョニングすることができる。いくつかの実施形態では、コネクタはまた、ユーザがCSBプラットフォーム120にログインすることを可能にするシングルサインオン(SSO)ワークフローを開始する。
いくつかの非限定的な例では、ユーザ(例えば、顧客、デベロッパ、アドミニストレータなど)は、CSBプラットフォーム120にログインし、パブリッククラウドサービス(例えば、Azureサービスなど)へのサブスクリプションを作成する。それからユーザは、クラウドオーケストレータポータル、例えば構成管理ツール130を通じて、インフラストラクチャを構成しデプロイする。CSBプラットフォームは、使用量データを収集し、サービスカタログを価格とともに保存し、顧客にインボイスを送り、サブスクリプションを作成/削除/変更し、アクセスを管理し、パブリッククラウドベンダポータルおよびクラウドオーケストレータポータルにSSOを提供し、マルチティアおよびマルチチャネルの管理ならびにビジネスインテリジェンスを提供するなどのビジネスロジックを処理する。
図2は、クラウドインフラストラクチャデプロイメントシステムの環境におけるクラウドオーケストレータアーキテクチャを概略的に示す。図2を参照すると、トランスクラウドインフラストラクチャデプロイメントを実行するためのシステム200は、クラウドオーケストレータ210アーキテクチャ、パブリッククラウドベンダ220、および構成管理ツール240を含む。
一般的に、クラウドインフラストラクチャは、ウェブユーザインタフェース(UI)を通じて、またはAPIを通じて、1つずつ手動でデプロイされ得る。例えば、ユーザは、仮想ネットワークを作成した後、その中に2つのサブネットを作成することができる。ユーザは、各サブネット内にサーバを設置することができ、各サーバは、ファイアウォールプロファイルを有し、特定のブループリントがソフトウェア構成(オペレーティングシステム(OS)を含む)を記述する。このブループリントにおいて、ユーザは、あるサーバが他のサーバを指すようにすることができる。従来、ブループリントおよびファイアウォールプロファイルは、クラウドベンダとは独立であった。ネットワーク(サーバが仮想ネットワークの一部である場合)またはサーバ(サーバが仮想ネットワークの一部でない場合)の作成中に、クラウドベンダが選択されなければならなかった。以前は、ユーザが、ネットワーク、ブループリント、サーバなどを手動で作成しなければならなかった。
本明細書に記載される実施形態によれば、クラウドオーケストレータ210は、トランスクラウドアプリケーションテンプレートを含む、インフラストラクチャデプロイメントプロセスの自動化を可能にする。これは、例えば、APIコールのリストを実行するために場当たり的にスクリプトを書くことを必要とする、APIを用いた単調作業による自動化だけが可能な従来のシステムとは異なる。いくつかの実施形態によれば、システム200は、バックエンドサーバへのフロントエンドサーバの接続を動的に可能にする。すなわち、バックエンドサーバのIPアドレスがある時点で変化した場合、フロントエンドサーバは、それが指しているIPアドレスを自動的に更新する。この態様は、接続を更新しない従来のシステムとは異なる。
いくつかの実施形態によれば、クラウドオーケストレータ210は、クラウドベンダカタログ212、顧客オブジェクトデータベース214、構成データハブ216、クラウドオーケストレータAPI218、TOSCAインタプリタ220、クラウドオーケストレータポータル222、およびオーケストレーションエンジン230を含み得る。
クラウドベンダカタログ212は、さまざまなOSおよびさまざまなアプリケーションの汎用イメージを保存する。クラウドベンダカタログ212は、クラウドベンダのイメージカタログと定期的に通信しクラウドオーケストレータのクラウドベンダカタログを更新するスクリプトを保存することができる。顧客オブジェクトデータベース214は、1つまたは複数のクラウドサービスサブスクリプションに関わる情報、SSO情報、構成情報などを含む顧客オブジェクトに関する情報を保存することができる。構成データハブ216は、例えばジョブ機能に属する、組織におけるノード全体にわたって存在するパターンおよびプロセスを定義するための1つまたは複数のロールを保存することができる。
従来のシステムと比較して、システム200の実施形態は、図2に示されるようなトランスクラウドTOSCAインタプリタ220を含む。TOSCAインタプリタ220は、他のコンポーネントとの通信を実行し、完全なインフラストラクチャのデプロイメントの自動化を実行することができる。
TOSCAインタプリタ220は、クラウドオーケストレータAPI218へのコールによってサービステンプレートを実行するTOSCAオーケストレーションコンポーネントであり得る。いくつかの非限定的な例では、TOSCAインタプリタ220は、TOSCAアーカイブおよび追加的な入力パラメータを入力として受信する。入力パラメータは、TOSCAノードのプロパティである任意のものであり得る。例えば、プライベートネットワークのネットワークCIDR(クラスレスドメイン間ルーティング)、サーバアレイのインスタンスの数などである。本明細書に開示される実施形態のTOSCAインタプリタの場合、それはまた、ネットワークもしくはサーバのクラウドプロバイダもしくはリージョンまたはサーバのサーバプランであり得る。TOSCAアーカイブは、サービステンプレートと、任意の追加的なファイル(Chefクックブック、スクリプトなど)とを含む。サービステンプレートは、インフラストラクチャ上で実行されるべきソフトウェアスタックの記述とともに、すべてのインフラストラクチャコンポーネント(ネットワーク、サーバ、ファイアウォールプロファイル、ロードバランサなど)の記述を含む。TOSCAインタプリタは、追加的な入力パラメータをテンプレートに適用し、オーケストレーションエンジンを通じてすべての必要なリソースを作成することによってテンプレートをインスタンス化する。
いくつかの実施形態によれば、TOSCAインタプリタ220は、TOSCAノードテンプレートインスタンスの有向非巡回グラフを動的に構築する。TOSCAサービステンプレートをインスタンス化するため、TOSCAインタプリタ220は、コンピューティング、ネットワーキング、およびソフトウェアノードの抽象化と、TOSCA標準タイプから導出される関係タイプとを使用する。TOSCAサービステンプレートは、クラウドベンダ非依存である。クラウドベンダは、サーバおよびネットワークをインスタンス化する特別な順序を有する可能性があり、ある時にはネットワークが最初に構成されるべきであり、ある時にはその逆である。オーケストレータエンジン230は、特定のクラウドベンダと互換性のある順序を定義する。TOSCAインタプリタ220は、オーケストレータエンジンに適合するように、TOSCAサービステンプレートで定義された順序を変更することができる。例えば、TOSCAインタプリタ220は、「ポート」(基本的に仮想NIC(仮想ネットワークインタフェースコントローラ)として動作する)を介してサーバをネットワークに結合するための標準的なモデルを有する。ポートは、仮想NICであり、実NICではなく、基本的にネットワークへのサーバのアクセスを編成する。TOSCAでは、ComputeノードテンプレートとNetworkノードテンプレートとの間の関係はPortノードテンプレートによって媒介され、Portノードテンプレートは、クラウドベンダ側の仮想NICと多かれ少なかれ同じロールを有する。TOSCAインタプリタがここで行っていることは、TOSCAサービステンプレートで定義された、最初にサーバ、その後に仮想NICという依存順序に従う代わりに、オーケストレータエンジンによって要求される順序に適合するために、共同プロセスでNICおよびサーバを作成することである。
TOSCAサービステンプレートインスタンス化のプロセス中に、TOSCAインタプリタ220は、ユーザによって選択されたクックブックのリストをオーケストレーションエンジンにアップロードする。その後、オーケストレーションエンジンは、構成データハブ、例えばChefに、ロールを作成する。
その後、TOSCAインタプリタ220は、そのサービステンプレートに従ってクラウドベンダプレミスにインフラストラクチャをデプロイする。(クラウドベンダに応じて)サーバブートの期間中または後に、TOSCAインタプリタ220は、構成管理ツールに接続するクライアントをインストールすることによってソフトウェアスタックをデプロイし管理するサーバ上に小さいクライアントプログラムをインストールし、正しいソフトウェア構成を取得する。クライアントプログラムはまた、指定されたスタートアップスクリプトが実行されることを保証する。
クラウドオーケストレータAPI218は、TOSCAインタプリタ220とオーケストレーションエンジン230との間の統合レイヤを提供する。クラウドオーケストレータAPI218は、ウェブユーザインタフェース上に提供されるオーケストレータエンジン230のすべての動作へのプログラマティックアクセスを提供する。これは、ファイアウォールプロファイルの定義、ソフトウェアブループリント、Chefクックブックのアップロード、スクリプトの定義、ネットワークおよびサーバの作成などを含む。
クラウドオーケストレータポータル222は、それを通じてユーザがクラウドオーケストラと対話しクラウドオーケストラを実装することができるUIを提供する。クラウドオーケストレータポータル222を通じて、ユーザは、1つまたは複数のパブリッククラウドベンダ上でサブスクリプションを選択してブループリントを作成することができ、ブループリントにおいてユーザは、このインフラストラクチャ上にデプロイするためのアプリケーションと、そのアプリケーションがどのようにデプロイされるべきか(例えば、フロントエンドはAWSサーバに、バックエンドはAzureに)とを選択することができる。ユーザは、オペレーティングシステム(OS)、Chefクックブック、および、限定はしないが、例えばサーバのスタートアップもしくはシャットダウン時に、またはサーバが動作している任意の時刻に手動で、実行されるべきスクリプトを含む他の入力を入力することができる。ユーザはまた、限定はしないが、ファイアウォール、ロードバランサなどを含む追加的なサービスを選ぶことができる。
オーケストレーションエンジン230は、クラウドインフラストラクチャを作成するために必要な抽象化を生成する。オーケストレーションエンジン230は、異なるクラウドベンダ全体にわたって異なるソフトウェア構成を有するネットワークおよびサーバのデプロイメントおよび動作を容易にするために、構成管理ツールと、および異なるクラウドベンダと通信する。オーケストレーションエンジン230は、異なるクラウドベンダと互換性のあるサーバおよびネットワークをインスタンス化する順序を定義する。統一されたAPIコールの作成は手動である。クラウドオーケストレータポータル222(オーケストレータウェブUIを含む)およびクラウドオーケストレータAPI218は、オーケストレーションエンジン230を制御するために使用され得る。このインスタンス化の核心は、正しい順序でのファイアウォールプロファイル、ネットワーク、およびサーバの作成である。そして、サーバの作成の一部は、そのソフトウェア構成を定義するそのブループリント(オーケストレータエンジンブループリント)を定義することである。
クラウドオーケストレーションエンジン230は、ネットワークマネージャ231、インフラストラクチャマネージャ232、クックブック233、オーケストレーションエンジンブループリント234、および1つまたは複数のスクリプト235を含み得る。
ネットワークマネージャ231は、ネットワークを構成する。インフラストラクチャマネージャ232は、インフラストラクチャを作成および構成する。
クックブック233は、構成管理ツール(例えばChefなど)における構成およびポリシーディストリビューションのユニットを提供する。クックブックは、シナリオを定義し、シナリオをサポートするために要求される以下の各構成要素を含む:
a)使用されるべきリソースおよびそれらが適用される順序を指定するレシピ。
b)属性値。
c)ファイルディストリビューション。
d)カスタムリソースおよびライブラリなどの、Chefへの拡張。
e)クックブック(属性)-クックブックレシピRun Listからの構成可能パラメータ。
f)クックブック(Run List)-ソフトウェアをインストールするクックブックレシピの順序。Run Listは、個別のクックブックに制約されない。Run Listは通常、異なるクックブックからのレシピのリストである。
g)クックブック(順序)-特定のクックブックに影響するレシピのグループ。
オーケストレーションエンジンブループリント234は、仮想マシンのための再利用可能な構成を提供する。オーケストレーションエンジンブループリントは、個別のサーバ上に提供されるべきソフトウェア構成(OSを含むフルソフトウェアスタック)を記述するサーバブループリントである。これは、TOSCAサービステンプレートまたはTOSCAトポロジテンプレートとは異なる。
スクリプト235は、1つまたは複数のスクリプティングエンジンによって実行され得る実行可能コマンドのリストである。スクリプト235は、実行可能プロセスを生成するためのスクリプティング言語を用いて書かれた命令を含むテキスト文書の形態であり得る。スクリプト235は、スクリプトに影響を及ぼすパラメータを含む1つまたは複数のスクリプトパラメータ、特定のスクリプトに対して手動で導入されるスクリプト、およびスクリプトコードを有する任意の外部文書のアップロードまたは参照をスクリプトに含むことを可能にし得るスクリプト添付書類を含み得る。
構成管理ツール240は、インフラストラクチャをコードに変換することによってインフラストラクチャ構成を自動化する。ツールは、クラウドのサイズおよび/またはタイプに関わらず、インフラストラクチャがネットワーク全体にわたってどのように構成され、デプロイされ、管理されるかを自動化する。構成管理ツールの例は、限定はしないが、Chef、Puppet、Ansibleなどを含む。構成管理ツールは、クライアントを構成管理と接続するためにユーザが起動することによってクラウドで起動されるサーバを含み得る。
クラウドベンダカタログ212は、さまざまなOSおよびさまざまなアプリケーションの汎用イメージを保存する。クラウドベンダのイメージカタログと定期的に通信しクラウドオーケストレータのクラウドベンダカタログを更新するスクリプトを含む。
クラウドオーケストレータアーキテクチャ110および210の実施形態は、ユーザが、単一のサービステンプレートを作成することによって複数のクラウドベンダ内に任意のインフラストラクチャをデプロイすることを可能にする。クラウドベンダ、リージョンおよびサーバプランの選択は、そのサービステンプレートのパラメータとして提供され得る。
いくつかの実施形態によれば、本明細書に開示される実施形態におけるクラウドオーケストレータに対して定義されるネットワークおよびサーバノードテンプレートは、特定のネットワークまたはサーバがデプロイされるべきクラウドプロバイダおよびリージョンを指定する「リージョン」プロパティを有する。これは、記述されたインフラストラクチャが特定の環境でデプロイされると仮定され得るデプロイメントリージョンを記述しないTOSCAの実装とは対照的である。リージョンプロパティを含むことによって、単一のサービステンプレートが、異なるクラウドプロバイダおよびリージョンの全体にわたってデプロイされるべきインフラストラクチャを記述するために提供され得る。さらに、1つまたは複数のリージョンをTOSCA入力パラメータとして期待することによって、サービステンプレートは、実際のインフラストラクチャまたはその部分をデプロイするために1つまたは複数のロケーションを指定するようにパラメトライズされ得る。
非限定的な例では、ユーザが、Ubuntu18.04において1つのサーバおよびWindows Server2012において他の1つサーバを動作させるようにサービステンプレート内で指定する。ユーザは、サービステンプレートのパラメータとして両者に対するサーバプランを残し、クラウドオーケストレータポータル222上で実行する。ユーザは、t3.mediumサーバプラン上のAWS East Virginia内でUbuntuサーバを動作させ、Standard B2サーバプラン上のWest U.S.におけるAzure内でWindowsサーバを動作させるためにサーバプランを実行する。どのクラウドベンダ上でそれらがデプロイされるかとは独立に、ファイアウォールルールが両方のサーバに自動的に適用され得る。TOSCAインタプリタ210は、そのAWSリージョン上のUbuntuイメージおよびAzureリージョン上のWindowsイメージを発見し、正しいサーバ構成を起動する。
1つの非限定的な例では、ユーザがTOSCAサービステンプレート、すなわち、インフラストラクチャ構成のための1つのコードを書く。TOSCAサービステンプレートの第1の部分はトポロジテンプレートを含むことができ、トポロジテンプレートは、入出力およびノード、ノードの関係、ならびにポリシーを定義する。システム200のいくつかの実施形態によれば、クラウドオーケストレータ固有のTOSCAデータおよびノードタイプが、トランスクラウドインフラストラクチャを定義することを可能にする。
図3は、本開示のいくつかの実施形態による、トランスクラウドインフラストラクチャデプロイメントを実行するための方法300の流れ図である。いくつかの実施形態では、方法300は、TOSCAインタプリタ220によって実行されるTOSCAテンプレートの実装を実行するための動作ステップを提供する。上記のように、TOSCAインタプリタ220は、クラウドオーケストレータポータル222を介してユーザによって提供される入力を実行することができる。いくつかの実施形態によれば、プロセス300は、入力として提供される動作の実行を含み得る。このような動作は、例えば、TOSCAインタプリタ220による実行のためにユーザによってクラウドオーケストレータポータル222にアップロードされたソフトウェアコードとして入力され得る。
図3を参照すると、動作305で、コンピューティングデバイスが、TOSCAテンプレートおよび/またはTOSCAテンプレートに関連する情報を含む入力をユーザから受信することができる。いくつかの実施形態によれば、動作305は、ユーザによってクラウドオーケストレータポータル222にアップロードされた、TOSCAインタプリタ220によって実行されるべきソフトウェアコードとして入力を受信することを含み得る。
動作305で、サービステンプレートが作成されることができ、トポロジテンプレートが、いくつかのトポロジテンプレート入力を設定するように指定されることができる。トポロジテンプレート入力は、例えば、ネットワークおよびサーバがデプロイされるべきリージョン、サーバプラン、ならびにクラスレスドメイン間ルーティング(CIDR)の指定を含み得る。このコードの非限定的な例が以下に提供される。
この例では、トポロジテンプレートネスト化マッピングが提供され、regionおよびserver_planパラメータを含む入力パラメータが定義される。
tosca_definitions_version: tosca_simple_yaml_1_2
metadata:
template_name: Magento
template_author: Ingram Micro
template_version: 0.8
topology_template:
inputs:
region:
type: ingrammicro.orchestrator.datatypes.Region
required: true
description: Region for Magento servers
metadata:
order: 1
server_plan:
type: ingrammicro.orchestrator.datatypes.ServerPlan
required: true
description: Server plan for Magento servers
metadata:
dependency: region
order: 2
cidr:
type: ingrammicro.orchestrator.datatypes.vpc.CIDR
required: true
default: 10.0.0.0/24
description: The CIDR block describing the VPC IPv4 address range
metadata:
order: 3
private_subnet_cidr:
type: ingrammicro.orchestrator.datatypes.vpc.CIDR
required: true
default: 10.0.0.0/25
description: The CIDR block describing the VPC IPv4 address range
metadata:
order: 4
dependency: cidr
public_subnet_cidr:
type: ingrammicro.orchestrator.datatypes.vpc.CIDR
required: true
default: 10.0.0.128/26
description: The CIDR block describing the VPC IPv4 address range
metadata:
order: 5
dependency: cidr
admin_user:
type: string
required: true
description: Administrator user
metadata:
order: 6
admin_password:
type: string
required: true
description: Administrator password
metadata:
order: 7
db_password:
type: string
required: true
description: Password of the Magento DB
metadata:
order: 8
server_root_password:
type: string
required: true
description: Root password of the server
metadata:
order: 9
sample_data:
type: boolean
default: true
description: Create Sample Shop?
metadata:
order: 10
動作310で、コンピューティングデバイスは、トランスクラウドインフラストラクチャのインスタンス化のための、TOSCAテンプレートに関連する1つまたは複数の入力パラメータを含む入力をユーザから受信することができる。
例えば、310で、ユーザは、ネットワーク、サーバの構成、各サーバ間の関係、およびどのリージョンでそれらがデプロイされるべきかを指定するためにノードテンプレートを設定することができる。各サーバについて、構成管理ツールからの利用可能なソリューションを用いて、ソフトウェアスタックが指定され得る。
デプロイメントリージョンを含むインフラストラクチャモデルのインスタンス化のための入力パラメータを指定する、ノードテンプレートの非限定的な例が以下に提供される。
Magento:
type: ingrammicro.orchestrator.nodes.network.VPC
properties:
cidr: {get_input: cidr}
region: {get_input: region}
ip_version: 4
attributes: {}
Magento Private Subnet:
type: ingrammicro.orchestrator.nodes.network.Subnet
properties:
cidr: {get_input: private_subnet_cidr}
gateway_type: private
ip_version: 4
attributes: {}
requirements:
- vpc: Magento
Magento Public Subnet:
type: ingrammicro.orchestrator.nodes.network.Subnet
properties:
cidr: {get_input: public_subnet_cidr}
gateway_type: public
ip_version: 4
attributes: {}
requirements:
- vpc: Magento
Magento Backend:
type: ingrammicro.orchestrator.nodes.Compute
properties:
private: true
region: {get_input: region}
server_plan: {get_input: server_plan}
attributes: {}
capabilities:
endpoint:
properties:
initiator: source
network_name: PRIVATE
port: 22
protocol: tcp
secure: true
attributes: {}
Magento Backend Port:
type: tosca.nodes.network.Port
properties:
is_default: true
order: 0
attributes: {}
requirements:
- link: Magento Private Subnet
- binding: Magento Backend
Magento Frontend:
type: ingrammicro.orchestrator.nodes.Compute
properties:
private: false
region: {get_input: region}
server_plan: {get_input: server_plan}
attributes: {}
capabilities:
endpoint:
properties:
initiator: source
network_name: PRIVATE
port: 22
protocol: tcp
secure: true
attributes: {}
Magento Frontend Port:
type: tosca.nodes.network.Port
properties:
is_default: true
order: 0
attributes: {}
requirements:
- link: Magento Public Subnet
- binding: Magento Frontend
Magento Backend Stack:
type: ingrammicro.orchestrator.nodes.SoftwareStack
requirements:
- blueprint: Magento Backend Blueprint
- host: Magento Backend
Magento Backend Blueprint:
type: ingrammicro.orchestrator.nodes.Blueprint
properties:
service_list:
- magento::database@0.7.1
configuration_attributes:
magento:
db:
password: {get_input: db_password}
sample_data: {get_input: sample_data}
user:
username: {get_input: admin_user}
password: {get_input: admin_password}
mysql:
allow_remote_root: "true"
root_network_acl: 0.0.0.0/0
root_password: {get_input: server_root_password}
capabilities:
os:
properties:
architecture: x86_64
distribution: ubuntu
type: linux
version: "14.04"
interfaces:
Standard:
create:
inputs:
cookbook_file: { get_artifact: [SELF, magento_cookbook] } artifacts:
magento_cookbook:
type: ingrammicro.orchestrator.artifacts.Chef.CookbookArchive
file: cookbooks/magento-0.7.1.tar.gz
Magento Frontend Stack:
type: ingrammicro.orchestrator.nodes.SoftwareStack
properties:
configuration_variables:
backend:
reference:
get_attribute: [Magento Backend, tosca_id]
type: server
requirements:
- host: Magento Frontend
- blueprint: Magento Frontend Blueprint
- dependency: Magento Backend
Magento Frontend Blueprint:
type: ingrammicro.orchestrator.nodes.Blueprint
properties:
service_list:
- magento::frontend@0.7.1
configuration_attributes:
magento:
db:
host:
$apply:
- $private_ip
- $server: backend
password: {get_input: db_password}
sample_data: {get_input: sample_data}
user:
username: {get_input: admin_user}
password: {get_input: admin_password}
capabilities:
os:
properties:
architecture: x86_64
distribution: ubuntu
type: linux
version: "14.04"
動作315で、コンピューティングデバイスは、305で指定されたTOSCAテンプレートに、310における1つまたは複数の入力を適用することができる。上記の非限定的な例を参照すると、315は、regionおよびserver_planパラメータを指定する入力パラメータと、310で受信された他の入力パラメータとをTOSCAテンプレートに適用することを含み得る。
動作320で、コンピューティングデバイスは、上記のステップで定義された関係に基づいて、TOSCAノードインスタンスの有向非巡回グラフ(DAG)を作成することができる。トポロジテンプレートはDAGとして変換され、DAGは、デプロイされるべきアプリケーションの構造を記述し、315で定義されたノードテンプレートに基づくノードと、関係テンプレートに基づいて定義され得るそれらのリレーション(例えば、辺)との形態でその各コンポーネントを含む。DAGは、アプリケーション固有のコンポーネント、ミドルウェア、インフラストラクチャコンポーネントなどを含み得る。
ノードインスタンス401および402ならびにノード要素間の関係410を指定する例示的なDAGが、上記で言及された非限定的な例の説明のために図4に提供される。DAG400は、Ubuntu18.04における1つのサーバラン401およびWindows Server2012における他のサーバ402を指定する。Ubuntuサーバは、t3.mediumサーバプラン上のAWS East Virginiaで動作し、Windowsサーバは、Standard B2サーバプラン上でWest U.S.におけるAzure内で動作する。
動作325で、コンピューティングデバイスは、インスタンス化されたモデルを実行することができる。動作325は、DAGで定義された順序に基づくオーケストレーションエンジンによるAPIコールを受信することを含み得る。
いくつかの実施形態によれば、動作325は、オーケストレーションエンジン230によってクックブック233を受信することを含み得る。非限定的な例では、ユーザは、オーケストレーションエンジン230によって受信されるべきクックブック233をアップロードすることができる。
クックブック233は、構成管理ツール(例えばChefなど)における構成およびポリシーディストリビューションのユニットを提供する。クックブックは、シナリオを定義し、上記のような、使用されるべきリソースおよびリソースを適用する順序を指定するためのレシピ、属性値、ファイルディストリビューション、Chef拡張、他の構成要素、を含む各構成要素を含む。
いくつかの実施形態によれば、動作325は、仮想マシンのための再利用可能な構成を定義するブループリントを受信することを含み得る。例えば、各ブループリントは、各個別のサーバ上に提供されるべきソフトウェア構成を記述することができる。
いくつかの実施形態によれば、動作325は、実行可能コマンドのリストを含むスクリプト235を受信することを含むことができ、スクリプト235は、例えば、スタートアップ、シャットダウン、または任意の他の適用可能な時刻に、1つまたは複数のスクリプティングエンジンによって実行され得る。動作235は、スクリプトに影響を及ぼすパラメータを含む1つまたは複数のスクリプトパラメータ、特定のスクリプトに対するスクリプトコード、およびスクリプト添付書類を含むスクリプトを受信することを含み得る。
1つの非限定的な例では、オーケストレーションエンジンは、APIコールを介してポリシーを含む入力を受信することができる。例えば、ユーザは、ファイアウォール構成などのポリシーを設定することができ、これはオーケストレーションエンジンにサブミットされる。ファイアウォールポリシーを含む、ファイアウォールを実装するための、オーケストレーションエンジンにサブミットされる例示的なコードが、以下に提供される。
- Magento Backend Firewall:
type: ingrammicro.orchestrator.policies.FirewallProfile
properties:
rules:
- port_range:
- 22
- 22
source: any
type: tcp
- port_range:
- 5985
- 5985
source: any
type: tcp
- port_range:
- 3389
- 3389
source: any
type: tcp
- port_range:
- 10050
- 10050
source: any
type: tcp
- name: mysql
port_range:
- 3306
- 3306
source: {get_input: cidr}
type: tcp
targets:
- Magento Backend
- Magento Frontend Firewall:
type: ingrammicro.orchestrator.policies.FirewallProfile
properties:
rules:
- port_range:
- 22
- 22
source: any
type: tcp
- port_range:
- 5985
- 5985
source: any
type: tcp
- port_range:
- 3389
- 3389
source: any
type: tcp
- port_range:
- 443
- 443
source: any
type: tcp
- port_range:
- 80
- 80
source: any
type: tcp
- port_range:
- 10050
- 10050
source: any
type: tcp
targets:
- Magento Frontend
outputs:
frontend_ip:
type: string
description: IP of Magento Frontend server
value: {get_attribute: [Magento Frontend, public_address]}
frontend_id:
type: string
description: TOSCA ID of Magento Frontend server
value: {get_attribute: [Magento Frontend, tosca_id]}
さまざまな実施形態が、例えば、図6に示されるコンピュータシステム500などの1つまたは複数のコンピュータシステムを用いて実装され得る。1つまたは複数のコンピュータシステム500は、例えば、本明細書に説明された実施形態のうちのいずれかと、それらの組合せおよび部分的組合せとを実装するために使用され得る。例えば、コンピュータシステム500は、図2のクラウドオーケストレーションアーキテクチャ210を含むトランスクラウドインフラストラクチャデプロイメントを実行するためのシステム200、トランスクラウドインフラストラクチャデプロイメントを実行するための方法300、および/または開示された実施形態の任意の他の実装形態を実装するために使用され得る。
コンピュータシステム500は、プロセッサ504などの1つまたは複数のプロセッサ(中央処理装置、またはCPUとも呼ばれる)を含み得る。プロセッサ504は、通信インフラストラクチャまたはバス506に接続され得る。
コンピュータシステム500はまた、モニタ、キーボード、ポインティングデバイスなどのようなユーザ入出力デバイス508を含むことができ、これらはユーザ入出力インタフェース502を通じて通信インフラストラクチャ506と通信し得る。
プロセッサ504のうちの1つまたは複数は、グラフィクス処理ユニット(GPU)であり得る。いくつかの実施形態では、GPUは、数学的負荷の高いアプリケーションを処理するために設計された特殊な電子回路であるプロセッサであり得る。GPUは、コンピュータグラフィクスアプリケーション、画像、動画などに共通の数学的負荷の高いデータなどの大きいブロックのデータを並列処理するために効率的な並列構造を有し得る。
コンピュータシステム500はまた、ランダムアクセスメモリ(RAM)などのメインまたは一次メモリ508を含み得る。メインメモリ508は、1つまたは複数のレベルのキャッシュを含み得る。メインメモリ508は、その中に制御ロジック(すなわち、コンピュータソフトウェア)および/またはデータを記憶しておくことができる。
コンピュータシステム500はまた、1つまたは複数の二次記憶デバイスまたはメモリ510を含み得る。二次メモリ510は、例えば、ハードディスクドライブ512および/またはリムーバブル記憶デバイスもしくはドライブ514を含み得る。リムーバブル記憶ドライブ514は、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光記憶デバイス、テープバックアップデバイス、および/または任意の他の記憶デバイス/ドライブであり得る。
リムーバブル記憶ドライブ514は、リムーバブル記憶ユニット518と相互作用し得る。リムーバブル記憶ユニット518は、コンピュータソフトウェア(制御ロジック)および/またはデータがその上に記憶されたコンピュータ使用可能または可読な記憶デバイスを含み得る。リムーバブル記憶ユニット518は、フロッピーディスク、磁気テープ、コンパクトディスク、DVD、光記憶ディスク、および/任意の他のコンピュータデータ記憶デバイスであり得る。リムーバブル記憶ドライブ514は、リムーバブル記憶ユニット518で読み出しおよび/または書き込みができる。
二次メモリ510は、コンピュータプログラムおよび/または他の命令および/またはデータがコンピュータシステム500によってアクセスされることを可能にするための他の手段、デバイス、コンポーネント、機器または他の手法を含み得る。このような手段、デバイス、コンポーネント、機器または他の手法は、例えば、リムーバブル記憶ユニット522およびインタフェース520を含み得る。リムーバブル記憶ユニット522およびインタフェース520の例は、(ビデオゲームデバイスに見られるような)プログラムカートリッジおよびカートリッジインタフェース、(EPROMまたはPROMなどの)リムーバブルメモリチップおよび関連するソケット、メモリスティックおよびUSBポート、メモリカードおよび関連するメモリカードスロット、および/または任意の他のリムーバブル記憶ユニットおよび関連するインタフェースを含み得る。
コンピュータシステム500は、通信またはネットワークインタフェース524をさらに含み得る。通信インタフェース524は、コンピュータシステム500が、外部デバイス、外部ネットワーク、外部エンティティなど(参照番号528によって個別におよびまとめて参照される)の任意の組合せと通信および相互作用することを可能にし得る。例えば、通信インタフェース524は、コンピュータシステム500が通信パス526を通じて外部またはリモートデバイス528と通信することを可能にすることができ、通信パス526は、有線および/または無線(またはその組合せ)であることができ、LAN、WAN、インターネットなどの任意の組合せを含み得る。制御ロジックおよび/またはデータは、通信パス526を介してコンピュータシステム500との間で送信され得る。
コンピュータシステム500はまた、いくつかの非限定的な例を挙げれば、携帯情報端末(PDA)、デスクトップワークステーション、ラップトップまたはノートブックコンピュータ、ネットブック、タブレット、スマートフォン、スマートウォッチまたは他のウェアラブル、器具、モノのインターネットの一部、および/または組込みシステムのいずれか、またはその任意の組合せであり得る。
コンピュータシステム500は、任意の配信パラダイムを通じて任意のアプリケーションおよび/またはデータのアクセスまたはホストを行うクライアントまたはサーバであることができ、限定はしないが、リモートまたは分散クラウドコンピューティングソリューション、ローカルまたはオンプレミスソフトウェア(「オンプレミス」クラウドベースのソリューション)、「アズアサービス」モデル(例えば、コンテンツアズアサービス(CaaS)、デジタルコンテンツアズアサービス(DCaaS)、ソフトウェアアズアサービス(SaaS)、マネージドソフトウェアアズアサービス(MSaaS)、プラットフォームアズアサービス(PaaS)、デスクトップアズアサービス(DaaS)、フレームワークアズアサービス(FaaS)、バックエンドアズアサービス(BaaS)、モバイルバックエンドアズアサービス(MBaaS)、インフラストラクチャアズアサービス(IaaS)など)、および/または、上記の例もしくは他のサービスもしくは配信パラダイムの任意の組合せを含むハイブリッドモデルを含む。
コンピュータシステム500における任意の適用可能なデータ構造、ファイルフォーマット、およびスキーマは、限定はしないが、JavaScript Object Notation(JSON)、Extensible Markup Language(XML)、Yet Another Markup Language(YAML)、Extensible Hypertext Markup Language(XHTML)、Wireless Markup Language(WML)、MessagePack、XMLユーザインタフェース言語(XUL)、または任意の他の機能的に類似の表現を単独または組合せで含む標準に由来し得る。代替的に、独自開発のデータ構造、フォーマットまたはスキーマが、単独で、または既知もしくは公開の標準と組み合わせて使用され得る。
いくつかの実施形態では、制御ロジック(ソフトウェア)がその上に記憶された有形の非一時的コンピュータ使用可能または可読媒体を備える有形の非一時的装置または製造物はまた、本明細書においてコンピュータプログラム製品またはプログラム記憶デバイスとも呼ばれ得る。これは、限定はしないが、コンピュータシステム500、メインメモリ508、二次メモリ510、ならびにリムーバブル記憶ユニット518および522と、上記の任意の組合せを具現化する有形の製造物とを含む。このような制御ロジックは、1つまたは複数のデータ処理デバイス(コンピュータシステム500など)によって実行されると、このようなデータ処理デバイスを本明細書に記載されるように動作させることができる。
上記の開示から、開示された実施形態は特定のクラウドベンダインフラストラクチャに対する抽象化を提供することが理解されるであろう。したがって、ユーザは、テンプレートをデプロイするためにユーザが使用したいクラウドベンダに対して容易にパラメトライズされ得るテンプレートを定義することができる。したがって、従来技術のシステムはマルチクラウドであることを主張しているが、このソリューションはそれ以上のものである。これが、「トランスクラウド」という語がこの手法を特徴づけるためにより好適である理由である。
開示された実施形態は、インフラストラクチャおよびネットワークからソフトウェアコンポーネントおよびそれらの関係まで、クラウドアプリケーションのすべての態様の統合された記述を可能にする。それは、実装技術からトポロジの記述を分離する。それは、インフラストラクチャのみよりも多くを記述する。それは、技術の実装に対する抽象化を可能にする。
本開示は図面および上記の説明において詳細に図示および説明されたが、それは例示的であって、性質において制限的ではないとみなされるべきであり、特定の実施形態のみが図示および説明され、本開示の思想の範囲内に入るすべての変更および修正は保護されるように要求されることはもちろんである。
図2は、クラウドインフラストラクチャデプロイメントシステムの環境におけるクラウドオーケストレータアーキテクチャを概略的に示す。図2を参照すると、トランスクラウドインフラストラクチャデプロイメントを実行するためのシステム200は、クラウドオーケストレータ210アーキテクチャ、パブリッククラウドベンダ、および構成管理ツール240を含む。
非限定的な例では、ユーザが、Ubuntu18.04において1つのサーバおよびWindows Server2012において他の1つサーバを動作させるようにサービステンプレート内で指定する。ユーザは、サービステンプレートのパラメータとして両者に対するサーバプランを残し、クラウドオーケストレータポータル222上で実行する。ユーザは、t3.mediumサーバプラン上のAWS East Virginia内でUbuntuサーバを動作させ、Standard B2サーバプラン上のWest U.S.におけるAzure内でWindowsサーバを動作させるためにサーバプランを実行する。どのクラウドベンダ上でそれらがデプロイされるかとは独立に、ファイアウォールルールが両方のサーバに自動的に適用され得る。TOSCAインタプリタ220は、そのAWSリージョン上のUbuntuイメージおよびAzureリージョン上のWindowsイメージを発見し、正しいサーバ構成を起動する。
この例では、トポロジテンプレートネスト化マッピングが提供され、regionおよびserver planパラメータを含む入力パラメータが定義される。
tosca_definitions_version: tosca_simple_yaml_1_2
metadata:
template_name: Magento
template_author: Ingram Micro
template_version: 0.8
topology_template:
inputs:
region:
type: ingrammicro.orchestrator.datatypes.Region
required: true
description: Region for Magento servers
metadata:
order: 1
server_plan:
type: ingrammicro.orchestrator.datatypes.ServerPlan
required: true
description: Server plan for Magento servers
metadata:
dependency: region
order: 2
cidr:
type: ingrammicro.orchestrator.datatypes.vpc.CIDR
required: true
default: 10.0.0.0/24
description: The CIDR block describing the VPC IPv4 address range
metadata:
order: 3
private_subnet_cidr:
type: ingrammicro.orchestrator.datatypes.vpc.CIDR
required: true
default: 10.0.0.0/25
description: The CIDR block describing the VPC IPv4 address range
metadata:
order: 4
dependency: cidr
public_subnet_cidr:
type: ingrammicro.orchestrator.datatypes.vpc.CIDR
required: true
default: 10.0.0.128/26
description: The CIDR block describing the VPC IPv4 address range
metadata:
order: 5
dependency: cidr
admin_user:
type: string
required: true
description: Administrator user
metadata:
order: 6
admin_password:
type: string
required: true
description: Administrator password
metadata:
order: 7
db_password:
type: string
required: true
description: Password of the Magento DB
metadata:
order: 8
server_root_password:
type: string
required: true
description: Root password of the server
metadata:
order: 9
sample_data:
type: boolean
default: true
description: Create Sample Shop?
metadata:
order: 10
動作315で、コンピューティングデバイスは、305で指定されたTOSCAテンプレートに、310における1つまたは複数の入力を適用することができる。上記の非限定的な例を参照すると、315は、regionおよびserver planパラメータを指定する入力パラメータと、310で受信された他の入力パラメータとをTOSCAテンプレートに適用することを含み得る。
さまざまな実施形態が、例えば、図に示されるコンピュータシステム500などの1つまたは複数のコンピュータシステムを用いて実装され得る。1つまたは複数のコンピュータシステム500は、例えば、本明細書に説明された実施形態のうちのいずれかと、それらの組合せおよび部分的組合せとを実装するために使用され得る。例えば、コンピュータシステム500は、図2のクラウドオーケストレーションアーキテクチャ210を含むトランスクラウドインフラストラクチャデプロイメントを実行するためのシステム200、トランスクラウドインフラストラクチャデプロイメントを実行するための方法300、および/または開示された実施形態の任意の他の実装形態を実装するために使用され得る。
コンピュータシステム500はまた、モニタ、キーボード、ポインティングデバイスなどのようなユーザ入出力デバイスを含むことができ、これらはユーザ入出力インタフェース502を通じて通信インフラストラクチャ506と通信し得る。
コンピュータシステム500はまた、1つまたは複数の二次記憶デバイスまたはメモリ510を含み得る。二次メモリ509は、例えば、ハードディスクドライブ512および/またはリムーバブル記憶デバイスもしくはドライブ514を含み得る。リムーバブル記憶ドライブ514は、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブ、光記憶デバイス、テープバックアップデバイス、および/または任意の他の記憶デバイス/ドライブであり得る。
リムーバブル記憶ドライブ515は、リムーバブル記憶ユニット518と相互作用し得る。リムーバブル記憶ユニット515は、コンピュータソフトウェア(制御ロジック)および/またはデータがその上に記憶されたコンピュータ使用可能または可読な記憶デバイスを含み得る。リムーバブル記憶ユニット515は、フロッピーディスク、磁気テープ、コンパクトディスク、DVD、光記憶ディスク、および/任意の他のコンピュータデータ記憶デバイスであり得る。リムーバブル記憶ドライブ514は、リムーバブル記憶ユニット515で読み出しおよび/または書き込みができる。
二次メモリ509は、コンピュータプログラムおよび/または他の命令および/またはデータがコンピュータシステム500によってアクセスされることを可能にするための他の手段、デバイス、コンポーネント、機器または他の手法を含み得る。このような手段、デバイス、コンポーネント、機器または他の手法は、例えば、リムーバブル記憶ユニット517およびインタフェース516を含み得る。リムーバブル記憶ユニット517およびインタフェース516の例は、(ビデオゲームデバイスに見られるような)プログラムカートリッジおよびカートリッジインタフェース、(EPROMまたはPROMなどの)リムーバブルメモリチップおよび関連するソケット、メモリスティックおよびUSBポート、メモリカードおよび関連するメモリカードスロット、および/または任意の他のリムーバブル記憶ユニットおよび関連するインタフェースを含み得る。
コンピュータシステム500は、通信またはネットワークインタフェース524をさらに含み得る。通信インタフェース524は、コンピュータシステム500が、外部デバイス、外部ネットワーク、外部エンティティなど(参照番号528によって個別におよびまとめて参照される)の任意の組合せと通信および相互作用することを可能にし得る。例えば、通信インタフェース524は、コンピュータシステム500が通信パス510を通じて外部またはリモートデバイス520と通信することを可能にすることができ、通信パス510は、有線および/または無線(またはその組合せ)であることができ、LAN、WAN、インターネットなどの任意の組合せを含み得る。制御ロジックおよび/またはデータは、通信パス526を介してコンピュータシステム500との間で送信され得る。
いくつかの実施形態では、制御ロジック(ソフトウェア)がその上に記憶された有形の非一時的コンピュータ使用可能または可読媒体を備える有形の非一時的装置または製造物はまた、本明細書においてコンピュータプログラム製品またはプログラム記憶デバイスとも呼ばれ得る。これは、限定はしないが、コンピュータシステム500、メインメモリ508、二次メモリ509、ならびにリムーバブル記憶ユニット515および517と、上記の任意の組合せを具現化する有形の製造物とを含む。このような制御ロジックは、1つまたは複数のデータ処理デバイス(コンピュータシステム500など)によって実行されると、このようなデータ処理デバイスを本明細書に記載されるように動作させることができる。

Claims (20)

  1. プロセッサに結合され、命令を実行するように構成されたサーバを備える、トランスクラウドアプリケーションテンプレートを処理するためのシステムであって、前記命令は、
    ユーザから入力を受信し、前記入力は、クラウドアプリケーションのためのトポロジおよびオーケストレーション仕様(TOSCA)テンプレートと、グラフィカルユーザインタフェース(GUI)を介してのインスタンス化のための入力パラメータとを含み、
    前記TOSCAテンプレートに入力パラメータを適用し、
    定義された関係に基づいて前記TOSCAテンプレートの有向非巡回グラフを作成し、
    前記非巡回グラフに定義された順序に基づいてオーケストレーションエンジンへのAPIコールを通じてインスタンス化モデルを実行する、システム。
  2. 前記サーバは、クラウドオーケストレータAPIと、TOSCAインタプリタと、オーケストレータエンジンと、を備える、請求項1に記載のシステム。
  3. 前記TOSCAテンプレートは、クラウドプロバイダと、特定のネットワークまたはサーバがデプロイされるべきリージョンの少なくとも1つを指定するリージョンプロパティを備える、請求項1に記載のシステム。
  4. 前記TOSCAテンプレートは、前記TOSCAテンプレートで指定され、サーバをインスタンス化するように構成されたノードに対するプランを指定するサーバプランプロパティを備える、請求項1に記載のシステム。
  5. 前記インスタンス化モデルを前記実行することは、前記非巡回グラフに基づいてクラウドインフラストラクチャをデプロイすることを含む、請求項1に記載のシステム。
  6. 前記インスタンス化モデルを前記実行することは、1つまたは複数のレシピ、属性値、ファイルディストリビューションおよび/またはChefへの拡張を備える1つまたは複数のクックブックを受信することを含む、請求項1に記載のシステム。
  7. 前記システムは、インフラストラクチャトランスクラウドアプリケーションテンプレートデプロイメントプロセスを自動化するようにさらに構成される、請求項1に記載のシステム。
  8. 前記非巡回グラフを作成することは、TOSCAインタプリタによって、前記TOSCAテンプレートおよび入力パラメータに基づいてTOSCAノードテンプレートインスタンスの有向非巡回グラフを動的に構築することを含む、請求項1に記載のシステム。
  9. ユーザから入力を受信することであって、前記入力は、クラウドアプリケーションのためのトポロジおよびオーケストレーション仕様(TOSCA)テンプレートと、グラフィカルユーザインタフェース(GUI)を介してのインスタンス化のための入力パラメータとを含む、受信することと、
    前記TOSCAテンプレートに前記入力パラメータを適用することと、
    定義された関係に基づいて前記TOSCAテンプレートの有向非巡回グラフを作成することと、
    前記非巡回グラフに定義された順序に基づいてオーケストレーションエンジンへのAPIコールを通じてインスタンス化モデルを実行することと、
    を含む、コンピュータ実装された方法。
  10. 前記TOSCAテンプレートは、クラウドプロバイダと、特定のネットワークまたはサーバがデプロイされるべきリージョンの少なくとも1つを指定するリージョンプロパティを備える、請求項9に記載の方法。
  11. 前記TOSCAテンプレートは、前記TOSCAテンプレートで指定され、サーバをインスタンス化するように構成されたノードに対するプランを指定するサーバプランプロパティを備える、請求項9に記載の方法。
  12. 前記インスタンス化モデルを前記実行することは、前記非巡回グラフに基づいてクラウドインフラストラクチャをデプロイすることを含む、請求項9に記載の方法。
  13. 前記インスタンス化モデルを前記実行することは、1つまたは複数のレシピ、属性値、ファイルディストリビューションおよび/またはChefへの拡張を備える1つまたは複数のクックブックを受信することを含む、請求項9に記載の方法。
  14. 前記非巡回グラフを作成することは、TOSCAインタプリタによって、前記TOSCAテンプレートおよび入力パラメータに基づいてTOSCAノードテンプレートインスタンスの有向非巡回グラフを動的に構築することを含む、請求項9に記載の方法。
  15. 命令が記憶された非一時的有形コンピュータ可読デバイスであって、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに動作を実行させ、前記動作は、
    ユーザから入力を受信することであって、前記入力は、TOSCAテンプレートと、グラフィカルユーザインタフェース(GUI)を介してのインスタンス化のための入力パラメータとを含む、受信することと、
    前記TOSCAテンプレートに前記入力パラメータを適用することと、
    定義された関係に基づいて前記TOSCAテンプレートの有向非巡回グラフを作成することと、
    前記非巡回グラフに定義された順序に基づいてオーケストレーションエンジンへのAPIコールを通じてインスタンス化モデルを実行することと、
    を含む、非一時的有形コンピュータ可読デバイス。
  16. 命令は、TOSCAインタプリタを利用して前記コンピューティングデバイスのオーケストレータエンジンを実行するように構成される、請求項15に記載の非一時的有形コンピュータ可読デバイス。
  17. 前記TOSCAテンプレートは、クラウドプロバイダと、特定のネットワークまたはサーバがデプロイされるべきリージョンの少なくとも1つを指定するリージョンプロパティと、前記TOSCAテンプレートで指定され、サーバをインスタンス化するように構成されたノードに対するプランを指定するサーバプランプロパティと、を備える、請求項15に記載の非一時的有形コンピュータ可読デバイス。
  18. 前記インスタンス化モデルを前記実行することは、前記非巡回グラフに基づいてクラウドインフラストラクチャをデプロイすることを含む、請求項15に記載の非一時的有形コンピュータ可読デバイス。
  19. 前記システムは、インフラストラクチャトランスクラウドアプリケーションテンプレートデプロイメントプロセスを自動化するようにさらに構成される、請求項15に記載の非一時的有形コンピュータ可読デバイス。
  20. 前記非巡回グラフを作成することは、TOSCAインタプリタによって、前記TOSCAテンプレートおよび入力パラメータに基づいてTOSCAノードテンプレートインスタンスの有向非巡回グラフを動的に構築することを含む、請求項15に記載の方法。
JP2023516143A 2020-09-16 2021-09-16 トランスクラウドアプリケーションテンプレートを実装するためのシステムおよび方法 Pending JP2023541896A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063079413P 2020-09-16 2020-09-16
US63/079,413 2020-09-16
PCT/US2021/050726 WO2022061022A1 (en) 2020-09-16 2021-09-16 Systems and methods for implementing trans-cloud application templates

Publications (1)

Publication Number Publication Date
JP2023541896A true JP2023541896A (ja) 2023-10-04

Family

ID=80626665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023516143A Pending JP2023541896A (ja) 2020-09-16 2021-09-16 トランスクラウドアプリケーションテンプレートを実装するためのシステムおよび方法

Country Status (8)

Country Link
US (1) US20220083392A1 (ja)
EP (1) EP4214613A1 (ja)
JP (1) JP2023541896A (ja)
CN (1) CN116391182A (ja)
AU (1) AU2021343482A1 (ja)
CA (1) CA3191970A1 (ja)
MX (1) MX2023003154A (ja)
WO (1) WO2022061022A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327239A (zh) * 2020-09-27 2022-04-12 伊姆西Ip控股有限责任公司 存储和访问数据的方法、电子设备和计算机程序产品
CN115996230B (zh) * 2023-03-22 2023-06-16 北京源堡科技有限公司 跨云数据同步方法、装置、计算机设备及可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335851B1 (en) * 2012-03-12 2012-12-18 Ringcentral, Inc. Network resource deployment for cloud-based services
GB2522031A (en) * 2014-01-10 2015-07-15 Ibm Method and system for automatic creation of service templates for deployment of resources in a data processing infrastructure
US9762450B2 (en) * 2014-09-04 2017-09-12 Accenture Global Services Limited System architecture for cloud-platform infrastructure layouts
CN107005422B (zh) * 2014-09-30 2021-06-01 微福斯有限责任公司 用于第二天操作的基于拓扑的管理的系统和方法
US9876822B2 (en) * 2014-11-28 2018-01-23 International Business Machines Corporation Administration of a context-based cloud security assurance system
US11223536B2 (en) * 2016-04-04 2022-01-11 At&T Intellectual Property I, L.P. Model driven process for automated deployment of domain 2.0 virtualized services and applications on cloud infrastructure
US11604665B2 (en) * 2016-08-28 2023-03-14 Vmware, Inc. Multi-tiered-application distribution to resource-provider hosts by an automated resource-exchange system
US10621236B2 (en) * 2016-09-16 2020-04-14 At&T Intellectual Property I, L.P. Concept based querying of graph databases
US10841171B2 (en) * 2018-06-14 2020-11-17 Infosys Limited Method and system for virtual network service activation

Also Published As

Publication number Publication date
US20220083392A1 (en) 2022-03-17
CA3191970A1 (en) 2022-03-24
CN116391182A (zh) 2023-07-04
MX2023003154A (es) 2023-04-20
EP4214613A1 (en) 2023-07-26
WO2022061022A1 (en) 2022-03-24
WO2022061022A9 (en) 2022-06-23
AU2021343482A1 (en) 2023-03-23

Similar Documents

Publication Publication Date Title
US11048499B2 (en) Infrastructure validation architecture for serverless execution frameworks
US10574523B2 (en) Systems and methods for cloud-deployments with imperatives
US10949903B2 (en) System, computer-readable medium, and method for blueprint-based cloud management
US9712604B2 (en) Customized configuration of cloud-based applications prior to deployment
JP5669861B2 (ja) プラットフォーム間での仮想イメージのポーティング
US9058198B2 (en) System resource sharing in a multi-tenant platform-as-a-service environment in a cloud computing system
US9754303B1 (en) Service offering templates for user interface customization in CITS delivery containers
US10324709B2 (en) Apparatus and method for validating application deployment topology in cloud computing environment
US20170060615A1 (en) Hybrid infrastructure provisioning framework tethering remote datacenters
US9690558B2 (en) Orchestrating the lifecycle of multiple-target applications
EP3149603B1 (en) Customized configuration of cloud-based applications prior to deployment
US20220083392A1 (en) Systems and methods for implementing trans-cloud application templates
US20170168813A1 (en) Resource Provider SDK
US20220357936A1 (en) Systems and methods for declarative design and execution of intent-based services
Kostoska et al. Porting an N-tier application on cloud using P-TOSCA: A case study
Saad et al. Designing and implementing a cloud-hosted SaaS for data movement and sharing with SlapOS
US20220200929A1 (en) Multi-cloud deployment and validation
US20180081665A1 (en) Versioned intelligent offline execution of software configuration automation
Sukhoroslov et al. Cloud Services for Automation of Scientific and Engineering Computations
Kurniawan Ansible for AWS
US11687355B1 (en) Methods to extract cloud infrastructure requirements from virtualized applications and autodeploy
Gunda et al. Performance evaluation of wireguard in kubernetes cluster
Penberthy et al. Virtual Machines
Riti et al. Continuous Delivery with GCP and Jenkins
Alotaibi A Tutorial on Software-defined Networks Emulation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230512

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240417

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240417