(58)【調査した分野】(Int.Cl.,DB名)
ソフトウェア構成が同じサーバをまとめた構成グループの情報を記憶したサーバ構成テーブルと、提供するサービスごとに前記構成グループをまとめた環境グループの情報を記憶した環境構成テーブルと、前記構成グループごとにインストールされたソフトウェアの情報を記憶したソフトウェア構成テーブルと、前記ソフトウェアの依存関係を記憶した依存ソフトウェア条件テーブルを有する工事順序決定装置によって実行される工事順序決定方法であって、
工事対象の前記環境グループごとに、前記構成グループにインストールされた前記ソフトウェアの依存関係に基づいて前記環境グループ内での前記構成グループの工事順序を決定するステップと、
工事対象の前記環境グループに属する全ての前記構成グループを前記工事順序に従って整列し、前記構成グループごとに、当該構成グループ内の前記サーバの起動条件に基づいて、前記サーバの工事順序を決定するステップと、
前記サーバごとに、前記ソフトウェアの工事順序を決定するステップと、
を有することを特徴とする工事順序決定方法。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について図面を用いて説明する。
【0013】
図1は、本実施形態の工事順序決定装置1により工事順序を決定するシステムの全体構成図である。同図に示すシステムは、サービスXを提供するサーバ群とサービスYを提供するサーバ群で構成される。サービスXを提供するサーバ群は、DBサーバX−A,X−S、WebサーバX−1,X−2,X−3、及びロードバランサXを含む。サービスYを提供するサーバ群は、DBサーバY−A,Y−S、WebサーバY−1,Y−2、及びロードバランサYを含む。また、サービスX,Yのサーバを監視する監視サーバXYが含まれる。
【0014】
[工事順序決定装置の構成]
図2は、本実施形態の工事順序決定装置1の構成を示す機能ブロック図である。本工事順序決定装置1は、工事手順書を入力し、決定した工事順序を表示するユーザインタフェース11、工事手順書と工事対象システムのサーバ構成やソフトウェア構成に基づいて工事順序を決定する制御部12、及び工事対象システムのサーバ構成やソフトウェア構成などの各種情報を保持する記憶部13を備える。工事順序決定装置1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは工事順序決定装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。以下、工事順序決定装置1が備える各部について説明する。
【0015】
ユーザインタフェース11は、工事手順書入力機能111、設定機能112、及び工事順序表示機能113を有する。工事手順書入力機能111は、工事担当から工事手順書を入力する。工事手順書入力機能111は、複数の工事手順書を入力してもよい。設定機能112は、工事手順を決定する際に必要な設定を入力する。例えば、工事対象とするサービスの情報を入力する。工事順序表示機能113は、制御部12が決定した工事順序を表示する。
【0016】
制御部12は、情報収集機能121及び工事順序判定機能122を有する。情報収集機能121は、ユーザインタフェース11から工事手順書を受信する。また、情報収集機能121は、工事対象システムの各サーバから必要な情報を受信する。工事順序判定機能122は、工事手順書と記憶部13に記憶された各種情報に基づき、工事対象システムに含まれるサーバの工事手順を決定する。
【0017】
記憶部13は、環境構成テーブル131、サーバ構成テーブル132、ソフトウェア構成テーブル133、及び依存ソフトウェア条件テーブル134を有する。
【0018】
環境構成テーブル131は、工事対象システムの提供するサービスごとのサーバ群の情報を保持する。
図3に、環境構成テーブル131の例を示す。
図3に示す環境構成テーブル131は、環境、環境グループ、構成グループ、及びサービスの項目を保持する。
【0019】
環境グループは、提供するサービスごとにサーバ群(構成グループ)をまとめたものであり、ソフトウェア依存関係が適用される一連のグループである。構成グループは、ソフトウェア構成が同じサーバをまとめたグループである。本実施形態では、ソフトウェア構成が同じサーバを構成グループとしてまとめておき、環境グループごとに、構成グループの工事順序をソフトウェア依存関係に基づいて策定した後、構成グループごとに、サーバの起動条件に基づき、構成グループ内のサーバの工事順序を策定する。
【0020】
サーバ構成テーブル132は、構成グループに含まれるサーバを管理するテーブルである。
図4に、サーバ構成テーブル132の例を示す。
図4に示すサーバ構成テーブル132は、構成グループ、サーバ、クラスタ構成、クラスタ構成稼働/非稼働、分散稼働、及び分散稼働作業順位の項目を保持する。
【0021】
サーバの項目には、各構成グループに属するサーバの情報が記憶される。例えば、
図4の例では、Webサーバ_X群の構成グループは、Webサーバ_X−1、Webサーバ_X−2、及びWebサーバ_X−3の3つのサーバで構成される。この3つのサーバのいずれにも同じソフトウェアがインストールされている。
【0022】
サーバ構成テーブル132は、サーバの起動条件として、クラスタ構成や分散稼働の情報を保持する。具体的には、クラスタ構成及びクラスタ構成稼働/非稼働の項目には、クラスタ構成であるか否か、及び稼働系か待機系かの情報が記憶される。分散稼働及び分散稼働作業順位の項目には、分散稼働するサーバであるか否か、及び分散稼働するサーバ内での作業順位が記憶される。このサーバの起動条件は、構成グループ内のサーバの工事順序を策定するために用いられる。
【0023】
ソフトウェア構成テーブル133は、構成グループにインストールされているソフトウェアを管理するテーブルである。
図5に、ソフトウェア構成テーブル133の例を示す。
図5に示すソフトウェア構成テーブル133は、構成グループ、ソフトウェア、バージョン、及びサーバ内順序の項目を保持する。
図5の例では、Webサーバ_X群には、Linux(登録商標)、Apache、Tomcat、Zabbix Agentがインストールされている。つまり、Webサーバ_X−1、Webサーバ_X−2、及びWebサーバ_X−3には上記のソフトウェアがインストールされている。サーバ内順序は、構成グループにおけるソフトウェアの更新順序を示す。
【0024】
依存ソフトウェア条件テーブル134は、ソフトウェア間の依存関係を定義する。
図6に、依存ソフトウェア条件テーブル134の例を示す。
図6の例では、Tomcat及びPostgreSQLは、Apacheを前提として動作し、Zabbix AgentはZabbix Serverを前提として動作することが示されている。
【0025】
[工事順序決定装置の動作]
次に、本実施形態の工事順序決定装置1の動作について説明する。
【0026】
図7は、本実施形態の工事順序決定装置1の処理の流れを示すシーケンス図である。
【0027】
工事担当が、ユーザインタフェース11を介して工事対象環境の選定及び工事手順書の投入を行う(ステップS11,S12)。
【0028】
制御部12は、環境構成テーブル131を参照し、環境グループごとに、構成グループの情報を取得する(ステップS13)。
【0029】
制御部12は、ソフトウェア構成テーブル133を参照し、各構成グループにインストールされているソフトウェアの情報を取得する(ステップS14)。
【0030】
制御部12は、依存ソフトウェア条件テーブル134を参照し、ソフトウェア依存関係を取得する(ステップS15)。
【0031】
そして、制御部12は、ステップS13〜S15で取得した情報をもとに、環境グループごとに、構成グループの工事順序を策定する(ステップS16)。構成グループの工事順序の策定の詳細については後述する。
【0032】
環境グループごとに、構成グループの工事順序を策定した後、制御部12は、サーバ構成テーブル132を参照し、各構成グループのサーバの情報を取得する(ステップS17)。
【0033】
制御部12は、ソフトウェア構成テーブル133を参照し、各サーバにインストールされているソフトウェアの情報を取得する(ステップS18)。
【0034】
そして、制御部12は、ステップS16で策定した構成グループの工事順序とステップS17,S18で取得した情報をもとに、各サーバについてソフトウェアの工事順序を策定し(ステップS19)、サーバの工事順序及びソフトウェアの工事順序を確定する(ステップS20)。ソフトウェアの工事順序の策定の詳細については後述する。
【0035】
工事担当は、工事順序決定装置1の決定した工事順序を確認する(ステップS21)。
【0036】
次に、本実施形態の工事順序決定装置1が工事順序を決定する処理を具体例を用いて説明する。ここでは
図3〜6に示したデータが記憶部13に記憶されているとする。
【0037】
図8は、本実施形態の工事順序決定装置1が構成グループの工事順序を策定する処理の流れを示すフローチャートである。
【0038】
まず、工事担当が工事条件を工事順序決定装置1に入力する(ステップS31)。例えば、
図9に示す工事条件を入力する。具体的には、商用環境のサービスX,Yを工事対象とし、Linux(工事1)、Zabbix ServerとZabbix Agent(工事2)、及びPostgreSQLとApache(工事3)を更新する指示を記載した工事手順書を入力する。
【0039】
工事順序決定装置1は、工事対象の環境グループを特定し、環境構成テーブル131を参照して環境グループのそれぞれの構成グループを抽出する(ステップS32)。工事対象の環境グループは、商用環境_サービスXと商用環境_サービスYである。
図3の環境構成テーブル131を参照すると、商用環境_サービスXの構成グループは、Webサーバ_X群、DBサーバ_X群、及び監視サーバ_XY群であり、商用環境_サービスYの構成グループは、Webサーバ_Y群、DBサーバ_Y群、及び監視サーバ_XY群である。
【0040】
工事順序決定装置1は、ソフトウェア構成テーブル133を参照し、ステップS32で得た構成グループ内の工事対象ソフトウェアを抽出する(ステップS33)。
図10に、工事対象の商用環境_サービスXと商用環境_サービスYについて、構成グループ内の工事対象ソフトウェアを抽出した結果を示す。例えば、
図10の例では、Webサーバ_X群では、Linux、Apache、及びZabbix Agentが抽出されている。
図5のソフトウェア構成テーブル133を見ると、Webサーバ_X群には、Tomcatもインストールされているが、Tomcatは今回の工事対象ではないので、ステップS33では抽出されない。
【0041】
工事順序決定装置1は、依存ソフトウェア条件テーブル134を参照し、構成グループの工事順序を決定する(ステップS34)。
【0042】
ここで、ステップS34の、ソフトウェアの依存関係に基づいて構成グループの工事順序を決定する処理について説明する。
図11は、ソフトウェアの依存関係に基づいて構成グループの工事順序を決定する処理の流れを示すフローチャートである。
【0043】
工事順序決定装置1は、依存ソフトウェア条件テーブル134を参照し、各構成グループの工事対象ソフトウェア間の前提条件と後続条件を調べる(ステップS41)。
図12に、工事対象ソフトウェアの前提条件と後続条件の調査結果を示す。例えば、
図12の例では、Webサーバ_X群の前提条件はZabbix Serverであり、後続条件はPostgreSQLである。DBサーバ_X群の前提条件はApacheとZabbix Serverであり、後続条件は無い。監視サーバ_XY群の前提条件は無く、後続条件はZabbix Agentである。
【0044】
工事順序決定装置1は、ステップS41の調査結果をもとに、前提条件の有無、後続条件の有無に基づいて各構成グループの順位を決定する(ステップS42)。具体的には、
図11内の表のように、前提条件なし、後続条件なしの構成グループは「単独可能」、前提条件なし、後続条件ありの構成グループは「先頭」、前提条件あり、後続条件なしの構成グループは「最終」、前提条件あり、後続条件ありの構成グループは「順位未定」に分類する。そして、「単独可能」と「先頭」に分類された構成グループの順位を高く(先に工事されるように)設定し、「最終」に分類された構成グループの順位を低く(後で工事されるように)設定する。なお、構成グループの順位は、環境グループごとに設定される。
【0045】
図12の例では、商用環境_サービスXの環境グループについて、Webサーバ_X群は、前提条件あり、後続条件ありなので「順位未定」に分類され、DBサーバ_X群は、前提条件あり、後続条件なしなので「最終」に分類され、監視サーバ_XY群は、前提条件なし、後続条件ありなので「先頭」に分類される。
図13に構成グループを分類した結果を示す。
図13では、Webサーバ_X群とDBサーバ_X群は「順位未定」に分類され、監視サーバ_XY群は「先頭」に分類されている。なお、DBサーバ_X群の後続条件はなしであるから
図12内の表を用いると「最終」に分類されるが、ここでは、2回目の分類を説明するために「順位未定」と分類している。このように、前提条件の有無だけで構成グループの順位を設定してもよい。具体的には、前提条件なしの構成グループの順位を高く設定し、前提条件ありの構成グループは「順位未定」と分類する。
【0046】
続いて、工事順序決定装置1は、順位が確定した構成グループのソフトウェアが前提条件となっている調査結果を前提条件無しに変更する(ステップS43)。
図12の例では、監視サーバ_XY群の順位が確定したので、監視サーバ_XY群のZabbix Serverを前提条件としている箇所を前提条件無しに変更する。
図14に前提条件の変更結果を示す。
図14の例では、Webサーバ_X群とWebサーバ_Y群の前提条件が無しに変更されている。
【0047】
工事順序決定装置1は、順位未定の構成グループがなくなるまでステップS42,S43の処理を繰り返す(ステップS44)。
【0048】
本実施例では、商用環境_サービスXの環境グループでは、1回目の分類が終わった時点で、Webサーバ_X群とDBサーバ_X群が順位未定である。ステップS43でWebサーバ_X群とDBサーバ_X群の前提条件は更新されて、Webサーバ_X群は、前提条件なし、後続条件ありとなる。その結果、Webサーバ_X群は、2回目の分類処理で「先頭」に分類される。
図15に、上記の処理で決定した本実施例の構成グループの順位を示す。
【0049】
次に、構成グループの各サーバ及び各ソフトウェアの工事順序の策定について説明する。
【0050】
これまでの処理により、環境グループごとに、構成グループの工事順序が策定されている。以降の処理では、工事対象の環境グループを合わせて、サーバの工事順序とソフトウェアの工事順序を策定する。
【0051】
図16は、構成グループの各サーバ及び各ソフトウェアの工事順序の策定する処理の流れを示すフローチャートである。
【0052】
工事順序決定装置1は、工事対象の環境グループの全ての構成グループを順位に基づいて整列させる(ステップS51)。
図17,18に、各構成グループの順位に従って構成グループを整列させたようすを示す。構成グループの順位が同じ場合は、並行して作業できる。
【0053】
なお、環境グループ間に順位を設定し、環境グループの順位を考慮して構成グループの全体順位を決めてもよい。例えば、商用環境_サービスXの順位が商用環境_サービスYの順位よりも高く設定されていた場合、商用環境_サービスXの構成グループの後に商用環境_サービスYの構成グループを整列させる。
【0054】
続いて、工事順序決定装置1は、サーバ構成テーブル132を参照し、構成グループに属するサーバの起動条件を取得して、各構成グループ内でのサーバの順位を策定する(ステップS52)。
図19に、ステップS52で策定した各構成グループのサーバとサーバの順位を示す。本実施形態では、分散稼働するサーバの順位は、分散稼働作業順位が最後のサーバ以外を同じとし、最後のサーバを最後にする。また、クラスタ構成のサーバの順位は、待機→稼働の順とする。具体的には、Webサーバ_X群は、分散稼働するWebサーバ_X−1、Webサーバ_X−2、Webサーバ_X−3で構成される。Webサーバ_X−3の分散稼働作業順位は最後であるから、Webサーバ_X−1とWebサーバ_X−2の順位を同じ1位とし、Webサーバ_X−3の順位を2位とする。また、DBサーバ_X群は、待機系のDBサーバ_X−Sと稼働系のDBサーバ_X−Aのクラスタ構成である。この場合、DBサーバ_X−S,DBサーバ_X−Aの順に順位をつける。
【0055】
続いて、工事順序決定装置1は、ソフトウェア構成テーブル133を参照し、各構成グループの工事対象ソフトウェアを各サーバに展開して、ソフトウェアのサーバ内順序に従ってソフトウェアの順位を策定する(ステップS53)。
図20に、サーバ内順序に従って工事対象ソフトウェアを各サーバに展開した様子を示す。
【0056】
工事順序決定装置1は、サーバごとに、工事対象ソフトウェアの工事順序を表示する(ステップS54)。
図21に、工事順序決定装置1が策定した工事順序の例を示す。構成グループ順位と構成グループ内サーバ順位が同じサーバは、並行して作業ができる。具体的には、Webサーバ_X−1、Webサーバ_X−2、及びWebサーバ_Y−1のいずれも構成グループ順位が2で、構成グループ内サーバ順位が1なので、並行して作業ができる。また、
図21によると、Webサーバ_X−1とWebサーバ_X−2の作業後は、後続のWebサーバ_X−3の作業ができ、Webサーバ_Y−1の作業後は、後続のWebサーバ_Y−2の作業ができることがわかる。
【0057】
以上説明したように、本実施の形態によれば、ソフトウェア構成が同じサーバをまとめた構成グループの情報を記憶したサーバ構成テーブル132と、提供するサービスごとに構成グループをまとめた環境グループの情報を記憶した環境構成テーブル131と、構成グループごとにインストールされたソフトウェアの情報を記憶したソフトウェア構成テーブル133と、ソフトウェアの依存関係を記憶した依存ソフトウェア条件テーブル134を有し、工事対象の環境グループごとに、各構成グループにインストールされた工事対象ソフトウェアの依存関係に基づいて構成グループの工事順序を策定し、工事対象の環境グループに属する全ての構成グループを策定した工事順序に従って整列し、構成グループごとに、構成グループを構成するサーバをサーバの起動条件に基づいて工事順序を策定し、サーバごとに、サーバにインストールされた工事対象ソフトウェアの工事順序を策定することにより、複数の工事が存在する場合であっても、サーバ単位で適切な工事順序を決定することができ、ソフトウェアの更新に際して、保守者の作業負担の軽減及び工事期間の短縮が期待できる。その結果、脆弱性への即時対応によるセキュリティインシデント発生確率の低減に伴うビジネス損失の軽減、及び早期サービスの提供を可能とする。
【解決手段】ソフトウェア構成が同じサーバをまとめた構成グループの情報を記憶したサーバ構成テーブル132と、提供するサービスごとに構成グループをまとめた環境グループの情報を記憶した環境構成テーブル131と、構成グループごとにインストールされたソフトウェアの情報を記憶したソフトウェア構成テーブル133と、ソフトウェアの依存関係を記憶した依存ソフトウェア条件テーブル134を有し、工事対象の環境グループごとに、各構成グループにインストールされた工事対象ソフトウェアの依存関係に基づいて構成グループの工事順序を策定し、工事対象の環境グループに属する全ての構成グループを策定した工事順序に従って整列し、構成グループごとに、起動条件に基づいてサーバの工事順序を策定し、サーバごとに、工事対象ソフトウェアの工事順序を策定する。