JP2022527390A - クラウドベースサービスのプログラムオーケストレーション - Google Patents

クラウドベースサービスのプログラムオーケストレーション Download PDF

Info

Publication number
JP2022527390A
JP2022527390A JP2021559717A JP2021559717A JP2022527390A JP 2022527390 A JP2022527390 A JP 2022527390A JP 2021559717 A JP2021559717 A JP 2021559717A JP 2021559717 A JP2021559717 A JP 2021559717A JP 2022527390 A JP2022527390 A JP 2022527390A
Authority
JP
Japan
Prior art keywords
computing resource
server
catalog
entry
iac
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.)
Granted
Application number
JP2021559717A
Other languages
English (en)
Other versions
JP7217816B2 (ja
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.)
ServiceNow Inc
Original Assignee
ServiceNow Inc
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 ServiceNow Inc filed Critical ServiceNow Inc
Publication of JP2022527390A publication Critical patent/JP2022527390A/ja
Application granted granted Critical
Publication of JP7217816B2 publication Critical patent/JP7217816B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • H04W72/044Wireless resource allocation based on the type of the allocated resource
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/084Configuration by using pre-existing information, e.g. using templates or copying from other elements
    • H04L41/0843Configuration by using pre-existing information, e.g. using templates or copying from other elements based on generic templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/53Allocation or scheduling criteria for wireless resources based on regulatory allocation policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/56Allocation or scheduling criteria for wireless resources based on priority criteria
    • H04W72/563Allocation or scheduling criteria for wireless resources based on priority criteria of the wireless resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements

Abstract

リモートネットワーク管理プラットフォームの計算インスタンスが、管理対象ネットワークに専用であり、管理対象ネットワークが、1つ又は複数のリモートネットワークのコンピューティングリソースへのアクセス権を有する。1つ又は複数のサーバ装置は、計算インスタンス内に配設することができ、(i)カタログ項目の選択を取得することであって、カタログ項目が、コンピューティング機能を提供するコンピューティングリソース候補を定義し、選択が、コンピューティングリソース候補を1つ又は複数のリモートネットワークに関連付け、コンピューティングリソース候補に関する構成の詳細を決定する、取得することと、(ii)テンプレート表現を変数を用いて設定することと、(iii)1つ又は複数のリモートネットワークのターゲットコンピューティングリソースを識別し、ターゲットコンピューティングリソースをプロビジョニングするように構成されたサーバにテンプレート表現を送信することと、(iv)ターゲットコンピューティングリソースに関係する識別情報を受信することとをクラウドサービスカタログソフトウェアアプリケーションに行わせることができる。

Description

