JP6678813B2 - クラウド管理システム、及びクラウド管理方法 - Google Patents

クラウド管理システム、及びクラウド管理方法 Download PDF

Info

Publication number
JP6678813B2
JP6678813B2 JP2019508395A JP2019508395A JP6678813B2 JP 6678813 B2 JP6678813 B2 JP 6678813B2 JP 2019508395 A JP2019508395 A JP 2019508395A JP 2019508395 A JP2019508395 A JP 2019508395A JP 6678813 B2 JP6678813 B2 JP 6678813B2
Authority
JP
Japan
Prior art keywords
information
evaluation
software
tool
project
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.)
Active
Application number
JP2019508395A
Other languages
English (en)
Other versions
JPWO2018179101A1 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2018179101A1 publication Critical patent/JPWO2018179101A1/ja
Application granted granted Critical
Publication of JP6678813B2 publication Critical patent/JP6678813B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Description

本発明は、計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理するクラウド管理システム等に関する。
仮想サーバ(VM)、開発環境または実行環境、ソフトウェア等のITリソースをネットワーク経由でサービスとして提供するクラウドサービス(以下クラウド)が近年、急激な広まりを見せている。
クラウドを提供形態で分類すると、仮想サーバ等を提供するIaaS(Infrastructure as a Service)、開発環境または実行環境を提供するPaaS(Platform as a Service)、ソフトウェアを提供するSaaS(Software as a Service)、等がある。
例えば、PaaSでは、PaaSを提供する事業者は、クラウドの利用者からの要求があった場合には、利用者専用の環境(インスタンス等とも呼ばれる)と、その環境に接続するためのアクセス経路とを設定し、利用者に通知する。通知を受けた利用者は、HTTP(Hypertext Transfer Protocol)やHTTPS(Hypertext Transfer Protocol Secure)、またはSSH(Secure Shell)等のプロトコルを用いて、通知されたアクセス経路を介して、事業者が提供する環境に接続することにより、その環境を利用することができる。このようなクラウドを利用することで、利用者は必要なときに必要なだけのITリソースを利用することができるとともに、環境準備のために要する時間を削減できる。
一方、近年、新しいソフトウェア開発手法であるアジャイル開発やDevOpsが注目を集めている。これらのソフトウェア開発手法では、従来のウォーターフォール型の開発とは異なり、少人数のソフトウェアの開発者が密に連携し、開発・テスト・リリース(バージョンアップ)を短期間で繰り返すことが行われる。これら開発手法は、開発するソフトウェアへのニーズに対して、早く答えられるようにすることを目的としている。
このような新しいソフトウェアの開発手法では、しばしばPaaSが用いられる。PaaSを用いることにより、利用者である開発者は、環境の準備に時間を割かれることなく開発に集中できる。また、開発状況の変化に合わせて、開発支援のためのツール(ツールソフトウェア)を柔軟に組み合わせて利用することもできる。
PaaSを用いてソフトウェアを開発する場合、開発チームの単位(グループ、例えば、プロジェクト、テナント等と呼ばれることもある。)に対して、開発環境や実行環境が準備される。ここで開発環境とは、例えば、プロジェクト内のコミュニケーションを潤滑にするチャットや、プロジェクトの進捗・課題等を管理するプロジェクト管理を行うための開発支援ツールのインスタンスや、Java(登録商標)やPythonといった開発言語のインスタンスがインストールされている環境のことを指す。なお、以下においては、開発支援するツール自体を指す場合をツールといい、或るプロジェクト用にインストールされているツールのことをインスタンスというように区別して用いる場合がある。
プロジェクトに属する開発者(利用者)は、PaaSで利用可能なツール(インスタンス)の一覧(カタログという)から、プロジェクトの開発に必要なツールを選択することによりプロジェクト用の開発環境を構築することができ、構築した開発環境を利用することにより実際の開発を行うことができる。
このように構築される開発環境では、例えば、開発が効率的に行われているか否かを測るためにKPI(Key Performance Indicator)が計測される。KPIとしては、例えば、開発の活発性やスピードの指標となるソースコードの追加・修正回数(コミット数)や、コミュニケーションの活発性の指標となるチャットの投稿数等がある。このようなKPIによると、開発者は開発が効率的に行われているか否かを把握することができる。
このようなKPIは、利用しているツールに依存する場合が多々ある。これは、ツール毎に、対象とする用途や、親和性の高いツールや低いツールが異なっている場合があるからである。このため、プロジェクトにおいて使用するツールとして、適切なツールが選択されていない場合には、開発効率が十分に上がらなかったり、開発効率を阻害してしまったりしてしまう可能性がある。
例えば、ソースコードを管理するツールとしては、Github(登録商標)やGitlab(登録商標)と呼ばれるものが知られている。Gitlabは、開発プロセスを管理する機能を備えている一方、Githubは、この機能を備えていない。このため、Githubを用いている場合において、効率的な開発を行おうとすると、開発プロセスを管理する機能を有する別のツールが必要となる。
また、DevOpsによる開発を採用している場合において、ツールを一度使い始めても、必要な機能の考慮漏れがあったり、プロジェクトにおける開発スタイルに合わなかったり、使用していない別のツールに新機能追加のバージョンアップが行われたりすると、使用するツールが変更されることが多々ある。
このため、PaaSにおいて開発環境を構築する場合には、ツールの用途や目的、プロジェクトに参加する開発者の習熟度合等を加味し、開発効率を高めるために適切なツール群(ソフトウェア群)を選定することが重要となる。
例えば、特許文献1には、ネットワーク上の構成管理データベースから統合システムを構成する複数のソフトウェアおよびその連携態様を共通する他の統合システムを構成する各ソフトウェアの構成値を収集し、収集した構成値について相関の高い構成値の回帰モデルを生成し、回帰モデルを用いてソフトウェアの構成値の最適値を算出する技術が開示されている。
特開2013−131017号公報
例えば、特許文献1の技術によると、最適な開発環境の構成(例えば、使用するツール群)を提供するためには、構成管理データベースに、適切な開発環境が設定されていることが前提となる。
しかしながら、DevOpsのような新しいソフトウェア開発手法が用いられている場合には、試行錯誤によって開発環境が構築されており、開発環境が日々変化していくということが一般的である。このため、最新の開発環境の構成が必ずしも最適な構成であるとは限らない。したがって、構成管理データベースに、適切な開発環境が設定されていることを確保することは困難であり、このような場合には、最適な開発環境の構成を提供することはできない。
本発明は、上記事情に鑑みなされたものであり、その目的は、複数のグループに提供しているソフトウェアの中から、所定の評価指標の評価に寄与するソフトウェアを適切に抽出することのできる技術を提供することにある。
上記目的を達成するため、一の観点に係るクラウド管理システムは、計算機資源を有し、計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理する。クラウド管理システムは、情報を記憶可能な記憶デバイスと、記憶デバイスに接続された1以上のプロセッサであるプロセッサ部と、を有する。
記憶デバイスは、それぞれのグループにおける開発効率に関する所定の評価指標の評価値を算出するための時系列の基礎情報と、それぞれのグループにおけるソフトウェアの使用状況に関する時系列の使用状況情報と、を記憶する。
プロセッサ部は、記憶デバイスが記憶する時系列の基礎情報と時系列の使用状況情報とに基づいて、評価指標の評価に寄与する1以上のソフトウェアを抽出するように構成されている。
本発明によれば、所定の評価指標の評価に寄与する1以上のソフトウェアを適切に抽出することができる。
図1は、実施例1の概要を示す図である。 図2は、実施例1に係る計算機システムの全体構成図である。 図3は、実施例1に係るツール管理情報の構成例を示す図である。 図4は、実施例1に係るKPI取得方法管理情報の構成例を示す図である。 図5は、実施例1に係るプロジェクト管理情報の構成例を示す図である。 図6は、実施例1に係る構成変更履歴情報の構成例を示す図である。 図7は、実施例1に係るKPI履歴情報の構成例を示す図である。 図8は、実施例1に係るアクセス履歴情報の構成例を示す図である。 図9は、実施例1に係るKPI変換方法管理情報の構成例を示す図である。 図10は、実施例1に係る情報取得処理のフローチャートである。 図11は、実施例1に係る抽出処理のフローチャートである。 図12は、実施例1に係る環境構築画面の一例を示す図である。 図13は、実施例1に係るベストプラクティス表示画面の一例を示す図である。 図14は、実施例2に係るKPI取得方法管理情報の構成例を示す図である。 図15は、実施例4に係る抽出処理のフローチャートである。
いくつかの実施例について、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲に係る発明を限定するものではなく、また実施例の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
以下の説明では、AAA情報をテーブルの構成として説明しているが、AAA情報は、どのようなデータ構造で表現されていてもよい。
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「時刻」は、年月日時分の単位で表現されるが、時刻の単位は、それよりも粗くても細かくてもよいし、また異なる単位でもよい。
以下、実施例1について説明する。
まず、実施例1の概要について説明する。
図1は、実施例1の概要を示す図である。
実施例1に係る計算機システム1は、各プロジェクト(グループ)の開発環境(以下、単にプロジェクトという)310が動作する実行システム(PaaS)300と、実行システム300の各プロジェクト310から情報を取得し、ベストプラクティスを抽出するベストプラクティス抽出システム500と、ベストプラクティス抽出システム500により抽出されたベストプラクティスを利用者に提示するためのベストプラクティス表示画面G300(GUI)を表示する端末10とを備える。
ベストプラクティス抽出システム500は、各プロジェクト310に関する情報を蓄積した情報蓄積DB(データベース)520と、実行システム300から情報を取得して情報蓄積DB520に格納する情報取得処理部510と、情報蓄積DB520の情報を用いて、評価指標の要件に適切な開発環境の構成(例えば、ツール(ソフトウェア))を抽出する抽出処理部530とを備える。
情報蓄積DB520には、各プロジェクト310のインスタンスから取得したKPI履歴情報T500、各プロジェクトの構成変更履歴情報T600、及び各インスタンスへのアクセス履歴情報T700が格納されている。KPI履歴情報T500、構成変更履歴情報T600、及びアクセス履歴情報T700は、いずれも時系列データである。
ここで、KPI履歴情報T500に格納するKPI(基礎情報)の例としては、コミット数(ソースコードを管理するインスタンスへの利用者のソースコードのアップロード数)やチャットに対する投稿数、またはツール上に登録された課題の登録数やクローズ数等である。また、構成変更履歴情報T600に格納する情報の例としては、ツールのインスタンスの追加や削除、変更等である。また、アクセス履歴情報T700に格納する対象のアクセスの例としては、ツールのインスタンスへのHTTPやHTTPSのリクエスト等である。
端末10においてベストプラクティス表示画面G300の評価指標選択領域G310に対して利用者が評価指標を指定すると、抽出処理部530は、情報蓄積DB520に格納されたデータを用い、評価指標に対する最適な構成を既存プロジェクトから検索して抽出し、最も良い評価指標を記録した際に、このプロジェクトで実際に使用されていたと推測される1以上のツールを抽出する。そして、抽出処理部530は、抽出結果をベストプラクティス表示画面G300の構成表示選択領域G400に表示させる。
抽出処理部530は、例えば、指定された評価指標に関するKPIの時系列データG531と、このプロジェクトで使われている(使われていた)1以上のツール(ツールA、ツールB)へのアクセス履歴の時系列データG532,G533を比較する。そして、抽出処理部530は、例えば、最も良いKPIが記録されていた際に使用されていた(図1では、アクセスされていた)ツール(ツールA)を使用と判定し、アクセスされていなかったツール(ツールB)を不使用と判定する処理を行い、使用と判定されたツールの一覧を含む構成表示選択領域G400を有するベストプラクティス表示画面G300を、利用者の端末10に表示させる。
なお、各プロジェクトに環境を提供する実行システム300は、事前に事業者が利用者に対して同意を得ておくことにより、事業者が各プロジェクト310の環境の情報(例えばアクセス履歴情報やリソースの使用に関する情報)を横断的に取得することが比較的容易であることから、PaaSを前提とした構成としている。なお、実行システム300は、各プロジェクトの情報が取得できるのであれば、それ以外の形態(IaaSやSaaS等)で実現される形態であってもよい。
次に、実施例1を詳細に説明する。
図2は、実施例1に係る計算機システムの全体構成図である。
計算機システム1は、クラウドサービスを提供するクラウドシステム100と、プロジェクト310を利用する利用者の端末10とを備える。クラウドシステム(以下、クラウドという)100と、端末10とは、ネットワーク20を介して接続されている。ネットワーク20は、LANであっても、WANであってもよい。
クラウド100は、利用者が実際に利用するインスタンスを動作させる環境であるプロジェクト310を提供する実行システム300と、利用者や管理者に対してプロジェクト310を管理するためのシステムを提供する管理システム200(クラウド管理システムの一例)とを備える。
管理システム200は、物理的なハードウェアである複数のサーバ400により構成されている。複数のサーバ400は、管理システム200内の図示しないネットワークを介して接続されている。サーバ400は、プロセッサの一例としてのCPU401と、記憶デバイスの一例としてのメモリ402と、記憶デバイスの一例としての補助記憶装置403と、通信I/F404とを備える。通信I/F404は、例えば、有線LANカードや無線LANカードなどのインターフェースであり、管理システム200内の図示しない通信路、又はネットワーク20を介して他の装置(例えば、端末10又は他のサーバ400)と通信する。CPU401は、メモリ402及び/又は補助記憶装置403に格納されているプログラムに従って各種処理を実行する。メモリ402は、例えば、RAM(RANDOM ACCESS MEMORY)であり、CPU401で実行されるプログラムや、必要な情報を記憶する。補助記憶装置403は、例えば、ハードディスクやフラッシュメモリなどであり、CPU401で実行されるプログラムや、CPU401に利用されるデータを記憶する。
管理システム200は、I/Fシステム210と、ベストプラクティス抽出システム500と、構成管理システム220とを備える。I/Fシステム210と、ベストプラクティス抽出システム500と、構成管理システム220とは、複数のサーバ400の計算機資源を用いて実現されている。すなわち、複数のサーバ400のCPU401がメモリ402等のプログラムを実行することにより、I/Fシステム210と、ベストプラクティス抽出システム500と、構成管理システム220とを実現している。なお、I/Fシステム210と、ベストプラクティス抽出システム500と、構成管理システム220とのそれぞれは、複数のサーバ400によって実現されてもよく、1つのサーバ400によって実現されてもよく、サーバ仮想化技術により仮想化された仮想サーバによって実現されてもよい。
I/Fシステム210は、利用者の端末10に対して、クラウド100の利用に関する情報を提示したり、利用者からの要求を受け付けたりするためのGUIやAPI、または図示しない事業者の端末に対して、クラウド100を管理するためのGUIやAPIを提供する。
構成管理システム220は、I/Fシステム210から利用者の要求を受け、実行システム300のプロジェクト310の構成を変更する処理や、実行システム300の各種情報を取得してI/Fシステム210へ送る処理や、実行システム300の各種情報を取得して記憶する処理等を行う。
ベストプラクティス抽出システム500は、情報取得処理部510と、情報蓄積DB520と、抽出処理部530とを備える。情報取得処理部510は、構成管理システム220から各種情報を取得する。情報蓄積DB520は、例えば、メモリ402及び/又は補助記憶装置403により構成され、情報取得処理部510が取得した情報を蓄積する。具体的には、情報蓄積DB520は、KPI履歴情報T500と、使用状況情報及び設定状態情報の一例である構成変更履歴情報T600と、使用状況情報及び稼動状態情報の一例としてのアクセス履歴情報T700とを格納する。情報蓄積DB520が格納する情報の詳細については後述する。
抽出処理部530は、情報蓄積DB520に蓄積された情報に基づいて、所定の評価指標の評価に寄与している1以上のツール(ソフトウェア)を抽出する処理を行う。例えば、抽出処理部530は、プロジェクト310の中から所定の評価指標に対して評価が最も良い時に使用されていた1以上のツールを抽出する。情報取得処理部510と、抽出処理部530との具体的な構成及び処理については後述する。
なお、図2においては、ベストプラクティス抽出システム500を、クラウド100の管理システム200内部に備えた例を示しているが、ベストプラクティス抽出システム500を、管理部システム200の外部のネットワーク20に接続された図示しないサーバに構築するようにし、ネットワーク20を介して、I/Fシステム210と通信することにより、必要な情報の授受を行うようにしてもよい。
実行システム300は、利用者に対して提供される環境である1以上のプロジェクト310を備える。実行システム300は、管理システム200と同様に、物理的なハードウェアである複数のサーバ400により構成されている。なお、サーバ400の構成は、管理システム200のサーバ400と同様な構成である。実行システム300においては、プロジェクト310間は論理的に分割されており、プロジェクト310に所属していない利用者によるこのプロジェクト310へのアクセスを遮断するようなアクセス制御が行われている。
次に、本実施例に関わる各種情報について説明する。
図3は、実施例1に係るツール管理情報の構成例を示す図である。
ツール管理情報T100は、各プロジェクト310で利用可能なツールの一覧を管理する情報である。ツール管理情報T100は、I/Fシステム210、または構成管理システム220が保持する情報である。
ツール管理情報T100は、各ツールごとに、ツール名T110と、イメージID T120と、機能フラグT130とのフィールドを含むレコードを格納する。
ツール名T110には、ツールの名称(ツール名)が格納される。ツール名としては、例えば、ソースコードを管理するソフトウェア(ツール)であるGithub、Gitlab、チャット機能を提供するRocket.chat、Mattermost(登録商標)、プロジェクトの進捗などを管理するRedmine等がある。なお、本実施例の説明においては、実在するツール名称ではなく、便宜的に、ツールA、ツールB等のように表記する。
イメージID T120には、レコードに対応するツールのインスタンスを構築するための元となるイメージを識別するID(イメージID)が格納される。なお、イメージID T120に、イメージIDの代わりに、イメージが格納されたパス等の情報を格納してもよい。また、イメージID T120に、イメージIDのほかに、インスタンスを作成するために必要となる設定の情報を合わせて格納するようにしてもよい。ここで、イメージとしては、例えば、ディスクやファイルの集合や、仮想サーバのテンプレートがある。なお、このイメージは、イメージIDによって識別可能に管理されている。
機能フラグT130は、ツールの有している機能を管理するフィールドであり、例えば、複数の機能ごとの個別機能フラグT131,T132,T133・・・のフィールドを含む。個別機能フラグT131等は、それぞれが機能に対応付けられており、レコードに対応するツールがその機能を有している場合には、「1」が設定され、その機能を有していない場合には、「0」が設定される。例えば、個別機能フラグT131は、コード管理機能に対応付けられ、個別機能フラグT132は、課題管理機能に対応付けられ、個別機能フラグT133は、チャット機能に対応付けられている。
例えば、図3の2番目のレコードによると、ツールBは、イメージIDがtoolB.imgであり、コード管理機能と、課題管理機能とを有していることがわかる。
なお、図3においては、ツール管理情報T100は、ツール毎に対応するレコードを管理する例を示しているが、例えば、ツールのバージョン毎に対応するレコードを管理するようにしてもよい。
図4は、実施例1に係るKPI取得方法管理情報の構成例を示す図である。
KPI取得方法管理情報T200は、KPIの種類と、各KPIの取得方法とを管理する情報である。KPI取得方法管理情報T200は、情報取得処理部510が保持する情報である。
KPI取得方法管理情報T200は、KPI名T210と、対象ツール名T220と、取得方法T230とのフィールドを含むレコードを格納する。KPI名T210には、レコードに対応するKPIの名称(KPI名)が格納される。対象ツール名T220には、レコードに対応するKPIの取得先となるツールの名称(ツール名)が格納される。対象ツール名T220に格納されるツール名は、ツール管理情報T100のいずれかのレコードのツール名T110に記載されたツール名に対応する。取得方法T230には、レコードに対応するKPIを取得するための方法(取得方法)が格納される。取得方法T230には、例えば、KPIを取得するために呼び出すべきプログラムの名称(プログラム名)が格納される。
例えば、図4の一番上のレコードは、KPIの一例としてのコミット数は、ツールAから取得可能であり、func_toolA.shというプログラムを呼び出すことにより取得できることを示している。
なお、KPI取得方法管理情報T200を、情報蓄積DB520に格納して管理するようにしてもよく、構成管理システム220が保持するようにしてもよい。KPI取得方法管理情報T200を、構成管理システム220が保持するようにした場合には、構成管理システム220が取得方法T230に格納されている取得方法を用いてKPIの情報を取得し、取得した情報を情報取得処理部510が取得するようにすればよい。また、各ツールに、このツールにおけるKPIの情報を取得して情報取得処理部510に送信するエージェントプログラムを組み込んでおくようにしてもよい。
図5は、実施例1に係るプロジェクト管理情報の構成例を示す図である。
プロジェクト管理情報T400は、実行システム300内に存在するプロジェクト310の情報を管理する。プロジェクト管理情報T400は、抽出処理部530が保持する情報である。プロジェクト管理情報T400は、プロジェクトごとに、プロジェクト名T410と、用途T420と、開始T430と、終了T440と、共有T450とのフィールドを含むレコードを格納する。
プロジェクト名T410には、プロジェクトの名称(識別子)が格納される。用途T420には、プロジェクトの用途が格納される。プロジェクトの用途としては、事業者が事前に定義した選択肢から利用者によりプロジェクトの利用開始時に選択された用途である。具体的な用途としては、例えばWebサービスを開発する「Webサービス開発」や、分析アプリケーションを開発する「分析」等がある。また、用途T420に、Java(登録商標)、Python等の開発言語の名称やこれらを用いたフレームワークのリストを格納してもよく、開発のスタイル、例えば従来型のウォーターフォールモデルに基づく開発なのか、アジャイルに基づく開発なのかを示す情報や、開発期間や開発者のスキルレベル等を格納してもよく、利用者が自由に指定した情報を格納するようにしてもよい。
開始T430には、レコードに対応するプロジェクトの開始時刻が格納される。終了T440には、レコードに対応するプロジェクトの終了時刻が格納される。なお、使用中であるプロジェクトのレコードにおいては、終了T440には、空値(Null)が格納されている。
共有T450には、プロジェクトの情報(本実施例では、ツールの設定値等)をこのプロジェクトに属さない利用者と共有しても良いかを示すフラグが格納される。例えば、共有T450には、プロジェクトに属していない利用者と情報の共有が可である場合には、「Yes」が格納され、情報の共有が不可である場合には、「No」が格納される。
例えば、図5の1番目のレコードによると、プロジェクト名T410がProject−Aであるプロジェクトは、Webサービスを開発する用途のプロジェクト(用途T420の値)であり、利用の開始が2016年11月30日9時(開始T430の値)であり、終了が2016年12月31日17時(終了T440の値)であり、プロジェクトの内容をプロジェクトに属さない他の利用者に開示してよい(共有T450の値)ことがわかる。
なお、プロジェクト管理情報T400を、情報蓄積DB520に格納して管理するようにしてもよい。
図6は、実施例1に係る構成変更履歴情報の構成例を示す図である。
構成変更履歴情報T600は、プロジェクト毎のツールの構成の変更履歴を管理する情報である。構成変更履歴情報T600は、情報蓄積DB520が保持する情報である。構成変更履歴情報T600は、プロジェクト毎に1以上のレコードを管理する。構成変更履歴情報T600のレコードは、プロジェクト名T610と、インスタンスID T620と、ツール名T630と、種類T640と、時刻T650と、設定値T660とのフィールドを含む。
プロジェクト名T610には、プロジェクト名が格納される。インスタンスID T620には、レコードに対応するプロジェクトで使用しているツールのインスタンスを実行システム300内で一意に識別するための識別子(インスタンスID)が格納される。ツール名T630には、レコードに対応するプロジェクトで使用しているツールの名称が格納される。種類T640には、レコードに対応するプロジェクトにおけるツールのインスタンスに関する変更の種類が格納される。ここで、インスタンスに関する変更の種類としては、例えば、ツールのインスタンスの利用を開始したことを示す利用開始(Start)、ツールのインスタンスを変更したことを示す変更(Change)、及びツールのインスタンスの利用を終了したことを示す終了(Stop)がある。
時刻T650には、変更が発生した時刻が格納される。設定値T660には、変更時に使用された設定値に関する情報が格納される。設定値T660には、例えば、設定値を所定の書式(例えばymlと呼ばれる書式)で記述した設定ファイルのパスが格納される。設定ファイルは、例えば、変数名(キー値)とその値との一覧が格納されたものである。なお、設定値T660に格納する設定に関する情報としては、ファイル以外の形式、例えば設定値の各フィールドに直接変数名と値との一覧が格納されている形式であってもよい。
構成変更履歴情報T600によると、例えば、プロジェクト名T610がProject−Aであるプロジェクトでは、ツールA(インスタンスIDがツールA−A)と、ツールC(インスタンスIDがツールC−A)とを2016年12月1日9時に利用開始し、ツールC(インスタンスIDがツールC−A)を2016年12月15日17時に利用終了していることがわかる。また、それぞれのツールで使われた設定は、設定値T660に格納された、toolA−a1.yml、toolC−a1.ymlを参照することにより把握することができる。また、構成変更履歴情報T600によると、Project−Aであるプロジェクトでは、2016年12月15日9時に、ツールD(インスタンスIDがツールD−A)を利用開始し、2016年12月15日12時に、設定の変更を行ったことがわかる。
図7は、実施例1に係るKPI履歴情報の構成例を示す図である。
KPI履歴情報T500は、各プロジェクトにおける1以上のKPIの値を時系列で管理する情報である。KPI履歴情報T500は、情報蓄積DB520が保持する情報である。KPI履歴情報T500のレコードは、プロジェクト名T510と、KPI名T520と、インスタンスID T530と、時刻T540と、値T550とのフィールドを含む。
プロジェクト名T510には、プロジェクト名が格納される。KPI名T520には、KPI名が格納される。インスタンスID T530には、レコードに対応するプロジェクトで使用しているツールのインスタンスIDが格納される。時刻T540には、KPIの値が取得された時刻が格納される。値T550には、取得されたKPIの値が格納される。
KPI履歴情報T500によると、例えば、プロジェクト名T510がProject−Aであるプロジェクトにおける、インスタンスIDがツールA−Aのツールから取得されたKPI(コミット数)や、インスタンスIDがツールC−Aのツールから取得されたKPI(チャット投稿数)についての、時系列のデータ(時刻T540の時刻と値T550の値)がわかる。例えば、プロジェクト名T510がProject−Aであるプロジェクトにおける、インスタンスIDがツールA−Aのツールにおけるコミット数が、2016年12月1日9時からの1時間(時刻T540の値)で10回(値T550の値)あったことがわかる。なお、図7のKPI履歴情報T500の例では、KPIを取得する間隔(サンプリング間隔)を1時間としているが、サンプリング間隔は1時間でなくてもよい。なお、構成変更履歴情報T600を参照することにより、KPI履歴情報T500のインスタンスID T530のインスタンスIDに対応するツールのツール名を把握することができる。
図8は、実施例1に係るアクセス履歴情報の構成例を示す図である。
アクセス履歴情報T700は、プロジェクト毎に、各ツールのインスタンスへのアクセスの履歴に関する情報を管理する情報であり、情報蓄積DB520が保持する情報である。アクセス履歴情報T700においては、プロジェクトの一つのインスタンスに対するアクセスごとに一つのレコードが追加される。ここで、アクセスとは、或るツールのインスタンスに対して、利用者または別のツールから情報の取得または設定要求が、予め定められた通信プロトコル(HTTPやHTTPS)により行われることを示す。したがって、アクセスがあった場合には、その時点においてツールのインスタンスが使用されていたことがわかる。アクセス履歴情報T700に格納される情報は、実行システム300に備えられた図示しないルータから取得するようにしてもよく、また、各ツールのインスタンスにエージェントを埋め込んでおき、そのエージェントから取得するようにしてもよい。
アクセス履歴情報T700のレコードは、プロジェクト名T710と、アクセス先インスタンスID T720と、時刻T730と、アクセス元T740とのフィールドを含む。プロジェクト名T710には、プロジェクト名が格納される。アクセス先インスタンスID T720には、アクセス先のツールのインスタンスのインスタンスIDが格納される。アクセス先インスタンスID T720に格納されるインスタンスIDは、構成変更履歴情報T600のインスタンスID T620に格納されているインスタンスIDのいずれかである。時刻T730には、アクセスされた時刻が格納される。アクセス元T740には、アクセスを行ったアクセス元を識別する情報(例えば、利用者のID、インスタンスID等)が格納される。本実施形態では、アクセス元T740には、例えば、利用者からのアクセスの場合には、「USER:」タグに対して、利用者IDを付加した情報が格納され、ツールのインスタンスからのアクセスの場合には「TOOL:」タグに対して、インスタンスIDを付加した情報が格納される。
例えば、1行目のレコードによると、プロジェクト名T710がProject−Aであるプロジェクトにおいて、アクセス先インスタンスID T720がツールA−Aであるインスタンスに対して、2016年12月1日9時5分に、ユーザA1からアクセスがあることがわかる。また、3行目のレコードによると、プロジェクト名T710がProject−Aであるプロジェクトにおいて、アクセス先インスタンスID T720がツールA−Aであるインスタンスに対して、2016年12月1日10時に別のインスタンス(インスタンスIDがツールC−A)からアクセスがあったことがわかる。なお、アクセス履歴情報T700において、各アクセスにおける、通信プロトコルや通信の内容に関する情報をさらに保持するようにしてもよい。
図9は、実施例1に係るKPI変換方法管理情報の構成例を示す図である。
KPI変換方法管理情報T300は、評価指標に対応するKPIと、評価指標を算出するための処理と、使用していたツールのインスタンスを抽出する処理とを管理する情報である。KPI変化方法管理情報T300は、抽出処理部530を構成するプログラム中に保持されている情報である。なお、KPI変化方法管理情報T300を情報蓄積DB520が保持するようにしてもよい。
KPI変換方法管理情報T300は、評価指標の種類ごとに、レコードを格納する。 KPI変換方法管理情報T300のレコードは、評価指標T310と、参照KPI T320と、算出処理T330と、関係抽出処理T340とのフィールドを含む。
評価指標T310には、システムを評価する要件とする評価指標が格納される。参照KPI T320には、レコードに対応する評価指標を算出するために参照するKPIの識別子が格納される。算出処理T330には、レコードに対応する評価指標の評価値を算出するための処理を示す情報(例えば、評価値を算出する処理のプログラム名)が格納される。算出処理T330に格納されたプログラム名のプログラムは、抽出処理部530が実行する一部の処理を実現するプログラムである。関係抽出処理T340には、評価値に対応する時点において実際に使用していたツールを抽出する処理を示す情報(例えば、抽出する処理のプログラム名)が格納される。関係抽出処理T340に格納されたプログラム名のプログラムは、抽出処理部530が実行する一部の処理を実現するプログラムである。
評価指標T310に格納される評価指標の1つの種類としては、或る期間におけるKPIの合計値がある。このような評価指標としては、或るプロジェクトの1日のコミット数の合計値である日次コミット数や、或るプロジェクトの1日のチャットの投稿数の合計である日次チャット投稿数がある。
KPI変換方法管理情報T300の1行目のレコードの算出処理T330に格納されているday_commit.shは、プロジェクト名と、コミット数との入力を受けて、KPI履歴情報T500のプロジェクト名及びコミット数に対応するレコードを参照して、このプロジェクトの開始から終了までの日次コミット数を計算し、最も良い値(ここでは日次コミット数が最大の値)を評価値として出力するプログラムの名前である。
また、関係抽出処理T340に格納されているeval_day_commit.shは、算出処理T330に格納されたプログラムにより算出されたプロジェクトの評価に寄与した(すなわち使用されていたと推定される)ツールを抽出するプログラムの名前である。このeval_day_commit.shで示されるプログラムは、プロジェクト名と、KPI履歴情報T500と、構成変更履歴情報T600と、アクセス履歴情報T700とを入力として、ツールの使用・不使用を判定し、使用と判定したツールの一覧を出力する処理を実現する。この処理により、プロジェクトにおいて、実際に使用されていたツールを適切に抽出することができる。これにより、使用可能となっているが、使用されていなかったツールが抽出されてしまうことを防止することができる。
eval_day_commit.shで示されるプログラムにより実行する処理の一例としては、評価値(ここでは、最大の日次コミット数)を記録したタイミングにおいて、各ツールにアクセスがあったか否か(すなわち、アクセス履歴情報T700にツールのアクセスを示すレコードが格納されているか否か)に基づいて、ツールを使用しているか否かを判定する処理がある。
また、eval_day_commit.shで示されるプログラムにより実行する処理の別の例としては、以下の式(1)で表される評価関数f(x,t)が所定の閾値以上であるツールや、評価関数が上位にあるツールを使用していると判定する処理がある。
ここで、t0は、評価値を記録したタイミングであり、A(x)(t)は、インスタンスIDがxであるインスタンスの時刻tにおけるアクセス数である。
また、評価指標T310の別の種類としては、プロジェクト開始から終了までの期間の合計値や平均値がある。この種の評価指標としては、合計コミット数、合計チャット投稿数、平均コミット数、平均チャット投稿数等がある。合計コミット数とは、プロジェクトの開始から終了までのコミット数の合計値であり、平均コミット数とは、プロジェクトの合計コミット数をプロジェクトの開始から終了までの期間で割ったものである。
KPI変換方法管理情報T300の2行目のレコードは、評価指標を平均コミット数とする場合のレコードである。このレコードの算出処理T330に格納されているave_commit.shで示されるプログラムは、プロジェクト名とKPI履歴情報T500とを入力とし、このプロジェクトの開始から終了までのコミット数の平均値を評価値として出力する処理を実現する。
このレコードの関係抽出処理T340のeval_ave_commit.shで示されるプログラムは、評価に寄与したツールを抽出する処理を実現するプログラムであり、プロジェクト名と、KPI履歴情報T500と、構成変更履歴情報T600と、アクセス履歴情報T700とを入力として、KPIの変化と、ツール(インスタンス)のアクセス履歴との間に正の相関があるツールを使用しているものと判定し、使用していると判定したインスタンスのツールの一覧を出力する処理を行う。
また、eval_ave_commit.shで示されるプログラムにより実行される別の処理としては、アクセス数の平均が一定値以上であるインスタンスや、アクセス数の合計値が一定以上であるインスタンス、または定期的にアクセスがあるインスタンスのツールを使用しているツールと判定して、使用していると判定したツールの一覧を出力する処理がある。
なお、このような種類の評価指標の場合には、終了していないプロジェクトを対象から除外してもよいし、処理を実施する時刻までの値を用いて処理を行うようにしてもよい。。
次に、計算機システム1における処理動作について説明する。
まず、情報取得処理部510による情報取得処理について説明する。
図10は、実施例1に係る情報取得処理のフローチャートである。
情報取得処理は、例えば、一定間隔で実行される。なお、情報取得処理を、構成管理システム220からの変更やイベント発生の通知を契機として実行するようにしてもよい。
情報取得処理部510は、構成管理システム220から必要となる各種情報(プロジェクト管理情報T400の各フィールドに格納する情報、KPI履歴情報T500の各フィールドに格納する情報、構成変更履歴情報T600の各フィールドに格納する情報、アクセス履歴情報T700の各フィールドに格納する情報等)を取得する(S100)。ここで、KPIに関する情報を取得する場合には、KPI取得方法管理情報T200の取得方法T230に格納されたプログラムを呼び出して実行することで、情報を取得することができる。なお、構成管理システム220から情報を取得せずに、例えば、情報取得処理部510がプロジェクト310のインスタンスに直接アクセスすることで必要な情報を取得するようにしてもよく、情報取得処理部510が、インスタンスに事前に組み込まれたエージェントプログラムから必要な情報を取得するようにしてもよい。
次いで、情報取得処理部510は、取得した情報に基づいて、情報蓄積DB520にKPI履歴情報T500、構成変更履歴情報T600、アクセス履歴情報T700を格納する(S110)。なお、ステップS100において、過去に取得した情報との差分の情報のみを取得するようにしている場合には、情報取得処理部510は、取得した差分の情報に基づいて、情報蓄積DB520のKPI履歴情報T500、構成変更履歴情報T600、アクセス履歴情報T700に、それぞれ差分の情報に対応するレコードを追加する。
次に、抽出処理部530による抽出処理について説明する。
図11は、実施例1に係る抽出処理のフローチャートである。
抽出処理は、例えば、一定間隔で実行される。
まず、抽出処理部530は、プロジェクト管理情報T400を参照し、用途T420の用途ごとにプロジェクトを分類する(S200)。なお、プロジェクトを用途ごとに分類する必要がない場合には、ステップS200を省略してもよい。
次いで、抽出処理部530は、ステップS200で分類した各用途のそれぞれの用途を処理対象としてループAの処理(ループB、S210〜S230)を行う。以下、抽出処理の説明において、処理対象の用途を対象用途という。
ループAの処理においては、抽出処理部530は、対象用途のプロジェクト群に対して、KPI変換方法管理情報T300の評価指標T310に格納された各評価指標のそれぞれの評価指標を処理対象としてループBの処理(S210〜S230)を行う。以下、抽出処理の説明において、処理対象の評価指標を対象評価指標という。
ループBの処理においては、抽出処理部530は、KPI履歴情報T500の各レコードを入力として、KPI変換方法管理情報T300の対象評価指標に対応するレコードの算出処理T330に格納されているプログラム名のプログラムの処理を行うことで、各プロジェクトの評価値(例えば、日次コミット数の最大値、平均コミット数等)を算出する(S210)。
次いで、抽出処理部530は、複数のプロジェクトの中から、評価指標の評価が最も高いプロジェクト(例えば、値が高いほど評価が高い評価値であれば、最も高い評価値のプロジェクト:高効率グループ)を選択する(S220)。
次いで、抽出処理部530は、選択したプロジェクトと、KPI履歴情報T500と、構成変更履歴情報T600と、アクセス履歴情報T700とを入力とし、対象評価指標に対応するレコードの関係抽出処理T340に格納されているプログラム名のプログラム処理を実行することにより、このプロジェクトにおいて評価に寄与したツール(値が高いほど評価が高いことを示す評価値であれば、評価値の向上に影響が強いツール)の一覧を抽出し、抽出結果をメモリ402、補助記憶装置403等に記憶する(S230)。ここで、抽出結果には、抽出したツールとともに、用途、評価指標、評価指標における評価値、そのツールの設定値のパス名等を含めてもよい。
そして、抽出処理部530は、ループBの処理を全ての評価指標を処理対象として実行し、全ての評価指標を処理対象として処理を終了した後に、ループBを抜ける。次いで、抽出処理部530は、未処理の用途のプロジェクトを処理対象として、ループAの処理を実行し、全ての用途のプロジェクトを処理対象として処理を終了した後に、ループAを抜けて抽出処理を終了する。
なお、上記した抽出処理を、利用者からの処理要求を受けた場合、すなわち、端末10からの処理要求を受け付けた場合に実行するようにしてもよい。この場合において、処理要求に要求者からの評価指標の指定がある場合には、ループBにおいて、指定された評価指標のみを処理の対象とするようにしてもよい。また、利用者からの処理要求を受け付けて処理を行った場合には、ループAの処理を終えた後に、後述する図13に示すベストプラクティス表示画面G300の構成表示選択領域G400に、抽出したツールの一覧を表示させる処理を行うようにしてもよい。
また、上記した抽出処理を、或るタイミングで1回実行し、それ以降は、処理結果に影響を与える可能性がある状況が発生した場合(例えば、プロジェクトの構成変更が発生した場合や、算出処理T330のプログラムによって算出される評価値が最も良いプロジェクトが変更される可能性がある場合等)において、影響を受ける部分だけの処理を実行するようにしてもよい。
また、上記した例では、ステップS220では、評価が最も良い一つのプロジェクトを対象として、使用しているツールの一覧を取得するようにしていたが、これに限られず、例えば、評価が上位の複数のプロジェクトのそれぞれを対象として、使用しているツールの一覧を取得するようにしてもよい。また、ツール(インスタンス)の評価を、例えば、評価関数f(x,t)に示すように数値で算出できる場合には、ツール毎に算出された数値を正規化した値を対応付けた一覧を取得するようにしてもよい。
次に、計算機システム1において使用する画面について説明する。
図12は、実施例1に係る環境構築画面の一例を示す図である。
環境構築画面G100は、実行システム300にプロジェクトの開発環境を構築する際に利用者が用いるGUIである。環境構築画面G100は、例えば、I/Fシステム210により、利用者の端末10に対して提供される画面である。
環境構築画面G100は、使用可能なツールの一覧を表示するとともに、使用するツールの選択を受け付けるためのテーブルを表示するテーブル選択領域G200と、プロジェクトの用途を選択するための用途選択領域G110と、構築したプロジェクトの開発環境の情報を他の利用者と共有することに同意するか否かを入力するための同意用チェックボックスG120と、現在の入力に対応する開発環境の構築の申し込みを指示するためのApplyボタンG130と、現在の入力に対応する開発環境の構築の申し込みをキャンセルするためのキャンセルボタンG140と、を有する。
テーブル選択領域G200には、選択可能なツール名の一覧が表示されるツール名領域G220と、ツール名のツールを使用するか否かを指定するためのチェックボックスG210と、各ツールの分類が表示される分類表示領域G230とが表示される。なお、ツール名領域G220には、ツール管理情報T100のツール名T110に格納されているツール名が表示される。
この環境構築画面G100において、用途選択領域G110において選択された用途が、プロジェクト管理情報T400の用途T420に格納される用途に反映され、同意チェックボックスG120に対するチェック結果が、共有T450の値に反映されることとなる。
なお、環境構築画面G100において、用途入力領域G110や、同意用チェックボックスG120を表示しないようにしてもよい。このようにした場合には、用途はデフォルト値とし、共有選択はデフォルト値(一律で共有に同意、又は共有に不同意)としてもよい。
図13は、実施例1に係るベストプラクティス表示画面の一例を示す図である。
ベストプラクティス表示画面G300は、利用者からの要求を受け付け、プロジェクトの開発環境に最も適した構成(ベストプラクティス)を提供するためのGUIである。ベストプラクティス表示画面G300は、例えば、I/Fシステム210を介して利用者の端末10に対して提供される画面である。
ベストプラクティス表示画面G300は、評価指標の選択を受け付ける評価指標選択領域G310と、評価指標選択領域G310で選択された評価指標において最良の構成をテーブル形式で表示するとともに、構築する構成を選択するための構成表示選択領域G400と、プロジェクト310のシステムの構築の指示を受け付ける構築ボタンG320と、ベストプラクティス表示画面G300を閉じる指示を受け付けるCloseボタンG330と、を有する。
評価指標選択領域G310は、KPI変換方法管理情報T300の評価指標T310に格納された各評価指標がコンボボックスのような形態で選択可能に表示される。評価指標選択領域G310において評価指標が選択されると、選択された評価指標の情報が、I/Fシステム210を介してベストプラクティス抽出システム500の抽出処理部530に送信される。
構成表示選択領域G400には、評価指標選択領域G310で選択された評価指標の評価が最も高くなる開発環境の構成の候補が用途ごとに表示される。なお、評価指標選択領域G310で評価指標が選択されていない場合には、何も表示されていない状態となっている。
構成表示選択領域G400には、用途表示領域G420と、評価値表示領域G430と、ツール表示領域G440と、設定値表示領域G450と、ラジオボタンG410とが表示される。
用途表示領域G420には、用途が表示される。ツール表示領域G440には、評価の高いツール名が表示される。評価値表示領域G430には、ツール表示領域G440に表示されたツールについての評価値が表示される。設定値表示領域G450には、他の利用者によるツールに対する設定値が格納された設定ファイルのパス名が表示される。なお、他の利用者がツールに対する設定値の共有に同意していない場合には、設定値表示領域G450には、パス名が表示されない。設定値表示領域G450のパス名が、利用者により選択された場合に設定内容を表示させるようにしてもよい。
ラジオボタンG410は、構成表示選択領域G400の中から構築する構成を選択するためのボタンである。
ラジオボタンG410により構築する構成が選択されている場合において、構築ボタンG320が押下されると、選択された構成内容(用途や、選択したツール名等)が、I/Fシステム210を介して実行システム300に送信される。実行システム300では、送信された構成内容に基づいて、新しいプロジェクト310の環境を構築する。この際に、構成内容に含まれるツールに対応する他の利用者の設定ファイルについて、他の利用者が共有を同意している場合には、実行システム300は、他の利用者の設定ファイルを複製して、プロジェクト310のツールを設定する。
ここで、評価指標選択領域G310において評価指標が選択され、選択された評価指標の情報が、I/Fシステム210を介してベストプラクティス抽出システム500の抽出処理部530に送信されてから、構成表示選択領域G400に、評価指標選択領域G310で選択された評価指標の評価が最も高くなる開発環境の構成の候補が用途ごとに表示されるまでの処理について説明する。
抽出処理部530は、選択された評価指標の情報を受信すると、メモリ402や補助記憶装置403に格納された抽出処理の処理結果の中から、受信した評価指標に対応するツールの情報を選択し、選択したツールに対応する、用途、評価値及び設定値を特定して、特定した用途を用途表示領域G420に表示させ、ツール名をツール表示領域G440に表示させ、設定値を設定値表示領域G450に表示させ、評価値を評価値表示領域G430に表示させるように、I/Fシステム210に指示を送信する。この結果、I/Fシステム210は、端末10に表示させるベストプラクティス表示画面G300における構成表示選択領域G400の用途表示領域G420、ツール表示領域G440、設定値表示領域G450、及び評価値表示領域G430に指示に従った内容を表示させる。
なお、図13に示すベストプラクティス表示画面G300では、用途ごとに1つのプロジェクトの構成を表示するようにしているが、これに限られず、1つの用途に対して、評価が上位の複数の構成を表示するようにしてもよい。また、ベストプラクティス表示画面G300では、使用していると判定されたツールのみを表示するようにしているが、関係抽出処理部530が、評価を数値で算出するようにしている場合には、このプロジェクトで使用していた全てのツールについて、評価値を正規化した値と対応付けて表示するようにしてもよい。
次に、実施例2について説明する。
実施例2においては、ツール及びそのツールの機能と、評価指標とを管理し、評価指標の評価に寄与するツールの機能を利用者に提供できるようにしている。
図14は、実施例2に係るKPI取得方法管理情報の構成例を示す図である。なお、図4と同様な構成には、同一の符号を付している。
実施例2に係るベストプラクティス抽出システム500は、図4に示す実施例1のKPI取得方法管理情報T200の代わりに、KPI取得管理情報T800を備える。
KPI取得管理情報T800のレコードは、KPI取得方法管理情報T200のレコードに、機能T810のフィールドを追加されたレコードである。機能T810には、レコードに対応するKPIを取得できるツールが有する機能が格納される。このような構成により、KPI名T210のKPIを、ツールのどの機能から取得できるかということを把握できる。
ここで、課題管理機能は、ツール管理情報T100の機能フラグT130に設定されているように、ツールA、ツールB、ツールEが持っている。このKPI取得方法管理情報T800によると、KPI名T210の課題クローズ数は、課題管理機能(機能T810の値)から取得できるものであり、課題管理機能を有するツールは対象ツール名T220に格納されているツールA、ツールB、ツールEであることがわかる。
このような構成において、抽出処理部530は、図11に示す抽出処理のS230において、抽出したツールに対して、ツールの機能を対応付けた抽出結果を格納する。そして、抽出処理部530は、図13に示すベストプラクティス表示画面G300の構成表示選択領域G400において、ツールの機能についても表示するように、I/Fシステム210に指示を出す。これにより、利用者は、ベストプラクティス表示画面G300を参照して、評価指標の評価に寄与するツールの機能についても把握することができる。
次に、実施例3について説明する。
実施例1では、ツールの使用・不使用を判断するために、アクセス履歴情報T700を用いる例を示していたが、実施例3では、アクセス履歴情報T700と異なる情報を用いてツールの使用・不使用を判定するようにしている。
本実施例では、情報取得処理部510は、実行システム300において各ツールに割り当てられている計算機資源(CPUの使用量、メモリ使用量の少なくとも一方)のこのツールを利用していない場合の使用量(不使用時使用量)を予め取得して記憶している。そして、抽出処理部530は、プロジェクトのインスタンスについて使用・不使用を判定する場合には、その時点におけるこのインスタンスに割り当てられている計算機資源の使用量(現在使用量)を実行システム300等から取得し、現在使用量と不使用時使用量との差分が所定値以下である場合には、ツールを不使用と判定し、差分が所定値を超える場合には、ツールを使用と判定する。これにより、アクセス履歴情報T700によらずにツールの使用・不使用を適切に判定することができる。
上記に代えて、次のようにツールの使用・不使用を判定するようにしてもよい。すなわち、情報取得処理部510が、実行システム300において、各ツールの不使用時に出力されるログの内容やログの量を取得する。そして、抽出処理部530は、プロジェクトのインスタンスについて使用・不使用を判定する場合には、その時点におけるこのインスタンスのログを収集し、使用していない時のログと異なる内容のログが出力されている数や、出力されているログの量の不使用時の量との差分を特定し、これらのいずれかに基づいて、インスタンス(ツール)の使用・不使用を判定する。
次に、実施例4について説明する。なお、実施例1〜3との差異を中心に説明する。
上記した実施例1〜3では、いずれも評価指標とプロジェクト内のツールの使用・不使用との関係の抽出を、このプロジェクト内の情報のみを用いて判定するようにしていた。実施例4においては、実行システム300で運用されている複数のプロジェクトの各種情報に基づいて、評価指標とツールの寄与との関係を学習し、その学習結果を利用するようにしている。
本実施例の抽出処理部530は、内部に学習モジュールを備えている。学習モジュールは、過去の履歴情報を教師情報として機械学習を行い、学習した結果に応じた処理を行うモジュールである。このような機械学習を行うモジュールとしては、ニューラルネットワークで構成されたモジュールやサポートベクターマシン等がある。
実施例4では、抽出処理部530が、KPI変換方法管理情報T300の算出処理T330や関係抽出処理T340に格納されているプログラムの処理を実行していたものを、学習モジュールによる処理に代えたものである。
図15は、実施例4に係る抽出処理のフローチャートである。なお、図11と同様な処理については、同一の符号を付し、重複する説明を省略する。
抽出処理部530は、ステップS200で分類した各用途のそれぞれの用途を処理対象としてループCの処理(ループD、S250)を行う。以下、抽出処理の説明において、処理対象の用途を対象用途という。
ループCの処理においては、抽出処理部530は、対象用途のプロジェクト群に対して、KPI変換方法管理情報T300の評価指標T310に格納された各評価指標のそれぞれの評価指標を処理対象としてループDの処理(S240)を行う。以下、抽出処理の説明において、処理対象の評価指標を対象評価指標という。
ループDの処理においては、抽出処理部530は、各プロジェクトのKPI履歴情報T500と、構成変更履歴情報T600と、アクセス履歴情報T700との全フィールドの内の複数のフィールドの情報を教師情報として学習モジュールに入力し、プロジェクトの構成変更やツールへのアクセスと、KPIの変化との関係を学習する(S240)。ここで、KPI履歴情報T500については、対象評価指標に関係するKPI(対象評価指標に対応するKPI変換方法管理情報T300の参照KPI T320)に関するレコードの情報のみを入力の対象とする。なお、構成変更履歴情報T600についての入力単位としては、ツールの使用の開始終了の情報(種類T640および時刻T650)に加え、設定値(設定値T660)の変数名やその値(例えば変数の追加や削除、または値の変更)としてもよい。
そして、抽出処理部530は、ループDの処理を全ての評価指標を処理対象として実行し、全ての評価指標を処理対象として処理を終了した後に、ループDを抜ける。
次いで、抽出処理部530は、学習モジュールにより、対象評価指標に寄与するツールを取得し、取得したツールのツール名を含む結果(例えば、用途、評価指標、そのツールの設定値のパス名等を含んでもよい)をメモリ402、補助記憶装置403等に記憶する(S250)。
次いで、抽出処理部530は、未処理の用途のプロジェクトを処理対象として、ループCの処理を実行し、全ての用途のプロジェクトを処理対象として処理を終了した後に、ループCを抜けて抽出処理を終了する。なお、抽出処理の直後に、抽出処理部530により。ステップS250で記憶した結果を、ベストプラクティス表示画面G300の構成表示選択領域G400に表示するようにしてもよい。
なお、学習モジュールに対して、アクセス履歴情報T700のフィールドについては入力せずに、KPI履歴情報T500と構成変更履歴情報T600とのフィールドのみを入力するようにして、学習させるようにしてもよい。
このような処理を行うことにより、複数のプロジェクトが動作する実行システム300において、或る評価指標Xに対し、多くのプロジェクトで、或る設定または構成変更Yを行った後に評価指標Xの算出に用いるKPI Zの値が上がっている事象を学習モジュールがとらえることも可能となる。このため、評価指標Xには、設定または構成変更Yが寄与する、という情報を利用者に提示することができるようになる。
なお、本発明は、上述の実施例に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
例えば、上記実施例では、管理システム200を、クラウドシステム100内に構成する例を示していたが、本発明はこれに限られず、管理システム200の少なくとも一部の機能を、クラウドシステム100外の装置(サーバ等)により構成するようにしてもよい。
また、上記実施例において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施例におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
1…計算機システム、10…端末、100…クラウドシステム、200…管理システム、300…実行システム、400…サーバ、401…CPU、402…メモリ、403…補助記憶装置、404…通信I/F

