JP7310883B2 - 環境構築支援システム、装置、方法、プログラム - Google Patents

環境構築支援システム、装置、方法、プログラム Download PDF

Info

Publication number
JP7310883B2
JP7310883B2 JP2021519383A JP2021519383A JP7310883B2 JP 7310883 B2 JP7310883 B2 JP 7310883B2 JP 2021519383 A JP2021519383 A JP 2021519383A JP 2021519383 A JP2021519383 A JP 2021519383A JP 7310883 B2 JP7310883 B2 JP 7310883B2
Authority
JP
Japan
Prior art keywords
information
know
environment
environment construction
image
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
JP2021519383A
Other languages
English (en)
Other versions
JPWO2020230673A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPWO2020230673A1 publication Critical patent/JPWO2020230673A1/ja
Application granted granted Critical
Publication of JP7310883B2 publication Critical patent/JP7310883B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • 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
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • 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
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2019-090057号(2019年 5月10日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、環境構築支援システム、装置、方法、プログラムに関する。
近年、市場環境の変化に柔軟かつ迅速に対応する為に、仮想化技術が注目を集めている。ハイパーバイザ型のサーバ仮想化技術では、ハイパーバイザ上の仮想マシン(Virtual Machine)上にゲストOS(Operating System)とアプリケーションを備えている。一方、コンテナ型仮想化技術は、図14に模式的に示すように、OSの上にコンテナと呼ばれる仮想的なユーザ空間を複数提供し、コンテナ内でアプリケーションを動作させる。コンテナエンジンは、コンテナ実行環境を提供する。コンテナ型仮想化技術は、ゲストOSの設定や起動を必要としない。コンテナ型仮想化技術は、
・ハイパーバイザ型の仮想化技術よりも軽量である、
・アプリケーションの起動等が高速である等
の特徴を有する。なお、コンテナ型仮想化技術について、例えば特許文献2等が参照される。
以下では、以下の実施形態等の理解の前提として、コンテナ型仮想化技術について、Docker(ドッカー)を例に概説する(Dockerについては例えば非特許文献1参照)。なお、Dockerエンジン(図14のコンテナエンジンに対応)は、ホストマシンで動作するDockerコンテナ(図14のコンテナに対応)を動作・管理する。DockerイメージはDockerコンテナを作成するための元となるOSやミドルウェア等(バイナリ/ライブラリ(図14のBins/Libsに対応))のイメージのファイルである。Dockerイメージは読み込み専用であり(Read Only)、イメージレイヤの積み重ねで構成される。Dockerコンテナは、ホストマシンのOS上でプロセスとして起動するコンテナであり、書き込み可能なコンテナ・レイヤを追加したものである。Docker Hub(ドッカーハブ)は誰でも利用可能な公開レポジトリであり、Dockerイメージを取得することができるサービスを提供する。Dockerfile(ドッカーファイル)は、DockerイメージやDockerコンテナをインストールするための手順や設定を行うためのテンプレート(テキストファイルであり、オーケストレーションテンプレートともいう)である。
Dockeは、例えば以下の特徴を有する。
Dockerが実装されるマシン上に、Dockerイメージをダウンロードするだけで何処でも動作させることができる。
誰でも利用可能な公開レポジトリ(Docker Hub)を備え、多くのDockerイメージが公開されている。それらを活用する事でゼロからシステムを作る必要がなく効率的である。
Dockerイメージはその汎用性を高めるために、きわめて細かなサービス単位で、機能提供が行われる。このため、複数のDockerイメージを組み合わせで活用することが一般的に行われている。
図15は、OpenStackの各コンポーネントをDockerコンテナで構築する例を模式的に説明する図である(非特許文献2等参照)。図15では、オーケストレータ(不図示)は、Docker Hubから、OpenStackの複数のコンポーネントにそれぞれ対応する複数のDockerイメージを取得し(pull)、ホストマシン(Node#1、#2)上に、複数のDockerイメージをコンテナとしてデプロイする。なお、図15において、Horizonは、OpenStackにおけるWeb GUI(Graphical User Interface)を提供する。Keystoneは、OpenStackのダッシュボード画面やAPI(Application Programming Interface)に対するアクセスの際のユーザ認証の機能を担う。Nova-apiは、エンドユーザからのNovaへのリクエストを受け付ける。MariaDBは、オープンソースリレーショナルデータベースシステムである。
リソースの自動構築の関連技術として、特許文献1には、ユーザによって入力された曖昧なリソース要求に対して、その要求を満たす技術階層(物理マシン、仮想マシン、オペレーティングシステム等の組み合わせ)を自動的に構築できるようにしたシステムが開示されている。リソースを含む複数の管理対象物理マシンを利用してリソースを自動構築するために、リソースを構成する要素のクラス、リソースを構成する要素に対応する情報、インスタンスに対応する要素を構築するための知識、が用意される。リソース要求が入力されると、クラス階層、選択条件、除外条件を含む条件に分解し、選択条件を満足し、除外条件に該当しないインスタンスのうち、状態が未使用にあるインスタンスを検索し、所定の条件を満たすインスタンスを検索できた場合、そのインスタンスをユーザの要求を満たすリソースとして出力する。
クラウドオーケストレーションに関して、特許文献2には、自動アプリケーション展開のための方法であって、前記方法が、クラウド管理ノードによって実行され、前記クラウド管理ノードが複数のコンピュータ装置のうちの少なくとも1つに展開され、前記方法は、ユーザによって入力されるアプリケーションオーケストレーションテンプレートを受け付けるステップと、前記アプリケーションオーケストレーションテンプレートからアプリケーションのアプリケーションモデル特性を解析するステップと、前記アプリケーションモデル特性および予め設定されたルールに従って、前記アプリケーションに対応する第1のインスタンス作成方法を決定するステップと、前記複数のコンピュータ装置のうちの前記第1のインスタンス作成方法に対応する第1のコンピュータ装置を決定するステップと、第1のインスタンス作成コマンドを、前記第1のコンピュータ装置へと送信するステップであって、前記第1のインスタンス作成コマンドが前記第1のコンピュータ装置に対して前記第1のインスタンス作成方法に従って前記アプリケーションのための第1のインスタンスを作成するように指示するために使用されるステップを含む。
仮想化環境構築の自動化に関して、特許文献3には、コンピュータの仮想化環境を構築するための過去に構築した実績仮想化環境構築情報を格納したデータベースサーバと、コンピュータの仮想化環境を新たに構築するための標準仮想化環境構築情報を格納したデータウェアハウスサーバと、仮想化環境を構築する簡易プログラムであるスプリクトを生成するビジネスロジックサーバとを備え、前記ビジネスロジックサーバが、ユーザが設定した仮想化環境構築条件を基にユーザ条件に適合した仮想化環境を仮想コンピュータシステムに新たに構築するスプリクトを生成する仮想化環境構築支援システムであって、前記ビジネスロジックサーバが、ユーザが設定した利用ハードウェアと利用リソース情報に類似する実績仮想化環境構築情報を前記データベースサーバから取得し、前記データウェアハウスサーバから前記標準仮想化環境構築情報を取得し、前記取得した実績仮想化環境構築情報及び標準仮想化環境構築情報を基に前記ユーザからの利用ハードウェアと利用リソース情報に適合した仮想化環境を仮想コンピュータシステムに新たに構築する仮想化環境構築情報を生成するスプリクトを生成する仮想化環境構築支援システムが開示されている。
特開2009-245409号公報 特表2019-503535号公報 特開2011-242964号公報
[図解]Dockerの全体像を理解する -前編、平成31年04月10日閲覧、インターネット(URL:https://qiita.com/kotaro-dr/items/b1024c7d200a75b992fc) OpenStack Kolla について 平成31年04月23日閲覧、インターネット(URL:https://www.business-on-it.com/2004-kolla/)
関連技術のコンテナ型仮想化技術(一例としてDocker)では、コンテナあるいは仮想マシン上のファイルシステムをイメージとしてパッケージ化する機能が存在する。この機能を利用し、不特定多数のイメージ開発者・管理者の間で開発したイメージを共有するシステムが提供されている(一例としてDocker Hub)。
一般的に複数のDockerイメージ開発・管理者や複数のサービス開発・管理者が存在し、それぞれ独立して作業を実施している。このため、作業者間での情報共有が難しい。Dockerイメージ開発・管理者は基本的に自身の開発したDockerイメージ以外の詳細を把握出来ない。この結果、異なるDockerイメージ開発・管理者がそれぞれ開発してDocker Hubにアップロードした複数のDockerイメージに関して、これらのDockerイメージの併用が適していない可能性が有る。
また、あるサービス開発・管理者がイメージについて把握している構成、版数、性能などのノウハウ情報を他のサービス開発・管理者が活用する手立て(手段)が無く、既に他の環境で構築の実績がある場合でも、ゼロから設計しなければならないということもあり得る。
なお、パッケージの依存性解決を行う関連技術のパッケージ管理システムとして、yum(Yellowdog Updater Modified)やapt(Advanced Packaging Tool)等が知られている。しかし、特定のDockerイメージを用いた構成は、複数パターンが存在し、かつDockerイメージ開発・管理者も一意に決めることが出来ない。このため、yumやapt等の関連技術のパッケージ管理システムでは、上記課題を解決することは難しい。
上記した特許文献1では、リソース要求を入力とし、所定の条件を満たすインスタンスを検索できた場合、そのインスタンスをユーザの要求を満たすリソースとして出力するものであり、上記課題に対応したものではない。
本発明は、上記課題に鑑みて創案されたものであって、その目的の1つは、環境構築要求を行う要求元で把握していないイメージに関するノウハウ情報を環境構築に活用可能とする環境構築支援システム、装置、方法、プログラムを提供することにある。
本発明の一形態によれば、コンテナの元となるイメージについて環境構築に関するノウハウ情報を記憶装置に蓄積するノウハウ蓄積ユニットと、断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記ノウハウ蓄積ユニットからノウハウ情報を取得し、前記ノウハウ情報に基づき前記断片的な環境構築情報を補完し、完成した環境構築情報を生成する環境構築支援ユニットと、を備えた環境構築支援システムが提供される。
本発明の別の一形態によれば、断片的な環境構築情報での環境構築要求を要求元から受け取ると、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットから、ノウハウ情報を取得し、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する環境構築支援方法が提供される。
本発明の別の一形態によれば、断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する手段と、前記ノウハウ蓄積ユニットから、前記ノウハウ情報要求に対する応答として、前記断片的な環境構築情報にマッチした前記ノウハウ情報を受信すると、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する手段と、を備えた環境構築支援装置が提供される。
本発明のさらに別の一形態によれば、断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する処理と、前記ノウハウ蓄積ユニットから、前記ノウハウ情報要求に対する応答として、前記断片的な環境構築情報にマッチした前記ノウハウ情報を受信すると、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する処理と、をプロセッサに実行させるプログラムが提供される。
本発明のまたさらに別の一形態によれば、上記プログラムを記憶したコンピュータ可読記録媒体(computer readable recording medium)(例えばRAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable ROM))等の半導体ストレージや、HDD(Hard Disk Drive)、SSD(Solid State Drive)、CD(Compact Disc)、DVD(Digital Versatile Disc等)が提供される。
本発明によれば、環境構築要求を行う要求元で把握していないイメージに関するノウハウ情報を環境構築に活用することができる。
(A)、(B)はDockerイメージの管理(比較例)を説明する図である。 (A)、(B)はDockerイメージの管理(比較例)を説明する図である。 (A)、(B)はDockerイメージの管理(比較例)を説明する図である。 本発明の一実施形態のシステムを説明する図である。 本発明の一実施形態を模式的に説明する図である。 本発明の一実施形態を模式的に説明する図である。 本発明の一実施形態のノウハウ蓄積ユニットのノウハウ蓄積情報を説明する図である。 本発明の一実施形態のノウハウ蓄積ユニットの構成例を説明する図である。 本発明の一実施形態の環境構築支援ユニットの構成例を説明する図である。 本発明の一実施形態におけるノウハウ情報の事前登録手順を説明する流れ図である。 (A)、(B)は本発明の一実施形態におけるイメージの事前登録手順、事前のインフラ構築手順を説明する流れ図である。 本発明の一実施形態における処理手順を説明する流れ図である。 本発明の一実施形態のコンピュータ実装例を説明する流れ図である。 コンテナ型仮想化技術を説明する図である。 クラウドオーケストレーションの一例を模式的に説明する図である。
はじめに、本発明の実施形態を実装しない場合のDockerイメージの管理の比較例を説明する。図1(A)、(B)は、Dockerイメージ(単に「イメージ」ともいう)の開発・管理者A、Bがそれぞれ開発し、Docker Hubに登録したイメージA、Bの併用(共有)が適していない例を説明する図である。図1(A)、(B)には、コンテナの元となるイメージの構成が模式的に示されている。図1(A)の構成21Aでは、イメージAの版数が1.0であり、該イメージAに割り当てられるリソースとして、ネットワーク(NW)は、NW:XとNW:Yの2つ、6コアのCPU(Central Processing Unit)、メモリの容量:5GB(Giga Bytes)、HDD(Hard Disk Drive)の容量:500GBである。IFX、IFYはNW:XとNW:Yにそれぞれ接続するNIC(Network Interface Card)である。
図1(B)の構成21Bでは、イメージBの版数が1.0であり、イメージBに割り当てられるリソースとして、ネットワーク(NW)はNW:XとNW:Y、NW:Zの3つ、6コアのCPU、メモリの容量:1GB、HDDの容量:100GBである。IFZはNW:Zに接続するNICである。
イメージAとイメージBでは、使用するネットワークが一致していない。また、イメージAとイメージBはともに同じリソース(CPU)を大量に必要としている。さらに、イメージAとイメージBはNW:Xを主ネットワーク(main)として使用している。このため、イメージAとイメージBに対応するコンテナでアプリケーションを動作させても、所望の性能はでない。このように、Dockerイメージ開発・管理者は、基本的に自身の開発したイメージ以外はその詳細を把握することは出来ない。その結果、上記したように、異なるDockerイメージ開発・管理者A、Bがそれぞれ開発したイメージ:Aとイメージ:Bの併用が適していない場合が生じる。
図2(A)、(B)は、複数のサービス開発・管理者が存在するが、あるサービス開発・管理者が把握しているイメージの構成、版数、性能等のノウハウ情報を、別のサービス開発・管理者が活用できていない例を説明する図である。図2(A)、(B)には、コンテナの元となるイメージの情報が模式的に示されている。
図2(A)の構成22Aにおいて、サービス開発・管理者:αは、イメージA(1.0)、C(1.0)、D(1.5)を用いたシステムを構築し性能を確認した実績、ノウハウを有する。図2(A)では、ホスト配置として、イメージAの1.0版がNode#1にデプロイ(配置)され、イメージCの1.0版とイメージDの1.5版は、Node#2にデプロイされる。図2(A)において、サービス開発・管理者:αは、イメージA(1.0)、C(1.0)、D(1.5)を用いたシステムをすでに構築し、性能を確認した実績、及びノウハウを有する。
図2(B)の構成22Bにおいて、サービス開発・管理者:βは、イメージA(1.0)を使用し、通信速度500Mbps(Megabits per second)の性能を出したいが、実績、ノウハウがない。例えば、
・ネットワークは、NW:XとNW:Yの2つでよいか、
・イメージA(1.0)とつながるイメージ及びその版数は何か、
・コンテナのホスト配置はどうしたらよいか、
等がサービス開発・管理者:βにとって不明である。
このように、サービス開発・管理者:βは、サービス開発・管理者:αが把握している構成、版数、性能、ホスト配置等のノウハウ情報を活用する術が無く、このため環境の設計等をゼロから始めなければならない場合がある。
図3(A)、(B)は、Dockerイメージを用いた構成が複数存在する例を説明する図である。イメージA(1.0)を用いた構成として、図3(A)、(B)に構成(1)、(2)として示すように、複数のパターンが存在している。図3(A)の構成23Aは、図2(A)の構成22Aと同一である。図3(B)の構成23Bは、Node#2上のコンテナの配置(イメージE(1.0)のコンテナが配置されている)は、図3(A)の配置と異なり、さらに、イメージF(1.5)のコンテナをデプロイするNode#3が追加されている。Dockerイメージの開発・管理者が、構成23Aと構成23Bのいずれを採用するか、一意に決めることが出来ない場合もある。
上記した比較例に対して、本発明によれば、例えば環境構築要求を行うサービス開発・管理者等で把握していないイメージに関するノウハウ情報を環境構築に活用可能とするシステム、装置、方法、プログラムが少なくとも提供される。本発明の例示的な実施形態について以下に説明する。本発明の一実施形態は、各作業者の独立性を維持しつつ、サービス開発・管理者とノウハウ情報提供者が固有に得た構成、版数、性能情報をノウハウ情報として蓄積・集約し、これらを他のサービス開発・管理者が有効活用することを可能としており、サービス開発・管理者等による環境構築を支援し負担の軽減を図る。
本発明の一実施形態によれば、例えばサービス開発・管理者(例えばDockerイメージ利用者)やノウハウ提供者が得たDockerイメージ(「イメージ」と略記される)の構成や、版数、性能情報等の固有のノウハウ情報を蓄積するノウハウ蓄積ユニット(ノウハウ蓄積装置、ノウハウ蓄積機構)を設け、これらの情報を、他のサービス開発・管理者が環境構築支援ユニット(環境構築支援装置、環境構築支援機構)を通して活用可能としている。
図4は、本発明の例示的な一実施形態を説明する図である。図4を参照すると、ノウハウ蓄積ユニット(機構、装置)11と、環境構築支援ユニット(機構、装置)12と、を備えている。ノウハウ蓄積ユニット11と、環境構築支援ユニット12は、環境構築支援システム10を構成している。
ノウハウ蓄積ユニット11は、コンテナの元となるイメージについて環境構築に関するノウハウ情報を記憶装置(不図示)に蓄積する。
環境構築支援ユニット12は、要求元(例えばサービス開発・管理者)から、該要求元が構成を把握していないため、未指定であるか完成していない項目を含む断片的な環境構築情報での環境構築要求を受けると、ノウハウ蓄積ユニット11から、必要なノウハウ情報を取得し、該ノウハウ情報に基づき、断片的な環境構築情報を補完し、完成した環境構築情報を生成する。
例示的な一実施形態において、環境構築支援ユニット12は、断片的な環境構築情報を受けると、断片的な環境構築情報を補完するノウハウ情報を取得するために、ノウハウ蓄積ユニット11に対してノウハウ情報要求を送信する。
ノウハウ蓄積ユニット11は、環境構築支援ユニット12からノウハウ情報要求を受けとると、断片的な環境構築情報にマッチしたノウハウ情報が記憶装置(不図示)に登録されているか探索し、登録されている場合、該当するノウハウ情報を環境構築支援ユニット12に送信する。
環境構築支援ユニット12は、ノウハウ蓄積ユニット11から送信されたノウハウ情報に基づき、断片的な環境構築情報を補完して、完成した環境構築情報を生成する。
例示的な一実施形態において、環境構築支援ユニット12は、ノウハウ蓄積ユニット11で断片的な環境構築情報にマッチしたイメージに関するノウハウ情報が得られない場合、ノウハウ蓄積ユニット11に対して、断片的な環境構築情報に一部マッチしたノウハウ情報が記憶装置に登録されていないか探索することを要求するようにしてもよい。
環境構築支援ユニット12は、ノウハウ蓄積ユニット11から一部マッチしたノウハウ情報が返送されると、当該一部マッチしたノウハウ情報を、環境構築要求の要求元に送信するようにしてもよい。
例示的な一実施形態において、断片的な環境構築情報が、ノウハウ情報のうちどの項目を優先するかを指定する優先度情報を有する構成としてもよい。ノウハウ蓄積ユニット11において、マッチした前記ノウハウ情報が複数登録されている場合、環境構築支援ユニット12は、ノウハウ蓄積ユニット11から提供される複数のノウハウ情報のうち、優先度情報に基づき、いずれかを選択する構成としてもよい。
例示的な一実施形態において、サービス開発・管理者は、環境構築支援ユニット12に接続する端末等から、環境を構築するための環境構築情報(環境を構成するイメージ、該イメージの配置先等を記載するテンプレート(テキストファイル))として、例えば、断片的な環境構築情報を入力するだけで、環境構築支援ユニット12は、ノウハウ蓄積ユニット11に蓄積されたノウハウ情報から情報を補完して、完成した環境構築情報を生成することができる。完成した環境構築情報はオーケストレータに受け渡される。オーケストレータでは、環境構築情報にしたがって、イメージを蓄積する公開レポジトリから対応するイメージを取得し、環境構築情報に基づき、前記イメージをホストにデプロイする。環境構築支援ユニット12は、ソフトウェアモジュールとして構成してもよい。
図5は、本発明の例示的な一実施形態を説明する図である。図5において、Docker Hub50は、Dockerイメージが公開されているレジストリである。Docker Hub50は、Dockerイメージ開発・管理者2が開発したDockerイメージを蓄積し、オーケストレータ20からの要求に応じ、Dockerイメージの提供を行う。
インフラ環境40は、インフラ構築・管理者3によって構築されたサーバ環境やネットワーク環境を表している。特に制限されないが、図5では、インフラ環境40が、オーケストレータ20と、コンテナが配置される物理マシン(ホスト)31、32を含む例が示されている。
オーケストレータ20は、環境構築情報にしたがってDocker Hub50からDockerイメージを取得し、コンテナのデプロイを行う。203は、オーケストレータ20がDocker Hub50から取得したDockerイメージを表している。Dockerイメージ203は、オーケストレータ20がホストにコンテナとしてデプロイする際に用いられる。
サービス開発・管理者1(作業者:1-β)は、事前にノウハウ情報をノウハウ蓄積ユニット11に登録する(後述される図6の構成ラベルIを登録)。
ノウハウ情報提供者4(作業者4-α)は、事前にノウハウ情報をノウハウ蓄積ユニット11に登録する(後述される図6の構成ラベルIIを登録)。
Dockerイメージ開発者・管理者2はイメージA(1.0)、B(1.0)を開発し、作業者(2-α、2-β)はイメージA(1.0)、B(1.0)をそれぞれDocker Hub50にアップロード(push)する。
インフラ構築・管理者3(作業者:3-α)は、事前にインフラ環境40(サーバ環境、ネットワーク環境等)を構築する。
図5には、サービス開発・管理者1(作業者:1-α)が断片的な環境構築情報として、
・対象イメージ:A(1.0)、
・処理性能:500Mbps以上、
・優先度:CPU優先、
を指定した環境構築要求を行い、正常に処理が行われた場合の例が示されている。
サービス開発・管理者1は、例えばサービス開発・管理者1の端末から、断片的な環境構築情報での環境構築要求を環境構築支援ユニット12に入力する。
環境構築支援ユニット12は、環境構築要求の受信を契機に、ノウハウ蓄積ユニット11に対し、断片的な環境構築情報にマッチするノウハウ情報を要求する。
ノウハウ蓄積ユニット11は、ノウハウ情報の要求を受信すると、断片的な環境構築情報にマッチしたノウハウ情報を環境構築支援ユニット12に提供する。
環境構築支援ユニット12は入手したノウハウ情報を用いて完成した環境構築情報として、
イメージ:A(1.0)/C(1.0)/D(1.5)
配置 ノード#1:A
ノード#2:C/D
を作成し、オーケストレータ20に作成した環境構築情報を渡す。
オーケストレータ20は、完成した環境構築情報に基づき、DockerイメージA(1.0)、C(1.0)、D(1.5)をDocker Hub50から取得する。
完成した環境構築情報で指定されたホスト配置に従い、イメージA(1.0)をコンテナ:A(1.0)としてNode#1に配置(デプロイ)し、イメージC(1.0)、D(1.5)を、それぞれコンテナ:C(1.0)、D(1.5)としてNode#2に配置(デプロイ)する。
図6は、図5を参照して説明した一実施形態をさらに詳細に説明する図である。以下では、図6を参照して、サービス開発・管理者が断片的な環境構築情報として、対象イメージ:A(1.0)、処理性能:500Mbps以上を指定し、正常処理した場合(ノウハウ蓄積ユニット11で断片的な環境構築情報にマッチしたノウハウ情報が探索できた場合)の例を説明する。
まず、サービス開発・管理者1が端末101から、断片的な環境構築情報での環境構築要求を環境構築支援ユニット12に入力する(S11)。
環境構築支援ユニット12では、断片的な環境構築情報201を記憶装置(不図示)に格納する。断片的な環境構築情報201には、
・使用するイメージ:A(1.0)、
・配置(ホスト配置):???、
・性能:500Mbps、
等が設定されている。なお、断片的な環境構築情報201において、未指定の項目である「配置(ホスト配置)」では、未指定(問い合わせ)を表す文字列:「???」が予約語として用いられているが、他の文字列を用いてもよいことは勿論である。
環境構築支援ユニット12は、ノウハウ蓄積ユニット11に対し、断片的な環境構築情報にマッチするノウハウ情報を要求する(S12)。
ノウハウ蓄積ユニット11は、断片的な環境構築情報にマッチしたノウハウ情報を環境構築支援ユニット12に提供する(S13)。
環境構築支援ユニット12は、入手したノウハウ情報を用いて断片的な環境構築情報を補完することで、完成した環境構築情報202を作成する(S14)。環境構築支援ユニット12は、完成した環境構築情報202を不図示の記憶装置に格納する。
図6の例では、完成した環境構築情報202は、
・使用するイメージ:A(1.0)/C(1.0)/D(1.5)
・配置(ホスト配置):
Node#1:A(1.0)
Node#2:C(1.0)/D(1.5)
・性能:500Mbps、
である。完成した環境構築情報202では、断片的な環境構築情報201の“A(1.0)”から“A(1.0)/C(1.0)/D(1.5)”に補完修正され、断片的な環境構築情報201では未指摘の配置(ホスト配置)の情報:“Node#1:A(1.0)”、“Node#2:C(1.0)/D(1.5)”が新たに充填されている。
環境構築支援ユニット12は、オーケストレータ20に完成した環境構築情報202を渡す。環境構築支援ユニット12は、完成した環境構築情報202を、環境構築要求の要求元であるサービス開発・管理者1の端末101に送信し、端末101の表示画面等に提示するようにしてもよい。
オーケストレータ20は、完成した環境構築情報202に必要なDockerイメージをDocker Hub50から取得する(S15)。
オーケストレータ20は、環境構築情報に従い、取得したDockerイメージのホストへの配置(デプロイ)を実施する(S16)。
イメージ:A(1.0)(コンテナ)はノード#1(31)にデプロイされ、イメージ:C(1.0)、D(1.5)(コンテナ)はノード#2(32)にデプロイされる。なお、ノード#1(31)において、コンテナA(1.0)はネットワーク(NW):X、Yと接続され、ノード#2(32)において、コンテナC(1.0)はネットワーク(NW):Zと接続され、コンテナD(1.5)は、ネットワーク(NW):X、Y、Zと接続される。
図7は、図6におけるノウハウ蓄積ユニット11で蓄積されるノウハウ情報117のデータ構造を模式的に説明する図である。図7において、動作実績がある構成が、1つの構成ラベルに対応する(図7では、構成ラベル-I、構成ラベル-II)。また構成に含まれるイメージ毎に、行が分かれ、当該イメージに割り当てたリソースが「動作確認済みスペック(specification)」に入る。
ノウハウ情報117は、構成ラベル(I、II)の各々に対応して、
・対象イメージ(名前、版数)、
・動作確認済みスペックとして、対象イメージに割り当てられるCPU(CPUコア数)、Mem(Memory)容量、HDD(Hard Disk Drive)の容量、ネットワーク帯域、インタフェース(IF)(X(〇)は、NW:Xと通信接続するインタフェースであることを示している)、
・動作確認済みイメージ(名前、版数)(対象イメージと組み合わせた構成で動作確認済みの1つ又は複数のイメージの名前と版数、例えば、エントリNo.3では、対象イメージAに対してイメージC(1.0)、D(1.5)が動作確認済みであり、動作結果はOK)、
・ホスト配置(対象イメージがコンテナとしてデプロイされるホスト)、
・動作結果(〇:動作結果が得られ、結果はOK、×:動作結果が得られていないか、結果は不可)、
・処理性能(動作が確認されたイメージでの通信速度等)等を含む。
ノウハウ情報117として登録する情報は、必要に応じて、追加/削除が可能である。ノウハウ情報117は、図7のフォーマットに限定されるものではない。ノウハウ蓄積ユニット11において、ノウハウ情報117のテーブルをデータベースで管理するようにしてもよい。この場合、ノウハウ蓄積ユニット11は、該データベースを内部に備えるかわりに、通信手段を介して該データベースにアクセスする構成としてもよい。
断片的な環境構築情報は、サービス開発・管理者1で把握されている環境構築情報の一部であり、以下の2つの情報(対象イメージと処理性能)を必須指定のパラメータとし、必要に応じて任意に指定されるパラメータの追加も可能としている。
例えば、ノウハウの蓄積が進むと条件にマッチするノウハウ情報が複数存在する場合が想定される。この場合、何を優先するかを指定する事も可能とする。
・対象イメージ:サービス開発・管理者が使用したい機能を持つイメージの名前と版数。
・処理性能:サービス開発・管理者が期待する処理性能。
・優先度:複数のノウハウ情報が存在する場合、サービス開発・管理者が優先したいパラメータ。図6の断片的な環境構築情報201では、優先度はCPU優先である。
図8は、本発明の一実施形態におけるノウハウ蓄積ユニット11の構成(機能)を例示する図である。図8を参照すると、ノウハウ蓄積ユニット11において、ノウハウ情報登録部111は、サービス開発・管理者1もしくはノウハウ情報提供者4の端末から送信されたノウハウ情報117を記憶装置116に登録する。ノウハウ情報要求/再要求受信部112は、環境構築支援ユニット12から送信されたノウハウ情報要求/ノウハウ情報再要求を受け取る。
ノウハウ情報抽出部113は、ノウハウ情報要求/再要求受信部112で受けとったノウハウ情報要求に基づき、記憶装置116に登録されているノウハウ情報117を探索し、断片的な環境構築要求情報にマッチしたノウハウ情報(断片的な環境構築情報を補完するノウハウ情報)を抽出する。また、ノウハウ情報抽出部113は、ノウハウ情報要求/再要求受信部112で受けとったノウハウ情報再要求に基づき、記憶装置116に記憶されているノウハウ情報117を探索し、断片的な環境構築要求情報に一部マッチしたノウハウ情報(断片的な環境構築情報を一部補完するノウハウ情報)を抽出する。
ノウハウ情報提供部114は、ノウハウ情報抽出部113が抽出したノウハウ情報を、応答として、通信装置115を介して環境構築支援ユニット12に返す。
通信装置115は、サービス開発・管理者1もしくはノウハウ情報提供者4の端末や環境構築支援ユニット12と通信接続する。
制御部110は、ノウハウ蓄積ユニット11の各部を制御する。ノウハウ蓄積ユニット11の各部はコンピュータで実行されるプログラムによってその機能を実現するようにしてもよい。なお、記憶装置116は、ノウハウ蓄積ユニット11の外部に備え、通信装置115等を介してアクセスする構成としてもよい。
図9は、環境構築支援ユニット12の構成(機能)を例示する図である。図9を参照すると、環境構築支援ユニット12において、環境構築要求受付部121は、サービス開発・管理者1の端末101から送信された環境構築要求を、通信装置127を介して受け取る。
環境構築情報補完要否判定部122は、環境構築要求に含まれる環境構築情報が断片的であり補完する必要があるか否かを判定する。環境構築情報補完要否判定部122で環境構築情報が完全であると判断した場合(補完の必要なし)、サービス開発・管理者1の端末101から送信された環境構築情報はそのままオーケストレータ20に受け渡される。
環境構築情報補完要否判定部122で、環境構築情報が断片的であり補完が必要と判断した場合、ノウハウ情報要求/再要求送信部123は、ノウハウ情報要求を、通信装置127を介してノウハウ蓄積ユニット11に送信する。
ノウハウ情報受信部124は、ノウハウ蓄積ユニット11から返信されたノウハウ情報を、通信装置127を介して受け取る。
環境構築情報補完部125は、断片的な環境構築情報にマッチしたノウハウ情報(断片的な環境構築情報を補完するノウハウ情報)がノウハウ蓄積ユニット11から送信された場合、該ノウハウ情報を用いて(断片的な環境構築情報を該ノウハウ情報に基づき補完して)、完成した環境構築情報を生成する。
環境構築情報補完部125において、断片的な環境構築情報にマッチしたノウハウ情報がノウハウ蓄積ユニット11から送信されない場合、環境構築情報補完部125では、完成した環境構築情報を生成せず、ノウハウ情報要求/再要求送信部123からノウハウ情報再要求を、通信装置127を介してノウハウ蓄積ユニット11に送信する。
ノウハウ情報受信部124において、ノウハウ蓄積ユニット11からノウハウ情報再要求に対する応答として、断片的な環境構築情報に一部マッチしたノウハウ情報を、通信装置127を介して受信すると、ノウハウ情報提供部126は、該一部マッチしたノウハウ情報を、サービス開発・管理者1の端末101に送信する。
通信装置127は、サービス開発・管理者1の端末101やノウハウ蓄積ユニット11と通信接続する。
記憶装置128は、断片的な環境構築情報201や完成した環境構築情報202、ノウハウ蓄積ユニット11から受信したノウハウ情報や一部マッチしたノウハウ情報等を記憶する。記憶装置128に記憶された完成した環境構築情報202は、オーケストレータ20に受け渡される。記憶装置128に記憶された完成した環境構築情報202は、通信装置127からサービス開発・管理者1の端末101に送信するようにしてもよい。
制御部120は、環境構築支援ユニット12の各部の処理を制御する。環境構築支援ユニット12の各部は、コンピュータで実行されるプログラムによってその機能を実現するようにしてもよい。環境構築支援ユニット12において、通信装置127と記憶装置128は、環境構築支援ユニット12内に備えるかわりに、オーケストレータ20が実装されるインフラ環境(図5の40)の通信装置と記憶装置を用いるようにしてもよい。
図10は、本発明の例示的な一実施形態のノウハウ情報登録手順を説明する流れ図である。サービス開発・管理者1、及び、ノウハウ情報提供者4は、事前準備(1)として、ノウハウ情報毎に、ノウハウ蓄積ユニット11に対してノウハウ情報を登録する。サービス開発・管理者1、及び、ノウハウ情報提供者4は、ノウハウ蓄積ユニット11に通信接続する端末(コンピュータ)から、図7のノウハウ情報に例示するように、イメージについて名前、版数、リソース、ホスト配置、動作結果、処理性能等の情報を設定入力する。
図11(A)は、本発明の例示的な一実施形態におけるイメージ登録手順を説明する流れ図である。Dockerイメージ開発・管理者2は、事前準備(2)として、開発したDockerイメージをイメージ毎に、Docker Hubへアップロードする(pushする)(S2)。
図11(B)は、本発明の一実施形態におけるインフラ環境構築手順を説明する流れ図である。インフラ構築・管理者3は、事前準備(3)として、サーバ、ネットワーク環境等のインフラ(図5のインフラ環境40)を構築する。
図12は、本発明の例示的な一実施形態における環境構築情報の作成手順を説明する流れ図である。図12のステップS11~S16は、図6のステップS11~S16に対応している。
サービス開発・管理者1は、断片的な情報での環境構築要求を環境構築支援ユニット12に送信する(S11)。
環境構築支援ユニット12は、断片的な環境構築情報にマッチするノウハウ情報をノウハウ蓄積ユニット11に要求する(S12)。サービス開発・管理者1が、例えば対象イメージ:A(1.0)、処理性能:500Mbps以上という断片的な環境構築情報201を指定した場合、図7のNo.3がマッチし、構成ラベルIIのノウハウ情報(使用するイメージ:A(1.0)/C(1.0)/D(1.5))がマッチする。
ノウハウ蓄積ユニット11は、断片的な環境構築情報にマッチしたノウハウ情報を環境構築支援ユニット12に提供する(S13)。
環境構築支援ユニット12では、断片的な環境構築情報にマッチしたノウハウ情報がノウハウ蓄積ユニット11から返送された場合(S17の「有り」の分岐)、断片的な環境構築情報を該返送されたノウハウ情報に基づき補完することで完成した環境構築情報を生成する(S14)。
オーケストレータ20は、完成した環境構築情報に必要なDockerイメージをDocker Hub50から取得(ダウンロード:pull)する(S15)。
オーケストレータ20は、取得したDockerイメージからコンテナをホストマシン上にデプロイする(S16)。
環境構築支援ユニット12では、マッチしたノウハウ情報がノウハウ蓄積ユニット11から返送されない場合(S17の「無し」の分岐)、環境構築支援ユニット12は、断片的な環境構築情報に一部だけマッチするノウハウ情報がないか、ノウハウ蓄積ユニット11にノウハウ情報を再要求する(S18)。
環境構築支援ユニット12では、ノウハウ蓄積ユニット11から、断片的な環境構築情報に一部だけマッチするノウハウ情報が返送された場合(S19の「有り」の分岐)、該返送された一部だけマッチするノウハウ情報をサービス開発・管理者1の端末101に送信(提案)する(S20)。この場合、断片的な環境構築情報に一部だけマッチするノウハウ情報に基づき、該サービス開発・管理者が把握出来ていないかった別の構成への切替えが行われる可能性がある。
環境構築支援ユニット12では、断片的な環境構築情報に一部だけマッチするノウハウ情報が無い(断片的な環境構築情報に一部だけマッチするノウハウ情報がノウハウ蓄積ユニット11から返送されない)場合(S19の「無し」の分岐)、例えば異常終了する(エラーを返す)(S21)。あるいは、環境構築支援ユニット12は、断片的な環境構築情報にマッチするノウハウ情報が登録されていない旨を、サービス開発・管理者1の端末101に送信するようにしてよい。
本実施形態によれば、サービス開発・管理者1は、自身が使用したい部分の設計を行うだけで良く、その他の部分は他者のノウハウ情報により、環境構築支援ユニット12が自動で補完して、完成した環境構築情報を生成することができる。このため、環境構築の容易化を図り、負荷の軽減が期待できる。
また、ノウハウ蓄積ユニット11は、断片的な環境構築情報にマッチしたノウハウ情報を環境構築支援ユニット12に提供するが、断片的な環境構築情報にマッチするノウハウ情報が複数存在する場合、環境構築支援ユニット12では、断片的な環境構築情報に何を優先するか指定されている場合、優先パラメータでソートし、最も優先度の高いノウハウ情報を選択するようにしてもよい。優劣が付かないノウハウ情報が複数存在する場合、サービス開発・管理者1の端末に、その旨を応答として返し、優先パラメータの指定をさらに追加するように要求するようにしてもよい。
図13は、ノウハウ蓄積ユニット11、環境構築支援ユニット12をサーバ等のコンピュータ装置300に実装した場合の構成を説明する図である。図13を参照すると、コンピュータ装置300は、プロセッサ301と、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory)等の半導体メモリ等のメモリ302と、入出力装置(表示装置、プリンタ、ハードディスク等の補助記憶装置等)とのアクセスを行う入出力インタフェース303と、ネットワークに接続するNIC(Network Interface Card)304を備えている。メモリ302に格納されたプログラムを実行することで、ノウハウ蓄積ユニット11又は環境構築支援ユニット12を実現することができる。なお、ノウハウ蓄積ユニット11と環境構築支援ユニット12は、別々のコンピュータ装置に実装してもよいし、1つのコンピュータ装置に実装するようにしてもよい。例えば、それぞれ仮想マシン上に実装し仮想ネットワークを介して通信するようにしてもよい。この場合、ノウハウ蓄積ユニット11の記憶装置は、仮想ストレージとして実装するようにしてもよい。さらに、環境構築支援ユニット12を、サービス開発・管理者1の端末101から見て、見かけ上、オーケストレータ20に組み込まれているように実装してもよい。この場合、サービス開発・管理者1の端末101からの環境構築要求は、オーケストレータ20宛てに送信され、オーケストレータ20では、環境構築要求の入力を検出すると、これを環境構築支援ユニット12に受け渡すようにしてもよい。
なお、上記の特許文献1-3、非特許文献1、2の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
上記した実施形態は以下のように付記される(ただし、以下に制限されない)。
(付記1)
コンテナの元となるイメージについて環境構築に関するノウハウ情報を記憶装置に蓄積するノウハウ蓄積ユニットと、
断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記ノウハウ蓄積ユニットからノウハウ情報を取得し、前記ノウハウ情報に基づき前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する環境構築支援ユニットと、
を備えた、ことを特徴とする環境構築支援システム。
(付記2)
前記環境構築支援ユニットは、
前記断片的な環境構築情報を受けると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、前記ノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する手段を備え、
前記ノウハウ蓄積ユニットは、
前記環境構築支援ユニットから前記ノウハウ情報要求を受け取ると、前記記憶装置に前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されているか探索し、前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されている場合、前記ノウハウ情報を前記環境構築支援ユニットに送信する手段を備え、
前記環境構築支援ユニットは、
前記ノウハウ蓄積ユニットから送信された前記ノウハウ情報を受け取り、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して前記完成した環境構築情報を生成する手段を備えている、ことを特徴とする付記1に記載の環境構築支援システム。
(付記3)
前記環境構築支援ユニットは、
前記ノウハウ蓄積ユニットで前記断片的な環境構築情報にマッチしたイメージに関するノウハウ情報が得られない場合、前記ノウハウ蓄積ユニットに対して、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が前記記憶装置にないか探索することを要求する手段と、
前記ノウハウ蓄積ユニットから、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が返送されると、前記一部マッチした前記ノウハウ情報を、前記環境構築要求の要求元に送信する手段、
を備えたことを特徴とする付記1又は2に記載の環境構築支援システム。
(付記4)
前記断片的な環境構築情報が、前記ノウハウ情報のうちどの項目を優先するかを指定する優先度情報を有し、
前記環境構築支援ユニットは、
前記ノウハウ蓄積ユニットにおいて、前記断片的な環境構築情報にマッチした前記ノウハウ情報が前記記憶装置に複数登録されている場合、
前記ノウハウ蓄積ユニットからの複数の前記ノウハウ情報のうち、前記優先度情報に基づき、いずれかを選択する手段を備えた、ことを特徴とする付記1乃至3のいずれか1に記載の環境構築支援システム。
(付記5)
前記環境構築支援ユニットは、
前記断片的な環境構築情報の前記優先度情報で前記ノウハウ情報の優劣が付かない場合には、前記要求元に対して、前記優先度情報の追加を要求する手段を備えた、ことを特徴とする付記4に記載の環境構築支援システム。
(付記6)
前記ノウハウ蓄積ユニットにおいて、前記記憶装置に登録される前記ノウハウ情報は、対象となる各イメージに対応して、
前記イメージの版数、
前記イメージに割り当てられたリソースの構成と仕様、
前記イメージと組み合わせた構成で動作確認済みのイメージとその版数、
前記イメージを配置するホスト、
前記イメージの処理性能、
の少なくともいずれかを含む、ことを特徴とする付記1乃至5のいずれか1に記載の環境構築支援システム。
(付記7)
前記環境構築支援ユニットは、完成した前記環境構築情報をオーケストレータに受け渡し、前記オーケストレータでは、前記環境構築情報にしたがって、イメージを蓄積する公開レポジトリから対応するイメージを取得し、ホストに前記イメージをコンテナとしてデプロイする、ことを特徴とする付記1乃至6のいずれか1に記載の環境構築支援システム。
(付記8)
断片的な環境構築情報での環境構築要求を要求元から受け取ると、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットから、ノウハウ情報を取得し、
前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する、ことを特徴とする環境構築支援方法。
(付記9)
前記断片的な環境構築情報を受けると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、前記ノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信し、
前記ノウハウ蓄積ユニットでは、前記ノウハウ情報要求を受け取ると、前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されているか探索し、前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されている場合、前記ノウハウ蓄積ユニットから前記ノウハウ情報を受け取り、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して前記完成した環境構築情報を生成する、ことを特徴とする付記8に記載の環境構築支援方法。
(付記10)
前記ノウハウ蓄積ユニットで前記断片的な環境構築情報にマッチしたイメージに関するノウハウ情報が得られない場合、前記ノウハウ蓄積ユニットに対して、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が蓄積されていないか探索することを要求し、
前記ノウハウ蓄積ユニットから、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が返送されると、前記一部マッチした前記ノウハウ情報を、前記環境構築要求の要求元に送信する、ことを特徴とする付記8又は9に記載の環境構築支援方法。
(付記11)
前記断片的な環境構築情報が、前記ノウハウ情報のうちどの項目を優先するかを指定する優先度情報を有し、
前記ノウハウ蓄積ユニットにおいて、前記断片的な環境構築情報にマッチした前記ノウハウ情報が複数登録されている場合、複数の前記ノウハウ情報のうち、前記優先度情報に基づき、いずれかを選択する、ことを特徴とする付記8乃至10のいずれか1に記載の環境構築支援方法。
(付記12)
前記断片的な環境構築情報の前記優先度情報で前記ノウハウ情報の優劣が付かない場合には、前記要求元に対して、前記優先度情報の追加を要求する、ことを特徴とする付記11に記載の環境構築支援方法。
(付記13)
前記ノウハウ蓄積ユニットにおいて、前記記憶装置に登録される前記ノウハウ情報は、対象となる各イメージに対応して、
前記イメージの版数、
前記イメージに割り当てられたリソースの構成と仕様、
前記イメージと組み合わせた構成で動作確認済みのイメージとその版数、
前記イメージを配置するホスト、
前記イメージの処理性能、
の少なくともいずれかを含む、ことを特徴とする付記8乃至12のいずれか1に記載の環境構築支援方法。
(付記14)
完成した前記環境構築情報をオーケストレータに受け渡し、前記オーケストレータでは、前記環境構築情報にしたがって、イメージを蓄積する公開レポジトリから対応するイメージを取得し、ホストに前記イメージをコンテナとしてデプロイする、ことを特徴とする付記8乃至13のいずれか1に記載の環境構築支援方法。
(付記15)
断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する手段と、
前記ノウハウ蓄積ユニットから、前記ノウハウ情報要求に対する応答として、前記断片的な環境構築情報にマッチした前記ノウハウ情報を受信すると、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する手段と、
を備えた、ことを特徴とする環境構築支援装置。
(付記16)
前記断片的な環境構築情報を受けると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、前記ノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する手段を備え、前記ノウハウ蓄積ユニットでは、前記ノウハウ情報要求を受け取ると、前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されているか探索し、
前記ノウハウ蓄積ユニットに前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されている場合、前記ノウハウ蓄積ユニットから、前記ノウハウ情報を受け取る手段と、
前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して前記完成した環境構築情報を生成する手段と、
を備えたことを特徴とする付記15に記載の環境構築支援装置。
(付記17)
前記ノウハウ蓄積ユニットで前記断片的な環境構築情報にマッチしたイメージに関するノウハウ情報が得られない場合、前記ノウハウ蓄積ユニットに対して、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が蓄積されていないか探索することを要求する手段と、
前記ノウハウ蓄積ユニットから、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が返送されると、前記一部マッチした前記ノウハウ情報を、前記環境構築要求の要求元に送信する手段と、
を備えた、ことを特徴とする付記15又は16に記載の環境構築支援装置。
(付記18)
前記断片的な環境構築情報が、前記ノウハウ情報のうちどの項目を優先するかを指定する優先度情報を有し、
前記ノウハウ蓄積ユニットにおいて、前記断片的な環境構築情報にマッチした前記ノウハウ情報が複数登録されている場合、
前記ノウハウ蓄積ユニットからの複数の前記ノウハウ情報のうち、前記優先度情報に基づき、いずれかを選択する手段を備えた、ことを特徴とする付記15乃至17のいずれか1に記載の環境構築支援装置。
(付記19)
前記断片的な環境構築情報の前記優先度情報で前記ノウハウ情報の優劣が付かない場合には、前記要求元に対して、前記優先度情報の追加を要求する手段を備えた、ことを特徴とする付記18に記載の環境構築支援装置。
(付記20)
断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する処理と、
前記ノウハウ蓄積ユニットから、前記ノウハウ情報要求に対する応答として、前記断片的な環境構築情報にマッチした前記ノウハウ情報を受信すると、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する処理と、
をプロセッサに実行させるプログラム。
(付記21)
前記断片的な環境構築情報を受けると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、前記ノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する処理と、
前記ノウハウ蓄積ユニットに前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されている場合、前記ノウハウ蓄積ユニットから前記ノウハウ情報を受け取る処理と、
前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して前記完成した環境構築情報を生成する処理と、
を前記プロセッサに実行させる付記20に記載のプログラム。
(付記22)
前記ノウハウ蓄積ユニットで前記断片的な環境構築情報にマッチしたイメージに関するノウハウ情報が得られない場合、前記ノウハウ蓄積ユニットに対して、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が蓄積されていないか探索することを要求する処理と、
前記ノウハウ蓄積ユニットから、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が返送されると、前記一部マッチした前記ノウハウ情報を、前記環境構築要求の要求元に送信する処理と、
を前記プロセッサに実行させる付記20又は21に記載のプログラム。
(付記23)
前記断片的な環境構築情報が、前記ノウハウ情報のうちどの項目を優先するかを指定する優先度情報を有し、前記ノウハウ蓄積ユニットにおいて、前記断片的な環境構築情報にマッチした前記ノウハウ情報が複数登録されている場合、
前記ノウハウ蓄積ユニットからの複数の前記ノウハウ情報のうち、前記優先度情報に基づき、いずれかを選択する処理、
を前記プロセッサに実行させる付記20乃至22のいずれか1に記載のプログラム。
(付記24)
前記断片的な環境構築情報の前記優先度情報で前記ノウハウ情報の優劣が付かない場合には、前記要求元に対して、前記優先度情報の追加を要求する処理を前記プロセッサに実行させる付記23に記載のプログラム。
1 サービス開発・管理者
2 Dockerイメージ開発・管理者
3 インフラ構築・管理者
4 ノウハウ情報提供者
10 環境構築支援装置
11 ノウハウ蓄積ユニット(ノウハウ蓄積装置、ノウハウ蓄積機構)
12 環境構築支援ユニット(環境構築支援装置、環境構築支援ユニット)
20 オーケストレータ
21A、21B、22A、22B、23A、23B イメージ
31 ホスト(ホストマシン)(Node#1)
32 ホスト(ホストマシン)(Node#2)
40 インフラ環境
50 Docker Hub
101 端末
110 制御部
111 ノウハウ情報登録部
112 ノウハウ情報要求/再要求受信部
113 ノウハウ情報抽出部
114 ノウハウ情報提供部
115 通信装置
116 記憶装置
117 ノウハウ情報
120 制御部
121 環境構築要求受付部
122 環境構築情報補完要否判定部
123 ノウハウ情報要求/再要求送信部
124 ノウハウ情報受信部
125 環境構築情報補完部
126 ノウハウ情報提供部
127 通信装置
128 記憶装置
201 断片的な環境構築情報
202 完成した環境構築情報
203A、203C、203D、501A、501B、501C、501D イメージ
300 コンピュータ装置
301 プロセッサ
302 メモリ
303 入出力インタフェース
204 NIC

Claims (10)

  1. コンテナの元となるイメージについて環境構築に関するノウハウ情報を記憶装置に蓄積するノウハウ蓄積ユニットと、
    断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記ノウハウ蓄積ユニットからノウハウ情報を取得し、前記ノウハウ情報に基づき前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する環境構築支援ユニットと、
    を備えた、ことを特徴とする環境構築支援システム。
  2. 前記環境構築支援ユニットは、
    前記断片的な環境構築情報を受けると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、前記ノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する手段を備え、
    前記ノウハウ蓄積ユニットは、
    前記環境構築支援ユニットから前記ノウハウ情報要求を受け取ると、前記記憶装置に前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されているか探索し、前記断片的な環境構築情報にマッチした前記ノウハウ情報が登録されている場合、前記ノウハウ情報を前記環境構築支援ユニットに送信する手段を備え、
    前記環境構築支援ユニットは、
    前記ノウハウ蓄積ユニットから送信された前記ノウハウ情報を受け取り、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して前記完成した環境構築情報を生成する手段を備えている、ことを特徴とする請求項1に記載の環境構築支援システム。
  3. 前記環境構築支援ユニットは、
    前記ノウハウ蓄積ユニットで前記断片的な環境構築情報にマッチしたイメージに関するノウハウ情報が得られない場合、前記ノウハウ蓄積ユニットに対して、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が前記記憶装置にないか探索することを要求する手段と、
    前記ノウハウ蓄積ユニットから、前記断片的な環境構築情報に一部マッチした前記ノウハウ情報が返送されると、前記一部マッチした前記ノウハウ情報を、前記環境構築要求の要求元に送信する手段、
    を備えた、ことを特徴とする請求項1又は2に記載の環境構築支援システム。
  4. 前記断片的な環境構築情報が、前記ノウハウ情報のうちどの項目を優先するかを指定する優先度情報を有し、
    前記環境構築支援ユニットは、
    前記ノウハウ蓄積ユニットにおいて、前記断片的な環境構築情報にマッチした前記ノウハウ情報が前記記憶装置に複数登録されている場合、
    前記ノウハウ蓄積ユニットからの複数の前記ノウハウ情報のうち、前記優先度情報に基づき、いずれかを選択する手段を備えた、ことを特徴とする請求項1乃至3のいずれか1項に記載の環境構築支援システム。
  5. 前記環境構築支援ユニットは、
    前記断片的な環境構築情報の前記優先度情報で前記ノウハウ情報の優劣が付かない場合には、前記要求元に対して、前記優先度情報の追加を要求する手段を備えた、ことを特徴とする請求項4に記載の環境構築支援システム。
  6. 前記ノウハウ蓄積ユニットにおいて、前記記憶装置に登録される前記ノウハウ情報は、対象となる各イメージに対応して、
    前記イメージの版数、
    前記イメージに割り当てられたリソースの構成と仕様、
    前記イメージと組み合わせた構成で動作確認済みのイメージとその版数、
    前記イメージを配置するホスト、
    前記イメージの処理性能、
    の少なくともいずれかを含む、ことを特徴とする請求項1乃至5のいずれか1項に記載の環境構築支援システム。
  7. 前記環境構築支援ユニットは、完成した前記環境構築情報をオーケストレータに受け渡し、前記オーケストレータでは、前記環境構築情報にしたがって、イメージを蓄積する公開レポジトリから対応するイメージを取得し、ホストに前記イメージをコンテナとしてデプロイする、ことを特徴とする請求項1乃至6のいずれか1項に記載の環境構築支援システム。
  8. コンピュータが、断片的な環境構築情報での環境構築要求を要求元から受け取ると、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットから、ノウハウ情報を取得し、
    前記コンピュータが、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する、ことを特徴とする環境構築支援方法。
  9. 断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する手段と、
    前記ノウハウ蓄積ユニットから、前記ノウハウ情報要求に対する応答として、前記断片的な環境構築情報にマッチした前記ノウハウ情報を受信すると、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する手段と、
    を備えた、ことを特徴とする環境構築支援装置。
  10. 断片的な環境構築情報での環境構築要求を要求元から受け取ると、前記断片的な環境構築情報を補完するためのノウハウ情報を取得するために、コンテナの元となるイメージについて環境構築に関するノウハウ情報を蓄積するノウハウ蓄積ユニットに対して、ノウハウ情報要求を送信する処理と、
    前記ノウハウ蓄積ユニットから、前記ノウハウ情報要求に対する応答として、前記断片的な環境構築情報にマッチした前記ノウハウ情報を受信すると、前記ノウハウ情報に基づき、前記断片的な環境構築情報を補完して、完成した環境構築情報を生成する処理と、
    をプロセッサに実行させるプログラム。
JP2021519383A 2019-05-10 2020-05-01 環境構築支援システム、装置、方法、プログラム Active JP7310883B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019090057 2019-05-10
JP2019090057 2019-05-10
PCT/JP2020/018438 WO2020230673A1 (ja) 2019-05-10 2020-05-01 環境構築支援システム、装置、方法、プログラム

Publications (2)

Publication Number Publication Date
JPWO2020230673A1 JPWO2020230673A1 (ja) 2020-11-19
JP7310883B2 true JP7310883B2 (ja) 2023-07-19

Family

ID=73290019

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021519383A Active JP7310883B2 (ja) 2019-05-10 2020-05-01 環境構築支援システム、装置、方法、プログラム

Country Status (3)

Country Link
US (1) US20220229635A1 (ja)
JP (1) JP7310883B2 (ja)
WO (1) WO2020230673A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569180B1 (en) 2015-10-29 2017-02-14 International Business Machines Corporation Application development in cloud based environment
JP2019053502A (ja) 2017-09-14 2019-04-04 日本電気株式会社 システム構築支援装置、システム構築支援方法、及びプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311161B2 (en) * 2012-09-14 2016-04-12 Ca, Inc. Automatically configured management service payloads for cloud IT services delivery
US9256467B1 (en) * 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
CA3019911A1 (en) * 2015-07-27 2017-02-02 Datagrid Systems, Inc. Techniques for evaluating server system reliability, vulnerability and component compatibility using crowdsourced server and vulnerability data
US9727330B2 (en) * 2015-11-25 2017-08-08 Red Hat, Inc. Source to image transformation pipeline for a platform-as-a-service system
US10261782B2 (en) * 2015-12-18 2019-04-16 Amazon Technologies, Inc. Software container registry service
US9928062B2 (en) * 2016-03-04 2018-03-27 International Business Machines Corporation ISA-ported container images
US10615998B2 (en) * 2016-08-17 2020-04-07 Red Hat, Inc. State analysis of remote computing images
US10394663B2 (en) * 2016-12-16 2019-08-27 Red Hat, Inc. Low impact snapshot database protection in a micro-service environment
WO2019113308A1 (en) * 2017-12-05 2019-06-13 Franchitti Jean Claude Active adaptation of networked compute devices using vetted reusable software components
US20200082094A1 (en) * 2018-09-11 2020-03-12 Ca, Inc. Selectively applying heterogeneous vulnerability scans to layers of container images
US20200097662A1 (en) * 2018-09-25 2020-03-26 Ca, Inc. Combined threat score for container images

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569180B1 (en) 2015-10-29 2017-02-14 International Business Machines Corporation Application development in cloud based environment
JP2019053502A (ja) 2017-09-14 2019-04-04 日本電気株式会社 システム構築支援装置、システム構築支援方法、及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
千葉 立寛 ほか,「動的なコンフィグチューニングによるコンテナ型アプリケーションの性能最適化」,情報処理学会 研究報告 システムソフトウェアとオペレーティング・システム(OS)[online],情報処理学会,2018年07月23日,第2018-OS-144巻, 第9号,pp.1-8,[検索日 2018.07.26], インターネット:<URL:https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=190634&file_id=1&file_no=1>

Also Published As

Publication number Publication date
WO2020230673A1 (ja) 2020-11-19
US20220229635A1 (en) 2022-07-21
JPWO2020230673A1 (ja) 2020-11-19

Similar Documents

Publication Publication Date Title
US11307890B2 (en) Methods and apparatus to manage virtual machines
US20220229649A1 (en) Conversion and restoration of computer environments to container-based implementations
US20230325237A1 (en) Methods and apparatus to automate deployments of software defined data centers
US20210111957A1 (en) Methods, systems and apparatus to propagate node configuration changes to services in a distributed environment
US11080098B2 (en) Methods, systems and apparatus for client extensibility during provisioning of a composite blueprint
US20210406090A1 (en) Methods, systems and apparatus for governance of virtual computing infrastructure resources
US12086573B2 (en) Automatic containerization of operating system distributions
US9851989B2 (en) Methods and apparatus to manage virtual machines
US20160182315A1 (en) Container manager
US20200106737A1 (en) Systems and methods for implementing address translation services
US11734044B2 (en) Configuring virtualization system images for a computing cluster
EP2019358A1 (en) A method and a system for the creation and deployment of a virtual machine appliance on virtualised servers
US11593143B2 (en) System and method for distributed orchestration management in network function virtualization
EP3037964B1 (en) Virtual application manager in a cloud computing environment
US20190034464A1 (en) Methods and systems that collect data from computing facilities and export a specified portion of the collected data for remote processing and analysis
US10203976B2 (en) Virtual appliance management in a virtualized computing environment based on operational modes associated with virtual appliance
JP7310883B2 (ja) 環境構築支援システム、装置、方法、プログラム
US20240152371A1 (en) Dynamic re-execution of parts of a containerized application pipeline
CN118057776A (zh) 部署虚拟化网络功能的方法和通信装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230206

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230619

R151 Written notification of patent or utility model registration

Ref document number: 7310883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151