以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)である。
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
また、以下の説明では、「xxx表」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxx表」を「xxx情報」と言うことができる。また、以下の説明において、各表の構成は一例であり、一つの表は、二つ以上の表に分割されてもよいし、二つ以上の表の全部又は一部が一つの表であってもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置及び/又はインターフェース装置等を用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「kkk部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「計算機システム」は、一つ以上の物理的な計算機を含んだシステムである。物理的な計算機は、汎用計算機でも専用計算機でもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通部分を使用し、同種の要素を区別する場合は、参照符号を使用することがある。例えば、サービス実行基盤を区別しない場合には、「サービス実行基盤700」と言い、サービス実行基盤を区別する場合には、「サービス実行基盤700A」、「サービス実行基盤700B」のように言うことがある。
また、以下の説明において、「商材サービス」は、アプリケーションサービスの一例である。以下、商材サービスを、「CM-SV」と表記し、メトリクス収集サービスを、「Met.-SV」と表記する。
以下、本発明の一実施形態について添付図面を用いて説明する。
<概要の説明>
図25は、一実施形態の概要を示す図である。
主たるサービス実行基盤700A及び当該サービス実行基盤700Aにデプロイメント命令を出すサービスデプロイメントマネージャ600Aが存在するサイト(又は、テンプレートマネージャ300が存在するサイト)であるローカルサイト80Lがある。ローカルサイト80L以外のいずれかのサイトであるリモートサイト80Rがある。サイトは一つでもよいが、本実施形態では、このように少なくとも二つのサイトがある。テンプレートマネージャ300は、例えば、複数のシステムテンプレートを管理するテンプレート管理部51と、CM-SV(及びそれのプラン)に関連付けられているMet.-SVを特定する収集特定部52と、デプロイメント命令を発行する命令発行部53と、デプロイメント後のリソース情報管理を行うリソース管理部54とを有する。なお、各システムテンプレートは、サービスシステムのテンプレートである。サービスシステムは、一つ又は複数のCM-SVを含んだシステム(例えば、一つ又は複数のCM-SVの組合せ)である。テンプレートマネージャ300が、後述のサービスマネージャ500としての機能が有してもよく、その場合、テンプレートマネージャ300の外にサービスマネージャ500は無くてもよい。
ローカルサイト80Lに、テンプレートマネージャ300、サービスデプロイメントマネージャ600A、サービス実行基盤700A、ログ集積基盤900、及び、サービスマネージャ500が存在する。リモートサイト80Rに、サービスデプロイメントマネージャ600B、サービス実行基盤700Bが存在する。サイト80に存在する上述の各要素は、計算機システムでもよいし、計算機システムにより実現される機能でもよい。ユーザ端末100が、テンプレートマネージャ300にアクセスできる。なお、ユーザ端末100は、ユーザ(例えば開発者)が使用する情報処理端末(典型的には、パーソナルコンピュータのような計算機)である。ユーザ端末100は、例えば、ウェブブラウザ(ブラウザの一例)を実行する。また、ログ集積基盤900はサービス実行基盤700に含まれてもよい(例えば、リモートサイト80Rでは、ログ集積基盤900はサービス実行基盤700Bに含まれている)。
少なくとも一つのサービスデプロイメントマネージャ600が、例えばサイト80毎に存在する。サービスデプロイメントマネージャ600は、CM-SV701及びそれのプロキシ702を、当該マネージャ600に対応したサイト80(具体的には、当該サイト80のサービス実行基盤700)にデプロイする。サービスデプロイメントマネージャは、収集支援部77を有する。収集支援部77は、複数(又は一つ)のサイト80L及び80Rのうちデプロイメント対象のCM-SV701がデプロイされるサイト80に当該CM-SV701についてデプロイされる一つ又は複数のMet.-SV65の各々に当該Met.-SV65のアクセス先情報(アクセス先を示す情報)を設定する。
サービス実行基盤700は、当該基盤700にデプロイされたCM-SV701やそれのプロキシ702であるインスタンスやそれのプロキシインスタンスを実行する。
ログ集積基盤900は、ログを収集する。例えば、ログ集積基盤900は、ローカルサイト80Lのサービス実行基盤700AにデプロイされたCM-SV701Aの稼働に伴い出力されたメトリクスを含むログを蓄積する。また、例えば、ログ集積基盤900は、リモートサイト80Rのサービス実行基盤700BにデプロイされたCM-SV701Bの稼働に伴いサービス実行基盤700Bに出力されたログを、サービス実行基盤700Bから取得し蓄積してもよい。サービス実行基盤700AにデプロイされたMet.-SV65は、当該Met.-SV65に設定されているアクセス先情報が示すアクセス先から、メトリクスを収集する。例えば、アクセス先情報が、ログ集積基盤900を示す情報を含んでいれば、Met.-SV65は、CM-SV701A(及び701B)に関するメトリクスを含んだログをログ集積基盤900から取得し、当該取得されたログからCM-SV701A(及び701B)に関するメトリクスを収集する。また、例えば、アクセス先情報が、CM-SV701Bを示す情報を含んでいれば、Met.-SV65は、CM-SV701Bに関するメトリクスをCM-SV701Bに問い合わせることで、当該メトリクスを収集する。Met.-SV65は、収集されたメトリクスを、所定の出力先に出力する(例えば、CM-SV701及びそれのプランに沿った課金を行う課金サーバに、収集されたメトリクスを送信する)。
テンプレートマネージャGUI301を介してシステムテンプレートが選択された場合、当該選択されたシステムテンプレートを構成するCM-SV毎に、当該CM-SV701(及びそれのプロキシ702)に加えて、当該CM-SV701(及びそれのプラン)に関連付けられている一つ又は複数のMet.-SV65の各々がサービス実行基盤700にデプロイされ、且つ、当該一つ又は複数のMet.-SV65の各々に当該Met.-SVのアクセス先情報が設定される。結果として、一つ又は複数のCM-SV701を含んだサービスシステムの運用のための設定に関して基盤サービス提供者の負担が軽減される。サービスシステム運用のためのこのような設定支援は、テンプレートマネージャ300とサービスデプロイメントマネージャ600とが例えばサービスマネージャ500を介して連携することで実現される。より具体的には、以下の通りである。
CM-SVとプランとの組み合わせ毎に一つ又は複数のMet.-SVが紐づけられた情報(例えば後述のプラン対応表)を、テンプレートマネージャ300が保持する。サービスデプロイメントマネージャ600が、過去にデプロイしたサービスインスタンスを管理するデータと、Met.-SVの特性とメトリクス取得に必要なアクセス先情報を対応づけて管理するデータと、これらのデータから既にデプロイメント済みのCM-SVの利用実績を計測するために必要なMet.-SVのアクセス先を特定する処理を実行する機能である収集支援部77とを備える。テンプレートマネージャ300が、サービスマネージャ500にCM-SVのデプロイメントを命令する際に、テンプレートマネージャ300において、収集特定部52が、選択されたCM-SVとプランに関して必要となるMet.-SVを特定して、命令発行部53が、当該特定されたMet.-SVのデプロイメント命令をサービスマネージャ500に出す。当該デプロイメント命令に従うデプロイメント命令が、サービスマネージャ500により、Met.-SVのデプロイメント先に対応したサービスデプロイメントマネージャ600に送信される。当該命令を受けたサービスデプロイメントマネージャ600の収集支援部77が、当該命令に応答して、デプロイメント対象のMet.-SVがメトリクス取得に必要なアクセス先情報を特定して、当該アクセス先情報を、デプロイメント先のサービス実行基盤700へのデプロイメント命令のパラメータに追加する。
また、本実施形態では、テンプレートマネージャGUI301を介して(或いは別の方法により)、ユーザが、利用するCM-SVのプランを変更したときに、プラン変更に合わせて不要となったMet.-SVをアンデプロイし、新たに必要となったMet.-SVをデプロイすることができる。
クラウドコンピューティングサービスのようなCM-SVが提供される環境として、CM-SVの開発者がCM-SVをアップロードしておき、ユーザが、一つ以上のCM-SVの組合せとしてのテンプレートを利用したり、個々にCM-SVを選択したりすると、それらのCM-SV701がサービス実行環境700にデプロイされて使えるようになる環境が考えられる。
このような環境では、使用されたCM-SVとその使用プラン(例えば使用時間長)に応じていわゆる従量課金をすることがCM-SVのサプライヤにとってもCM-SVのユーザにとっても好ましいケースがあり得る。従量課金において妥当な料金を特定するためには、CM-SVの使用状況を正確に検出するためにCM-SVの使用に関わるメトリクスを収集し、収集されたメトリクスを基に料金を決定することが考えられる。
しかし、CM-SV(及びそれのプラン)によって、どのような従量課金を行うかが異なり、結果として、収集対象のメトリクスが異なる。また、通常、CM-SVの開発者は、収集対象とされ得るメトリクスが何であるかを考慮してCM-SVを開発するようなことはしない。
本実施形態によれば、複数のMet.-SVが用意されており、各Met.-SVが、複数のサービスプランセットのうちの該当するサービスプランセットに関連付けられている(「サービスプランセット」は、CM-SVとプランとの組合せ)。いずれかのサービスプランセットが選択された場合、当該サービスプランセットに属するCM-SVに加えて、当該サービスプランセットに関連付けられているMet.-SVもデプロイされ、且つ、そのMet.-SVに、メトリクス取得に必要なアクセス先情報が設定される。本実施形態では、例えば下記が採用される。なお、以下の説明において、「システムテンプレート」は、サービスシステムのテンプレートである。また、上述の機能51~54及び77の配置は、図25の例に限られないでよい。
テンプレートマネージャ300が一つ又は複数のデプロイメント命令を送信する場合に、収集特定部52が、一つ又は複数の対象CM-SV(選択されたシステムテンプレートが示すサービスシステムに含まれている一つ又は複数のCM-SV)の各々について、サービスプラン対応表から、当該対象CM-SVとそれの指定されたプランとに一致するサービスプランセットに対応するMet.-SV群を選択する。「デプロイメント命令」は、選択されたシステムテンプレートが示すサービスシステムに含まれている一つ又は複数のCM-SVをデプロイすることの命令である。「サービスプラン対応表」は、複数のサービスプランセットと当該複数のサービスプランセットにそれぞれ対応付けられた複数のMet.-SV群とを示す表である。「Met.-SV群」は、一つ又は複数のMet.-SVである。対象CM-SVのデプロイメント命令に、選択されたMet.-SV群が関連付けられる。一つ又は複数の対象CM-SVがデプロイされる一つ以上のサイト80の各々について、当該サイト80に対応したサービスデプロイメントマネージャ600が、少なくとも一つの対象CM-SVとそれのMet.-SV群とが関連付けられているデプロイメント命令を受信して、当該対象CM-SV701と当該Met.-SV群とを、当該サービスデプロイメントマネージャ600に対応したサイト80におけるサービス実行基盤700にデプロイする場合に、当該サービスデプロイメントマネージャ600の収集支援部77が、当該サービスデプロイメントマネージャ600によりデプロイされるMet.-SV群における各Met.-SV65に当該Met.-SVのアクセス先情報を設定する。サイト80毎に存在するサービスデプロイメントマネージャ600と、一つ以上のサイト80に共通のテンプレートマネージャ300とが上記のように連携することで、CM-SV701に加えてMet.-SV65もデプロイされ、且つ、そのMet.-SV65に、メトリクス取得に必要なアクセス先情報が設定される。
デプロイされた対象CM-SV701である対象商材インスタンスが当該対象CM-SV701をデプロイしたサービスデプロイメントマネージャ600によりアンデプロイされる場合、当該サービスデプロイメントマネージャ600についての収集支援部77が、当該アンデプロイされる対象商材インタンスに対応しておりデプロイされたMet.-SV群であるメトリクス収集インスタンス群を、当該サービスデプロイメントマネージャ600に対応したサイト80のサービス実行基盤700からアンデプロイする。これにより、商材インタンスのアンデプロイメントの結果として不要になったメトリクス収集インスタンス群がサービス実行基盤700に残ってしまうことを避けることができる。
デプロイされた少なくとも一つの対象CM-SVのプランの変更であるプラン変更が指定された場合、当該対象CM-SV701をデプロイしたサービスデプロイメントマネージャ600についての収集支援部77が、下記(a)及び(b)、
(a)当該対象商材インタンスに対応したメトリクス収集インスタンス群を、当該サービスデプロイメントマネージャ600に対応したサイト80のサービス実行基盤700からアンデプロイする、及び、
(b)当該対象CM-SVのプラン変更後のプランに対応し当該サービスデプロイメントマネージャ600によりデプロイされるMet.-SV群における各Met.-SVに当該Met.-SVのアクセス先を設定する、
を行う。これにより、プラン変更に付随して、デプロイメント済のCM-SV701と変更後のプランとのサービスプランセットに適したアクセス先情報を変更することができる。
少なくとも一つの対象CM-SVについて指定されたプランに、当該対象CM-SVの当該指定されたプランに依存し当該対象CM-SVの呼出し制限に関する一つ又は複数のパラメータ値である呼出し制限パラメータ群が関連付けられている場合、当該対象CM-SVをデプロイするサービスデプロイメントマネージャ600が、当該対象CM-SVについて、当該呼出し制限パラメータ群が関連付けられたプロキシ702をデプロイする。例えば、デプロイメント命令には、CM-SVのサービスIDと、当該CM-SVのデプロイメント先とされるサイト80のサイトIDとが関連付けられていてよい。更に、デプロイメント命令には、CM-SVについて、ユーザのユーザID、当該ユーザが所属するグループ(例えば開発チーム)のグループID(ネームスペース)、及び、当該CM-SV又はそれのプロキシのAPI(エンドポイント)の呼出し回数の制限を示すAPI呼出し回数制限(CM-SVの呼出し制限に関する引数である制限引数の一例)、のうちの少なくとも一つが関連付けられてもよい(APIは、Application Programming Interfaceの略)。CM-SVのAPI呼出し制限回数は、CM-SVについて用意されている一つ以上のプランのうちの指定されたプランに依存してよい。デプロイメント命令にAPI呼出し制限回数が関連付けられている場合、当該デプロイメント命令に従うデプロイメント対象のCM-SVについてデプロイされるプロキシに、当該API呼出し制限回数が関連付けられてよい。
テンプレートマネージャ300から送信される一つ又は複数のデプロイメント命令は、一つのデプロイメント命令としての全体デプロイメント命令でよい。サービスマネージャ500は、当該全体デプロイメント命令に基づく一つ以上のデプロイメント命令である一つ以上の個別デプロイメント命令を、一つ以上のサイト80にそれぞれ対応した一つ以上のサービスデプロイメントマネージャ600にそれぞれ送信してよい。当該一つ以上のサービスデプロイメントマネージャ600の各々が受信するデプロイメント命令は、個別デプロイメント命令でよい。例えば、個別デプロイメント命令は、全体デプロイメント命令から識別されるCM-SV701をデプロイすることの命令でよい。当該個別デプロイメント命令には、当該CM-SV701のデプロイメント先のサイト80に対応し全体デプロイメント命令から特定されたCM-SVIDが関連付けられてよい。このような個別デプロイメント命令を受けたサービスデプロイメントマネージャ600は、当該個別デプロイメント命令から識別されるCM-SV701を当該サイト80におけるサービス実行基盤700にデプロイし、当該CM-SV701に対応した呼出し先エンドポイントが関連付けられた応答である個別デプロイメント応答を当該個別デプロイメント命令の送信元(ここではサービスマネージャ500)に返してよい。「CM-SV701に対応した呼出し先エンドポイント」とは、当該CM-SV701のエンドポイント、及び、当該CM-SV701のプロキシ702のエンドポイントのうちの少なくとも一つでよい。
少なくとも一つのCM-SV701のデプロイメント先がリモートサイト80Rの場合、サービスデプロイメントマネージャ600Bが、当該CM-SV701の第1のプロキシ702B1をリモートサイト80Rのサービス実行基盤700Bにデプロイし、ローカルサイト80Lに対応したサービスデプロイメントマネージャ600Aが、第1のプロキシ702B1と通信する第2のプロキシ702B2をローカルサイト80Lのサービス実行基盤700Aにデプロイする。
以下、本実施形態を詳細に説明する。
<システムの説明>
図1は、本発明の一実施形態におけるシステム構成の一例を示すブロック図である。
図1のシステムは、ユーザ端末100と、テンプレートマネージャ300と、サービスマネージャ500と、サービスデプロイメントマネージャ600A及び600Bと、サービス実行基盤700(例えば700A及び700B)と、ログ集積基盤900と、ネットワークスイッチ800(例えば、800A~800D)から構成される。
図1のシステムは、システムのテンプレートと、システムを構成するCM-SVのプランとを含んだ設定を指定されると、設定を反映させたサービス群からなるシステムを所定のサービス実行基盤700にデプロイすることができる。さらに、指定されたプランに応じて必要となるサービス群をデプロイするために、必要なパラメータを自動的に補完し、運用サービス群を自動的に追加デプロイすることができる。本実施例においては、CM-SVとそれのプランとの組合せに関連付けられた運用サービスの一例として、CM-SVの従量課金に必要な利用実績測定機能を有するMet.-SVが採用される。
ユーザ101は、ユーザ端末100で動作するウェブブラウザにより、テンプレートマネージャ300が提供するGUIにアクセスすることで、一つ以上のサービスから構成されるシステムテンプレートを選択することができる。さらに、各サービスの設定を入力し、設定を反映させたサービスから構成されるシステムのデプロイを実行できる。
テンプレートマネージャ300は、テンプレートマネージャGUIを提供する機能と、システムテンプレート管理機能、サービスデプロイメント/削除(アンデプロイメント)命令機能を持つ。これらの機能の詳細は後述する。なお、「デプロイメント/削除命令」とは、デプロイメント命令又は削除命令を意味する。
サービスマネージャ500は、サービスデプロイメントマネージャ600へサービスデプロイメント/削除命令を発行する機能、サービス実行基盤700上にデプロイされているサービスを管理する機能を持つ。これらの機能の詳細は後述する。
サービスデプロイメントマネージャ600は、サービス実行基盤700へサービスのデプロイメント/削除、及びサービスへのアクセス先となるエンドポイントを設定するプロキシのデプロイメント/削除を実行する機能を持つ。これらの機能の詳細は後述する。
サービス実行基盤700は、サービス及びプロキシのインスタンスを実行する機能を持つ。サービス実行基盤700Aはサービスデプロイメントマネージャ600Aより、サービス実行基盤700Bはサービスデプロイメントマネージャ600Bより、サービスデプロイメント/削除命令、プロキシデプロイメント/削除命令、及び、プロキシ設定命令のうちの少なくとも一つを受信し、受信した命令を実行する。サービス実行基盤700の例として、Kubernetes(https://kubernetes.io/)が挙げられる。
ログ集積基盤900は、すべてのサービス実行基盤700のログ、及びサービス実行基盤700上で動作するすべてのサービスのログを集積する機能を持つ。また、ログ集積基盤900は、Met.-SVから要求を受け、当該要求で指定されたCM-SVのログを返す機能を持つ。
本実施形態においては、複数のサイト80に分散して存在する複数のサービス実行基盤700に対してサービスシステムを構成する複数のCM-SVのデプロイメントが実施される。本実施形態では、サービス実行基盤700Aが主たるサービス実行基盤であり、Met.-SVはすべてサービス実行基盤700Aにデプロイされるものとする。
<画面の説明>
図2Aは、テンプレートマネージャGUIの一例としてのシステムテンプレート一覧画面の構成例を示す図である。なお、図2A~図4Bを参照した説明において、「UI」は、ユーザインターフェースの略であり、具体的には、例えば、GUI部品(例えばプルダウンメニューやボタン)と表示エリアの一方又はそれらの組合せでよい。
システムテンプレート一覧画面201は、テンプレートマネージャによって提供されるシステムテンプレートの一覧からユーザ101がデプロイしたいシステムテンプレートを選択するための画面の一例である。
システムテンプレート一覧画面201は、テンプレートマネージャGUIプログラム323(図5D参照)によって提供され、テンプレート表324に基づいたユーザに提供可能なテンプレートへのリンク(例えば、リンクが埋め込まれたアイコン)20101の表示UIと、テンプレートマネージャ300のユーザ情報を表示するユーザ情報表示UI20102から構成される。
例えば、ユーザ101が、テンプレートマネージャ300にログインすると、ユーザ情報表示UI20102に当該ユーザ101のユーザ名や所属グループなどのユーザプロフィールが表示される。テンプレートマネージャ300は、ログアウトを実行するまで画面を遷移してもログイン状態を維持する。さらに、ユーザ101が、システムテンプレート一覧画面201よりいずれかのリンク20101を選択(例えばマウスでクリック)すると、システムテンプレート構成画面202が開く。例えば、テンプレート1のリンク20101が指定されることで、図2Bに例示のシステムテンプレート構成画面202が開いたとする。
図2Bによれば、システムテンプレート構成画面202は、システムテンプレート一覧画面201にてユーザ101に選択されたシステムテンプレートの説明と、システムテンプレートを構成しているCM-SVの一覧とを表示し、選択されたシステムテンプレートに基づいたシステムのデプロイの指示のためのユーザ操作を受け付けることができる画面の一例である。
システムテンプレート構成画面202は、テンプレートマネージャGUIプログラム323によって提供され、テンプレート表324(図5D参照)とサービスプランセット表327(図5D参照)に基づいたサービス情報表示UI20201と、サービス設定入力UI20202と、デプロイ指示UI20203、入力破棄UI20205から構成される。また、サービス情報表示UI20201内には各サービスの詳細設定を行うための画面に遷移するためのリンク20204が含まれる。
例えば、ユーザ101が、システムテンプレート一覧画面201においてテンプレート1に対応するリンク20101を選択して、システムテンプレート構成画面202を表示する場合、サービスプランセット表327に基づいたサービス情報表示UI20201には、テンプレート1の説明文と、テンプレート1を構成するサービスの一覧(CM-SV1、CM-SV2、CM-SV3)の情報が表示される。さらに、ユーザ101は、テンプレート1に基づいてデプロイするシステムの設定をサービス設定入力UI20202から入力することができる。さらに、ユーザ101が、デプロイ指示UI20203を指定すると、テンプレート管理プログラム322のシステムデプロイメント処理32201(図5D参照)が実行される。このとき、ログイン中のユーザ101のグループID、及びシステムテンプレート構成画面202で選択したシステムに含まれるCM-SVのサービスID、CM-SVに紐付いたプランIDと設定値を引数とする。ここで設定値については、サービス毎に数や種類が異なるため、サービス毎にまとめてプロパティとして引数が与えられる。
システムデプロイメント処理32201の結果にて与えられるリソースIDの情報を用いて、デプロイメント済みCM-SV表328のリソースIDが更新される。また、デプロイ指示UI20203を指定してデプロイメントを指示する前に、入力破棄UI20205を指定すると、入力済みの情報をすべて破棄し、呼び出し元の画面に戻ることができる。
例えば、図2Bのシステムテンプレート構成画面202においてCM-SV2のリンク20204が指定されると、図3Aに例示のCM-SV設定画面301が表示される。CM-SV設定画面301は、システムテンプレート構成画面202にてユーザ101に選択されたCM-SVの説明、プラン、パラメータ情報の確認と、CM-SVに対するユーザ定義の説明文、プラン選択、パラメータなどの設定を入力できる画面の一例である。
CM-SV設定画面301は、テンプレートマネージャGUIプログラム323によって提供され、サービスプランセット表327に基づいたサービス情報表示UI30101と、サービス設定入力UI30102と、入力破棄指示UI30103と、設定完了指示UI30104から構成される。
例えば、ユーザ101が、システムテンプレート構成画面202において、CM-SV2の詳細設定画面に遷移するためのリンク20204を指定して、CM-SV設定画面301を表示する場合、サービス情報表示UI30101には、CM-SV2の説明文が表示される。さらに、ユーザ101はCM-SV2をデプロイする際のプランやパラメータの設定を、サービス設定入力UI30102から入力することができる。さらに、ユーザ101が、入力破棄UI30103を指定すると、CM-SV設定画面301にて入力した内容を破棄し、呼び出し元の画面に戻ることができる。もしくは、ユーザ101が、設定完了指示UI30104を指定すると、CM-SV設定画面301にて入力した情報をデプロイメント済みCM-SV表328(図5D参照)に保持したまま、呼び出し元の画面に戻ることができる。ただし、この時点ではデプロイメントが完了していないため、リソースIDには仮の値が入力される。
図3Bに例示のデプロイメント済みシステム画面302は、システムテンプレート構成画面202を通じてデプロイしたシステムの説明と、システムを構成しているCM-SVの一覧と設定を確認し、サービスの追加もしくは削除、サービスの設定変更を指示することができる画面の一例である。
デプロイメント済みシステム画面302は、テンプレートマネージャGUIプログラム323によって提供され、デプロイメント済みCM-SV表328とデプロイメント済みシステム表330とに基づいたサービス情報表示UI30201と、入力破棄UI30203と、システム構成変更指示UI30204から構成される。また、サービス情報表示UI30201内には各サービスの詳細設定を行うための画面に遷移するためのリンク30205、CM-SVを追加するためのリンク30206が含まれる。
例えば、ユーザ101が、デプロイメント済みのシステムに新たにCM-SVを追加するときには、デプロイメント済みシステム画面302を開き、サービス追加指示UI30206を指定する。すると、図4Aに例示のサービス追加画面401に遷移する(サービス追加画面401は、デプロイメント済みシステム画面302に重ねて表示されてもよい)。サービス追加画面401に関する説明は後述する。サービス追加画面401において、CM-SV4を追加した場合、サービス情報表示UIにCM-SV4に関する行が追加される。ここで追加されたCM-SV4の行のサービス詳細設定画面への遷移リンク30205を指定すると、CM-SV4に関するCM-SV設定画面301に遷移する。CM-SV設定画面でCM-SV4に関する設定を行った後、システム構成変更指示UI30204を指定すると、テンプレート管理プログラム322のCM-SVデプロイメント処理32202が呼び出される。その結果を受けて、追加したCM-SV4に関して、デプロイメント済みCM-SV表328におけるリソース情報が更新される。また、システム構成変更指示UI30204を指定して変更を反映する前に、入力破棄UI30203を指定すると、入力済みのシステム変更情報をすべて破棄し、呼び出し元の画面に戻ることができる。
例えば、ユーザ101が、デプロイメント済みのCM-SV2を削除するときには、デプロイメント済みシステム画面を開き、サービスの詳細設定画面への遷移リンク30205を指定する。すると、図4Bに例示のデプロイメント済みCM-SV画面402に遷移する。デプロイメント済みCM-SV画面402に関する説明は後述する。デプロイメント済みCM-SV画面において、CM-SV2を削除した後、サービス情報表示UIにCM-SV4に関する行が削除される。
例えば、ユーザ101が、デプロイメント済みのCM-SV2の設定を変更するときには、デプロイメント済みシステム画面を開き、サービスの詳細設定画面への遷移リンク30205を指定する。すると、デプロイメント済みCM-SV画面402に遷移する。デプロイメント済みCM-SV画面402に関する説明は後述する。デプロイメント済みCM-SV画面において、CM-SV2の設定を変更した後、変更された設定に合わせてサービス情報表示UI30201の内容が更新される。
サービス追加画面401は、システムテンプレート構成画面を通じてデプロイしたシステムに対して、追加するサービスを選択することができる画面の一例である。
サービス追加画面401は、テンプレートマネージャGUIプログラム323によって提供され、サービスプランセット表327に基づいた追加可能CM-SV情報表示UI40101と、追加対象選択部40102と、入力破棄UI40103と、サービス追加指示UI40104から構成される。
例えば、ユーザ101が、デプロイメント済みのシステムに追加するCM-SVを選択するときには、サービス追加画面40101において、CM-SV情報表示UI40101を参照し、追加したいCM-SVの追加対象選択UI40102を指定することで、画面上に選択済みのフラグをたてる。再度同じ追加対象選択UI40102を指定すると選択状態が解除される。さらに、ユーザ101が40104を指定すると、追加対象選択UI40102が選択済み状態となっているCM-SVをデプロイメント済みCM-SV表328に追加して、システムテンプレート構成画面202に戻る。このとき、デプロイメントは未実行であるので、リソースIDの情報は仮の値を入力しておく。このとき、ユーザ101が40104を指定する前に、40103を指定した場合、サービス追加画面にて入力した情報をすべて破棄し、呼び出し元の画面に戻ることができる。
デプロイメント済みCM-SV画面402は、デプロイメント済みシステム画面302においてユーザに指定されたデプロイメント済みサービスの設定を確認し、サービスの削除、設定変更ができる画面の一例である。
デプロイメント済みCM-SV画面402は、テンプレートマネージャGUIプログラム323によって提供され、サービスプランセット表327及びデプロイメント済みCM-SV表328に基づいたサービス情報表示UI40201と、サービス設定入力UI40202と、入力破棄指示UI40203と、設定完了指示UI40204、サービス削除指示UI40205から構成される。
例えば、ユーザ101が、デプロイメント済みのCM-SV2を削除するときには、デプロイメント済みシステム画面302において、削除対象のサービスを指定してデプロイメント済みCM-SV画面402を開き、サービス削除指示UI40205を指定する。すると、テンプレート管理プログラム322のCM-SVアンデプロイメント処理32205が呼び出される。CM-SVのアンデプロイが正常に完了した場合、デプロイメント済みCM-SV表328から該当するCM-SV2のリソースに関する行が削除される。
例えば、ユーザ101が、デプロイメント済みのCM-SV2の設定を変更するときには、サービス設定入力UI40202からメニューを選択し直したり、入力済みの設定を削除してから設定を入力し直したりすることができる。さらに、ユーザ101が、入力破棄指示UI40203を指定すると、デプロイメント済みCM-SV画面にて入力した内容を破棄し、呼び出し元の画面に戻ることができる。もしくは、ユーザ101が、設定完了指示UI40204を指定すると、テンプレート管理プログラム322のCM-SVアンデプロイメント処理32205及びCM-SVデプロイメント処理32202が呼び出された後、デプロイメント済みCM-SV表328が更新される。プランが変更されていた場合は、テンプレート管理プログラム322のプラン変更処理32208が呼び出された後、エラーが返ってこなければデプロイメント済みCM-SV表328が更新される。
<計算機の説明>
図5Aは、計算機の構成の一例を示すブロック図である。
テンプレートマネージャ300、サービスマネージャ500、サービスデプロイメントマネージャ600、サービス実行基盤700及びログ集積基盤900のうちの少なくとも一つは、一つ以上の計算機30上に実現可能である。
計算機30は、プロセッサ31と、メモリ32と、永続記憶装置33と、インターフェース装置34と、これらの構成要素を接続するバス35とを有する。
プロセッサ31は、メモリ32に記憶されているプログラムを実行することによって、所定の機能を実現する。メモリ32は、プロセッサ31によって実行されるプログラム及び当該プログラムの実行に必要なデータを記憶する。プログラムは、永続記憶装置33からメモリ32にロードされる。インターフェース装置34は、いずれかのネットワークスイッチ800に接続される。計算機30は、インターフェース装置34を介して、他の計算機30と通信することができる。
なお、一部の計算機30は、仮想マシンやコンテナ等の仮想環境に置き換えることもできる。
<メモリ内のプログラム及びデータの説明>
図5Bは、ユーザ端末100のメモリ32A内のプログラムの一例を示す図である。
メモリ32Aは、Operating System(OS)121、ウェブブラウザ122を持つ。
図5Cは、ログ集積基盤900のメモリ32B内のプログラム及びデータの一例を示すブロック図である。
メモリ32Bは、OS921、ログ管理プログラム922及びログ管理表923を持つ。ログ管理プログラム922が、すべてのサービス実行基盤700のログ、及びサービス実行基盤700上で動作するすべてのサービスのログを集積したり、Met.-SVから要求を受け、当該要求で指定されたCM-SVのログを返したりする。ログ管理表923は、ログに関する情報を保持し、例えば、CM-SV毎にサービスIDとログの格納場所とを示す情報を保持する。
図5Dは、テンプレートマネージャ300のメモリ32C内のプログラム及びデータの一例を示すブロック図である。
テンプレートマネージャ300のメモリ32Cは、OS321、テンプレート管理プログラム322、テンプレートマネージャGUIプログラム323、テンプレート表324、サービスプランセット表327、サイト表331、デプロイメント済みシステム表330、デプロイメント済みCM-SV表328、デプロイメント済みMet.-SV表329を持つ。
テンプレート管理プログラム322は、システムデプロイメント処理32201、CM-SVデプロイメント処理32202、サービスデプロイメント処理32203、Met.-SVデプロイメント処理32204、CM-SVアンデプロイメント処理32205、サービスアンデプロイメント処理32206、Met.-SVアンデプロイメント処理32207、プラン変更処理32208を持つ(実行する)。
図6Aは、サービスマネージャ500のメモリ32D内のプログラム及びデータの一例を示すブロック図である。
メモリ32Dは、OS521、サービス管理プログラム522、CM-SV表524、Met.-SV表528、サイト表525、及びサービスデプロイメントマネージャ表526を持つ。
サービス管理プログラム522は、サービスデプロイメント処理52201、及びサービスアンデプロイメント処理52202を持つ(実行する)。
図6Bは、サービスデプロイメントマネージャ600のメモリ32E内のプログラム及びデータの一例を示すブロック図である。
メモリ32Eは、OS621、サービスデプロイメントプログラム622、サービスインスタンスの情報を管理するサービスデプロイメント表624、及び、ログ集積基盤900に関する情報を持つログ集積基盤表625を持つ。
サービスデプロイメントプログラム622は、サービス/プロキシデプロイメント処理62201、メトリクス取得先特定処理62202、及び、サービス/プロキシアンデプロイメント処理62203を持つ(実行する)。
図6Cは、サービス実行基盤700のメモリ32F内のプログラム及びデータの一例を示すブロック図である。
メモリ32Fは、OS721、サービスのデプロイメント/削除を実施するサービス管理プログラム722、サービスインスタンスの情報を管理するサービス表723、及び、デプロイされたサービスであるサービスインスタンス724を持つ。
<テーブルの説明>
図7及び図8は、テンプレートマネージャ300が保持する表の構成の一例を示す図である。
テンプレート表324は、テンプレートマネージャにおいてデプロイ指示を出すことが可能なシステムテンプレートの一覧を管理するための表である。テンプレート表324は、システムテンプレート毎にエントリを有する。一つのシステムテンプレートを例に取ると、エントリは、システムテンプレートを機械的に識別するための識別子であるシステムテンプレートID32401、システムテンプレートを人間が識別しやすくするためのラベルであるシステムテンプレート名32402、システムテンプレートを構成しているCM-SVの配列であるCM-SV群32403、及び、システムテンプレートの説明文などのメタデータが格納されているコンテンツ32404といった情報を保持する。
サービスプランセット表327は、CM-SVをデプロイする条件となるプランを管理する表である。サービスプランセット表327は、サービスプランセット毎にエントリを有する。一つのサービスプランセットを例に取ると、エントリは、プランを機械的に識別するための識別子であるプランID32701、プランを人間が識別しやすくするためのラベルであるプラン名32702、無料プランか否かを示す無料32703、プランが紐付いているCM-SVの識別子であるCM-SV ID32704、当該CM-SVのデプロイメント先サイトの識別子であるサイトID32705、プランにおけるAPI呼び出し回数の上限を示すAPI呼出し回数制限32706、当該プランの課金や利用上限制御のための利用料計測を実施するMet.-SVのサービスIDの配列であるMet.-SV群32707、及び、当該CM-SVの説明や設定可能パラメータを保持するコンテンツ32709といった情報を保持する。API呼出し回数制限32706は、例えば、{API呼出し回数PER 期間}という形式でAPI呼出し回数制限の情報を保持する。API呼出し回数制限32706の欄が空欄の場合は、API呼出し回数制限が無いことを示す。
サイト表331は、サイト情報を管理する表である。サイト表331は、サイト毎にエントリを有する。一つのサイトを例に取ると、エントリは、サイトの識別子であるサイトID33101、サイト名33102、及び、当該サイトがローカルサイトか否かを判定するためのローカルフラグを表すローカル33103といった情報を保持する。
ここで、「ローカルサイト」とは、主たるサービス実行基盤700A及びサービス実行基盤にデプロイ指示を出すサービスデプロイメントマネージャ600Aの存在するサイトである。
デプロイメント済みシステム表330は、テンプレートマネージャにおいてデプロイされたシステムインスタンスの一覧を管理する表である。デプロイメント済みシステム表330は、サービスシステム毎にエントリを有する。一つのサービスシステムを例に取ると、エントリは、デプロイメント済みシステムの識別子であるシステムID33001、デプロイメント済みシステムを構成しているサービスインスタンスの識別子の配列であるリソース33002、及び、デプロイメント済みシステムの説明文などを含むメタデータ33003といった情報を保持する。
デプロイメント済みCM-SV表328は、すべてのサービス実行基盤700にデプロイメント済みのCM-SVインスタンスを一括で管理するための表である。デプロイメント済みCM-SV表328は、リソース(CM-SVインスタンス)毎にエントリを有する。一つのリソースを例に取ると、エントリは、デプロイメント済みCM-SVインスタンスの識別子であるリソースID32801、デプロイメント済みのCM-SVの識別子であるサービスID32802、デプロイメント済みCM-SVと紐付いているプランの識別子であるプランID32803、デプロイメント済みCM-SVがデプロイされているサイトの識別子であるサイトID32804、ユーザ101の所属しているグループの識別子であるグループID32805、及び、CM-SVインスタンスに関する説明文などのメタデータやデプロイメント時に利用したパラメータを含んだプロパティ32806といった情報を保持する。
デプロイメント済みMet.-SV表329は、すべてのサービス実行基盤700にデプロイメント済みのMet.-SVを一括で管理するための表である。デプロイメント済みMet.-SV表329は、リソース(Met.-SVインスタンス)毎にエントリを有する。一つのリソースを例に取ると、エントリは、デプロイメント済みMet.-SVインスタンスの識別子であるリソースID32901、デプロイメント済みMet.-SVの識別子であるMet.-SV ID32902、デプロイメント済みMet.-SVのデプロイメント先サイトの識別子であるサイトID32903、及び、デプロイメント済みMet.-SVがメトリクスの収集対象とするCM-SVインスタンスの識別子である対象リソースID32904といった情報を保持する。
図9は、サービスマネージャ500が保持する表の構成の一例を示す図である。
CM-SV表524は、CM-SVと、CM-SVをデプロイ可能なサイト、CM-SVのメタデータの組合せを管理する表である。CM-SV表524は、CM-SV毎にエントリを有する。一つのCM-SVを例に取ると、エントリは、CM-SVの識別子であるCM-SV ID52401、CM-SVを人間が識別するためのラベルであるCM-SV名52402、CM-SVのデプロイメント先サイトの識別子であるサイトID52403、CM-SVの説明文や、設定可能なパラメータなどのメタデータを保持するメタデータ52404、及び、CM-SVのサービスタイプの識別子を表すサービスタイプID52405といった情報を保持する。
Met.-SV表528は、Met.-SVと、Met.-SVをデプロイ可能なサイト、Met.-SVのメタデータの組合せを管理する表である。Met.-SV表528は、Met.-SV毎にエントリを有する。一つのMet.-SVを例に取ると、エントリは、Met.-SVの識別子であるMet.-SV ID52801、メトリクス収集対象のCM-SVの識別子である対象CM-SV ID52802、収集されるメトリクスを人間が識別するためのラベルであるメトリクス名52803、メトリクス取得の方法を表す取得タイプ52804、及び、Met.-SVのサービスタイプの識別子を表すサービスタイプID52805といった情報を保持する。
サイト表525は、サイト情報を管理する表である。サイト表525は、サイト毎にエントリを有する。一つのサイトを例に取ると、エントリは、サイトの識別子であるサイトID52501、サイトを人間が識別するためのラベルであるサイト名52502、及び、サイトがローカルか否かを判定するためのローカルフラグを表すローカル52503といった情報を保持する。
サービスデプロイメントマネージャ表526は、サービスデプロイメントマネージャ600の情報を管理する表である。サービスデプロイメントマネージャ表526は、サービスデプロイメントマネージャ600毎にエントリを有する。一つのサービスデプロイメントマネージャ600を例に取ると、エントリは、サービスデプロイメントマネージャの識別子を表すサービスデプロイメントマネージャID52601、サービスデプロイメントマネージャのアクセス先エンドポイントの識別子を表すエンドポイント52602、及び、サービスデプロイメントマネージャが存在するサイトの識別子であるサイトID52603といった情報を保持する。
図10Aは、サービスデプロイメントマネージャ600Aが保持する表の構成の一例を示す図である。図10Bは、サービスデプロイメントマネージャ600Bが保持する表の構成の一例を示す図である。
サービスデプロイメント表624は、デプロイメント済みのサービス及びプロキシの情報を管理する表である。サービスデプロイメント表624は、デプロイメント済みのCM-SV毎にエントリを有する。一つのCM-SVを例に取ると、エントリは、デプロイメント先ネームスペースの識別子を表すネームスペースID62401、デプロイされたCM-SVインスタンスの識別子を表すリソースID62402、デプロイされたCM-SVの識別子を表すCM-SV ID62403、CM-SVがデプロイされているサイトの識別子を表すサイトID62404、ユーザの識別子を表すユーザID62405、ユーザの所属しているグループのIDを表すグループID62406、デプロイされたCM-SVがそれのプロキシに公開しているエンドポイントを表すCM-SVエンドポイント62407、デプロイされたCM-SVにユーザがプロキシ経由でアクセスするためのエンドポイントを表すプロキシエンドポイント62408、ローカルサイトにデプロイされたプロキシの認証トークンを保持するローカル認証トークン62409、リモートサイトにデプロイされたプロキシの認証トークンを保持するリモート認証トークン62410、及び、CM-SVのAPI呼び出し回数の上限を表すAPI呼出し回数制限62411といった情報を保持する。
ログ集積基盤表625は、ログ集積基盤900のエンドポイントを管理する表である。例えば、ログ集積基盤表625は、ログ集積基盤900のエンドポイントを表すエンドポイント62501といった情報を保持する。
<システムデプロイメント処理>
図11は、テンプレートマネージャ300のシステムデプロイメント処理32201の一例を示すフローチャートである。
システムデプロイメント処理32201は、利用者が選択したシステムテンプレートに含まれるサービス群、及びそれに付随するMet.-SV群をデプロイする指示を出す処理である。
まず、ステップS1101において、テンプレート管理プログラム322は、テンプレートマネージャGUIプログラム323により、システムデプロイ命令を受信する。
次に、ステップS1102において、テンプレート管理プログラム322は、ステップS1101で受信した命令の引数が適切か否かを判断する。具体的には、例えば、デプロイ対象のCM-SVのサービスID及び対応するプロパティとプランID、デプロイ対象サービスを属させるグループIDの配列を含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS1103へ進む。引数が適切でないと判断された場合は、ステップS1106へと進み、テンプレートマネージャGUIプログラム323へ、エラー情報を返し、処理を終了する。
次に、ステップS1103において、テンプレート管理プログラム322は、ステップS1101で受信した命令の引数に指定されているCM-SVのうちの1つに対してステップS1105までの処理を実行する。
次に、ステップS1104において、テンプレート管理プログラム322は、ステップS1101で受信した命令の引数に指定されているグループIDと、ステップS1103において選定されたCM-SVのサービスIDと、ステップS1101で受信した命令の引数に指定されているプロパティとプランIDのうち、サービスIDに対応するものを指定して、テンプレート管理プログラム322中のCM-SVデプロイメント処理32202を呼び出す。
次に、ステップS1105において、テンプレート管理プログラム322は、ステップS1103から開始した処理を終了する。ステップS1101にて指定されたすべてのCM-SVに対して処理が終了していないものがあるなら、ステップS1103に戻る。
次に、ステップS1106において、テンプレート管理プログラム322は、テンプレートマネージャGUIプログラム323へ、システムデプロイメント処理が完了した結果を返し、処理を終了する。
<CM-SVデプロイメント処理>
図12は、テンプレートマネージャ300のCM-SVデプロイメント処理32202の一例を示すフローチャートである。
CM-SVデプロイメント処理は、あるCM-SVと、及びそれに付随するMet.-SV群をデプロイする指示を出す処理である。
まず、ステップS1201において、テンプレート管理プログラム322は、システムデプロイメント処理32201内において、CM-SVのサービスID、そのCM-SVに対応するプロパティとプランID、グループIDを入力としてCM-SVデプロイ命令を受信する。
次に、ステップS1202において、テンプレート管理プログラム322は、ステップS1201で受信した命令の引数が適切か否かを判断する。具体的には、例えば、デプロイ対象のCM-SVのサービスID及び対応するプロパティ、プランID、グループIDを含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS1203へ進む。引数が適切でないと判断された場合は、ステップS1208へと進み、システムデプロイメント処理32201にエラー情報を返し、処理を終了する。
次に、ステップS1203において、テンプレート管理プログラム322は、サービスプランセット表327を参照し、ステップS1201で受信した命令の引数に指定されているプランIDから、サービスをデプロイするサイトIDと同プランにおけるAPI呼び出し回数を特定する。
次に、ステップS1204において、テンプレート管理プログラム322は、ステップS1201で受信した命令の引数に指定されているサービスIDとプロパティとグループID、及びステップS1203で特定したサイトIDを指定して、サービスデプロイメント処理32203を呼び出す。ここでは、プロパティにステップS1203で特定したAPI呼び出し回数、グループIDを追加する。
次に、ステップS1205において、テンプレート管理プログラム322は、ステップS1204にて実行したサービスデプロイメント処理32203が正常に完了したか否かを確認する。正常に完了していた場合はS1206へ進む。正常に完了せずエラーが返ってきた場合はS1208へ進み、システムデプロイメント処理32201にエラー情報を返し、処理を終了する。
次に、ステップS1206において、テンプレート管理プログラム322は、S1204にて実行したサービスデプロイメント処理32203の結果をデプロイメント済みCM-SV表328に追加する。
次に、ステップS1207において、テンプレート管理プログラム322は、ステップS1201で受信したサービスID、ステップS1204にて実行したサービスデプロイメント処理32203の結果に含まれるリソースID、ステップS1201で受信した命令の引数に指定されているプランIDを指定して、Met.-SVデプロイメント処理32204を呼び出す。
次に、ステップS1208において、テンプレート管理プログラム322は、ステップS1204にて実行したサービスデプロイメント処理32203及びステップS1207にて実行したMet.-SVデプロイメント処理32204の結果をシステムデプロイメント処理32201に返し、処理を終了する。
<サービスデプロイメント処理>
図13は、テンプレートマネージャ300のサービスデプロイメント処理32203の一例を示すフローチャートである。
サービスデプロイメント処理は、CM-SVやMet.-SVをデプロイする命令(指示)を出す処理である。
まず、ステップS1301において、テンプレート管理プログラム322は、システムデプロイメント処理32201内もしくはMet.-SVデプロイメント処理内において、デプロイ対象サービスのサービスIDと対応するプロパティ、サイトID、グループIDを入力としてサービスデプロイメント処理命令を受信する。
次に、ステップS1302において、テンプレート管理プログラム322は、ステップS1301で受信した命令の引数が適切か否かを判断する。具体的には、例えば、デプロイ対象サービスのサービスID、プロパティ、サイトID、グループIDが含まれていれば適切と判断する。引数が適切でないと判断された場合は、ステップS1305へと進み、呼び出し元であるシステムデプロイメント処理32201もしくはMet.-SVデプロイメント処理32204にエラー情報を返し、処理を終了する。
次に、ステップS1303において、テンプレート管理プログラム322は、サービスマネージャ500のサービス管理プログラム522へ、サービスデプロイ命令を送信する。命令の引数には、ステップS1300にて受け取ったサービスID、サイトID、プロパティ、グループIDを指定する。命令送信後、テンプレート管理プログラム322は、既定のタイムアウト時間まで、命令のレスポンスを待つ。
次に、ステップS1304において、テンプレート管理プログラム322は、タイムアウト時間内にレスポンスがあったか否かを確認する。タイムアウト時間内にレスポンスがあったら、ステップS1305に進む。タイムアウト時間内にレスポンスがなくても、ステップS1305に進む。ただし、ステップS1304の結果によって、ステップS1305で返る結果は異なる。例えば、タイムアウト時間内にレスポンスがなかった場合、テンプレート管理プログラム322は、呼び出し元であるシステムデプロイメント処理32201もしくはMet.-SVデプロイメント処理32204にエラー情報が返る。
次に、ステップS1305において、テンプレート管理プログラム322は、呼び出し元であるシステムデプロイメント処理32201もしくはMet.-SVデプロイメント処理32204にサービスデプロイメント処理が完了した結果を返し、処理を終了させる。
<Met.-SVデプロイメント処理>
図14は、テンプレートマネージャ300のMet.-SVデプロイメント処理32204の一例を示すフローチャートである。
CM-SVデプロイメント処理は、あるCM-SVに付随するMet.-SV群をデプロイする命令(指示)を出す処理である。
まず、ステップS1401において、テンプレート管理プログラム322は、CM-SVデプロイメント処理32202内において、メトリクス計測対象のCM-SVインスタンスのサービスID、リソースID、プランIDを入力としてMet.-SVデプロイ命令を受信する。
次に、ステップS1402において、テンプレート管理プログラム322は、ステップS1401で受信した命令の引数が適切か否かを判断する。具体的には、例えば、メトリクス計測対象サービスのサービスID、リソースID及び対応するプランIDを含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS1403へ進む。引数が適切でないと判断された場合は、ステップS1410へと進み、CM-SVデプロイメント処理32202にエラー情報を返し、処理を終了する。
次に、ステップS1403において、テンプレート管理プログラム322は、ステップS1401で受信した命令の引数に指定されているプランIDから、サービスプランセット表327を参照してデプロイするべきMet.-SVの組み合わせを特定する。
次に、ステップS1404において、テンプレート管理プログラム322は、表331を参照して、Met.-SVのデプロイメント先となる主たるサービス実行基盤のサイトを特定する。
次に、ステップS1405において、テンプレート管理プログラム322は、ステップS1403で特定したMet.-SV群のうちの1つに対してステップS1409までの処理を実行する。
次に、ステップS1406において、テンプレート管理プログラム322は、ステップS1405において選定したサービスID、ステップS1411で特定したサイトID、Met.-SVを属させるグループのグループID、プロパティを指定して、サービスデプロイメント処理を呼び出す。ここでは、空のプロパティに対して、ステップS1401にて入力されたリソースIDを追加したものをプロパティとして指定する。
次に、ステップS1407において、テンプレート管理プログラム322は、ステップS1405にて実行したサービスデプロイメント処理32203が正常に完了したか否かを確認する。正常に完了していた場合はS1408へ進む。正常に完了せずエラーが返ってきた場合はS1410へ進み、CM-SVデプロイメント処理32202にエラー情報を返し、処理を終了する。
次に、ステップS1408において、テンプレート管理プログラム322は、S1405にて実行したサービスデプロイメント処理32203の結果をデプロイメント済みMet.-SV表329に追加する。
次に、ステップS1409において、テンプレート管理プログラム322は、ステップS1405から開始した処理を終了する。ステップS1403にて特定されたすべてのMet.-SVに対して処理が終了していないものがあるなら、ステップS1405に戻る。
次に、ステップS1410において、テンプレート管理プログラム322は、ステップS1405にて実行したサービスデプロイメント処理32203の結果をまとめてシステムデプロイメント処理32201に返し、処理を終了する。
<サービスデプロイメント処理>
図15は、サービスマネージャ500のサービスデプロイメント処理52201の一例を示すフローチャートである。
サービスデプロイメント処理52201は、テンプレートマネージャ300から命令を受けたサービスマネージャ500のサービス管理プログラム522によって実行される処理であり、CM-SVやMet.-SVをデプロイする命令(指示)を出す処理である。
まず、ステップS1501において、サービス管理プログラム522は、テンプレート管理プログラム322により、デプロイ対象サービスのサービスIDと対応するプロパティ、デプロイメント先サイトのサイトID、サービスが属するグループのグループID、を入力としてサービスデプロイ命令を受信する。
次に、ステップS1502において、サービス管理プログラム522は、ステップS1501で受信した命令の引数が適切か否かを判断する。具体的には、例えば、サービスID、プロパティ、サイトID、グループIDを含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS1504へ進む。引数が適切でないと判断された場合は、ステップS1509へと進み、テンプレート管理プログラム322へ、エラー情報を返し、処理を終了する。
次に、ステップS1503において、サービス管理プログラム522は、ステップS1501で受信した命令の引数であるサイトIDと、サービスデプロイメントマネージャ表526より、サービスデプロイメントマネージャID52501を特定する。サービスデプロイメントマネージャID52501を特定できたら、ステップS1505へ進む。サービスデプロイメントマネージャID52501を特定できなかったら、ステップS1508へ進み、サービス管理プログラム522は、テンプレート管理プログラム322にエラー情報を返し、処理を終了する。
次に、ステップS1504において、サービス管理プログラム522は、デプロイするサービスに対してリソースIDを発行する。
次に、ステップS1505において、サービス管理プログラム522は、特定したサービスデプロイメントマネージャID52510のサービスデプロイメントマネージャ600A又は600Bのサービスデプロイメントプログラム622へ、ステップS1501で受信した命令の引数に含まれるサービスIDとグループID、ステップS1504で発行したリソースID、プロパティ、サービスタイプIDを指定して、サービス/プロキシデプロイ命令を送信する。このとき、ステップS1501で受信した命令の引数に含まれるプロパティに、ステップS1501で受信した命令の引数に含まれるサービスIDからMet.-SV表528を参照して特定した取得タイプを追加したものを、プロパティとして指定する。取得タイプが特定できなかった場合は、ステップS1501で受信した命令の引数に含まれるプロパティをそのままプロパティとして指定する。また、ここではサービスタイプIDとして、サービスIDから表527及び表528を参照して特定したものを指定する。命令送信後、サービス管理プログラム522は、既定のタイムアウト時間まで、命令のレスポンスを待つ。
次に、ステップS1506において、サービス管理プログラム522は、タイムアウト時間内にレスポンスがあったか否かを確認する。タイムアウト時間内にレスポンスがあったら、ステップS1507に進む。タイムアウト時間内にレスポンスがなかったら、ステップS1509に進み、サービス管理プログラム522は、テンプレート管理プログラム322にエラー情報を返し、処理を終了する。
次に、ステップS1507において、サービス管理プログラム522は、サービスデプロイメントプログラム622からのレスポンス内容を確認し、正常か否かを確認する。正常ならば、ステップS1508に進む。命令のエラーがあれば、ステップS1509へ進み、サービス管理プログラム522は、テンプレート管理プログラム322にエラー情報を返し、処理を終了する。
次に、ステップS1508において、サービス管理プログラム522は、サービスデプロイメントマネージャIDのサービスデプロイメントマネージャ600がローカル(つまり主たるサービス実行基盤700Aに対応するサービスデプロイメントマネージャ600A)か否かを確認する。サービスデプロイメントマネージャ600がローカルなら、ステップS1509へ進む。サービスデプロイメントマネージャ600がローカルでないなら、リモートのサイトにプロキシをデプロイするためにステップS1505へ戻る。
次に、ステップS1509において、サービス管理プログラム522は、テンプレート管理プログラム322へ、サービスデプロイメント処理の結果を返し、処理を終了する。
<サービス/プロキシデプロイメント処理>
図16は、サービスデプロイメントマネージャ600のサービス/プロキシデプロイメント処理62201の一例を示すフローチャートである。
サービス/プロキシデプロイメント処理62201は、サービスマネージャ500から命令を受けたサービスデプロイメントプログラム622によって実行される処理であり、CM-SVやMet.-SVをデプロイする命令(指示)を出す処理である。
まず、ステップS1601において、サービスデプロイメントプログラム622は、サービス管理プログラム522より、デプロイ対象サービスのサービスIDと対応するプロパティ、サービスタイプID、リソースID、グループIDを入力としてサービスデプロイ/プロキシ命令を受信する。
次に、ステップS1602において、サービスデプロイメントプログラム622は、ステップS1601で受信した命令の引数が適切か否かを判断する。具体的には、例えば、サービスデプロイメントプログラム622は、引数に、サービスID、リソースID、サービスタイプID、プロパティ、グループIDが指定されていれば適切と判断する。引数が適切なら、ステップS1603へ進む。引数が適切でないならば、ステップS1609へ進み、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS1603において、サービスデプロイメントプログラム622は、ステップS1601にて入力された引数のサービスタイプIDから、サービスタイプ表626を参照しながらデプロイ対象サービスのタイプを特定する。サービスのタイプが“product”(商材)である場合、ステップS1604に進む。サービスのタイプが“collector”(メトリクス収集)である場合、ステップS1610に進む。サービスの種類が不明である場合、ステップS1609に進み、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS1610では、Met.-SVが実際にやりとりするメトリクス収集先のアクセス情報を特定するために、サービスデプロイメントプログラム622は、ステップS1601で受信したサイトIDとプロパティ内のリソースID、メトリクス取得タイプを入力としてメトリクス取得先特定処理62202を実行する。
次に、ステップS1611では、サービスデプロイメントプログラム622は、S1610の実行結果のメトリクス収集先アクセス情報をプロパティに追加する。
次に、ステップS1604において、サービスデプロイメントプログラム622は、サービス実行基盤700のサービス管理プログラム722へ、サービスID、リソースID、ネームスペースID、プロパティを指定してサービス/プロキシデプロイ命令を送信する。ここでは、サービスID、リソースIDはステップS1601にて入力されたもの。ネームスペースIDはステップS1601にて入力されたグループIDに基づいたものを指定する。また、プロパティはステップS1601にて入力されたもの、もしくはそれにS1611にて追記されたものを指定する。命令送信後、サービスデプロイメントプログラム622は、既定のタイムアウト時間まで、命令のレスポンスを待つ。
次に、ステップS1605において、サービスデプロイメントプログラム622は、タイムアウト時間内にレスポンスがあったか否かを確認する。タイムアウト時間内にレスポンスがあったら、ステップS1606へ進む。タイムアウト時間内にレスポンスがなかったら、ステップS1609に進み、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS1606において、サービスデプロイメントプログラム622は、サービス管理プログラム722からのレスポンス内容を確認し、正常か否かを確認する。正常ならば、ステップS1607に進む。命令のエラーがあれば、ステップS1609へ進み、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS1607において、サービスデプロイメントプログラム622は、ステップS1604のサービス/プロキシデプロイ命令の結果を、サービスデプロイメント表624に追加する。
次に、ステップS1608において、サービスデプロイメントプログラム622は、ステップ306のサービスデプロイメント表624への追加処理が正常に完了したか否かを確認する。追加処理が正常に完了したら、ステップS1609へ進む。追加処理の結果、エラーが返ってきても、ステップS1609へ進む。ただし、ステップS1608の結果によって、ステップS1609で返る結果は異なる。例えば、エラーが返ってきた場合、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS1609において、サービスデプロイメントプログラム622は、サービス管理プログラム522に、サービス/プロキシデプロイメント処理が完了した結果を返し、処理を終了する。
<メトリクス取得先特定処理>
図17は、サービスデプロイメントマネージャ600のメトリクス取得先特定処理62202の一例を示すフローチャートである。
メトリクス取得先特定処理62202は、サービスマネージャ500から命令を受けたサービスデプロイメントプログラム622によって実行される処理であり、Met.-SVのアクセス先を特定するための処理である。
まず、ステップS1701において、サービスデプロイメントプログラム622は、サービス/プロキシデプロイメント処理62201内において、メトリクス収集対象サービスのリソースID、メトリクス取得サービスの取得タイプを入力として、メトリクス取得先特定命令を受け取る。
次に、ステップS1702において、ステップS1702で受信した命令の引数が適切か否かを判断する。具体的には、例えば、引数としてリソースID、取得タイプが指定を含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS1703へ進む。引数が適切でないと判断された場合は、ステップS1706へと進み、テンプレート管理プログラム322へ、エラー情報を返し、処理を終了する。
次に、ステップS1703において、サービスデプロイメントプログラム622は、ステップS1701において入力された取得タイプを確認する。
取得タイプがメトリックである場合、ステップS1704に進む。取得タイプがログである場合、S1705に進む。
次に、ステップS1704において、サービスデプロイメントプログラム622は、ステップS1701において入力されたリソースIDから、サービスデプロイメント表624を参照してメトリクス収集先サービスのエンドポイントを特定し、出力する。
次に、ステップS1705においては、サービスデプロイメントプログラム622は、ログ集積基盤表625を参照して、ログ集積基盤のエンドポイントを特定し、出力する。
次に、ステップS1706において、サービスデプロイメントプログラム622は、結果をサービス/プロキシデプロイメント処理62201に返し、処理を終了する。
<CM-SVアンデプロイメント処理>
図18は、テンプレートマネージャ300のCM-SVアンデプロイメント処理32205の一例を示すフローチャートである。
CM-SVアンデプロイメント処理32205は、利用者が選択したCM-SV、及びそれに付随するMet.-SV群をアンデプロイする指示を出す処理である。
まず、ステップS1801において、テンプレート管理プログラム322は、テンプレートマネージャGUIプログラム323により、利用者がアンデプロイを希望したCM-SVのリソースIDを引数として、CM-SVアンデプロイ命令を受信する。
次に、ステップS1802において、テンプレート管理プログラム322は、ステップS1801で受信した命令の引数が適切か否かを判断する。具体的には、例えば、デプロイ対象のCM-SVのリソースIDを含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS1803へ進む。引数が適切でないと判断された場合は、ステップS1807へと進み、テンプレートマネージャGUIプログラム323へ、エラー情報を返し、処理を終了する。
次に、ステップS1803において、テンプレート管理プログラム322は、ステップS1801にて入力されたリソースIDを指定して、サービスアンデプロイメント処理32206を呼び出す。
次に、ステップS1804において、テンプレート管理プログラム322は、ステップS1803において実行したサービスアンデプロイメント処理32206が正常に完了したか否かを確認する。正常に完了していた場合はS1805へ進む。正常に完了せずエラーが返ってきた場合はS1807へ進み、テンプレートマネージャGUIプログラム323へ、エラー情報を返し、処理を終了する。
次に、ステップS1805において、テンプレート管理プログラム322は、ステップS1801において入力されたリソースIDに関する行をデプロイメント済みCM-SV表328から削除する。
次に、ステップS1806において、テンプレート管理プログラム322は、ステップS1801にて入力されたリソースIDを指定して、Met.-SVのアンデプロイメント処理32207を呼び出す。
次に、ステップS1807において、テンプレート管理プログラム322は、ステップS1803にて実行したサービスアンデプロイメント処理32206及びステップS1806にて実行したMet.-SVアンデプロイメント処理32207の結果をテンプレートマネージャGUIプログラム323に返し、処理を終了する。
<Met.-SVアンデプロイメント処理>
図19は、テンプレートマネージャ300のMet.-SVアンデプロイメント処理32207の一例を示すフローチャートである。
Met.-SVアンデプロイメント処理32207は、利用者が選択したCM-SV、及びそれに付随するMet.-SV群をアンデプロイする指示を出す処理である。
まず、ステップS1901において、テンプレート管理プログラム322は、CM-SVアンデプロイメント処理32205内において、アンデプロイ対象Met.-SVが紐付いているサービスのリソースIDを入力としてMet.-SVアンデプロイ命令を受信する。
次に、ステップS1902において、テンプレート管理プログラム322は、ステップS1901で受信した命令の引数が適切か否かを判断する。具体的には、例えば、リソースIDを含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS1903へ進む。引数が適切でないと判断された場合は、ステップS1909へと進み、CM-SVアンデプロイメント処理32205にエラー情報を返し、処理を終了する。
次に、ステップS1903において、テンプレート管理プログラム322は、ステップS1901で受信した命令の引数に指定されているリソースIDから、デプロイメント済みMet.-SV表329を参照して、アンデプロイするべきMet.-SVの組み合わせを特定する。
次に、ステップS1904において、テンプレート管理プログラム322は、ステップS1903で特定したMet.-SV群のうちの1つに対してステップS1908までの処理を実行する。
次に、ステップS1905において、テンプレート管理プログラム322は、ステップS1903において選定したリソースIDを指定して、サービスアンデプロイメント処理32206を呼び出す。
次に、ステップS1906において、テンプレート管理プログラム322は、ステップS1905にて実行したサービスアンデプロイメント処理32206が正常に完了したか否かを確認する。正常に完了していた場合はS1907へ進む。正常に完了せずエラーが返ってきた場合はS1909へ進み、CM-SVアンデプロイメント処理32205にエラー情報を返し、処理を終了する。
次に、ステップS1907において、テンプレート管理プログラム322は、ステップS1903において選定したリソースIDに関する行をデプロイメント済みMet.-SV表329から削除する。
次に、ステップS1908において、テンプレート管理プログラム322は、ステップS1904から開始した処理を終了する。ステップS1903にて特定されたすべてのMet.-SVに対して処理が終了していないものがあるなら、ステップS1904に戻る。
次に、ステップS1909において、テンプレート管理プログラム322は、ステップS1905にて実行したサービスアンデプロイメント処理32206の結果をまとめてCM-SVアンデプロイメント処理32205に返し、処理を終了する。
<サービスアンデプロイメント処理>
図20は、テンプレートマネージャ300のサービスアンデプロイメント処理32206の一例を示すフローチャートである。
サービスデプロイメント処理は、CM-SVやMet.-SVをアンデプロイする指示を出す処理である。
まず、ステップS2001において、テンプレート管理プログラム322は、CM-SVアンデプロイメント処理32205内もしくはMet.-SVアンデプロイメント処理32207内において、アンデプロイ対象サービスのリソースIDを入力としてサービスアンデプロイメント処理命令を受信する。
次に、ステップS2002において、テンプレート管理プログラム322は、ステップS2001で受信した命令の引数が適切か否かを判断する。具体的には、例えば、デプロイ対象サービスのリソースIDが含まれていれば適切と判断する。引数が適切でないと判断された場合は、ステップS2006へと進み、呼び出し元であるCM-SVアンデプロイメント処理32205内もしくはMet.-SVアンデプロイメント処理32207にエラー情報を返し、処理を終了する。
次に、ステップS2003において、テンプレート管理プログラム322は、ステップS2001にて入力されたリソースIDから、デプロイメント済みCM-SV表328及びデプロイメント済みMet.-SV表329を参照して、アンデプロイ対象サービスがデプロイされているサイトIDを特定する。
次に、ステップS2004において、テンプレート管理プログラム322は、サービスマネージャ500のサービス管理プログラム522へ、サービスアンデプロイ命令を送信する。命令の引数には、ステップS2001にて入力されたリソースID、ステップS2003にて特定されたサイトIDを指定する。ここでは、命令送信後、テンプレート管理プログラム322は、既定のタイムアウト時間まで、命令のレスポンスを待つ。
次に、ステップS2005において、テンプレート管理プログラム322は、タイムアウト時間内にレスポンスがあったか否かを確認する。タイムアウト時間内にレスポンスがあったら、ステップS2006に進む。タイムアウト時間内にレスポンスがなくても、ステップS2006に進む。ただし、ステップS2005の結果によって、ステップS2006で返る結果は異なる。例えば、タイムアウト時間内にレスポンスがなかった場合、テンプレート管理プログラム322は、呼び出し元であるCM-SVアンデプロイメント処理32205内もしくはMet.-SVアンデプロイメント処理32207にエラー情報を返し、処理を終了する。
次に、ステップS2006において、テンプレート管理プログラム322は、ステップS2004が完了した結果を、呼び出し元であるCM-SVアンデプロイメント処理32205内もしくはMet.-SVアンデプロイメント処理32207にサービスアンデプロイメント処理が完了した結果を返し、処理を終了する。
<サービスアンデプロイメント処理>
図21は、サービスマネージャ500のサービスアンデプロイメント処理52202の一例を示すフローチャートである。
サービスアンデプロイメント処理52202は、テンプレートマネージャ300から命令を受けたサービスマネージャ500のサービス管理プログラム522によって実行される処理であり、CM-SVやMet.-SVをアンデプロイする指示を出す処理である。
まず、ステップS2101において、サービス管理プログラム522は、テンプレート管理プログラム322により、アンデプロイ対象サービスのリソースID、アンデプロイ対象サービスがデプロイされているサイトのサイトIDを入力としてサービスアンデプロイ命令を受信する。
次に、ステップS2102において、サービス管理プログラム522は、ステップS2101で受信した命令の引数が適切か否かを判断する。具体的には、例えば、リソースID、サイトIDを含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS2103へ進む。引数が適切でないと判断された場合は、ステップS2108へと進み、テンプレート管理プログラム322へ、エラー情報を返し、処理を終了する。
次に、ステップS2103において、サービス管理プログラム522は、ステップS2101で受信した命令の引数であるサイトIDと、サービスデプロイメントマネージャ表526より、サービスデプロイメントマネージャIDを特定する。サービスデプロイメントマネージャIDを特定できたら、ステップS2104へ進む。サービスデプロイメントマネージャIDを特定できなかったら、ステップS2108へ進み、サービス管理プログラム522は、テンプレート管理プログラム322にエラー情報を返し、処理を終了する。
次に、ステップS2104において、サービス管理プログラム522は、特定したサービスデプロイメントマネージャIDのサービスデプロイメントマネージャ600A又は600Bのサービスデプロイメントプログラム622へ、ステップS2101にて入力されたリソースIDを指定して、サービス/プロキシデプロイ命令を送信する。命令送信後、サービス管理プログラム522は、既定のタイムアウト時間まで、命令のレスポンスを待つ。
次に、ステップS2105において、サービス管理プログラム522は、タイムアウト時間内にレスポンスがあったか否かを確認する。タイムアウト時間内にレスポンスがあったら、ステップS2106に進む。タイムアウト時間内にレスポンスがなかったら、ステップS2108に進み、サービス管理プログラム522は、テンプレート管理プログラム322にエラー情報を返し、処理を終了する。
次に、ステップS2106において、サービス管理プログラム522は、サービスデプロイメントプログラム622からのレスポンス内容を確認し、正常か否かを確認する。正常ならば、ステップS2107に進む。命令のエラーがあれば、ステップS2108へ進み、サービス管理プログラム522は、テンプレート管理プログラム322にエラー情報を返し、処理を終了する。
次に、ステップS2107において、サービス管理プログラム522は、サービスデプロイメントマネージャIDのサービスデプロイメントマネージャ600がローカル(つまり700A)か否かを確認する。サービスデプロイメントマネージャ600がローカルなら、ステップS2108へ進む。サービスデプロイメントマネージャ600がローカルでないなら、リモートのサイトにプロキシをアンデプロイするためにステップS2104へ戻る。
次に、ステップS2108において、サービス管理プログラム522は、テンプレート管理プログラム322へ、サービスデプロイメント処理の結果を返し、処理を終了する。
<サービス/プロキシアンデプロイメント処理>
図22は、サービスデプロイメントマネージャ600のサービス/プロキシアンデプロイメント処理62203の一例を示すフローチャートである。
まず、ステップS2201において、サービスデプロイメントプログラム622は、サービス管理プログラム522より、サービスデプロイ/プロキシアンデプロイ命令を受信する。
次に、ステップS2202において、サービスデプロイメントプログラム622は、ステップS2201で受信した命令の引数が適切か否かを判断する。具体的には、例えば、サービスデプロイメントプログラム622は、引数に、リソースIDが指定されていれば適切と判断する。引数が適切なら、ステップS2203へ進む。引数が適切でないならば、ステップS2208へ進み、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS2203において、サービスデプロイメントプログラム622は、サービス実行基盤700のサービス管理プログラム722へ、サービス/プロキシアンデプロイ命令を送信する。命令送信後、サービスデプロイメントプログラム622は、既定のタイムアウト時間まで、命令のレスポンスを待つ。
次に、ステップS2204において、サービスデプロイメントプログラム622は、タイムアウト時間内にレスポンスがあったか否かを確認する。タイムアウト時間内にレスポンスがあったら、ステップS2205へ進む。タイムアウト時間内にレスポンスがなかったら、ステップS2208に進み、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS2205において、サービスデプロイメントプログラム622は、サービス管理プログラム722からのレスポンス内容を確認し、正常か否かを確認する。正常ならば、ステップS2206に進む。命令のエラーがあれば、ステップS2208へ進み、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS2206において、サービスデプロイメントプログラム622は、ステップS1604のサービス/プロキシデプロイ命令でデプロイしたサービス/プロキシに関するレコードを、サービスデプロイメント表624より削除する。
次に、ステップS2207において、サービスデプロイメントプログラム622は、ステップS2206のサービスデプロイメント表624のレコード削除処理が正常に完了したか否かを確認する。削除処理が正常に完了したら、ステップS2208へ進む。削除処理の結果、エラーが返ってきても、ステップS2208へ進む。ただし、ステップS2207の結果によって、ステップS2208で返る結果は異なる。例えば、エラーが返ってきた場合、サービスデプロイメントプログラム622は、サービス管理プログラム522にエラー情報を返し、処理を終了する。
次に、ステップS2208において、サービスデプロイメントプログラム622は、サービス管理プログラム522に、サービス/プロキシアンデプロイメント処理62203が完了した結果を返し、処理を終了する。
<プラン変更処理>
図23は、テンプレートマネージャ300のプラン変更処理32208の一例を示すフローチャートである。
プラン変更処理32208は、デプロイメント済みCM-SVのプラン変更に伴うMet.-SVの再構築を指示する処理である。
まず、ステップS2301において、テンプレート管理プログラム322は、テンプレートマネージャGUIプログラム323により、利用者がプラン変更を希望したデプロイメント済みCM-SVのリソースIDと変更後プランのプランIDを引数として、プラン変更命令を受信する。
次に、ステップS2302において、テンプレート管理プログラム322は、ステップS2301で受信した命令の引数が適切か否かを判断する。具体的には、例えば、リソースIDとプランIDを含んでいれば適切と判断する。引数が適切と判断された場合は、ステップS2303へ進む。引数が適切でないと判断された場合は、ステップS2308へと進み、テンプレートマネージャGUIプログラム323へ、エラー情報を返し、処理を終了する。
次に、ステップS2303において、テンプレート管理プログラム322は、ステップS2301にて入力されたリソースIDを指定して、Met.-SVアンデプロイメント処理32207を呼び出す。
次に、ステップS2304において、テンプレート管理プログラム322は、ステップS2303において実行したMet.-SVアンデプロイメント処理32207が正常に完了したか否かを確認する。正常に完了していた場合はS2304へ進む。正常に完了せずエラーが返ってきた場合はS2308へ進み、テンプレートマネージャGUIプログラム323へ、エラー情報を返し、処理を終了する。
次に、ステップS2305において、テンプレート管理プログラム322は、ステップS2301で受信したリソースIDとプランIDを指定して、Met.-SVデプロイメント処理32204を呼び出す。
次に、ステップS2306において、テンプレート管理プログラム322は、ステップS2305において実行したMet.-SVデプロイメント処理32204が正常に完了したか否かを確認する。正常に完了していた場合はS2304へ進む。正常に完了せずエラーが返ってきた場合はS2308へ進み、テンプレートマネージャGUIプログラム323へ、エラー情報を返し、処理を終了する。
次に、ステップS2307において、テンプレート管理プログラム322は、ステップS2301にて入力されたリソースIDに関する行のプランIDを、ステップS2301にて入力されたプランIDに更新する。
次に、ステップS2308において、テンプレート管理プログラム322は、プラン変更処理が完了した結果をテンプレートマネージャGUIプログラム323に返し、処理を終了する。
以上、一実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。例えば、以下のような一変形例が考えられる。
<ビジュアルプログラミングツールを用いたケースのGUI>
図24は、テンプレートマネージャと連携したビジュアルプログラミングツールのGUIの一例である。
ビジュアルプログラミングツール(例えばNode-RED(https://nodered.org/))を利用してユーザ101が直感的にシステム構成を把握しながらパラメータなどの設定値を入力することができる。
デプロイメント済みシステム画面2401は、デプロイメント済みシステム画面302と同じく、システムテンプレート構成画面を通じてデプロイしたシステムの説明と、システムを構成しているCM-SVの一覧と設定を確認し、サービスの追加もしくは削除、サービスの設定変更を指示することができる。
デプロイメント済みシステム画面2401は、テンプレートマネージャGUIプログラム323によって提供され、追加可能なサービスを表示しているUI240101と、システムを構成しているサービスの接続関係を表す編集画面240102と、システムを構成しているサービスを表すノード240103と、システムを構成しているサービスの設定を編集するプロパティ画面240104と、入力破棄UI240105と、構成変更指示UI240106から構成される。
例えば、ユーザ101が、デプロイメント済みのシステムに新たにCM-SV4を追加してCM-SV2と接続するときには、パレット240102からCM-SV4のノードを編集画面240102にドラッグ&ドロップすることでノードを配置し、配置したCM-SV4のノードと既に配置されているCM-SV2のノードを線でつなぐ。
さらに、さらに、ユーザ101が構成変更指示UI240105をクリックすると、テンプレート管理プログラム322のCM-SVデプロイメント処理32201が呼び出された後、デプロイメント済みCM-SV表328が更新される。
もしくは、ユーザ101が構成変更指示UI240105をクリックする前に、入力破棄UI240106をクリックすると、編集画面240102にて加えた変更内容をすべて破棄し、呼び出し元の画面に戻ることができる。
例えば、ユーザ101は、配置済みであるCM-SV2のノードをクリックすることで、プロパティ画面240104を呼び出して、既に設定しているプランやパラメータを変更することができる。
その場合、設定変更後に、ユーザ101が構成変更指示UI240105をクリックすると、テンプレート管理プログラム322のCM-SVアンデプロイメント処理32205及びCM-SVデプロイメント処理32201が呼び出された後、デプロイメント済みCM-SV表328が更新される。
もしくは、ユーザ101が構成変更指示UI240105をクリックする前に、入力破棄UI240106をクリックすると、編集画面240102にて加えた変更内容をすべて破棄し、呼び出し元の画面に戻ることができる。
このように、一変形例によれば、サービスシステムは、それぞれがアプリケーションサービスに関連付けられている複数のノードと当該複数のノードにおける各ノード間の結線とで表現されたアプリケーションソフトウェアフローでよい。なお、ビジュアルプログラミングツールは、「モデル開発環境」と呼ばれてもよい。ソフトウェアの構成要素や処理単位がノードであり、ノード同士の結線は「エッジ」と呼ばれてもよい。ノードとエッジは有向グラフにおける用語であり、Node-REDにおけるフローダイアグラムも有向グラフとして捉えることができる。本明細書において、フローダイアグラムとブロックダイアグラムと有向グラフは同義とし、フローダイアグラムは単に「フロー」と呼ぶことができ、「フロー」と「グラフ」は同義とできる。