Claims (15)

  1. 計算機資源を有し、前記計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理するクラウド管理システムであって、
    情報を記憶可能な記憶デバイスと、前記記憶デバイスに接続された1以上のプロセッサであるプロセッサ部と、を有し、
    前記記憶デバイスは、
    それぞれの前記グループにおける開発効率に関する所定の評価指標の評価値を算出するための時系列の基礎情報と、それぞれの前記グループにおけるソフトウェアの使用状況に関する時系列の使用状況情報と、を記憶し、
    前記プロセッサ部は、
    前記記憶デバイスが記憶する時系列の前記基礎情報と時系列の前記使用状況情報とに基づいて、前記評価指標の評価に寄与する1以上のソフトウェアを抽出するように構成されている
    クラウド管理システム。
  2. 前記プロセッサ部は、
    時系列の前記基礎情報に基づいて、各グループにおける評価指標についての評価値を算出し、評価が高い1以上の高効率グループを特定し、
    時系列の前記使用状況情報に基づいて、前記高効率グループにおいて、前記評価に寄与する1以上のソフトウェアを抽出する
    請求項1に記載のクラウド管理システム。
  3. 前記プロセッサ部は、
    複数の評価指標の中から対象とする評価指標の選択を受け付け、
    受け付けた前記評価指標を対象に、前記評価に寄与する1以上のソフトウェアを抽出する
    請求項2に記載のクラウド管理システム。
  4. 前記所定の評価指標は、複数の評価指標を含み
    前記プロセッサ部は、複数の前記評価指標のそれぞれを対象に、前記評価に寄与する1以上のソフトウェアを抽出する
    請求項2に記載のクラウド管理システム。
  5. 前記使用状況情報は、前記ソフトウェアの稼働状態に関する時系列の稼働状態情報と、前記グループにおける前記ソフトウェアの作成、削除、及び変更に関する時系列の設定状態情報とを含む
    請求項1から請求項4のいずれか一項に記載のクラウド管理システム。
  6. 前記稼状態情報は、前記ソフトウェアに対する外部からのアクセスに関する情報である
    請求項5に記載のクラウド管理システム。
  7. 前記稼働状態情報は、前記ソフトウェアに割り当てられている計算機資源の使用量に関する情報である
    請求項5に記載のクラウド管理システム。
  8. 前記稼働状態情報は、前記ソフトウェアにより出力されるログに関する情報である
    請求項5に記載のクラウド管理システム。
  9. 前記評価指標の前記評価値は、所定の時間範囲における前記基礎情報の合計値を含み、
    前記プロセッサ部は、
    前記所定の時間範囲における前記基礎情報の合計値が最大のグループを、評価が高い高効率グループとして特定する
    請求項から請求項のいずれか一項に記載のクラウド管理システム。
  10. 前記プロセッサ部は、
    前記所定の時間範囲における基礎情報の合計値が最大である時間範囲において、前記高効率グループで使用されている1以上のソフトウェアを前記評価に寄与する1以上のソフトウェアとして抽出する
    請求項9に記載のクラウド管理システム。
  11. 前記プロセッサ部及び前記記憶デバイスは、前記クラウドシステムが提供する前記計算機資源である
    請求項1から請求項10のいずれか一項に記載のクラウド管理システム。
  12. 前記プロセッサ部は、
    前記抽出された1以上のソフトウェアに関する情報を表示させる
    請求項1から請求項11のいずれか一項に記載のクラウド管理システム。
  13. 前記プロセッサ部は、
    前記グループについてのソフトウェアに関する設定を他の利用者と共有してもよいか否かの指定を受け付ける画面を表示させ、前記指定を受け付け、
    共有してもよいとの指定を受け付けている場合には、前記ソフトウェアに関する設定値の情報の表示要求を受け付けると、前記ソフトウェアに関する設定情報を表示させる
    請求項1から請求項12のいずれか一項に記載のクラウド管理システム。
  14. 前記プロセッサ部は、
    所定の学習対象グループにおける時系列の基礎情報と、ソフトウェアの使用状況に関する時系列情報とを教師情報として、機械学習が行われている学習モジュールを実行することにより、前記評価指標の評価に寄与する1以上の前記ソフトウェアを抽出する
    請求項1から請求項13のいずれか一項に記載のクラウド管理システム。
  15. 計算機資源を有し、前記計算機資源及びソフトウェアを複数のグループに提供するクラウドシステムを管理するクラウド管理システムによるクラウド管理方法であって、
    それぞれの前記グループにおける開発効率に関する所定の評価指標の評価値を算出するための時系列の基礎情報を取得し、
    それぞれの前記グループにおけるソフトウェアの使用状況に関する時系列情報を取得し、
    記時系列の基礎情報に基づいて、各グループにおける評価指標についての評価値を算出し、最も評価が高い高効率グループを特定し、
    記使用状況に関する時系列情報に基づいて、前記高効率グループにおいて、前記評価に寄与した1以上のソフトウェアを抽出する
    クラウド管理方法。