クラウドコンピューティングプロバイダは、コンピューティングリソース(例えば、データベース、仮想マシン、ソフトウェアアプリケーション、及び/又は他のリソース)を静的に又はオンデマンドで、消費者にリモートで利用可能にすることができる。通常、これらのコンピューティングリソースは、クラウドコンピューティングプロバイダによって運営されるクラウドベースネットワークの一部である。ユーザとクラウドベースネットワークとの対話は、インターネットを介して行われることがある。
ユーザエンティティの一例は、企業であり得る。企業は、クラウドベースネットワークを利用して、ファイル共有、ウェブサービス、ワークフロー管理、データベース計画などの操作をサポートすることができる。クラウドベースネットワークの機能を使用することによって、企業は、「クラウドコンピューティングインフラストラクチャ」、又はより詳細には、クラウドベースネットワークのコンピューティングリソースを全体的又は部分的に利用するコンピューティングインフラストラクチャを作成することができる。更に、企業の一人一人のユーザは、クラウドベースネットワーク上でコンピューティングリソースをオーケストレーションすることができることを望むことがある。しかし、これは、クラウドコンピューティングパラダイムについての経験が少ないユーザにとっては難しいことがある。
クラウドベースネットワーク上でコンピューティングリソースをオーケストレーションするための従来の技法(例えば、これらのリソースの管理、プロビジョニング、削除、起動)は、人間との対話をかなり必要とすることがある。例えば、データベースをプロビジョニングするための典型的なシナリオでは、アプリケーション開発者がクラウドベースネットワークに仮想マシンを展開し、仮想マシンにオペレーティングシステム及びデータベースソフトウェアをインストールし、次いでデータベースソフトウェアを手動で起動することを含む。この手法及び他の同様の従来の手法は、アプリケーション開発者ごとに技法が異なることがあるため、一貫性がなく実施され、時間がかかり、エラーが起こりやすい可能性がある。本明細書で述べるように、コンピューティングリソースをオーケストレーションするためのそのような手法は、「手動」手法と呼ばれることがある。
手動手法の課題を克服するために、インフラストラクチャ・アズ・コード(IaC)を使用することができる。IaCは、コンピューティングリソースを可変テンプレートファイルのエントリとして定義するプログラム的方法を提供するパラダイムである。この可変ファイルを使用することによって、一貫性を保証するために一般的なファイルメンテナンス手法を適用することができる。すなわち、テンプレートファイルをバージョン管理システムの下で保ち、アプリケーション開発者間での再現性及びテスト実施を可能にすることができる。更に、運用中に、IaCプラットフォームによって提供されるソフトウェアを使用して、テンプレートファイルのエントリに基づいて、クラウドベースネットワークにプロビジョニングすべきコンピューティングリソースを識別し、識別されたコンピューティングリソースを自動的にプロビジョニングして、ユーザが、必ずしも各クラウドプロバイダと手動で対話する必要なく、様々なクラウドプロバイダによって提供されるコンピューティングリソースをオーケストレーションできるようにすることがある。
IaCは、ユーザが単一のテンプレートファイルを使用してコンピューティングリソースを容易にオーケストレーションできるようにし得るが、それでもいくつかの欠点があり得る。具体的には、IaCの使用には、クラウドコンピューティング及びIaCパラダイムの相当な知識が必要であり得る。これにより、IaCの使用が、高度な知識を持つアプリケーション開発者に制限されることがある。クラウドコンピューティングの経験がないプロジェクトマネージャなどの非技術者ユーザがクラウドベースネットワークの機能を利用したいことがあるとき、これは、管理対象ネットワーク300の速度及び効率に悪影響を与えることがある。
本明細書では、リモートネットワーク管理プラットフォームの計算インスタンスをカスタマイズ可能なソフトウェアと統合して、管理対象ネットワークの技術者ユーザと非技術者ユーザとの両方がクラウドベースネットワークのコンピューティングリソースをオーケストレーションできるようにするための手法が開示される。開示される手法によれば、計算インスタンスは、管理対象ネットワークに関連付けられたクライアント装置から、1つ又は複数のクラウドベースネットワークによって提供されるコンピューティングリソースに関連付けられたエントリを含むテンプレート表現を受信することができる。クラウドサービスカタログソフトウェアアプリケーションを使用して、テンプレート表現を分析して、コンピューティングリソースに関連付けられる構成可能パラメータを決定することができる。次いで、クラウドサービスカタログは、構成可能パラメータを切り離して、コンピューティングリソースをコンピューティングリソース候補に関するカスタマイズされたブループリントに変換し、構成可能パラメータをコンピューティングリソース候補に関連付けられた質問に変換することができる。計算アセット及び質問のブループリントは、まとめて、クラウドサービスカタログソフトウェアアプリケーションのカタログ項目としてリストされることがある。
(i)カタログ項目の選択、及び(i)カタログ項目に関連付けられたコンピューティングリソース候補に関する質問への回答を受信すると、クラウドサービスカタログソフトウェアアプリケーションは、その回答を使用して、選択されたカタログ項目のコンピューティングリソース候補を1つ又は複数のクラウドベースネットワークに関連付ける。更に、クラウドサービスカタログソフトウェアアプリケーションは、コンピューティングリソース候補に関する構成の詳細を決定することもある。その後、クラウドサービスカタログソフトウェアアプリケーションは、構成の詳細を使用して、テンプレート表現のエントリを設定することができる。次いで、このテンプレート表現をIaCサーバに送信することができる。
テンプレート表現のエントリに基づいて、IaCサーバは、(i)1つ又は複数のクラウドベースネットワークにプロビジョニングすべきターゲットコンピューティングリソースを識別し、(ii)ターゲットコンピューティングリソースを1つ又は複数のクラウドベースネットワークにプロビジョニングすることができる。これらのプロビジョニングされたコンピューティングリソースからの情報は、計算インスタンスに送信することができ、計算インスタンスは、プロビジョニングされたコンピューティングリソースの表現を計算インスタンス内のデータベースに記憶するために発見を実行することができる。
有利には、カタログ項目を使用してコンピューティングリソースをプロビジョニングすることは、各クラウドベースネットワークによってそれぞれサポートされるクラウドコンピューティングパラダイムについてユーザが必ずしも学ぶ必要なく、クラウドベースネットワークの機能をユーザに提供することができるので、管理対象ネットワークにとって有益であり得る。更に、クラウドサービスカタログソフトウェアアプリケーションによって提示される質問は、プロビジョニングされることがあるコンピューティングリソースのタイプを制御する妥当性チェック及びドロップダウンオプションを有して構成されることがあり、したがって、入力エラーを制限又は防止し、及び/又は特定のルールの順守を保証する。本明細書における技法と手法を使用して、クラウドベースネットワークによって提供されるコンピューティングリソースを容易にプロビジョニングするためのサポートをリモートネットワーク管理プラットフォームに追加することができ、コンピューティングリソースによって提供される動作を企業が迅速に採用できるようにする。
したがって、第1の例示的実施形態は、特定のカタログ項目へのアクセス権を有するクラウドサービスカタログソフトウェアアプリケーションを含むことがあり、特定のカタログ項目は、コンピューティング機能を提供するコンピューティングリソース候補を定義する。この実施形態は、リモートネットワーク管理プラットフォームの計算インスタンスを含むこともあり、計算インスタンスは、管理対象ネットワークに専用である。管理対象ネットワークは、1つ又は複数のリモートネットワークのコンピューティングリソースへのアクセス権を有することがある。計算インスタンスは、クラウドサービスカタログソフトウェアアプリケーションに特定のカタログ項目の選択を取得させるように構成された1つ又は複数のサーバ装置を含むことがあり、選択は、(i)コンピューティングリソース候補を1つ又は複数のリモートネットワークに関連付け、(ii)コンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数のセットを含む。1つ又は複数のサーバ装置は、クラウドサービスカタログソフトウェアアプリケーションにテンプレート表現を設定させるように更に構成することができ、テンプレート表現は、カタログ項目変数のセットに関するエントリを含む。1つ又は複数のサーバ装置は、クラウドサービスカタログソフトウェアアプリケーションに、テンプレート表現をIaCサーバへ送信させるように更に構成することができる。IaCサーバは、(i)テンプレート表現のエントリに基づいて、コンピューティング機能を実行することができる1つ又は複数のリモートネットワークのターゲットコンピューティングリソースを識別し、(ii)ターゲットコンピューティングリソースを1つ又は複数のリモートネットワークにプロビジョニングするように構成することができる。1つ又は複数のサーバ装置は、クラウドサービスカタログソフトウェアアプリケーションが、ターゲットコンピューティングリソースに関係する識別情報をIaCサーバから受信するように更に構成されることがある。
第2の例示的実施形態では、製造品が、プログラム命令を記憶した非一時的コンピュータ可読媒体を含むことができ、プログラム命令は、コンピューティングシステムによって実行されると、第1の例示的実施形態に従う動作をコンピューティングシステムに実行させる。
第3の例示的実施形態では、コンピューティングシステムは、少なくとも1つのプロセッサ、並びにメモリ及びプログラム命令を含むことができる。プログラム命令は、メモリに記憶され、少なくとも1つのプロセッサによって実行されると、第1の例示的実施形態に従う動作をコンピューティングシステムに実行させることができる。
第4の例示的実施形態では、システムは、第1の例示的実施形態の動作のそれぞれを実行するための様々な手段を含むことができる。
上記及び他の実施形態、態様、利点、及び代替形態は、添付の図面を適宜参照して以下の詳細な説明を読むことによって当業者に明らかになるであろう。更に、本明細書に提供されたこの概要並びに他の説明及び図は、単に例として実施形態を示すことを意図しており、したがって、多くの変形が可能である。例えば、構造要素及び処理ステップは、請求項に係る実施形態の範囲内に留まりながら、再配置、結合、分散、若しくは除去され、又は他の方法で変更され得る。
例示的実施形態によるコンピューティング装置の概略図である。 例示的実施形態によるサーバ装置クラスタの概略図である。 例示的実施形態によるリモートネットワーク管理アーキテクチャを示す図である。 例示的実施形態によるリモートネットワーク管理アーキテクチャを含む通信環境を示す図である。 例示的実施形態によるリモートネットワーク管理アーキテクチャを含む別の通信環境を示す図である。 例示的実施形態によるフローチャートである。 例示的実施形態による、クラウドコンピューティングインフラストラクチャを管理するインフラストラクチャ・アズ・コード手法を示す図である。 例示的実施形態によるコンピューティングシステムを示す図である。 例示的実施形態による、新たなカタログ項目を追加するためのフローチャートである。 例示的実施形態によるプロビジョニング手順を示す図である。 例示的実施形態によるフローチャートである。
例示的な方法、装置、及びシステムが本明細書で説明される。「例」及び「例示的」という言葉は、本明細書では「実施例、例、又は例示として機能すること」を意味するように使用されると理解されるべきである。本明細書で「例」又は「例示的」であると説明される任意の実施形態又は特徴は、そのように明言されない限り、他の実施形態又は特徴よりも好ましい又は有利であると必ずしも解釈される必要はない。したがって、本明細書で示される主題の範囲から逸脱することなく、他の実施形態が使用されてよく、他の変更がなされてよい。
したがって、本明細書に記載の例示的実施形態は、限定するように意図されていない。本開示の態様は、本明細書に一般的に記載され図示されるように、様々な異なる形態で配置、置換、結合、分離、設計され得ることは容易に理解されるであろう。例えば、「クライアント」構成要素と「サーバ」構成要素への特徴の分離は、多くの方法で生じ得る。
更に、文脈が別段に示唆しない限り、各図に示される特徴は互いに組み合わされて使用されてよい。したがって、図面は、一般に、全ての図示された特徴が各実施形態に必要であるとは限らないことを理解した上で、1つ又は複数の全体的な実施形態の構成要素の態様とみなされるべきである。
更に、本明細書又は特許請求の範囲における要素、ブロック又は、ステップの列挙は、明瞭性の目的のためである。したがって、このような列挙は、これらの要素、ブロック、又はステップが特定の配列に固定される又は特定の順序で実行されることを必要とする又は示唆すると解釈されるべきではない。
I.序論
大企業は、相互に関連する多くの業務を含む複雑な実体である。これらの中には、人事(HR)、サプライチェーン、情報技術(IT)、及び財務などのように企業に横断的に見られるものもある。しかしながら、それぞれの企業は、本質的な機能を提供し及び/又は競争優位性を創出する、それ独自の業務も有する。
広く実施される業務をサポートするために、企業は一般的に、顧客関係管理(CRM)及び人的資本管理(HCM)パッケージのような既製のソフトウェアアプリケーションを使用する。しかしながら、企業は、自身の独自の要件を満たすためにカスタムソフトウェアアプリケーションを必要とすることもある。大企業は、多くの場合、数十から数百のこうしたカスタムソフトウェアアプリケーションを有する。それにもかかわらず、本明細書の実施形態によって提供される利点は、大企業に限定されず、任意の規模の企業又は他の任意のタイプの組織に適用され得る。
多くのそのようなソフトウェアアプリケーションは、企業内の個々の部門によって開発される。これらは、簡単なスプレッドシートからカスタムメイドのソフトウェアツール及びデータベースまで様々である。しかし、サイロ化されたカスタムソフトウェアアプリケーションの急増には多くの欠点がある。それは、企業の業務を運営し成長させ、革新し、規制要件を満たすための企業の能力に対して悪影響を及ぼす。企業は、そのサブシステムとデータを統合する単一のシステムがないために、その業務を統合し合理化し強化することが困難になる可能性がある。
カスタムアプリケーションを効率的に作成するために、企業は、不必要な開発の複雑さを排除するリモートホストされたアプリケーションプラットフォームの恩恵を受けるであろう。そのようなプラットフォームの目標は、時間を消費する反復的なアプリケーション開発タスクを減らして、ソフトウェアエンジニア及び他の役割の個人が独自の高価値の機能の開発に集中できるようにすることである。
この目標を達成するために、サービスとしてのアプリケーションプラットフォーム(aPaaS)の概念が導入されて、企業全体にわたるワークフローがインテリジェントに自動化される。aPaaSシステムは企業からリモートでホストされるが、安全な接続を介して企業内のデータ、アプリケーション、及びサービスにアクセスすることができる。そのようなaPaaSシステムは、いくつかの有利な能力及び特徴を有することができる。これらの利点及び特徴は、IT、HR、CRM、顧客サービス、アプリケーション開発、及びセキュリティに関する企業の業務及びワークフローを改善する可能性がある。
aPaaSシステムは、モデル・ビュー・コントローラ(MVC)アプリケーションの開発及び実行をサポートすることができる。MVCアプリケーションは、情報の表現をその情報がユーザに提示される方法から分離するために、それらの機能を3つの相互接続部分(モデル、ビュー、及びコントローラ)に分割し、それにより、効率的なコード再利用及び並列開発を可能にする。これらのアプリケーションはウェブベースとすることができ、作成、読取り、更新、削除(CRUD)能力を提供することができる。これにより、新しいアプリケーションを共通のアプリケーションインフラストラクチャ上に構築することが可能になる。
aPaaSシステムは、グラフィカルユーザインターフェース(GUI)開発用のウィジェットの標準化されたセットなど、標準化されたアプリケーション構成要素をサポートすることができる。このようにして、aPaaSシステムを使用して構築されたアプリケーションは共通のルックアンドフィールを有する。他のソフトウェア構成要素及びモジュールも標準化されることがある。場合によっては、このルックアンドフィールは、企業のカスタムロゴ及び/又は配色を用いてブランド化又はスキン化され得る。
aPaaSシステムは、メタデータを使用してアプリケーションの挙動を設定する能力をサポートすることができる。これにより、アプリケーションの挙動を特定のニーズに合うように迅速に適応させることができる。そのような手法により、開発時間が短縮し、柔軟性が向上する。更に、aPaaSシステムは、メタデータの作成及び管理を容易にするGUIツールをサポートし、それによりメタデータ内のエラーを減らすことができる。
aPaaSシステムは、アプリケーション間の明確に定義されたインターフェースをサポートしているため、ソフトウェア開発者は望ましくないアプリケーション間の依存関係を回避することができる。したがって、aPaaSシステムは、永続的状態情報及び他のデータが記憶されるサービス層を実装することができる。
aPaaSシステムは、統合機能の豊富なセットをサポートしているため、システム上のアプリケーションがレガシアプリケーション及びサードパーティアプリケーションと対話することができる。例えば、aPaaSシステムは、レガシーのHR、IT、及び会計システムと統合するカスタムの従業員オンボーディングシステムをサポートすることができる。
aPaaSシステムは、エンタプライズレベルのセキュリティをサポートすることができる。また、aPaaSシステムはリモートでホストされ得るので、企業内のシステム、又は企業外でホストされるサードパーティのネットワーク及びサービスと対話するときに、セキュリティ手順も利用すべきである。例えば、aPaaSシステムは、一般的なセキュリティの脅威を検出し識別するために、企業及び他の関係者の間でデータを共有するように構成され得る。
aPaaSシステムには他の特徴、機能、及び利点もあり得る。この説明は、例示を目的としており、限定することを意図していない。
aPaaS開発プロセスの例として、ソフトウェア開発者は、aPaaSシステムを使用して新しいアプリケーションを作成する任務を与えられることがある。まず、開発者はデータモデルを定義することができ、それにより、アプリケーションが使用するデータのタイプ及びそれらの間の関係を指定する。次いで、aPaaSシステムのGUIを介して、開発者はデータモデルを入力(例えばアップロード)する。aPaaSシステムは、対応するデータベーステーブル、フィールド、及び関係の全てを自動的に作成し、それらには、オブジェクト指向サービス層を介してアクセスすることができる。
更に、aPaaSシステムは、クライアント側のインターフェースとサーバ側のCRUDロジックを有する完全機能MVCアプリケーションを構築することもできる。この生成されたアプリケーションは、ユーザのための更なる開発の基盤として機能することができる。有利なことに、開発者は基本的なアプリケーション機能に大量の時間を費やす必要がない。更に、アプリケーションはウェブベースとすることができるので、任意のインターネット対応クライアント装置からアクセスすることができる。代替的又は追加的に、例えばインターネットサービスが利用できないときに、アプリケーションのローカルコピーにアクセスできることがある。
aPaaSシステムは、アプリケーションに追加できる予め定義された機能の豊富なセットをサポートすることもできる。これらの機能は、検索、電子メール、テンプレート、ワークフロー設計、レポート、分析、ソーシャルメディア、スクリプト作成、モバイル対応の出力、及びカスタマイズされたGUIのサポートを含む。
以下の実施形態は、例示的なaPaaSシステムのアーキテクチャ及び機能的態様、並びにその特徴及び利点を説明する。
II.例示的なコンピューティング装置及びクラウドベースのコンピューティング環境
図1は、コンピューティング装置100を例示する簡略ブロック図であり、本明細書の実施形態に従って動作するように構成されたコンピューティング装置に含まれ得る構成要素のいくつかを示す。コンピューティング装置100は、クライアント装置(例えば、ユーザによって能動的に操作される装置)、サーバ装置(例えば、クライアント装置に計算サービスを提供する装置)、又は他の何らかのタイプの計算プラットフォームであり得る。サーバ装置によっては、特定の動作を実行するために時としてクライアント装置として動作する場合があり、クライアント装置によっては、サーバ機能を組み込んでいる場合がある。
この例では、コンピューティング装置100は、プロセッサ102、メモリ104、ネットワークインターフェース106、及び入出力ユニット108を含み、それらの全ては、システムバス110又は同様のメカニズムによって結合することができる。いくつかの実施形態では、コンピューティング装置100は、他の構成要素及び/又は周辺装置(例えば、取外し可能ストレージ、プリンタなど)を含んでよい。
プロセッサ102は、中央処理装置(CPU)、コプロセッサ(例えば、数学、グラフィックス、又は暗号化コプロセッサ)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、及び/又はプロセッサ動作を実行する集積回路若しくはコントローラの形態など、任意のタイプのコンピュータ処理要素のうちの1つ又は複数とすることができる。場合によっては、プロセッサ102は、1つ又は複数のシングルコアプロセッサであってよい。他の場合、プロセッサ102は、複数の独立した処理ユニットを有する1つ又は複数のマルチコアプロセッサであってよい。また、プロセッサ102は、実行されている命令及び関連データを一時的に記憶するためのレジスタメモリ、並びに最近使用された命令及びデータを一時的に記憶するためのキャッシュメモリを含むことができる。
メモリ104は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、及び不揮発性メモリ(例えば、フラッシュメモリ、ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、及び/又はテープストレージ)を含むがこれらに限定されない、任意の形態のコンピュータ使用可能メモリであってよい。したがって、メモリ104は主記憶装置と長期記憶装置の両方を表す。他のタイプのメモリは生物学的メモリを含み得る。
メモリ104は、プログラム命令及び/又はプログラム命令が動作し得るデータを記憶することができる。例として、メモリ104は、これらのプログラム命令を非一時的コンピュータ可読媒体に記憶することができ、したがって、これらの命令は、本明細書又は添付の図面で開示される任意の方法、プロセス、又は動作を行うためにプロセッサ102によって実行可能である。
図1に示されるように、メモリ104は、ファームウェア104A、カーネル104B、及び/又はアプリケーション104Cを含むことができる。ファームウェア104Aは、コンピュータ装置100の一部又は全部をブート又は他の様式で起動するために使用されるプログラムコードであり得る。カーネル104Bは、メモリ管理、プロセスのスケジューリング及び管理、入出力、並びに通信のためのモジュールを含む、オペレーティングシステムであり得る。カーネル104Bは、オペレーティングシステムがコンピューティング装置100のハードウェアモジュール(例えば、メモリユニット、ネットワーキングインターフェース、ポート、及びバス)と通信することを可能にする、デバイスドライバを含むこともできる。アプリケーション104Cは、ウェブブラウザ又は電子メールクライアント、並びにこれらのプログラムによって使用される任意のソフトウェアライブラリなどの、1つ又は複数のユーザ空間ソフトウェアプログラムであり得る。メモリ104は、これら並びに他のプログラム及びアプリケーションによって使用されるデータを記憶することもできる。
ネットワークインターフェース106は、イーサネット(例えば、ファストイーサネット、ギガビットイーサネット)などの1つ又は複数の有線インターフェースの形態をとることができる。ネットワークインターフェース106は、同軸ケーブル若しくは電力線などの1つ若しくは複数の非イーサネット媒体を介する通信、又は同期光ネットワーク(SONET)又はデジタル加入者線(DSL)技術などの広域媒体を介する通信をサポートすることもできる。ネットワークインターフェース106は更に、IEEE802.11(Wifi)、BLUETOOTH(登録商標)、全地球測位システム(GPS)、又は広域無線インターフェースなどの1つ又は複数の無線インターフェースの形態をとることもできる。しかしながら、他の形態の物理層インターフェース及び他のタイプの標準又は独自仕様の通信プロトコルがネットワークインターフェース106を介して使用されてもよい。更に、ネットワークインターフェース106は複数の物理インターフェースを含むこともできる。例えば、コンピューティング装置100のいくつかの実施形態は、イーサネット、BLUETOOTH(登録商標)、及びWifiインターフェースを含むことができる。
入出力ユニット108は、コンピューティング装置100とユーザ及び周辺装置の対話を容易にすることができる。入出力ユニット108は、キーボード、マウス、タッチスクリーンなどの1つ又は複数のタイプの入力装置を含むことができる。同様に、入出力ユニット108は、スクリーン、モニタ、プリンタ、及び/又は1つ若しくは複数の発光ダイオード(LED)などの1つ又は複数のタイプの出力装置を含むことができる。追加的又は代替的に、コンピューティング装置100は、例えば、ユニバーサルシリアルバス(USB)又は高精細マルチメディアインターフェース(HDMI)ポートインターフェースを使用して、他の装置と通信することができる。
いくつかの実施形態では、コンピューティング装置100のような1つ又は複数のコンピューティング装置が展開されてaPaaSアーキテクチャをサポートすることができる。これらのコンピューティング装置の正確な物理的位置、接続性、及び構成は、クライアント装置にとって不明であってよく、及び/又は重要でなくてもよい。したがって、コンピューティング装置は、様々なリモートデータセンタの場所に収容され得る「クラウドベース」装置と呼ばれることがある。
図2は、例示的実施形態によるクラウドベースのサーバクラスタ200を示す。図2では、コンピューティング装置(例えば、コンピューティング装置100)の動作は、サーバ装置202、データストレージ204、及びルータ206の間で分散されることができ、それらの全ては、ローカルクラスタネットワーク208によって接続することができる。サーバクラスタ200内のサーバ装置202、データストレージ204、及びルータ206の数は、サーバクラスタ200に割り当てられたコンピューティングタスク及び/又はアプリケーションに依存し得る。
例えば、サーバ装置202は、コンピューティング装置100の様々なコンピューティングタスクを実行するように構成され得る。したがって、コンピューティングタスクは、1つ又は複数のサーバ装置202の間で分散することができる。これらのコンピューティングタスクを並列に実行できる限り、タスクのそのような分散により、これらのタスクを完了して結果を返すまでの合計時間を短縮することができる。簡単にするために、サーバクラスタ200と個々のサーバ装置202の両方が「サーバ装置」と呼ばれることがある。この命名は、1つ又は複数の別個のサーバ装置、データストレージ装置、及びクラスタルータがサーバ装置動作に関与し得ることを示唆すると理解されるべきである。
データストレージ204は、ハードディスクドライブ及び/又はソリッドステートドライブのグループに対する読取り及び書込みアクセスを管理するように構成されたドライブアレイコントローラを含むデータストレージアレイであり得る。また、ドライブアレイコントローラは、単独で又はサーバ装置202と共に、データストレージ204に記憶されたデータのバックアップ又は冗長コピーを管理して、1つ又は複数のサーバ装置202がデータストレージ204のユニットにアクセスするのを妨げるドライブの障害又は他のタイプの障害からの保護をするように構成され得る。ドライブ以外の他のタイプのメモリが使用されてもよい。
ルータ206は、サーバクラスタ200のための内部及び外部通信を提供するように構成されたネットワーク機器を含むことができる。例えば、ルータ206は、(i)ローカルクラスタネットワーク208を介するサーバ装置202とデータストレージ204との間のネットワーク通信、及び/又は(ii)ネットワーク212への通信リンク210を介するサーバクラスタ200と他の装置との間のネットワーク通信を提供するように構成された、1つ又は複数のパケット交換及び/又はルーティング装置(スイッチ及び/又はゲートウェイを含む)を含むことができる。
更に、ルータ206の構成は、サーバ装置202及びデータストレージ204のデータ通信要件、ローカルクラスタネットワーク208のレイテンシ及びスループット、通信リンク210のレイテンシ、スループット、及びコスト、並びに/又は、コスト、速度、耐故障性、回復力、効率、及び/若しくはシステムアーキテクチャの他の設計目標に寄与し得る他のファクタに、少なくとも部分的に基づくことができる。
可能な例として、データストレージ204は、構造化照会言語(SQL)データベースなどの任意の形態のデータベースを含むことができる。テーブル、アレイ、リスト、ツリー、及びタプルを含むがこれらに限定されない様々なタイプのデータ構造により、そのようなデータベースに情報を格納することができる。更に、データストレージ204における任意のデータベースは、モノリシックであってよく、又は複数の物理装置にわたって分散されてもよい。
サーバ装置202は、データストレージ204との間でデータを送受信するように構成され得る。この送信及び取得はそれぞれ、SQLクエリ又は他のタイプのデータベースクエリの形態、及びそのようなクエリの出力の形態をとることができる。追加のテキスト、画像、ビデオ、及び/又はオーディオも含まれてよい。更に、サーバ装置202は、受信したデータをウェブページ表現へ編成することができる。そのような表現は、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、又は他の何らかの標準化された若しくは独自仕様のフォーマットなど、マークアップ言語の形態をとることができる。更に、サーバ装置202は、限定されないが、Perl、Python、PHPハイパーテキストプリプロセッサ(PHP)、アクティブサーバページ(ASP)、JavaScriptなど、様々なタイプのコンピュータ化スクリプト言語を実行する能力を有することができる。これらの言語で書かれたコンピュータプログラムコードは、クライアント装置へのウェブページの提供、並びにウェブページとクライアント装置の対話を容易にすることができる。
III.例示的リモートネットワーク管理アーキテクチャ
図3は、例示的実施形態によるリモートネットワーク管理アーキテクチャを示す。このアーキテクチャは、インターネット350を介して全て接続された3つの主な構成要素である、管理対象ネットワーク300、リモートネットワーク管理プラットフォーム320、及びサードパーティネットワーク340を含む。
管理対象ネットワーク300は、例えば、コンピューティング及び通信タスク、並びにデータの記憶のために実体によって使用される企業ネットワークであり得る。したがって、管理対象ネットワーク300は、クライアント装置302、サーバ装置304、ルータ306、仮想マシン308、ファイアウォール310、及び/又はプロキシサーバ312を含むことができる。クライアント装置302はコンピューティング装置100によって具現化されてよく、サーバ装置304はコンピューティング装置100又はサーバクラスタ200によって具現化されてよく、ルータ306は任意のタイプのルータ、スイッチ、又はゲートウェイであってよい。
仮想マシン308は、コンピューティング装置100又はサーバクラスタ200のうちの1つ又は複数によって具現化され得る。一般に、仮想マシンは、コンピューティングシステムのエミュレーションであり、物理的コンピュータの機能(例えば、プロセッサ、メモリ、及び通信リソース)を模倣する。サーバクラスタ200などの1つの物理的コンピューティングシステムは、最大数千個の個別仮想マシンをサポートすることができる。いくつかの実施形態では、仮想マシン308は、個別仮想マシンに対する物理的コンピューティングリソースの割り当て、並びにパフォーマンス及びエラーの報告を容易にする、集中型サーバ装置又はアプリケーションによって管理され得る。企業は、必要に応じて、効率的にコンピューティングリソースを割り当てるために仮想マシンをしばしば使用する。仮想化コンピューティングシステムのプロバイダには、VMWARE(登録商標)及びMICROSOFT(登録商標)が含まれる。
ファイアウォール310は、管理対象ネットワーク300から開始される許可された通信を可能にしながら、管理対象ネットワーク300をその中の装置、アプリケーション、及びサービスにアクセスする不正な試みから保護する、1つ又は複数の専用ルータ又はサーバ装置であり得る。ファイアウォール310はまた、侵入検出、ウェブフィルタリング、ウイルススキャン、アプリケーション層ゲートウェイ、及び他のアプリケーション又はサービスを提供することができる。図3に示されていないいくつかの実施形態では、管理対象ネットワーク300は、リモートネットワーク管理プラットフォーム320と通信するために用いる1つ又は複数の仮想プライベートネットワーク(VPN)ゲートウェイを含むことができる(下記参照)。
管理対象ネットワーク300は、1つ又は複数のプロキシサーバ312を含むこともできる。プロキシサーバ312の一実施形態は、管理対象ネットワーク300、リモートネットワーク管理プラットフォーム320、及びサードパーティネットワーク340の間のデータの通信及び移動を容易にするサーバ装置とすることができる。特に、プロキシサーバ312は、リモートネットワーク管理プラットフォーム320の1つ又は複数の計算インスタンスとの安全な通信セッションを確立し維持することが可能であり得る。そのようなセッションによって、リモートネットワーク管理プラットフォーム320は、管理対象ネットワーク300及びその構成要素のアーキテクチャ及び構成の態様を発見し管理することが可能であり得る。場合によっては、プロキシサーバ312の助けを借りて、リモートネットワーク管理プラットフォーム320は、管理対象ネットワーク300によって使用されるサードパーティネットワーク340の態様を発見し管理することも可能であり得る。
ファイアウォール310などのファイアウォールは、通常、インターネット350を介して着信する全ての通信セッションに関して、そのようなセッションがファイアウォールの背後から(即ち、管理対象ネットワーク300上の装置から)最終的に開始されたか、又はファイアウォールがそのセッションをサポートするように明示的に構成されていない限り、それら全ての通信セッションを拒否する。プロキシサーバ312をファイアウォール310の背後に(例えば、管理対象ネットワーク300内に、ファイアウォール310によって保護されるように)配置することによって、プロキシサーバ312は、ファイアウォール310を介してこれらの通信セッションを開始することが可能であり得る。したがって、ファイアウォール310はリモートネットワーク管理プラットフォーム320からの着信セッションをサポートするために特に構成される必要がなく、それにより、管理対象ネットワーク300に対する潜在的なセキュリティリスクを回避し得る。
場合によっては、管理対象ネットワーク300は、数個の装置と少数のネットワークとから構成されることがある。他の展開では、管理対象ネットワーク300は複数の物理的場所にまたがり、数百のネットワーク及び数十万の装置を含むことができる。したがって、図3に示されるアーキテクチャは桁違いに拡大又は縮小することが可能である。
更に、管理対象ネットワーク300のサイズ、アーキテクチャ、及び接続性に応じて、様々な数のプロキシサーバ312がその中に展開され得る。例えば、プロキシサーバ312のそれぞれが、管理対象ネットワーク300の一部分に関してリモートネットワーク管理プラットフォーム320との通信を担当することができる。代替的又は追加的に、負荷分散、冗長性、及び/又は高可用性を目的として、2つ以上のプロキシサーバのセットが管理対象ネットワーク300のそのような一部分に割り当てられてもよい。
リモートネットワーク管理プラットフォーム320は、aPaaSサービスをユーザに特に管理対象ネットワーク300のオペレータに提供するホストされた環境である。これらのサービスは、例えば、ウェブベースのポータルの形態をとることができる。したがって、ユーザは、例えば、クライアント装置302から、又は潜在的に管理対象ネットワーク300の外部のクライアント装置から、リモートネットワーク管理プラットフォーム320に安全にアクセスすることができる。ウェブベースのポータルを介して、ユーザは、アプリケーションを設計、テスト、及び展開し、レポートを生成し、分析を表示し、並びに他のタスクを実行することができる。
図3に示されるように、リモートネットワーク管理プラットフォーム320は、4つの計算インスタンス322、324、326、及び328を含む。これらのインスタンスのそれぞれは、特定の顧客に利用可能な一組のウェブポータル、サービス、及びアプリケーション(例えば、完全に機能するaPaaSシステム)を提供する1つ又は複数のサーバ装置及び/又は1つ又は複数のデータベースを表すことができる。場合によっては、単一の顧客が複数の計算インスタンスを使用してもよい。例えば、管理対象ネットワーク300は、リモートネットワーク管理プラットフォーム320の企業顧客であってよく、計算インスタンス322、324、及び326を使用してもよい。複数のインスタンスを1人の顧客に提供する理由は、顧客が独立してそのアプリケーション及びサービスを開発、テスト、及び展開したいと希望することがあるからである。したがって、計算インスタンス322は、管理対象ネットワーク300に関連するアプリケーション開発に専用とされてよく、計算インスタンス324は、これらのアプリケーションのテストに専用とされてよく、計算インスタンス326は、テストされるアプリケーション及びサービスのライブ運用に専用とされてよい。計算インスタンスは、ホストインスタンス、リモートインスタンス、顧客インスタンス、又は他の何らかの名称で呼ばれてもよい。計算インスタンス上に展開された任意のアプリケーションは、計算インスタンス内のデータベースへのアクセスが、その中の特定の要素(例えば、1つ又は複数の特定のデータベーステーブル又は1つ又は複数のデータベーステーブルを有する特定の行)に限定され得るという点で、スコープ指定されたアプリケーションであり得る。
明瞭にするために、本明細書の開示では、物理的なハードウェア、ソフトウェア、及びそれらの配置を「計算インスタンス」と呼ぶ。ユーザがそれによって提供されるグラフィカルユーザインターフェースを口語的に「インスタンス」と呼び得ることに留意されたい。しかし、本明細書において特に定義されない限り、「計算インスタンス」は、リモートネットワーク管理プラットフォーム320内に配置されたコンピューティングシステムである。
リモートネットワーク管理プラットフォーム320のマルチインスタンスアーキテクチャは従来のマルチテナントアーキテクチャとは対照的であり、マルチインスタンスアーキテクチャはいくつかの利点を有する。マルチテナントアーキテクチャでは、異なる顧客(例えば企業)からのデータが、単一のデータベースに一緒にされる。これらの顧客のデータは互いに分離されているが、その分離は単一のデータベースを動作させるソフトウェアによって実施される。結果として、このシステムでのセキュリティ違反は全ての顧客のデータに影響を及ぼし、特に政府、医療、及び/又は金融規制の対象となる実体にとって追加のリスクを発生させる可能性がある。更に、1人の顧客に影響を及ぼす任意のデータベース動作が、そのデータベースを共有する全ての顧客に影響を及ぼす可能性がある。したがって、ハードウェア又はソフトウェアのエラーによる機能停止がある場合、この機能停止は全てのそのような顧客に影響を与える。同様に、データベースが1人の顧客のニーズに合わせてアップグレードされる場合、アップグレードプロセス中に全ての顧客に利用できなくなる。しばしば、そのようなメンテナンス期間は、共有されるデータベースのサイズが原因で長くなる。
対照的に、マルチインスタンスアーキテクチャは、各顧客に対し、専用のコンピューティングインスタンスにおいてその独自のデータベースを提供する。これにより、顧客データの混合を防ぎ、各インスタンスを独立して管理することが可能になる。例えば、ある顧客のインスタンスがエラー又はアップグレードによる機能停止を経験しても、他の計算インスタンスは影響されない。データベースには1人の顧客のデータしか含まないので、メンテナンスのダウン時間は限定される。更に、マルチインスタンスアーキテクチャのより単純な設計は、各顧客データベース及びインスタンスの冗長コピーが地理的に多様な方法で展開されることを可能にする。これにより、障害が検出されたとき又はメンテナンスが実行されているときに顧客のインスタンスのライブバージョンを移動できるような、高可用性を促進する。
いくつかの実施形態では、リモートネットワーク管理プラットフォーム320は、このプラットフォームを動作させるエンティティによって制御される1つ又は複数の中央インスタンスを含むことができる。計算インスタンスと同様に、中央インスタンスは、いくつかの数の物理的又は仮想的なサーバ及びデータベース装置を含むことができる。そのような中央インスタンスは、少なくともいくつかの計算インスタンスの間で共有できるデータのためのリポジトリとして機能することができる。例えば、計算インスタンス上で発生し得る共通のセキュリティ脅威の定義、計算インスタンス上で一般的に発見されるソフトウェアパッケージ、及び/又は計算インスタンスに展開され得るアプリケーションのためのアプリケーションストアが、中央インスタンス内に存在することができる。計算インスタンスは、このデータを得るために、明確に定義されたインターフェースを介して中央インスタンスと通信することができる。
複数の計算インスタンスを効率的な方法でサポートするために、リモートネットワーク管理プラットフォーム320は、単一のハードウェアプラットフォーム上に複数のこれらのインスタンスを実装することができる。例えば、aPaaSシステムがサーバクラスタ200などのサーバクラスタ上に実装された場合、それは様々な量の計算、記憶、及び通信リソースをインスタンス専用とする仮想マシンを動作させることができる。しかし、サーバクラスタ200の完全な仮想化は必要ではない場合もあり、他のメカニズムがインスタンスを分離するために使用されてもよい。いくつかの例では、各インスタンスは、サーバクラスタ200上に、専用アカウント及び1つ又は複数の専用データベースを有することができる。代替的に、計算インスタンス322は複数の物理装置にまたがることがある。
場合によっては、リモートネットワーク管理プラットフォーム320の単一のサーバクラスタが、複数の独立した企業をサポートすることができる。更に、後述するように、リモートネットワーク管理プラットフォーム320は、負荷分散、冗長性、及び/又は高可用性を促進するために、地理的に様々なデータセンタに展開された複数のサーバクラスタを含むことができる。
サードパーティネットワーク340は、アウトソーシングされた計算、データ記憶、通信、及びサービスホスティング動作のために使用できるリモートサーバ装置(例えば、サーバクラスタ200などの複数のサーバクラスタ)であり得る。これらのサーバは仮想化されてもよい(即ち、サーバは仮想マシンであってもよい)。サードパーティネットワーク340の例には、AMAZON WEB SERVICES(登録商標)及びMICROSOFT(登録商標)Azureが含まれ得る。リモートネットワーク管理プラットフォーム320と同様に、サードパーティネットワーク340をサポートする複数のサーバクラスタは、負荷分散、冗長性、及び/又は高可用性を目的として、地理的に様々な場所に展開され得る。
管理対象ネットワーク300は、サードパーティネットワーク340の1つ又は複数を使用して、アプリケーション及びサービスをそのクライアント及び顧客に展開することができる。例えば、管理対象ネットワーク300がオンライン音楽ストリーミングサービスを提供する場合、サードパーティネットワーク340が、音楽ファイルを記憶し、ウェブインターフェース及びストリーミング機能を提供することができる。このように、管理対象ネットワーク300の企業は、これらの動作のためにそれ自体のサーバを構築し維持する必要がない。
リモートネットワーク管理プラットフォーム320は、サードパーティネットワーク340と統合してその中の仮想マシン及び管理対象サービスを管理対象ネットワーク300に公開するモジュールを含むことができる。そのモジュールは、ユーザが、仮想リソースを要求し、サードパーティネットワーク340についての柔軟なレポートを提供することを可能にすることができる。この機能を確立するために、管理対象ネットワーク300からのユーザは、まずサードパーティネットワーク340とのアカウントを確立し、関連リソースのセットを要求し得る。次いで、ユーザは、アカウント情報をリモートネットワーク管理プラットフォーム320の適切なモジュールに入力することができる。これらのモジュールは、次いで、アカウント内の管理可能なリソースを自動的に発見し、更に、使用、パフォーマンス、及び課金に関する報告を提供することもできる。
インターネット350は、グローバルインターネットの一部を表し得る。しかしながら、インターネット350は、代替的に、プライベートワイドエリア又はローカルエリアパケット交換ネットワークのような異なるタイプのネットワークを表すこともある。
図4は更に、管理対象ネットワーク300と計算インスタンス322との間の通信環境を示し、追加の特徴及び代替的実施形態を導入する。図4では、計算インスタンス322は、データセンタ400A及び400Bにまたがって複製されている。これらのデータセンタは、互いに地理的に離れており、場合によっては異なる都市又は異なる国にあってよい。各データセンタは、管理対象ネットワーク300及びリモートユーザとの通信を容易にするサポート機器を含む。
データセンタ400Aにおいて、外部装置との間のネットワークトラフィックは、VPNゲートウェイ402A又はファイアウォール404Aのいずれかを通って流れる。VPNゲートウェイ402Aは、インターネットプロトコルセキュリティ(IPSEC)又はトランスポート層セキュリティ(TLS)などのセキュリティプロトコルを介して、管理対象ネットワーク300のVPNゲートウェイ412とピア接続され得る。ファイアウォール404Aは、ユーザ414及びリモートユーザ416のような許可されたユーザからのアクセスを可能にし、許可されていないユーザへのアクセスを拒否するように構成され得る。ファイアウォール404Aを介して、これらのユーザは、計算インスタンス322に、場合によっては他の計算インスタンスにアクセスすることができる。ロードバランサ406Aは、計算インスタンス322をホストする1つ又は複数の物理又は仮想サーバ装置の間でトラフィックを分散させるために使用され得る。ロードバランサ406Aは、クライアント装置からデータセンタ400Aの内部構成(例えば、計算インスタンス322)を隠すことによって、ユーザクセスを単純化することができる。例えば、計算インスタンス322が複数のデータベースへのアクセスを共有する複数の物理又は仮想コンピューティング装置を含む場合、ロードバランサ406Aは、どのコンピューティング装置又はデータベースも他より著しくビジーにならないように、ネットワークトラフィック及び処理タスクをこれらのコンピューティング装置及びデータベースにわたって分散させることができる。いくつかの実施形態では、計算インスタンス322は、VPNゲートウェイ402A、ファイアウォール404A、及びロードバランサ406Aを含むことができる。
データセンタ400Bは、データセンタ400A内の構成要素のそれ自体のバージョンを含むことができる。したがって、VPNゲートウェイ402B、ファイアウォール404B、及びロードバランサ406Bはそれぞれ、VPNゲートウェイ402A、ファイアウォール404A、及びロードバランサ406Aと同じ又は類似の動作を行うことができる。更に、リアルタイム又は準リアルタイムのデータベースレプリケーション及び/又は他の動作によって、計算インスタンス322はデータセンタ400A及び400B内に同時に存在することができる。
図4に示されるようなデータセンタ400A及び400Bは、冗長性及び高可用性を促進することができる。図4の構成では、データセンタ400Aがアクティブであり、データセンタ400Bがパッシブである。したがって、データセンタ400B内の計算インスタンス322のバージョンがほぼリアルタイムで更新されている一方で、データセンタ400Aは管理対象ネットワーク300との間の全てのトラフィックを処理している。両方のデータセンタがアクティブであるような他の構成もサポートされ得る。
データセンタ400Aが何らかの様式で失敗し又はユーザに利用できなくなった場合、データセンタ400Bがアクティブなデータセンタとして引き継ぐことができる。例えば、計算インスタンス322のドメイン名をデータセンタ400Aの1つ又は複数のインターネットプロトコル(IP)アドレスと関連付けるドメインネームシステム(DNS)サーバが、そのドメイン名をデータセンタ400Bの1つ又は複数のIPアドレスと再関連付けすることができる。この再関連付けが完了した後(1秒未満又は数秒かかることがある)、ユーザはデータセンタ400Bを介して計算インスタンス322にアクセスすることができる。
図4は、管理対象ネットワーク300の可能な構成も示す。上述のように、プロキシサーバ312及びユーザ414は、ファイアウォール310を介して計算インスタンス322にアクセスすることができる。プロキシサーバ312はまた、構成項目410にアクセスすることができる。図4では、構成項目410は、クライアント装置302、サーバ装置304、ルータ306、仮想マシン308、それらの上で実行される任意のアプリケーション又はサービス、並びに、装置、アプリケーション、及びサービスの間の関係のうちのいずれか又は全てを指すことができる。したがって、「構成項目」という用語は、任意の物理装置若しくは仮想装置、又はリモートで発見可能な若しくは計算インスタンス322により管理される任意のアプリケーション若しくはサービス、又は発見された装置、アプリケーション、及びサービスの間の関係の省略表現であり得る。構成項目は、計算インスタンス322の構成管理データベース(CMDB)内で表現することができる。
上述のように、VPNゲートウェイ412は、VPNゲートウェイ402Aに専用VPNを提供することができる。そのようなVPNは、管理対象ネットワーク300と計算インスタンス322との間にかなりの量のトラフィックがある場合、さもなければ、セキュリティポリシーがこれらのサイト間のVPNの使用を推奨又は要求する場合に、有用であり得る。いくつかの実施形態では、VPNを介して直接通信する管理対象ネットワーク300及び/又は計算インスタンス322における任意の装置に、パブリックIPアドレスが割り当てられる。管理対象ネットワーク300及び/又は計算インスタンス322内の他の装置には、プライベートIPアドレス(例えば、それぞれサブネット10.0.0.0/8及び192.168.0.0/16と略して表現される10.0.0.0~10.255.255.255又は192.168.0.0~192.168.255.255の範囲から選択されるIPアドレス)が割り当てられ得る。
IV.例示的な装置、アプリケーション、及びサービス発見
リモートネットワーク管理プラットフォーム320が管理対象ネットワーク300の装置、アプリケーション、及びサービスを管理するために、まず、リモートネットワーク管理プラットフォーム320は、管理対象ネットワーク300内にどんな装置が存在するか、これらの装置の構成及び動作状態、それらの装置により提供されるアプリケーション及びサービス、並びに発見された装置、アプリケーション、及びサービスの間の関係を決定することができる。上述のように、各装置、アプリケーション、サービス、及び関係は、構成項目と呼ばれ得る。管理対象ネットワーク300内の構成項目を定義するプロセスは、発見と呼ばれ、プロキシサーバ312によって少なくとも部分的に容易にされ得る。
本明細書の実施形態の目的では、「アプリケーション」は、1つ又は複数のプロセス、スレッド、プログラム、クライアントモジュール、サーバモジュール、又は装置若しくは装置のグループ上で実行される他の任意のソフトウェアを指すことができる。「サービス」とは、互いに関連して動作する1つ又は複数の装置上で実行される複数のアプリケーションによって提供される高レベルの能力を指すことがある。例えば、高レベルのウェブサービスは、複数のウェブアプリケーションサーバスレッドを含むことができ、これらのスレッドは、1つの装置上で実行され、別の装置上で実行されるデータベースアプリケーションの情報にアクセスする。
図5Aは、構成項目がどのように発見されることが可能か、及び、発見された構成項目に関係する情報がどのように記憶されるかについての論理的な表現を示す。簡単にするため、リモートネットワーク管理プラットフォーム320、サードパーティネットワーク340、及びインターネット350は図示されていない。
図5Aにおいて、CMDB500及びタスクリスト502は計算インスタンス322内で記憶される。計算インスタンス322は、プロキシサーバ312に発見コマンドを送信することができる。応答として、プロキシサーバ312は、管理対象ネットワーク300内の様々な装置、アプリケーション、及びサービスに対してプローブを送信することができる。これらの装置、アプリケーション、及びサービスは、プロキシサーバ312に応答を送信することができ、次いでプロキシサーバ312は、発見された構成項目に関する情報を記憶するためにCMDB500に提供することができる。CMDB500に記憶された構成項目は、管理対象ネットワーク300の環境を表す。
タスクリスト502は、プロキシサーバ312が計算インスタンス322に代わって行うアクティビティのリストを表す。発見が行われると、タスクリスト502が設定される。プロキシサーバ312は、繰り返しタスクリスト502を照会し、リスト内の次のタスクを取得し、タスクリスト502が空になるか又は別の停止条件に達するまでこのタスクを実行する。
発見を容易にするために、プロキシサーバ312は、プロキシサーバ312を介して到達できる管理対象ネットワーク300内の1つ又は複数のサブネットに関する情報で構成されることが可能である。例えば、プロキシサーバ312は、サブネットとしてIPアドレス範囲192.168.0/24を与えられてよい。次いで、計算インスタンス322は、この情報をCMDB500に記憶し、これらの各アドレスにおける装置の発見のためにタスクリスト502にタスクを配置することができる。
図5Aはまた、構成項目504、506、508、510、及び512として、管理対象ネットワーク300内の装置、アプリケーション、及びサービスを示す。上述のように、これらの構成項目は、セットの物理及び/又は仮想装置(例えば、クライアント装置、サーバ装置、ルータ、又は仮想マシン)、それらの上で実行されるアプリケーション(例えば、ウェブサーバ、電子メールサーバ、データベース、又はストレージアレイ)、それらの間の関係、並びに複数の個別構成項目を含むサービスを表す。
タスクリスト502にタスクを配置することがトリガーとなって又は別様にプロキシサーバ312に発見を開始させる。代替的又は追加的に、発見は手動でトリガーされてもよく、トリガーイベントに基づいて自動的にトリガーされてもよい(例えば、1日1回の特定の時間に自動的に発見が開始してもよい)。
一般に、発見は、スキャン、分類、識別、及び探査という4つの論理フェーズで進行することができる。発見の各フェーズは、プロキシサーバ312により管理対象ネットワーク300内の1つ又は複数の装置に送信される様々なタイプのプローブメッセージを含む。これらのプローブに対する応答は、プロキシサーバ312によって受信され処理され、それらの表示はCMDB500に送信され得る。したがって、各フェーズの結果、より多くの構成項目が発見されてCMDB500に記憶され得る。
スキャンフェーズでは、プロキシサーバ312は、オープン伝送制御プロトコル(TCP)及び/又はユーザデータグラムプロトコル(UDP)ポートについて、IPアドレス内の指定された範囲の各IPアドレスをプローブして、装置の一般的なタイプを決定することができる。IPアドレスにおけるそのようなオープンポートの存在は、特定のアプリケーションがそのIPアドレスを割り当てられた装置上で動作していることを示すことができ、それにより、その装置によって使用されるオペレーティングシステムを識別することができる。例えば、TCPポート135が開いている場合、装置はWINDOWS(登録商標)オペレーティングシステムを実行している可能性が高い。同様に、TCPポート22が開いている場合、装置はLINUX(登録商標)などのUNIX(登録商標)オペレーティングシステムを実行している可能性が高い。UDPポート161が開いている場合、装置は簡易ネットワーク管理プロトコル(SNMP)を介して更に識別されることが可能であり得る。他の可能性もある。特定のIPアドレスにおける装置とそのオープンポートの存在がいったん発見されると、これらの構成項目はCMDB500に保存される。
分類フェーズでは、プロキシサーバ312は更に、発見された各装置をプローブして、そのオペレーティングシステムのバージョンを決定することができる。特定の装置に使用されるプローブは、その装置に関してスキャンフェーズ中に収集された情報に基づく。例えば、TCPポート22が開いている装置が見つかった場合、UNIX(登録商標)固有のプローブのセットが使用され得る。同様に、TCPポート135が開いている装置が見つかった場合、WINDOWS(登録商標)固有のプローブのセットが使用され得る。いずれの場合も、プロキシサーバ312が実行するためにタスクの適切なセットをタスクリスト502に配置することができる。これらのタスクは、特定の装置からの情報に対してプロキシサーバ312がログオン又は他のアクセスをする結果をもたらすことができる。例えば、TCPポート22が開いている場合、プロキシサーバ312は、特定の装置に対するセキュアシェル(SSH)接続を開始し、その上のオペレーティングシステムに関する情報をファイルシステム内の特定の場所から得るように指示されることが可能である。この情報に基づいて、オペレーティングシステムを決定することができる。例として、TCPポート22が開いているUNIX(登録商標)装置は、AIX(登録商標)、HPUX、LINUX(登録商標)、MACOS(登録商標)、又はSOLARIS(登録商標)として分類することができる。この分類情報は、CMDB500内に1つ又は複数の構成項目として記憶することができる。
識別フェーズでは、プロキシサーバ312は、分類された装置に関する特定の詳細を決定することができる。このフェーズ中に使用されるプローブは、分類フェーズ中に特定の装置に関して収集された情報に基づくことができる。例えば、装置がLINUX(登録商標)として分類された場合、LINUX(登録商標)固有のプローブのセットが使用され得る。同様に、装置がWINDOWS(登録商標)2012として分類された場合、WINDOWS(登録商標)2012固有のプローブのセットが使用され得る。分類フェーズの場合と同様に、プロキシサーバ312が実行するためにタスクの適切なセットをタスクリスト502に配置することができる。これらのタスクの結果、プロキシサーバ312は、特定の装置から、基本入出力システム(BIOS)情報、シリアル番号、ネットワークインターフェース情報、これらのネットワークインターフェースに割り当てられたメディアアクセス制御アドレス、その特定の装置により使用されているIPアドレスなどの情報を読み取ることができる。この識別情報は、CMDB500内に1つ又は複数の構成項目として記憶することができる。
探査フェーズでは、プロキシサーバ312は、分類された装置の動作状態に関して更なる詳細を決定することができる。このフェーズ中に使用されるプローブは、分類フェーズ及び/又は識別フェーズ中に特定の装置に関して収集された情報に基づくことができる。ここでも、プロキシサーバ312が実行するためにタスクの適切なセットをタスクリスト502に配置することができる。これらのタスクの結果、プロキシサーバ312が、特定の装置から、プロセッサ情報、メモリ情報、実行中のプロセス(アプリケーション)のリストなどの追加の情報を読み取ることができる。やはり、発見された情報は、CMDB500内に1つ又は複数の構成項目として記憶することができる。
ルータなどのネットワーク装置上で発見を実行するのにSNMPを利用することができる。発見は、実行中のプロセス又は他のアプリケーション関連情報のリストを決定することに代えて又は加えて、ルータに認識された追加サブネット、及びルータのネットワークインターフェースの動作状態(例えば、アクティブ、非アクティブ、キューの長さ、廃棄されたパケットの数など)を決定してもよい。追加のサブネットのIPアドレスは、更なる発見手順の候補になり得る。したがって、発見は反復的又は再帰的に進行することがある。
発見が完了すると、各発見された装置、アプリケーション、及びサービスのスナップショット表現がCMDB500で利用可能である。例えば、管理対象ネットワーク300内のクライアント装置、サーバ装置、及びルータについての、オペレーティングシステムバージョン、ハードウェア構成、及びネットワーク構成の詳細、並びにそれらの上で実行されているアプリケーションが、発見の後に記憶され得る。この収集された情報は、装置のハードウェア構成及び動作状態並びに複数の装置及びアプリケーションにわたるサービスの特性をユーザが見ることを可能にするために、様々な方法でユーザに提示され得る。
更に、CMDB500は、構成項目間の依存関係及び関係性についてのエントリを含むことができる。より具体的には、特定のサーバ装置上で実行されているアプリケーション、並びにこのアプリケーションに依存するサービスが、CMDB500内でそのように表されることが可能である。例えば、データベースアプリケーションがサーバ装置上で実行されており、このデータベースアプリケーションが新入社員オンボーディングサービス及び給与計算サービスによって使用されていると想定する。したがって、そのサーバ装置がメンテナンスのために運用から外された場合、従業員オンボーディングサービス及び給与計算サービスが影響を受けることは明白である。同様に、構成項目間の依存関係及び関係性は、特定のルータが故障したときに影響を受けるサービスを表現することも可能であり得る。
一般に、構成項目間の依存関係及び関係性は、ウェブベースのインターフェース上に表示され、階層的な様式で表すことができる。したがって、そのような依存関係及び関係性の追加、変更、又は削除は、このインターフェースを介して達成することができる。
更に、管理対象ネットワーク300のユーザは、複数の発見された装置にわたって特定の協調アクティビティが行われることを可能にするワークフローを開発することができる。例えば、ITワークフローは、ユーザが全ての発見されたLINUX(登録商標)装置に対して共通の管理者パスワードを1回の操作で変更することを可能にし得る。
上述した方法で発見を行うために、プロキシサーバ312、CMDB500、及び/又は1つ若しくは複数の資格証明ストアが、発見される1つ又は複数の装置の資格証明を用いて構成され得る。資格証明は、装置にアクセスするために必要とされる任意のタイプの情報を含むことができる。これらは、ユーザID/パスワードの対、証明書などを含むことができる。いくつかの実施形態では、これらの資格証明は、CMDB500の暗号化されたフィールドに記憶することができる。プロキシサーバ312は資格証明の復号鍵を含むことができ、したがって、プロキシサーバ312はこれらの資格証明を使用して、発見される装置にログオン又は他のアクセスをすることができる。
発見プロセスは、図5Bにフローチャートとして示されている。ブロック520で、計算インスタンス内のタスクリストに、例えば、IPアドレスの範囲が設定される。ブロック522では、スキャンフェーズが行われる。それにより、プロキシサーバは、これらのIPアドレスを使用して装置のIPアドレスをプローブして、これらの装置で実行されているオペレーティングシステムを決定しようとする。ブロック524では、分類フェーズが行われる。プロキシサーバは、発見された装置のオペレーティングシステムのバージョンを決定しようとする。ブロック526では、識別フェーズが行われる。プロキシサーバは、発見された装置のハードウェア構成及び/又はソフトウェア構成を決定しようとする。ブロック528では、探査フェーズが行われる。プロキシサーバは、発見された装置上で実行されている動作状態及びアプリケーションを決定しようとする。ブロック530では、発見された装置及びアプリケーションを表す構成項目の更なる編集が行われ得る。この編集は、本質的に自動及び/又は手動とすることができる。
図5Bに表されるブロックは例示を目的としている。発見は、より多い又はより少ないフェーズを有し得る高度に構成可能な手順とすることができ、各フェーズの動作は異なってもよい。場合によっては、1つ又は複数のフェーズがカスタマイズされてもよく、又は他のやり方で上記の例示的な説明から逸脱してもよい。
V.インフラストラクチャ・アズ・コード
前述したように、「サードパーティネットワーク」は、アウトソーシングされた計算、データ記憶、通信、及びサービスホスティング動作のために使用できるリモートサーバ装置であり得る。サードパーティネットワークの例には、AMAZON WEB SERVICES(登録商標)及びMICROSOFT(登録商標)AZURE(登録商標)が含まれ得る。管理対象ネットワーク300は、1つ又は複数のサードパーティネットワークを使用して、アプリケーション及びサービスをそのユーザ、クライアント、及び顧客に展開することができる。例えば、管理対象ネットワーク300がオンライン音楽ストリーミングサービスを提供する場合、サードパーティネットワークが、音楽ファイルを記憶し、ウェブインターフェース及びストリーミング機能を提供するように構成することができる。このように、管理対象ネットワーク300の企業は、これらの動作のためにそれ自体のサーバを構築し維持する必要がない。サードパーティネットワークの機能を使用することによって、管理対象ネットワーク300は、「クラウドコンピューティングインフラストラクチャ」、又はより詳細には、サードパーティネットワークのリモートサーバ装置を全体的又は部分的に利用するコンピューティングインフラストラクチャを作成することができる。例示的実施形態では、サードパーティネットワークは、「クラウドベースネットワーク」と呼ばれることもある。
多くの状況において、管理対象ネットワーク300は、クラウドコンピューティングインフラストラクチャのコンポーネントの構成及び配置(例えば、オーケストレーションとも呼ばれる)を担当することができる。一例として、アプリケーションの展開は、管理対象ネットワーク300のアプリケーション開発者がクラウドベースネットワーク上に仮想マシン(VM)をプロビジョニングし、アプリケーションのニーズをサポートすることができるオペレーティングシステムを用いてVMを構成することを含む。VMが構成されると、アプリケーション開発者は、(例えばセキュアシェルプロトコルを介して)VMにアクセスして、アプリケーションを手動で始動することができる。こうして初めて、アプリケーションを使用する準備を整えることができる。本明細書で述べるように、アプリケーションを展開するための上記の手法は、「手動」展開手法と呼ばれることがある。
手動展開手法の重要な課題は、管理対象ネットワーク300において、各アプリケーションに対して複数のアプリケーション開発者が作業することがあるので、展開に一貫性がないことがあり得ることである。例えば、VM構成は、アプリケーションを展開するアプリケーション開発者によって異なることがある。更に、アプリケーション開発者が互いに連絡しない場合、各アプリケーションごとに無関係なVMインスタンスがプロビジョニングされる可能性がある。これにより、構成の望ましくない不一致、無関係なインフラストラクチャノード、及び他の問題が生じることがある。
これらの課題に対処するための1つのソリューションは、インフラストラクチャ・アズ・コード(IaC)を使用することである。IaCは、単一のソースコードファイル(本明細書では「テンプレートファイル」と呼ぶこともある)を使用することにより、クラウドコンピューティングインフラストラクチャを定義及びオーケストレーションするプログラム法を提供するパラダイムである。クラウドコンピューティングインフラストラクチャを可変ファイルとして扱うことにより、一般的なファイルメンテナンス実施を適用して、インフラストラクチャの一貫性の向上を保証することができる。すなわち、単一のソースコードファイルをバージョン制御システムの下で保ち、アプリケーション開発者とシステム管理者との間で監査可能性、再現性のある構築、及びテスト実施を可能にすることができる。実際には、リモートネットワーク管理プラットフォーム320は、IaCプラットフォームによって管理対象ネットワーク300にIaC機能を提供することができる。IaCプラットフォームの例は、TERRAFORM(登録商標)である。
特に、本明細書の実施形態は、IaCの概念を説明するために「テンプレートファイル」を使用するが、実際には、IaCプラットフォームは、1つ又は複数のクラウドベースネットワークのコンピューティングリソースをオーケストレーションするためにいくつかのメカニズムを使用することがある。例えば、1つ又は複数のクラウドベースネットワークの望ましい状態を表現するためにファイルを使用するのではなく、IaCプラットフォームは、コマンドラインインターフェイス(CLI)又はアプリケーションプログラミングインターフェイス(API)コマンドを解釈してIaCプラットフォームの内部状態を更新するように構成することができる。このため、いくつかの実施形態では、IaCテンプレートファイルは「テンプレート表現」と呼ばれることもある。
図6は、例示的実施形態による、クラウドコンピューティングインフラストラクチャを管理するIaC手法のための機能、コンポーネント、及び/又は動作を示す。図6は特定の構成を示しているが、本明細書に開示される動作は、本開示の範囲から逸脱することなく、同様の及び/又は他の構成の文脈でも実施することができる。
図6は、クラウドベースネットワーク600を含み、このネットワーク600を管理対象ネットワーク300が使用して、そのクライアント及び顧客にアプリケーション及びサービスを展開することができる。クラウドベースネットワーク600は、サードパーティネットワーク340に関して論じられる特性のいくつか又は全てを引き受けることができる。クラウドベースネットワーク600は、1組のクラウドコンピューティングプロバイダによってホストされる通信可能に結合されたコンピューティングリソース(例えば、サーバ、ソフトウェアアプリケーション、データベース、及び/又は他のリソース)を含むことがある。例えば、ロードバランサ604、仮想マシン606、データストレージ608、ドメインネームサーバ610、及びファイアウォール612は、AMAZON WEBサービス(登録商標)によって提供されるクラウドネットワーク602内に割り振られたコンピューティングリソースでよく、仮想マシン616は、MICROSOFT(登録商標)AZURE(登録商標)によって提供されるクラウドネットワーク614内に割り振られたコンピューティングリソースでよい。クラウドコンピューティングプロバイダ/ネットワークの違いにかかわらず、異なるクラウドベースネットワークのコンピューティングリソースは、データを交換する及び/又は計算操作を行うために通信に携わることがある。例えば、VPN接続を使用することにより、仮想マシン616は、クラウドネットワーク602のコンポーネントとの通信に携わることができる。したがって、実際には、クラウドベースネットワーク600は、いくつかのクラウドコンピューティングプロバイダからのコンピューティングリソースを含むことがある。異なるクラウドコンピューティングプロバイダが異なるサービスを管理対象ネットワーク300に提供することがあるので、これは有益であり得る。
本開示によれば、IaCプラットフォーム620は、管理対象ネットワーク300がクラウドベースネットワーク600のコンピューティングリソースをオーケストレーションすることを可能にすることがある。複数のクラウドプロバイダとの対話を容易にすることにより、IaCプラットフォーム620は、クラウドコンピューティングインフラストラクチャをオーケストレーションするための単一のソースとして作用することができる。場合によっては、IaCプラットフォーム620は、例えば、CLI、API、又はウェブインターフェースを介して管理対象ネットワーク300がアクセスすることができる別個の計算装置として実装することができる。他の場合には、IaCプラットフォームは、管理対象ネットワーク300内の計算装置に実装することができる。
IaCプラットフォーム620は、テンプレートファイル622のエントリを利用して、クラウドベースネットワーク600のコンピューティングリソースをオーケストレーションすることができる。テンプレートファイル622のエントリは、クラウドベースネットワーク600の望ましい状態を表現するために、IaCプラットフォーム620によって解釈することができる構造化されたデータフォーマット(JavaScript Object Notation(JSON)又はHASHICORP(登録商標)構成言語(HCL)など)で記述することができる。各エントリは、コンピューティングリソースに関する特定の詳細を提供することがある。これらの詳細は、1つ又は複数のキーと値のペア(本明細書では構成可能パラメータと呼ぶ)の形式をとることがある。特に、構成可能パラメータはクラウドプロバイダ間で異なることがある。一例として、仮想マシンリソースに関する一般的な構成可能パラメータは、仮想マシンが要求される物理的な場所であり得る。したがって、AMAZON WEB SERVICES(登録商標)によって提供される仮想マシンを表すエントリは、この構成可能パラメータを「地域」とラベル付けすることがあり、一方、MICROSOFT(登録商標)AZURE(登録商標)によって提供される仮想マシンを表すエントリは、構成可能パラメータを「エリア」とラベル付けすることがある。クラウドプロバイダ間で構成可能パラメータに他の相違もあり得る。
テンプレートファイル622を使用するための最初のステップは、コンピューティングリソースが要求される1つ又は複数のクラウドプロバイダを構成することであり得る。例えば、テンプレートファイル622は、以下のフォーマットを有するエントリを含むことがある。
provider“aws”{
access_key=“my_key”
このエントリでは、「provider」パラメータは、コンピューティングリソースが要求される特定のクラウドプロバイダ(この場合はAMAZON WEB SERVICES(登録商標))を示すことがある。「access key」パラメータは、クラウドプロバイダ上の管理対象ネットワーク300の特定のアカウントにアクセスするために必要な資格情報を示すことがある。
上記の例から続けて、各クラウドプロバイダごとに、多くの異なるタイプのコンピューティングリソース(サーバ、データベース、ロードバランサなど)が要求されることがある。したがって、テンプレートファイル622は、以下のフォーマットを有するエントリを含むことがある。
resource“aws_instance” “example”{
ami=“ami-2d39803a”
region=“us-east-1”,
instance_type=“t2.micro”
count=“5”
このエントリは、コンピューティングリソース(この場合には、AMAZON WEB SERVICES(登録商標)によって提供される「aws_instance」)及びコンピューティングリソースに関する名前(この場合は「example」)を指定する。上記の例では、コンピューティングリソースが、いくつかの構成可能パラメータを含む。「ami」パラメータは、コンピューティングリソースを操作するためのオペレーティングシステム/仮想アプリケーションソフトウェアを含む仮想マシンイメージを表すことがある。上記の例では、このパラメータをAMAZON WEB SERVICES(登録商標)によって提供される特定の仮想マシンイメージに設定する。クラウドプロバイダが世界中に分散されたデータセンタを有すると仮定すると、「地域」パラメータは、クラウドプロバイダに関するコンピューティングリソースが動作すべき特定の場所を示すことがある。「instance type」パラメータは、CPUの量、メモリ、ディスクスペース、ネットワーキング仕様を含む、リソースに関するハードウェアを指定することができる。上記の例では、このパラメータをAMAZON WEB SERVICES(登録商標)によって提供される特定のハードウェア構成に設定する。更に、「count」パラメータは、動作すべきリソースのインスタンスの数(この場合は、5)を指定することができる。
特に、上記のエントリは、テンプレートファイル622に含まれることがあるエントリ及び構成可能パラメータの単なる例示にすぎない。例えば、テンプレートファイル622は、コンピューティングリソース、ディスクスペース、IPアドレス、ポート、及び/又は他の機能の間の依存関係を記述する構成可能パラメータを含むことがある。更に、上記の例はAMAZON WEB SERVICES(登録商標)に関連して論じたが、これらの例は好都合な概念的表現にすぎず、本明細書で述べる例示的実施形態又は技法に関して限定するものとは意図されない。例えば、MICROSOFT(登録商標)AZURE(登録商標)やIBM CLOUD(登録商標)などの他のクラウドプロバイダは、同様のエントリ及び構成可能パラメータをテンプレートファイル622に含むことがある。したがって、テンプレートファイル622は、単一のファイル内の複数のクラウドプロバイダにわたる複数のコンピューティングリソースを統合することができる。
一般に、管理対象ネットワーク300からのユーザは、エントリを追加/削除し、及び/又はテンプレートファイル622の構成パラメータを変更して、クラウドベースネットワーク600の所望の変更を示すことができる。例えば、管理対象ネットワーク300からのユーザが仮想マシンのクラウドプロバイダを変更したい場合、ユーザは、クラウドプロバイダに関係する構成パラメータを変更する(例えば「aws_instance」を「ibm_instance」に変更するなど)ことができる。有利には、ユーザは、テンプレートファイル622を使用して、各クラウドプロバイダと物理的に対話しなければならない範囲内で、クラウドプロバイダ及び/又はコンピューティングリソースの構成パラメータを変更することができる。
テンプレートファイル622への変更を検出すると、IaCプラットフォーム620は、計画フェーズ624及び適用フェーズ626によってクラウドベースネットワーク600とテンプレートファイル622とを自動的に同期することができる。
計画フェーズ624中、クラウドベースネットワーク600のコンピューティングリソース(すなわち、実際に動作しているリソース)は、テンプレートファイル622(すなわち、動作すべきリソース)と調整されることがある。言い換えると、テンプレートファイル622にリストされている(又はリストされていない)エントリに基づいて、計画フェーズ624は、クラウドベースネットワーク600から追加(又は削除)すべきコンピューティングリソースを識別することがある。例えば、DNS610及びデータストレージ608は、テンプレートファイル622のエントリとしてリストされることがあるが、クラウドベースネットワーク600でのコンピューティングリソースとして存在しないことがある。このシナリオでは、計画フェーズ624は、次いで、DNS610及びデータストレージ608を、クラウドベースネットワーク600でプロビジョニングすべきコンピューティングリソースとして識別することがある。別の例として、ロードバランサ604は、クラウドベースネットワーク600上で動作するコンピューティングリソースであり得るが、対応するエントリをテンプレートファイル622に有さないことがある。このシナリオでは、計画フェーズ624は、ロードバランサ604を、クラウドベースネットワーク600から削除するべきリソースとして識別することがある。本明細書で使用するとき、クラウドベースネットワーク600から追加(又は削除)すべきコンピューティングリソースの識別は、「計画」と呼ばれることもある。
適用フェーズ626中、計画フェーズ624から生成された計画は、クラウドベースネットワーク600に適用されることがある。すなわち、計画にリストされたコンピューティングリソースは、クラウドベースネットワーク600にプロビジョニング(又は削除)されることがある。したがって、適用フェーズは、コンピューティングリソースをプロビジョニング(又は削除)するためにクラウドプロバイダとの通信に携わるIaCプラットフォーム620を含むことがある。場合によっては、リソースのプロビジョニングは、クラウドベースネットワーク600のコンピューティングリソース間に存在する依存関係を捕捉するように指示されることがある。例えば、DNS610は、動作のためにロードバランサ604に依拠することがある。したがって、DNS610をプロビジョニングする前にロードバランサ604をプロビジョニングすべきである。1つ又は複数のリソースが並列にプロビジョニングされることがあるとき、IaCプラットフォーム620は、時間を節約するために項目を並列にプロビジョニングするように構成されることがある。
特に、上記のフェーズは例として使用される。実際には、IaCプラットフォーム620は、クラウドベースネットワーク600とテンプレートファイル622とを同期するために、より多数又はより少数のフェーズを使用することができる。
しかし、上述した利益があっても、IaCは、依然として欠点を有することがある。最初の問題として、IaCプラットフォーム620を使用してアプリケーションを展開することは、依然としてクラウドコンピューティング及びIaCパラダイムの相当な知識を必要とすることがあり、IaCの使用をアプリケーション開発者及び管理対象ネットワーク300のシステム管理に制限する。クラウドコンピューティングの経験がないプロジェクトマネージャなどの非技術者ユーザがインフラストラクチャインスタンスを展開したいことがあるとき、これは、管理対象ネットワーク300の速度及び効率に悪影響を与えることがある。更に、IaCプラットフォーム620との対話は、CLI上でのアクションに限定されることがあり、これは、経験豊富なユーザを除く全ての人にとって複雑であり、混乱を招く可能性がある。
これら及び他の問題に対処するために、リモートネットワーク管理プラットフォーム320を操作するエンティティは、カスタマイズ可能なソフトウェアアプリケーションを提供して、管理対象ネットワーク300の技術者ユーザと非技術者ユーザとの両方がクラウドベースネットワークによって提供されるコンピューティングリソースをオーケストレーションすることを可能にする。以下でより詳細に論じるように、本明細書で述べる改良された手法は、アプリケーション開発者又はシステム管理者の支援に依拠する必要なく、IaCテンプレートファイルのカスタマイズ可能なパラメータを動的に識別し、これらのパラメータを設定するオプションをユーザに提供することができる。設定されると、本明細書で述べる手法は、IaCテンプレートを使用し、適切なインフラストラクチャコンポーネントをプロビジョニングする方法を提供する。有利には、本明細書で述べる実施形態は、アプリケーション開発者又はシステム管理者と相談する必要なく、コンピューティングリソースをオーケストレーションするためのカスタマイズ可能なインターフェース及び方法を提供することによって、IaCを利用するための技術的改良を提示する。
VI.クラウドサービスとのプログラム的統合
本明細書では、リモートネットワーク管理プラットフォームの計算インスタンスをカスタマイズ可能なソフトウェアアプリケーションと統合して、管理対象ネットワークの技術者ユーザと非技術者ユーザとの両方がクラウドコンピューティングインフラストラクチャ上でコンピューティングリソースをオーケストレーションできるようにするための手法が開示される。開示される手法は、現在のIaC実施に勝る利点及び改良を提供することができる。例えば、カスタマイズ可能なソフトウェアアプリケーションは、プロビジョニングすることができるコンピューティングリソースのタイプを制御する妥当性チェック及びドロップダウンオプションを可能にすることができ、したがって、入力エラーを制限又は防止し、及び/又は特定のルールの順守を保証する。更に、ユーザに提供される直感的な質問の使用により、カスタマイズ可能なソフトウェアアプリケーションは、異なる各クラウドプロバイダによってそれぞれサポートされるクラウドコンピューティングパラダイムについてユーザが必ずしも学ぶ必要なく、複数のクラウドプロバイダの機能を提供することができる。他の利点及び改良も可能である。
図7Aは、コンピューティングシステム700の機能、コンポーネント、及び/又は動作を示す。コンピューティングシステム700は、4つの主要な構成要素、すなわち管理対象ネットワーク300、計算インスタンス322、インフラストラクチャ・アズ・コード(IaC)サーバ730、及びクラウドベースネットワーク600を含み、これらは全て、例えばネットワークを介して通信可能に接続されている。図7Aは特定の構成を示しているが、本明細書に開示される動作は、本開示の範囲から逸脱することなく、同様の及び/又は他の構成の文脈でも実施することができる。
特に、コンピューティングシステム700は、サーバ装置(図示せず)を含むことがある。サーバ装置は、コンピューティングシステム700に本明細書で述べる様々な動作を実行させるように、プロセッサによって実行可能なプログラム命令を含むことがあり、又はプログラム命令へのアクセス権を有することがある。この点で、サーバ装置は、計算インスタンス322内に配設されたサーバ装置を含むことがある。追加的又は代替的に、サーバ装置は、管理対象ネットワーク300内及び/又はIaCサーバ730内に配設されたサーバ装置を含むことがある。
管理対象ネットワーク300は、コンピューティング及び通信タスク、並びにデータの記憶のためにエンティティによって使用される企業ネットワークであり得る。いくつかの例では、管理対象ネットワーク300は、クラウドベースネットワーク600上のコンピューティングリソースへの加入者であり得る。これらのリソースは、計算、データ記憶、通信、及び/又は他のサービスを含むことがある。管理対象ネットワーク300は、1つ又は複数のプロキシサーバ312を含むことがある。場合によっては、プロキシサーバ312の助けを借りて、計算インスタンス322は、管理対象ネットワーク300によって使用されるクラウドベースネットワーク600のコンピューティングリソースをオーケストレーションすることも可能であり得る。
計算インスタンス322は、リモートネットワーク管理プラットフォーム320内に配設されることがあり、管理対象ネットワーク300に専用であり得る。計算インスタンス322は、管理対象ネットワーク300の環境を表現する発見された構成項目をCMDB500に記憶することができる。更に、計算インスタンス322は、管理対象ネットワーク300からのユーザがクラウドベースネットワーク600によって提供されるコンピューティングリソースをオーケストレーションできるように、クラウドサービスカタログ710を含むことがある。
クラウドサービスカタログ710は、計算インスタンス322によってホストされ、要求に応じて管理対象ネットワーク300からのユーザに提供されるウェブページ又は一連のウェブページとして提示されるカスタマイズ可能なソフトウェアアプリケーションであり得る。特に、クラウドサービスカタログ710は、実行可能なエンティティとしてユーザに提示される1つ又は複数の「カタログ項目」を含むことがある。本明細書で使用するとき、カタログ項目は、ユニットとして特定のコンピューティング機能を提供するコンピューティングリソース候補に関するブループリントであり得る。例えば、カタログ項目712は、ウェブアプリケーションに関連付けられることがある。したがって、カタログ項目712に関するブループリントは、オペレーティングシステム、ウェブサーバ、及びデータベースを含むことがある。別の例として、カタログ項目714は、インフラストラクチャ監視ツールに関連付けられることがある。したがって、ブループリントカタログ項目714は、監視サービス、ストレージボリューム、及び視覚化アプリケーションを含むことがある。カタログ項目は、コンピューティングリソース候補に関するブループリントにすぎないので、クラウドベースネットワーク600にカタログ項目をプロビジョニングするために、コンピューティングリソース候補の詳細(或いはカタログ項目変数として知られている)がユーザによって提供されることがある。より詳細には、ユーザは、カタログ項目変数を提供して、コンピューティングリソース候補を、(本明細書では「ターゲットコンピューティングリソース」と呼ばれることもある)カタログ項目の特定のコンピューティング機能を実際に実行することができるクラウドベースネットワーク600上の仮想又は物理的コンピューティングリソースのグループに関連付けることができる。
ウェブページ又は一連のウェブページを介して、管理対象ネットワーク300からのユーザは、クラウドサービスカタログ710から1つ又は複数のカタログ項目を選択して、クラウドベースネットワーク600にプロビジョニングすることができる。そのような選択は、選択されたカタログ項目に関する一連の質問に回答することを含むことがある。これらの質問に回答することによって、ユーザはカタログ項目のターゲットコンピューティングリソースを形成するカタログ項目変数を効果的に選択することができる。例えば、ユーザは、カタログ項目を展開するクラウドプロバイダ、カタログ項目が動作すべき地理的地域などを指定するように求められることがある。図7Aに示されるように、コンピューティングリソース722、724、及び726は、これらの質問に対するユーザの回答から得ることができる物理的コンピューティングリソースを示すことができる。例えば、コンピューティングリソース722は、UBUNTU(登録商標)LINUX(登録商標)オペレーティングシステム(カタログ項目変数は、LINUX(登録商標)及びUBUNTU(登録商標)である)であり得る。更に、コンピューティングリソース724は、MICROSOFT(登録商標)AZURE(登録商標)によって提供されるAPACHE(登録商標)ウェブサーバ(カタログ項目変数は、APACHE(登録商標)及びMICROSOFT(登録商標)AZURE(登録商標)である)であり得る。更に、コンピューティングリソース726は、2TBのストレージを備えたMySQLデータベース(カタログ項目変数は、MySQL及び2TBである)であり得る。したがって、(i)カタログ項目を選択し、(ii)カタログ項目に関係する質問に回答するというこれらの組み合わされた行為は、「スタック」の設計と呼ばれることがある。
スタックに関する設計を受信すると、クラウドサービスカタログ710は、(i)質問への回答に基づいて、カタログ項目変数を決定し、(ii)カタログ項目変数と一致するようにIaCテンプレートファイルにエントリを設定し、(iii)IaCテンプレートファイルをIaCサーバ730に送信することがある。図7Aに示されるように、設定されたテンプレートファイル720は、設計されたスタックから作成することができるIaCテンプレートファイルのようなものを表現することがある。
IaCサーバ730は、IaCプラットフォームのソフトウェアを含むコンピューティングシステム700上のコンピューティング装置であり得る。一例では、IaCサーバ730は、管理対象ネットワーク300とは別個の計算エンティティであり得る。この状況では、IaCサーバ730にアクセスするための資格情報は、プロキシサーバ312によって保持されることがある。別の例では、IaCサーバ730は、管理対象ネットワーク300の一部である計算エンティティであり得る。いずれの場合にも、IaCサーバ730は、クラウドベースネットワーク600にアクセスするための資格情報と共に構成することができる。
設定されたテンプレートファイル720を受信した後、IaCサーバ730は、設定されたテンプレートファイル720を使用して、計画フェーズ及び適用フェーズを実行することができる。図6に関連して述べたように、計画フェーズは、設定されたテンプレートファイルのエントリに基づいて、クラウドベースネットワーク600に追加(又は削除)すべきターゲットコンピューティングリソースを識別することがあり、一方、適用フェーズ動作は、実際に、ターゲットコンピューティングリソースをクラウドベースネットワーク600にプロビジョニングすることがある。これらのフェーズを実行すると、IaCサーバ730は、クラウドベースネットワーク600に追加されたコンピューティングリソースについてプロキシサーバ312に通知することができる。そのような情報は、例えば、コンピューティングリソースがプロビジョニングされたクラウドベースネットワーク600の各クラウドプロバイダから取得することができる。プロキシサーバ312は、この情報を計算インスタンス322に送信して、新たに追加されたコンピューティングリソースの発見を可能にすることができる。上記の論述に沿って、発見されたコンピューティングリソースは、次いでCMDB500に記憶されることがある。
クラウドサービスカタログ710に新たなカタログ項目を追加するために、管理対象ネットワーク300からのユーザは、テンプレートファイル750を計算インスタンス322に送信することができる。例示的実施形態では、テンプレートファイル750は、クラウドベースネットワーク600上のコンピューティングリソースに対応するエントリを含むことがある。テンプレートファイル750は、計算インスタンス322によって管理対象ネットワーク300に提供されるグラフィカルインターフェースを介して送信されることがある。このインターフェースは、管理対象ネットワーク300からのユーザがテンプレートファイル750の内容を計算インスタンス322にアップロード及び/又はコピーすることを可能にするように構成することができる。テンプレートファイル750を受信すると、計算インスタンス322は、ファイルの内容をクラウドサービスカタログ710に提供して、テンプレートファイル750のエントリをカタログ項目に変換することができる。
この変換プロセスを図7Bに示す。ブロック752で、クラウドサービスカタログ710は、カスタマイズされたパーサを利用して、(i)テンプレートファイル750のエントリを分析し、(ii)エントリ内の構成可能パラメータを決定することができる。テンプレートファイル750の構造化データフォーマット(例えば、JSON、HCL)により、カスタマイズされたパーサは、テンプレートファイル750内の特定の構成可能パラメータを見つけるために、ネストされたオブジェクト及び/又はアレイ(本明細書ではパスと呼ばれる)の連結で事前構成することができる。そのようなパスの使用は、テンプレートファイル750を解析するときに有利であり得る。なぜなら、全ての構成可能パラメータが対象となるわけではなく、パスを使用して、対象となる構成可能パラメータを定義することができるからである。
ブロック754で、テンプレートファイル750のエントリ内の決定された構成可能パラメータをカタログ項目の質問に変換することができる。例えば、「count」パラメータを「インスタンスを何個にしますか?」という質問に変換することができる。他の例として、「provider」パラメータを「どのクラウドサービスを使用しますか?」という質問に変換することができる。更に別の例として、「instance_type」パラメータを「どのインスタンスを展開しますか?」という質問に変換することができる。他の質問も可能である。
ブロック756として、クラウドサービスカタログ710は、各質問の妥当性チェックを構成することができる。例えば、ユーザが「どのクラウドサービスを使用しますか?」という質問に応答「123」で回答した場合、クラウドサービスカタログ710は、応答が認識されたクラウドプロバイダではないことを示すエラーメッセージを表示するように構成されることがある。別の例として、クラウドサービスカタログ710は、質問に対するテキスト応答をユーザに入力させるのではなく、回答をドロップダウンボックスとして構成することができる。前の例を使用すると、「どのクラウドサービスを使用しますか?」という質問の場合、ドロップダウンメニューは、AMAZON WEB SERVICES(登録商標)、MICROSOFT(登録商標)AZURE(登録商標)、又はIBM CLOUD(登録商標)のオプションを提供することがある。
ブロック758で、カタログ項目及び関連する質問をクラウドサービスカタログ710に追加することができる。有利には、図7Bのプロセスは、テンプレートファイル750がクラウドコンピューティングパラダイムの知識を有する技術者ユーザによって定義され、次いで管理対象ネットワーク300からの非技術者ユーザに利用可能にできるようにする。更に、図7Bの変換プロセスは、クラウドサービスカタログ710が、特定のクラウドベースのプロバイダからのテンプレートファイル750のエントリの関連付け解除を行うことを可能にすることがある。例えば、テンプレートファイル750は、AMAZON WEB SERVICES(登録商標)によって提供されるコンピューティングリソースに対応するエントリを含むとする。テンプレートファイル750をカタログ項目に変換し、次いでユーザがカタログ項目のターゲットコンピューティングリソースを決定する質問に回答できるようにすることによって、クラウドサービスカタログ710は、実際上、カタログ項目のターゲットコンピューティングリソースを提供するためにAMAZON WEB SERVICES(登録商標)以外のクラウドベースのプロバイダ、例えばMICROSOFT(登録商標)AZURE(登録商標)をユーザが選択できるようにする。
図8は、例示的実施形態による、コンピューティングシステム700のコンポーネントを使用するプロビジョニング手順800を示す。ステップ802で、管理対象ネットワーク300は、テンプレートファイル、例えばテンプレートファイル750を計算インスタンス322に送信することができる。論じたように、テンプレートファイルは、クラウドベースネットワーク600上のターゲットコンピューティングリソースに対応するエントリを含むことがある。送信は、例えば、計算インスタンス322によって管理対象ネットワーク300に提供されるグラフィカルユーザインターフェースを介して促進され得る。
ステップ804で、計算インスタンス322は、受信されたテンプレートファイルを解析して、テンプレートファイル内の構成可能パラメータを識別することができる。これは、例えば、クラウドサービスカタログ710のカスタマイズ可能なパーサによって行うことができる。解析されると、計算インスタンス322は、1つ又は複数の新たなカタログ項目、及び新たなカタログ項目に関係する質問を生成することができる。ステップ806で、計算インスタンス322は、例えばウェブページ又は一連のウェブページを介して、更新されたクラウドサービスカタログインターフェースを管理対象ネットワーク300に提供することができる。更新されたクラウドサービスカタログは、解析されたテンプレートファイルに対応する新たなカタログ項目を含むことがある。
ステップ808で、管理ネットワーク300からのユーザは、(i)クラウドサービスカタログからカタログ項目を選択し、(ii)カタログ項目に関係する質問に回答することによってスタックを設計することができる。これは、例えば、ウェブブラウザを介して行うことができ、プロビジョニングするクラウドカタログ項目をユーザが選択することを含むことがある。
ステップ810で、計算インスタンス322は、質問に対するユーザの回答に基づいて、カタログ項目に関するカタログ項目変数を決定することができる。次いで、計算インスタンス322は、カタログ項目変数に合致するようにIaCテンプレートファイルのエントリを設定することができる。ステップ812で、設定されたIaCテンプレートファイルを、IaCサーバ730に送信することができる。
ステップ814で、IaCテンプレートファイルを受信した後、IaCサーバ730は、計画フェーズ操作を実行して、クラウドベースネットワーク600に追加すべきターゲットコンピューティングリソースを識別することができる。上述したように、この操作は、IaCサーバ730によって作成された「計画」をもたらすことがある。次いで、IaCサーバ730は、「計画」に対して適用フェーズ操作を実行して、ターゲットコンピューティングリソースをクラウドベースネットワーク600にプロビジョニングすることができる。適用フェーズ中、IaCサーバは、新たにプロビジョニングされた各コンピューティングリソースに関係する構成の詳細を受信することができる。ステップ816で、IaCサーバ730は、これらの構成の詳細を計算インスタンス322に提供することができる。ステップ818で、新たにプロビジョニングされたコンピューティングリソースで発見を実行するために、構成の詳細を計算インスタンス322が使用することができる。
VII.例示的動作
図9は、例示的実施形態を示すフローチャートである。図9に示すプロセスは、コンピューティング装置100などのコンピュータ装置、及び/又はサーバクラスタ200などのコンピューティング装置のクラスタによって実行され得る。しかしながら、このプロセスは、他のタイプの装置又は装置サブシステムによって実行することもできる。例えば、このプロセスは、ラップトップ又はタブレット装置のようなポータブルコンピュータによって実行されてもよい。
図9の実施形態は、そこに示された特徴の任意の1つ又は複数を除去することによって簡略化され得る。更に、これらの実施形態は、前述の図のいずれかの又は本明細書に他の形で記載されている特徴、態様、及び/又は実装と組み合わせられ得る。
ブロック900は、コンピューティング機能を提供するコンピューティングリソース候補を定義する特定のカタログ項目へのアクセス権を有するクラウドサービスカタログソフトウェアアプリケーションによって、特定のカタログ項目の選択を取得することを含む。クラウドサービスカタログソフトウェアアプリケーションは、リモートネットワーク管理プラットフォームの計算インスタンス内に配設された1つ又は複数のサーバ装置で実行可能である。計算インスタンスは、管理対象ネットワークに専用であり、管理対象ネットワークは、1つ又は複数のリモートネットワークのコンピューティングリソースへのアクセス権を有する。特に、選択は、(i)コンピューティングリソース候補を1つ又は複数のリモートネットワークに関連付け、(ii)コンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数のセットを含む。
ブロック902は、クラウドサービスカタログソフトウェアアプリケーションによって、テンプレート表現を設定することを含む。テンプレート表現は、カタログ項目変数のセットに関するエントリを含む。
ブロック904は、クラウドサービスカタログソフトウェアアプリケーションによって、IaCサーバにテンプレート表現を送信することを含む。IaCサーバは、(i)テンプレート表現のエントリに基づいて、コンピューティング機能を実行することができる1つ又は複数のリモートネットワークのターゲットコンピューティングリソースを識別し、(ii)ターゲットコンピューティングリソースを1つ又は複数のリモートネットワークにプロビジョニングするように構成される。
ブロック906は、IaCサーバからターゲットコンピューティングリソースに関係する識別情報を受信することを含む。
いくつかの実施形態は、クラウドサービスカタログソフトウェアアプリケーションによって、第2の特定のカタログ項目の第2の選択を取得することを含む。クラウドサービスカタログソフトウェアアプリケーションは、第2のコンピューティング機能を提供する第2のコンピューティングリソース候補を定義する第2の特定のカタログ項目へのアクセス権を有する。特に、第2の選択は、(i)第2のコンピューティングリソース候補を1つ又は複数のリモートネットワークに関連付け、(ii)第2のコンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数の第2のセットを含む。いくつかの実施形態は、クラウドサービスカタログソフトウェアアプリケーションによって、第2のテンプレート表現を設定することも含むことがあり、第2のテンプレート表現は、カタログ項目変数の第2のセットに関するエントリを含む。いくつかの実施形態はまた、クラウドサービスカタログソフトウェアアプリケーションによって、IaCサーバに第2のテンプレート表現を送信することを含むことがあり、IaCサーバが、(i)第2のテンプレート表現のエントリに基づいて、第2のコンピューティング機能を実行することができる1つ又は複数のリモートネットワークの第2のターゲットコンピューティングリソースを識別し、(ii)第2のターゲットコンピューティングリソースを1つ又は複数のリモートネットワークにプロビジョニングするように構成される。いくつかの実施形態は、IaCサーバから、第2のターゲットコンピューティングリソースに関係する第2の識別情報を受信することを含むこともある。
いくつかの実施形態は、クライアント装置から、1つ又は複数のリモートネットワークでプロビジョニングすべきターゲットコンピューティングリソースを定義するエントリを含むテンプレート表現を受信することを含む。いくつかの実施形態は、クラウドサービスカタログソフトウェアアプリケーションによって、テンプレート表現を特定のカタログ項目に変換することを含むこともあり、変換は、(i)エントリに基づいてコンピューティングリソース候補を作成すること、(ii)エントリに関係する構成可能パラメータを識別すること、及び(iii)構成可能パラメータに基づいて、カタログ項目変数のセットを作成することを含む。
いくつかの実施形態では、ターゲットコンピューティングリソースを定義するエントリが、複雑なデータオブジェクトであり、エントリに関係する構成可能パラメータを識別することが、エントリの構成可能パラメータが位置している複雑なデータオブジェクト内のパスを指定することを含む。
いくつかの実施形態では、1つ又は複数のリモートネットワークは、リモートネットワーク管理プラットフォーム及び管理対象ネットワークとは物理的に異なるクラウドベースネットワークであり、リモートネットワーク管理プラットフォームと管理対象ネットワークとの両方が、ワイドエリアネットワークによって1つ又は複数のリモートネットワークにアクセスする。
いくつかの実施形態は、クラウドサービスカタログソフトウェアアプリケーションによって、ターゲットコンピューティングリソースに関係する識別情報から、ターゲットコンピューティングリソースに関連する構成項目の表現を発見することを含む。いくつかの実施形態は、計算インスタンス内に配設された永続ストレージに、構成項目の表現を記憶することを含むこともあり、永続ストレージが、管理対象ネットワークに関係する発見された構成項目の表現をテーブルに含む。
いくつかの実施形態では、特定のカタログ項目の選択を取得するステップが、(i)クラウドサービスカタログソフトウェアアプリケーションによって、複数のカタログ項目から特定のカタログ項目及び関連するカタログ項目変数を選択するためのデータ入力要素を備えた1つ又は複数のグラフィカルユーザインターフェースを生成することと、(ii)クラウドサービスカタログソフトウェアアプリケーションによって、管理対象ネットワークに関連付けられたクライアント装置に、1つ又は複数のグラフィカルユーザインターフェースを提供することと、(iii)クライアント装置からクラウドサービスカタログソフトウェアアプリケーションによって、データ入力要素を介して入力された特定のカタログ項目の選択を受信することとを含む。
いくつかの実施形態では、データ入力要素は、少なくともコンピューティングリソース候補に基づいて、データ入力要素に関して許可されるエントリを決定する妥当性チェックを備えて構成される。
いくつかの実施形態では、ターゲットコンピューティングリソースを1つ又は複数のリモートネットワークにプロビジョニングすることが、ターゲットコンピューティングリソースが1つ又は複数のリモートネットワークにまだプロビジョニングされていないことをIaCサーバが確認することを含む。
いくつかの実施形態では、IaCサーバは、管理対象ネットワーク内に配設される。
いくつかの実施形態では、システムは、コンピューティング機能を提供するコンピューティングリソース候補を定義する特定のカタログ項目へのアクセス権を有するクラウドサービスカタログソフトウェアアプリケーションによって、特定のカタログ項目の選択を取得するための手段を含むことがある。クラウドサービスカタログソフトウェアアプリケーションは、リモートネットワーク管理プラットフォームの計算インスタンス内に配設された1つ又は複数のサーバ装置で実行可能である。計算インスタンスは、管理対象ネットワークに専用であり、管理対象ネットワークは、1つ又は複数のリモートネットワークのコンピューティングリソースへのアクセス権を有する。特に、選択は、(i)コンピューティングリソース候補を1つ又は複数のリモートネットワークに関連付け、(ii)コンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数のセットを含む。システムはまた、クラウドサービスカタログソフトウェアアプリケーションによって、テンプレート表現を設定するための手段も含むことがある。テンプレート表現は、カタログ項目変数のセットに関するエントリを含む。システムはまた、クラウドサービスカタログソフトウェアアプリケーションによって、インフラストラクチャ・アズ・コード(IaC)サーバに、テンプレート表現を送信するための手段も含むことがある。IaCサーバは、(i)テンプレート表現のエントリに基づいて、コンピューティング機能を実行することができる1つ又は複数のリモートネットワークのターゲットコンピューティングリソースを識別し、(ii)ターゲットコンピューティングリソースを1つ又は複数のリモートネットワークにプロビジョニングするように構成される。システムはまた、IaCサーバから、ターゲットコンピューティングリソースに関係する識別情報を受信するための手段を含むこともある。
VIII.結語
本開示は、本出願に記載された特定の実施形態の観点から限定されるものではなく、種々の態様の例示として意図されている。多くの変更及び変形は、当業者に明らかであるように、その範囲から逸脱することなく行うことができる。本明細書に説明されているものに加えて、開示の範囲内で機能的に等価な方法及び装置は、上記の説明から当業者には明らかであろう。そのような変更及び変形は、添付の特許請求の範囲内に含まれることを意図されている。
上記の詳細な説明は、添付の図面を参照して、開示されているシステム、装置、及び方法の種々の特徴及び動作について説明したものである。本明細書に説明された及び図面における例示的実施形態は、限定するように意図されていない。本明細書で示される主題の範囲から逸脱することなく、他の実施形態が使用されてよく、他の変更がなされてよい。本開示の態様は、本明細書に一般的に記載され図示されるように、様々な異なる形態で配置、置換、結合、分離、設計され得ることは容易に理解されるであろう。
図面における及び本明細書で説明されているメッセージフロー図、シナリオ、及びフローチャートのいずれか又は全てに関して、各ステップ、ブロック、及び/又は通信は、例示的実施形態に従って情報の処理及び/又は情報の送信を表すことができる。代替実施形態は、これらの例示的実施形態の範囲内に含まれる。これらの代替実施形態において、例えば、ステップ、ブロック、送信、通信、要求、応答、及び/又はメッセージとして説明される動作は、関連する機能に応じて、実質的に同時又は逆の順序を含めて、図示又は説明されるものと異なる順序で実行され得る。更に、本明細書で説明されたメッセージフロー図、シナリオ、及びフローチャートのいずれかと共に、より多い又はより少ないブロック及び/又は動作が使用されてよく、これらのメッセージフロー図、シナリオ、及びフローチャートは、部分的又は全体で相互に組み合わされ得る。
情報の処理を表すステップ又はブロックは、本明細書に記載の方法又は技術の特定の論理機能を実行するように構成できる回路に対応することができる。代替的又は追加的に、情報の処理を表すステップ又はブロックは、モジュール、セグメント、又はプログラムコードの一部(関連データを含む)に対応することができる。プログラムコードは、方法又は技術における特定の論理操作又はアクションを実装するためにプロセッサによって実行可能である1つ又は複数の命令を含むことができる。プログラムコード及び/又は関連データは、RAM、ディスクドライブ、ソリッドステートドライブ、又は他の記憶媒体を含む記憶装置など、任意のタイプのコンピュータ可読媒体に記憶され得る。
また、コンピュータ可読媒体には、レジスタメモリ及びプロセッサキャッシュのようにデータを短期間記憶するコンピュータ可読媒体のような、非一時的コンピュータ可読媒体も含まれ得る。コンピュータ可読媒体は更に、プログラムコード及び/又はデータをより長期間記憶する非一時的コンピュータ可読媒体が含まれ得る。したがって、コンピュータ可読媒体には、例えば、ROM、光又は磁気ディスク、ソリッドステートドライブ、コンパクトディスク読取り専用メモリ(CD-ROM)のような、二次又は永続的な長期記憶装置が含まれ得る。コンピュータ可読媒体はまた、他の任意の揮発性又は不揮発性の記憶システムとすることもできる。コンピュータ可読媒体は、例えば、コンピュータ可読記憶媒体又は有形記憶装置であるとみなされ得る。
更に、1つ又は複数の情報伝送を表すステップ又はブロックは、同じ物理装置内のソフトウェア及び/又はハードウェアモジュール間の情報伝送に対応することができる。しかしながら、他の情報伝送は、異なる物理装置におけるソフトウェアモジュール及び/又はハードウェアモジュール間にあり得る。
図面に示された特定の配置は、限定するものとみなされるべきではない。他の実施形態は、所与の図に示される各要素についてより多い又はより少ない要素を含み得ると理解されるべきである。更に、例示された要素のいくつかは、結合又は省略され得る。更に、例示的実施形態は、図面に示されていない要素を含むことができる。
様々な態様及び実施形態が本明細書に開示されているが、他の態様及び実施形態は当業者には明らかであろう。本明細書に開示された様々な態様及び実施形態は例示を目的としており、限定するものではなく、真の範囲は添付の特許請求の範囲によって示される。

Claims (20)

  1. リモートネットワーク管理プラットフォームの計算インスタンスであって、前記計算インスタンスが管理対象ネットワークに専用であり、前記管理対象ネットワークが、1つ又は複数のリモートネットワークのコンピューティングリソースへのアクセス権を有する、計算インスタンスと、
    特定のカタログ項目へのアクセス権を有するクラウドサービスカタログソフトウェアアプリケーションであって、前記特定のカタログ項目が、コンピューティング機能を提供するコンピューティングリソース候補を定義する、クラウドサービスカタログソフトウェアアプリケーションと、
    前記計算インスタンス内に配設された1つ又は複数のサーバ装置と、を含むシステムであって、前記1つ又は複数のサーバ装置が、
    前記特定のカタログ項目の選択を取得することであって、前記選択が、(i)前記コンピューティングリソース候補を前記1つ又は複数のリモートネットワークに関連付け、(ii)前記コンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数のセットを含む、取得することと、
    テンプレート表現を設定することであって、前記テンプレート表現が、カタログ項目変数の前記セットに関するエントリを含む、設定することと、
    インフラストラクチャ・アズ・コード(IaC)サーバに前記テンプレート表現を送信することであって、前記IaCサーバが、(i)前記テンプレート表現の前記エントリに基づいて、前記コンピューティング機能を実行することができる前記1つ又は複数のリモートネットワークのターゲットコンピューティングリソースを識別し、(ii)前記ターゲットコンピューティングリソースを前記1つ又は複数のリモートネットワークにプロビジョニングするように構成される、送信することと、
    前記ターゲットコンピューティングリソースに関係する識別情報を前記IaCサーバから受信することと
    を含む動作を前記クラウドサービスカタログソフトウェアアプリケーションに実行させるように構成される、システム。
  2. 前記クラウドサービスカタログソフトウェアアプリケーションが、第2の特定のカタログ項目へのアクセス権を有し、前記第2の特定のカタログ項目が、第2のコンピューティング機能を提供する第2のコンピューティングリソース候補を定義し、前記1つ又は複数のサーバ装置が、
    前記第2の特定のカタログ項目の第2の選択を取得することであって、前記第2の選択が、(i)前記第2のコンピューティングリソース候補を前記1つ又は複数のリモートネットワークに関連付け、(ii)前記第2のコンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数の第2のセットを含む、取得することと、
    第2のテンプレート表現を設定することであって、前記第2のテンプレート表現が、カタログ項目変数の前記第2のセットに関するエントリを含む、設定することと、
    前記IaCサーバに前記第2のテンプレート表現を送信することであって、前記IaCサーバが、(i)前記第2のテンプレート表現の前記エントリに基づいて、前記第2のコンピューティング機能を実行することができる前記1つ又は複数のリモートネットワークの第2のターゲットコンピューティングリソースを識別し、(ii)前記第2のターゲットコンピューティングリソースを前記1つ又は複数のリモートネットワークにプロビジョニングするように構成される、送信することと、
    前記IaCサーバから、前記第2のターゲットコンピューティングリソースに関係する第2の識別情報を受信することと
    を含む更なる動作を前記クラウドサービスカタログソフトウェアアプリケーションに実行させるように構成される、請求項1に記載のシステム。
  3. 前記1つ又は複数のサーバ装置が、
    クライアント装置から、前記1つ又は複数のリモートネットワークでプロビジョニングすべきターゲットコンピューティングリソースを定義するエントリを含むテンプレート表現を受信することと、
    前記テンプレート表現を前記特定のカタログ項目に変換することであって、前記変換が、(i)前記エントリに基づいて前記コンピューティングリソース候補を作成すること、(ii)前記エントリに関係する構成可能パラメータを識別すること、及び(iii)前記構成可能パラメータに基づいて、カタログ項目変数の前記セットを作成することを含む、変換することと
    を含む更なる動作を前記クラウドサービスカタログソフトウェアアプリケーションに実行させるように構成される、請求項1に記載のシステム。
  4. ターゲットコンピューティングリソースを定義する前記エントリが、複雑なデータオブジェクトであり、前記エントリに関係する構成可能パラメータを識別することが、前記エントリの前記構成可能パラメータが位置している前記複雑なデータオブジェクト内のパスを指定することを含む、請求項3に記載のシステム。
  5. 前記1つ又は複数のリモートネットワークが、前記リモートネットワーク管理プラットフォーム及び前記管理対象ネットワークとは物理的に異なるクラウドベースネットワークであり、前記リモートネットワーク管理プラットフォームと前記管理対象ネットワークとの両方が、ワイドエリアネットワークによって前記1つ又は複数のリモートネットワークにアクセスする、請求項1に記載のシステム。
  6. 前記計算インスタンス内に配設された永続ストレージを更に含み、前記永続ストレージが、前記管理対象ネットワークに関係する発見された構成項目の表現をテーブルに含み、前記1つ又は複数のサーバ装置が、
    前記ターゲットコンピューティングリソースに関係する前記識別情報を使用して、前記ターゲットコンピューティングリソースに関連する構成項目の表現を発見することと、
    前記永続ストレージに前記構成項目の表現を記憶することと
    を含む更なる動作を前記クラウドサービスカタログソフトウェアアプリケーションに実行させるように構成される
    請求項1に記載のシステム。
  7. 前記特定のカタログ項目の前記選択を取得することが、
    複数のカタログ項目から前記特定のカタログ項目及び関連するカタログ項目変数を選択するためのデータ入力要素を備えた1つ又は複数のグラフィカルユーザインターフェースを生成することと、
    前記管理対象ネットワークに関連付けられたクライアント装置に、前記1つ又は複数のグラフィカルユーザインターフェースを提供することと、
    前記クライアント装置から、前記データ入力要素を介して入力された、前記特定のカタログ項目の前記選択を受信することと
    を含む、請求項1に記載のシステム。
  8. 前記データ入力要素が、少なくとも前記コンピューティングリソース候補に基づいて、前記データ入力要素に関して許可される前記エントリを決定する妥当性チェックを備えて構成される、請求項7に記載のシステム。
  9. 前記ターゲットコンピューティングリソースを前記1つ又は複数のリモートネットワークにプロビジョニングすることが、前記ターゲットコンピューティングリソースが前記1つ又は複数のリモートネットワークにまだプロビジョニングされていないことを前記IaCサーバが確認することを含む、請求項1に記載のシステム。
  10. 前記IaCサーバが、前記管理対象ネットワーク内に配設される、請求項1に記載のシステム。
  11. コンピューティング機能を提供するコンピューティングリソース候補を定義する特定のカタログ項目へのアクセス権を有するクラウドサービスカタログソフトウェアアプリケーションによって、前記特定のカタログ項目の選択を取得するステップであって、前記クラウドサービスカタログソフトウェアアプリケーションが、リモートネットワーク管理プラットフォームの計算インスタンス内に配設された1つ又は複数のサーバ装置で実行可能であり、前記計算インスタンスが、管理対象ネットワークに専用であり、前記管理対象ネットワークが、1つ又は複数のリモートネットワークのコンピューティングリソースへのアクセス権を有し、前記選択が、(i)前記コンピューティングリソース候補を前記1つ又は複数のリモートネットワークに関連付け、(ii)前記コンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数のセットを含む、ステップと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、テンプレート表現を設定するステップであって、前記テンプレート表現が、カタログ項目変数の前記セットに関するエントリを含む、ステップと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、インフラストラクチャ・アズ・コード(IaC)サーバに前記テンプレート表現を送信するステップであって、前記IaCサーバが、(i)前記テンプレート表現の前記エントリに基づいて、前記コンピューティング機能を実行することができる前記1つ又は複数のリモートネットワークのターゲットコンピューティングリソースを識別し、(ii)前記ターゲットコンピューティングリソースを前記1つ又は複数のリモートネットワークにプロビジョニングするように構成された、ステップと、
    前記IaCサーバから、前記ターゲットコンピューティングリソースに関連する識別情報を受信するステップと
    を含むコンピュータ実装方法。
  12. 前記クラウドサービスカタログソフトウェアアプリケーションによって、第2の特定のカタログ項目の第2の選択を取得するステップであって、前記クラウドサービスカタログソフトウェアアプリケーションが、前記第2の特定のカタログ項目へのアクセス権を有し、前記第2の特定のカタログ項目が、第2のコンピューティング機能を提供する第2のコンピューティングリソース候補を定義し、前記第2の選択が、(i)前記第2のコンピューティングリソース候補を前記1つ又は複数のリモートネットワークに関連付け、(ii)前記第2のコンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数の第2のセットを含む、ステップと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、第2のテンプレート表現を設定するステップであって、前記第2のテンプレート表現が、カタログ項目変数の前記第2のセットに関するエントリを含む、ステップと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、前記IaCサーバに前記第2のテンプレート表現を送信するステップであって、前記IaCサーバが、(i)前記第2のテンプレート表現の前記エントリに基づいて、前記第2のコンピューティング機能を実行することができる前記1つ又は複数のリモートネットワークの第2のターゲットコンピューティングリソースを識別し、(ii)前記第2のターゲットコンピューティングリソースを前記1つ又は複数のリモートネットワークにプロビジョニングするように構成された、ステップと、
    前記IaCサーバから、前記第2のターゲットコンピューティングリソースに関係する第2の識別情報を受信するステップと
    を更に含む、請求項11に記載のコンピュータ実装方法。
  13. クライアント装置から、前記1つ又は複数のリモートネットワークでプロビジョニングすべきターゲットコンピューティングリソースを定義するエントリを含むテンプレート表現を受信するステップと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって前記テンプレート表現を前記特定のカタログ項目に変換するステップであって、前記変換が、(i)前記エントリに基づいて前記コンピューティングリソース候補を作成すること、(ii)前記エントリに関係する構成可能パラメータを識別すること、及び(iii)前記構成可能パラメータに基づいて、カタログ項目変数の前記セットを作成することを含む、ステップと、
    を更に含む、請求項11に記載のコンピュータ実装方法。
  14. ターゲットコンピューティングリソースを定義する前記エントリが、複雑なデータオブジェクトであり、前記エントリに関係する構成可能パラメータを識別することが、前記エントリの前記構成可能パラメータが位置している前記複雑なデータオブジェクト内のパスを指定することを含む、請求項13に記載のコンピュータ実装方法。
  15. 前記1つ又は複数のリモートネットワークが、前記リモートネットワーク管理プラットフォーム及び前記管理対象ネットワークとは物理的に異なるクラウドベースネットワークであり、前記リモートネットワーク管理プラットフォームと前記管理対象ネットワークとの両方が、ワイドエリアネットワークによって前記1つ又は複数のリモートネットワークにアクセスする、請求項11に記載のコンピュータ実装方法。
  16. 前記クラウドサービスカタログソフトウェアアプリケーションによって、前記ターゲットコンピューティングリソースに関係する前記識別情報から、前記ターゲットコンピューティングリソースに関連する構成項目の表現を発見するステップと、
    前記計算インスタンス内に配設された永続ストレージに、前記構成項目の表現を記憶するステップであって、前記永続ストレージが、前記管理対象ネットワークに関係する発見された構成項目の表現をテーブルに含む、ステップと
    を更に含む、請求項11に記載のコンピュータ実装方法。
  17. 前記特定のカタログ項目の前記選択を取得するステップが、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、複数のカタログ項目から前記特定のカタログ項目及び関連するカタログ項目変数を選択するためのデータ入力要素を備えた1つ又は複数のグラフィカルユーザインターフェースを生成することと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、前記管理対象ネットワークに関連付けられたクライアント装置に、前記1つ又は複数のグラフィカルユーザインターフェースを提供することと、
    前記クライアント装置から前記クラウドサービスカタログソフトウェアアプリケーションによって、前記データ入力要素を介して入力された、前記特定のカタログ項目の前記選択を受信することと
    を含む、請求項11に記載のコンピュータ実装方法。
  18. 前記データ入力要素が、少なくとも前記コンピューティングリソース候補に基づいて、前記データ入力要素に関して許可される前記エントリを決定する妥当性チェックを備えて構成される、請求項17に記載のコンピュータ実装方法。
  19. 前記ターゲットコンピューティングリソースを前記1つ又は複数のリモートネットワークにプロビジョニングすることが、前記ターゲットコンピューティングリソースが前記1つ又は複数のリモートネットワークにまだプロビジョニングされていないことを前記IaCサーバが確認することを含む、請求項11に記載のコンピュータ実装方法。
  20. リモートネットワーク管理プラットフォームの計算インスタンス内に配設された1つ又は複数のサーバ装置によって実行されるとき、
    コンピューティング機能を提供するコンピューティングリソース候補を定義する特定のカタログ項目へのアクセス権を有するクラウドサービスカタログソフトウェアアプリケーションによって、前記特定のカタログ項目の選択を取得することであって、前記クラウドサービスカタログソフトウェアアプリケーションが、前記1つ又は複数のサーバ装置で実行可能であり、前記計算インスタンスが、管理対象ネットワークに専用であり、前記管理対象ネットワークが、1つ又は複数のリモートネットワークのコンピューティングリソースへのアクセス権を有し、前記選択が、(i)前記コンピューティングリソース候補を前記1つ又は複数のリモートネットワークに関連付け、(ii)前記コンピューティングリソース候補に関する構成の詳細を決定する、カタログ項目変数のセットを含む、取得することと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、テンプレート表現を設定することであって、前記テンプレート表現が、カタログ項目変数の前記セットに関するエントリを含む、設定することと、
    前記クラウドサービスカタログソフトウェアアプリケーションによって、インフラストラクチャ・アズ・コード(IaC)サーバに前記テンプレート表現を送信することであって、前記IaCサーバが、(i)前記テンプレート表現の前記エントリに基づいて、前記コンピューティング機能を実行することができる前記1つ又は複数のリモートネットワークのターゲットコンピューティングリソースを識別し、(ii)前記ターゲットコンピューティングリソースを前記1つ又は複数のリモートネットワークにプロビジョニングするように構成される、送信することと、
    前記IaCサーバから、前記ターゲットコンピューティングリソースに関係する識別情報を受信することと
    を含む動作を前記1つ又は複数のサーバ装置に実行させるプログラム命令を記憶した非一時的なコンピュータ可読媒体を含む製造品。
JP2021559717A 2019-04-11 2020-04-08 クラウドベースサービスのプログラムオーケストレーション Active JP7217816B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/381,711 US11129159B2 (en) 2019-04-11 2019-04-11 Programmatic orchestration of cloud-based services
US16/381,711 2019-04-11
PCT/US2020/027245 WO2020210342A1 (en) 2019-04-11 2020-04-08 Programmatic orchestration of cloud-based services

Publications (2)

Publication Number Publication Date
JP2022527390A true JP2022527390A (ja) 2022-06-01
JP7217816B2 JP7217816B2 (ja) 2023-02-03

Family

ID=71094786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021559717A Active JP7217816B2 (ja) 2019-04-11 2020-04-08 クラウドベースサービスのプログラムオーケストレーション

Country Status (5)

Country Link
US (1) US11129159B2 (ja)
JP (1) JP7217816B2 (ja)
KR (1) KR102625121B1 (ja)
AU (1) AU2020271056A1 (ja)
WO (1) WO2020210342A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7447186B2 (ja) 2022-06-28 2024-03-11 株式会社日立製作所 計算機システム及び仮想化基盤の構築制御方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11249795B2 (en) * 2019-04-26 2022-02-15 Open Text Sa Ulc Systems and methods for data collection using workflow forms
US20210203549A1 (en) * 2019-12-30 2021-07-01 Oracle International Corporation Autonomous terraforming on cloud infrastructures
US11132226B2 (en) * 2020-01-03 2021-09-28 International Business Machines Corporation Parallel resource provisioning
US10999162B1 (en) * 2020-05-15 2021-05-04 HashiCorp Ticket-based provisioning of cloud infrastructure for a SaaS provider
US11212171B1 (en) * 2020-06-30 2021-12-28 Oracle International Corporation Customer self-service cloud application provisioning
US11838374B2 (en) * 2021-02-12 2023-12-05 Servicenow, Inc. Remote network management infrastructure for cloud-based deployments
KR102498301B1 (ko) * 2021-02-19 2023-02-10 박헌영 어플리케이션 개발을 위한 클라우드 아키텍쳐 제안을 수행하는 서버 및 이의 서비스/솔루션 구현 방법
CN113076729A (zh) * 2021-04-15 2021-07-06 北京京东振世信息技术有限公司 用于报表导入的方法及系统、可读存储介质及电子设备
CN113645102B (zh) * 2021-10-14 2022-02-08 腾讯科技(深圳)有限公司 路由收敛时间的确定方法及装置
CN114301775B (zh) * 2021-12-31 2023-07-28 中国联合网络通信集团有限公司 一种存量业务的纳管方法、装置及计算机可读存储介质
EP4239479A1 (en) * 2022-03-03 2023-09-06 INTEL Corporation Orchestration of computing services and resources for next generation systems
US20230297366A1 (en) * 2022-03-18 2023-09-21 International Business Machines Corporation Two-way synchronization of infrastructure-as-code templates and instances

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150058459A1 (en) * 2013-08-21 2015-02-26 International Business Machines Corporation Generating a service-catalog entry from discovered attributes of provisioned virtual machines
US20160019636A1 (en) * 2013-03-15 2016-01-21 Gravitant, Inc Cloud service brokerage service store
US20180069804A1 (en) * 2016-09-02 2018-03-08 Pivotal Software, Inc. On-demand resource provisioning
US10225160B1 (en) * 2018-02-27 2019-03-05 Servicenow, Inc. Defining and enforcing operational associations between configuration item classes in managed networks

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978594A (en) 1994-09-30 1999-11-02 Bmc Software, Inc. System for managing computer resources across a distributed computing environment by first reading discovery information about how to determine system resources presence
US6321229B1 (en) 1999-02-26 2001-11-20 Hewlett-Packard Company Method and apparatus for using an information model to organize an information repository into a hierarchy of information
US6816898B1 (en) 2000-08-16 2004-11-09 Proactivenet, Inc. Interfacing external metrics into a performance management system
US6895586B1 (en) 2000-08-30 2005-05-17 Bmc Software Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
US7292300B2 (en) 2000-10-31 2007-11-06 Sharp Kabushiki Kaisha Liquid crystal display with radially-inclined liquid crystal in unit solid portions arranged in a single direction
US7027411B1 (en) 2000-10-31 2006-04-11 Hewlett-Packard Development Company, L.P. Method and system for identifying and processing changes to a network topology
US6996576B2 (en) 2000-11-22 2006-02-07 Bmc Software, Inc. Database management system and method which automatically schedules and performs actions and monitors results
US7089245B1 (en) 2001-08-31 2006-08-08 Bmc Software, Inc. Service desk data transfer interface
US7877783B1 (en) 2001-11-15 2011-01-25 Bmc Software, Inc. System and method for secure communications with a remote software program
US6799189B2 (en) 2001-11-15 2004-09-28 Bmc Software, Inc. System and method for creating a series of online snapshots for recovery purposes
US7617073B2 (en) 2002-03-01 2009-11-10 Bmc Software, Inc. System and method for assessing and indicating the health of components
US7020706B2 (en) 2002-06-17 2006-03-28 Bmc Software, Inc. Method and system for automatically updating multiple servers
US7194728B1 (en) 2002-11-18 2007-03-20 Bmc Software, Inc. System and method for packaging updates
US7945860B2 (en) 2003-05-14 2011-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for managing conversations between information technology resources
US7925981B2 (en) 2003-05-14 2011-04-12 Hewlett-Packard Development Company, L.P. Systems and methods for managing web services via a framework of interfaces
US7133884B1 (en) 2003-11-26 2006-11-07 Bmc Software, Inc. Unobtrusive point-in-time consistent copies
US7392300B2 (en) 2004-01-08 2008-06-24 Hewlett-Packard Development Company, L.P. Method and system for modelling a communications network
US7933927B2 (en) 2004-11-17 2011-04-26 Bmc Software, Inc. Method and apparatus for building index of source data
US8683032B2 (en) 2004-12-06 2014-03-25 Bmc Software, Inc. Generic discovery for computer networks
US9137115B2 (en) 2004-12-06 2015-09-15 Bmc Software, Inc. System and method for resource reconciliation in an enterprise management system
US7941506B2 (en) 2004-12-06 2011-05-10 Bmc Software, Inc. User interface for network discovery operations
EP1834294A2 (en) 2004-12-21 2007-09-19 BMC Software, Inc. System and method for business service management and building business service model
US7716353B2 (en) 2005-12-21 2010-05-11 Bmc Software, Inc. Web services availability cache
US8555287B2 (en) 2006-08-31 2013-10-08 Bmc Software, Inc. Automated capacity provisioning method using historical performance data
US7685167B2 (en) 2007-01-30 2010-03-23 Bmc Software, Inc. Configuration management database reference instance
US8380749B2 (en) 2009-01-14 2013-02-19 Bmc Software, Inc. MDR federation facility for CMDBf
US8554750B2 (en) 2009-01-15 2013-10-08 Bmc Software, Inc. Normalization engine to manage configuration management database integrity
US8346752B2 (en) 2009-02-03 2013-01-01 Bmc Software, Inc. Software title discovery
US8646093B2 (en) 2009-03-31 2014-02-04 Bmc Software, Inc. Method and system for configuration management database software license compliance
US9122536B2 (en) 2009-12-30 2015-09-01 Bmc Software, Inc. Automating application provisioning for heterogeneous datacenter environments
US9805322B2 (en) 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
US8832652B2 (en) 2010-03-26 2014-09-09 Bmc Software, Inc. Method for customizing software applications
US8712979B2 (en) 2010-03-26 2014-04-29 Bmc Software, Inc. Statistical identification of instances during reconciliation process
US9467344B2 (en) 2010-03-26 2016-10-11 Bmc Software, Inc. Mechanism to display graphical IT infrastructure using configurable smart navigation
US8380645B2 (en) 2010-05-27 2013-02-19 Bmc Software, Inc. Method and system to enable inferencing for natural language queries of configuration management databases
US8402127B2 (en) 2010-06-28 2013-03-19 Bmc Software, Inc. System and method for offering virtual private clouds within a public cloud environment
US8745040B2 (en) 2011-06-27 2014-06-03 Bmc Software, Inc. Service context
US8818994B2 (en) 2011-06-27 2014-08-26 Bmc Software, Inc. Mobile service context
US8907988B2 (en) 2011-06-30 2014-12-09 Bmc Software, Inc. Systems and methods for displaying and viewing data models
US9015188B2 (en) 2011-09-28 2015-04-21 Bmc Software, Inc. Methods and apparatus for monitoring execution of a database query program
US8812539B2 (en) 2012-03-31 2014-08-19 Bmc Software, Inc. Unique attribute constraints for versioned database objects
US9122552B2 (en) 2012-06-29 2015-09-01 Bmc Software, Inc. Hybrid cloud infrastructures
US20140111520A1 (en) 2012-10-23 2014-04-24 Bmc Software, Inc. User-centric annotated location aware asset mapping
JP6116871B2 (ja) * 2012-11-22 2017-04-19 三菱日立パワーシステムズ株式会社 発電システム及び発電システムの運転方法
US9645833B2 (en) 2012-12-31 2017-05-09 Bmc Software, Inc. Additive independent object modification
US9317327B2 (en) 2013-02-28 2016-04-19 Bmc Software, Inc. Computing infrastructure planning
US9158799B2 (en) 2013-03-14 2015-10-13 Bmc Software, Inc. Storing and retrieving context sensitive data in a management system
US9098322B2 (en) 2013-03-15 2015-08-04 Bmc Software, Inc. Managing a server template
US9613070B2 (en) 2013-03-15 2017-04-04 Bmc Software, Inc. Multi-entity normalization
US9654473B2 (en) 2013-06-28 2017-05-16 Bmc Software, Inc. Authentication proxy agent
US20150229628A1 (en) * 2014-02-10 2015-08-13 Qamal Kosim-Satyaputra System, method and architecture for providing integrated applications
KR20160019636A (ko) * 2014-08-12 2016-02-22 강홍구 여성 질 분비물 완화 및 성적쾌감증진용 조성물
US9659051B2 (en) 2014-12-22 2017-05-23 Bladelogic Inc. Enforcing referential integrity for object data documents
US9535737B2 (en) 2015-01-30 2017-01-03 Bladelogic, Inc. Dynamic virtual port provisioning
US10291726B2 (en) 2015-05-12 2019-05-14 Equinix, Inc. Network field unit for a cloud-based services exchange
US10333784B2 (en) 2015-06-30 2019-06-25 International Business Machines Corporation Cloud system order and configuration using customized templates
US10070094B2 (en) * 2015-10-14 2018-09-04 Qualcomm Incorporated Screen related adaptation of higher order ambisonic (HOA) content
US10949903B2 (en) 2017-05-05 2021-03-16 Servicenow, Inc. System, computer-readable medium, and method for blueprint-based cloud management
US11050837B2 (en) * 2019-01-31 2021-06-29 Hewlett Packard Enterprise Development Lp Providing cloud services associated with unused hardware resources of private cloud providers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160019636A1 (en) * 2013-03-15 2016-01-21 Gravitant, Inc Cloud service brokerage service store
US20150058459A1 (en) * 2013-08-21 2015-02-26 International Business Machines Corporation Generating a service-catalog entry from discovered attributes of provisioned virtual machines
US20180069804A1 (en) * 2016-09-02 2018-03-08 Pivotal Software, Inc. On-demand resource provisioning
US10225160B1 (en) * 2018-02-27 2019-03-05 Servicenow, Inc. Defining and enforcing operational associations between configuration item classes in managed networks
JP2019149162A (ja) * 2018-02-27 2019-09-05 サービスナウ, インコーポレイテッドServiceNow, Inc. 管理対象ネットワークにおける構成項目クラス間の運用上の関連付けの定義及び実行

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7447186B2 (ja) 2022-06-28 2024-03-11 株式会社日立製作所 計算機システム及び仮想化基盤の構築制御方法

Also Published As

Publication number Publication date
US20200329464A1 (en) 2020-10-15
JP7217816B2 (ja) 2023-02-03
US11129159B2 (en) 2021-09-21
AU2020271056A1 (en) 2021-11-04
KR102625121B1 (ko) 2024-01-12
WO2020210342A1 (en) 2020-10-15
KR20210151196A (ko) 2021-12-13

Similar Documents

Publication Publication Date Title
JP7217816B2 (ja) クラウドベースサービスのプログラムオーケストレーション
US10915518B2 (en) Partial discovery of cloud-based resources
EP3899752B1 (en) Discovery of database and related services
US10320611B2 (en) Guided configuration item class creation in a remote network management platform
US20200204443A1 (en) Discovery of software bus architectures
US10673715B2 (en) Splitting network discovery payloads based on degree of relationships between nodes
US10951483B2 (en) Agent-assisted discovery of network devices and services
KR20220057631A (ko) 서비스형 소프트웨어 통합들의 코드리스 사양
CA3049219C (en) External data management in a remote network management platform
US11252047B2 (en) Automatic determination of code customizations
JP2019149162A (ja) 管理対象ネットワークにおける構成項目クラス間の運用上の関連付けの定義及び実行
US11272007B2 (en) Unified agent framework including push-based discovery and real-time diagnostics features
CA2990389C (en) Guided configuration item class creation in a remote network management platform
KR20240028499A (ko) 단일 유형 컴퓨팅 시스템에서의 다중 유형 사용자들에 대한 지원
US11748115B2 (en) Application and related object schematic viewer for software application change tracking and management
US11283681B2 (en) Enhancing discovery patterns with shell command exit status
US20230004409A1 (en) User Interface with Configurable Specification of Related Data Sources
US11582317B1 (en) Payload recording and comparison techniques for discovery

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230124

R150 Certificate of patent or registration of utility model

Ref document number: 7217816

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150