JP2019508395A 2017-03-28 2017-03-28 クラウド管理システム、及びクラウド管理方法 Active JP6678813B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/012688 WO2018179101A1 (ja) 2017-03-28 2017-03-28 クラウド管理システム、及びクラウド管理方法

Publications (2)

Publication Number Publication Date
JPWO2018179101A1 JPWO2018179101A1 (ja) 2019-06-27
JP6678813B2 true JP6678813B2 (ja) 2020-04-08

Family

ID=63674768

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019508395A Active JP6678813B2 (ja) 2017-03-28 2017-03-28 クラウド管理システム、及びクラウド管理方法

Country Status (2)

Country Link
JP (1) JP6678813B2 (ja)
WO (1) WO2018179101A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7246301B2 (ja) * 2019-12-26 2023-03-27 株式会社日立製作所 プログラム開発支援システム及びプログラム開発支援方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233247A (ja) * 1992-02-19 1993-09-10 Hitachi Ltd ソフトウェア開発工程の管理方法及び装置
JP2004164068A (ja) * 2002-11-11 2004-06-10 Hitachi Software Eng Co Ltd ソフトウエア利用状況管理システム
JP2005284618A (ja) * 2004-03-29 2005-10-13 Hitachi Software Eng Co Ltd ソフトウェア生産状況調査システム
US7890926B2 (en) * 2005-01-04 2011-02-15 Vaakya Technologies Private Limited System and method for application development and deployment
JP2012088901A (ja) * 2010-10-19 2012-05-10 Fujitsu Ltd ソフトウェア管理装置、ソフトウェア管理方法およびソフトウェア管理プログラム
US8938708B2 (en) * 2012-08-14 2015-01-20 International Business Machines Corporation Determining project status in a development environment

Also Published As

Publication number Publication date
JPWO2018179101A1 (ja) 2019-06-27
WO2018179101A1 (ja) 2018-10-04

Similar Documents

Publication Publication Date Title
US9405662B2 (en) Process for displaying test coverage data during code reviews
EP3296876B1 (en) Systems and methods for predicting performance of applications on an internet of things (iot) platform
US9336331B2 (en) Detecting, using, and sharing it design patterns and anti-patterns
US10102106B2 (en) Promotion determination based on aggregated code coverage metrics
US9215153B2 (en) Providing status information for virtual resource computing environment
US10496392B2 (en) Staged application rollout
AU2017258970A1 (en) Testing and improving performance of mobile application portfolios
US7184935B1 (en) Determining and annotating a signature of a computer resource
US20220263710A1 (en) Self-monitoring
JP6607963B2 (ja) 集計されたメトリクスの測定値のデータストア
US20230004458A1 (en) Identifiers of crash event work items
US11188437B1 (en) Remote deployment of monitoring agents on computing systems
Bellini et al. Managing cloud via smart cloud engine and knowledge base
US20220164703A1 (en) Model acceptance determination support system and model acceptance determination support method
Kim et al. A supervised learning model for identifying inactive VMs in private cloud data centers
US11295250B2 (en) Simulation queuing based system for analyzing client or application related changes to an application maintenance project
JP6678813B2 (ja) クラウド管理システム、及びクラウド管理方法
US20190318019A1 (en) System and Method for Run-Time Adaptable Policy Engine for Heterogeneous Managed Entities
JP6707004B2 (ja) 企業のブループリントを生成するシステム及び方法
CN111338959B (zh) 一种数据处理方法及相关设备
CN116860555A (zh) 软件运行监控方法、装置、设备以及计算机存储介质
Bellini et al. Smart cloud engine and solution based on knowledge base
EP3224724A1 (en) Application management based on data correlations
US20210035115A1 (en) Method and system for provisioning software licenses
RU2019128272A (ru) Способ и система для определения производительности пользователя в компьютерной краудсорсинговой среде

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200214

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: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200317

R150 Certificate of patent or registration of utility model

Ref document number: 6678813

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150