JP7841990B2 - 計算機システム、デプロイ計画の生成方法、及びデプロイ制御システム - Google Patents

計算機システム、デプロイ計画の生成方法、及びデプロイ制御システム

Info

Publication number
JP7841990B2
JP7841990B2 JP2022135826A JP2022135826A JP7841990B2 JP 7841990 B2 JP7841990 B2 JP 7841990B2 JP 2022135826 A JP2022135826 A JP 2022135826A JP 2022135826 A JP2022135826 A JP 2022135826A JP 7841990 B2 JP7841990 B2 JP 7841990B2
Authority
JP
Japan
Prior art keywords
deployment
startup
instance
deployment plan
information
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
JP2022135826A
Other languages
English (en)
Other versions
JP2024032259A (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 Vantara Ltd
Original Assignee
Hitachi Vantara 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 Vantara Ltd filed Critical Hitachi Vantara Ltd
Priority to JP2022135826A priority Critical patent/JP7841990B2/ja
Priority to US18/119,035 priority patent/US12169707B2/en
Publication of JP2024032259A publication Critical patent/JP2024032259A/ja
Application granted granted Critical
Publication of JP7841990B2 publication Critical patent/JP7841990B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、複数のインスタンスから構成されるアプリケーションのデプロイ計画の立案技術に関する。
データ解析等を行うために、複数のクラウドシステムを組み合わせて環境を構築するマルチクラウドの導入が進展している。また、サーバレスの技術も注目されている。サーバレスは、例えば、クラウドシステムに関数及びトリガが登録され、トリガが検知された場合に、関数実行に必要なリソースが割り当てられ、リソースを用いて関数が実行される。
マルチクラウドにおけるデータ、関数、及びタスク等のデプロイ計画を立案する技術として特許文献1が知られている。
特許文献1には、サーバレスワークフローに含まれる複数のタスクに関するデータを機械学習モデルに入力し、タスクの実行契機、タスクを実行するクラウドサービスプロバイダを決定することが記載されている。
米国特許出願公開第2021/0132947号明細書
サーバレスインスタンスは、通常、トリガ検知時にリソースが割り当てられ、起動が行われるため応答が低い。以下の説明では、トリガ検知時にリソースの割り当てを行い、起動させることをコールドスタートと記載する。また、デプロイ時に常時リソースを割り当て、起動させることをウォームスタートと記載する。
サーバレスインスタンスをウォームスタート及びコールドスタートの各々で起動させた場合の応答速度及びコスト等が異なる。したがって、複数のインスタンスから構成されるアプリケーションのデプロイ計画の立案において、サーバレスインスタンスの起動方法は重要な要素となる。従来技術では、サーバレスタスクの起動方法を考慮したデプロイ計画の立案は行われていない。
本発明は、サーバレスインスタンスの起動方法を考慮して、通常のインスタンス及びサーバレスインスタンスから構成されるアプリケーション(ワークフロー)のデプロイ計画を立案する技術を実現する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、計算機システムであって、プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を少なくとも一つ備え、処理を実行するアプリケーションを構成する複数のインスタンスの各々にリソースを提供する環境を実現する複数の基盤システムと接続し、前記プロセッサは、起動方法として、前記インスタンスのデプロイ時にリソースを割り当てて起動させるウォームスタートと、実行契機の検知時にリソースを割り当てて起動させるコールドスタートとのいずれかを選択可能なサーバレスインスタンスを少なくとも一つ含む前記アプリケーションのデプロイ計画生成要求を受信し、前記複数のインスタンスの各々に必要なリソース量に基づいて、前記複数のインスタンスの各々のデプロイ先の環境の組み合わせである配置パターンを生成し、前記複数のインスタンスの各々の前記起動方法の組み合わせである起動パターンを生成し、前記起動パターンに対して、少なくとも一つの前記サーバレスインスタンスの起動タイミングを立案し、前記配置パターン、前記起動パターン、及び前記起動タイミングを組み合わせて、複数のデプロイ計画を生成し、前記複数のデプロイ計画を表示するための表示情報を生成する。
本発明によれば、計算機システムは、サーバレスインスタンスの起動方法を考慮したアプリケーションのデプロイ計画を立案し、提示できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1のシステムの構成の一例を示す図である。 実施例1の計算機の構成の一例を示す図である。 実施例1の基盤システム稼働管理情報の一例を説明する図である。 実施例1のインスタンス稼働管理情報の一例を説明する図である。 実施例1の起動時間管理情報の一例を説明する図である。 実施例1のリソース量予測モデル情報の一例を説明する図である。 実施例1の起動時間予測モデル情報の一例を説明する図である。 実施例1のデプロイ計画DBの一例を説明する図である。 実施例1のデプロイ計画DBの一例を説明する図である。 実施例1のデプロイ計画DBの一例を説明する図である。 実施例1のデプロイ計画DBの一例を説明する図である。 実施例1のデプロイ計画DBの一例を説明する図である。 実施例1のデプロイ計画生成システムが実行する基盤システム稼働管理情報の更新処理の一例を説明するフローチャートである。 実施例1のデプロイ計画生成システムが実行するインスタンス稼働管理情報の更新処理の一例を説明するフローチャートである。 実施例1のデプロイ計画生成システムが実行する起動時間管理情報の更新処理の一例を説明するフローチャートである。 実施例1のデプロイ計画生成システムが実行するリソース量予測モデル情報の更新処理の一例を説明するフローチャートである。 実施例1のデプロイ計画生成システムが実行する起動時間予測モデル情報の更新処理の一例を説明するフローチャートである。 実施例1のシステムにおけるアプリケーションのデプロイ処理の流れを説明するシーケンス図である。 実施例1のシステムにおけるアプリケーションのデプロイ処理の流れを説明するシーケンス図である。 実施例1のクライアントPCに表示される画面の一例を示す図である。 実施例1のクライアントPCに表示される画面の一例を示す図である。 実施例1のクライアントPCに表示される画面の一例を示す図である。 実施例1のデプロイ計画生成システムが実行するデプロイ計画生成処理の一例を説明するフローチャートである。 実施例1のデプロイ制御システムが実行するデプロイ処理の一例を説明するフローチャートである。 実施例1のデプロイ制御システムが送信する起動管理情報の一例を示す図である。 実施例1の基盤システムによるアプリケーション呼出処理の一例を説明するフローチャートである。 実施例2のシステムの構成の一例を示す図である。 実施例2のアプリケーション稼働管理情報の一例を示す図である。 実施例2のクライアントPCに表示される画面の一例を示す図である。
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
図1は、実施例1のシステムの構成の一例を示す図である。図2は、実施例1の計算機の構成の一例を示す図である。
実施例1のシステムは、デプロイ計画生成システム100、クライアントPC101、アプリケーションカタログ管理システム102、デプロイ制御システム103、及び複数の基盤システム(クラウドシステム)104から構成される。デプロイ計画生成システム100、クライアントPC101、アプリケーションカタログ管理システム102、デプロイ制御システム103、及び複数の基盤システム104は、LAN(Local Area Network)及びWAN(Wide Area Network)等のネットワークを介して互いに接続される。ネットワークの接続方式は有線及び無線のいずれでもよい。
クライアントPC101は、所定のサービスを実現するアプリケーションを利用するユーザが操作する端末である。
基盤システム104は、所定のサービスを実現するアプリケーションを構成するインスタンスを実行する環境を提供する計算機システムである。
アプリケーションカタログ管理システム102は、アプリケーションに関する情報であるアプリケーションカタログを管理する。
デプロイ計画生成システム100は、アプリケーションを構成するインスタンスをデプロイするためのデプロイ計画を生成する。インスタンスは、例えば、関数、コンテナ、及び仮想計算機等である。
デプロイ制御システム103は、デプロイ計画生成システム100によって立案され、かつ、ユーザによって選択されたデプロイ計画に基づいて、環境にインスタンスをデプロイする。
デプロイ計画生成システム100、アプリケーションカタログ管理システム102、デプロイ制御システム103、及び基盤システム104の各々は、例えば、図2に示すような計算機200から構成される。
計算機200は、CPU201、主記憶装置202、副記憶装置203、及びネットワークインタフェース204を有する。各ハードウェア要素はバスを介して互いに接続される。なお、計算機200は、キーボード、マウス、及びタッチパネル等の入力装置を有してもよいし、また、ディスプレイ等の出力装置を有してもよい。
CPU201は、主記憶装置202に格納されるプログラムを実行する。CPU201は、プログラムにしたがって処理を実行することによって機能部(モジュール)として機能する。以下の説明では、機能部を主語に処理を説明する場合、CPU201が機能部を実現するプログラムを実行していることを示す。
主記憶装置202は、メモリ等であり、CPU201が実行するプログラム及びプログラムが使用する情報を格納する。また、主記憶装置202は、プログラムが一時的に使用するワークエリアを含む。
副記憶装置203は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等であり、永続的に大量のデータを格納する。主記憶装置202に格納されるプログラム及び情報は、副記憶装置203に格納されてもよい。この場合、CPU201が副記憶装置203からプログラム及び情報を読み出し、主記憶装置202にロードする。
ネットワークインタフェース204は、ネットワークを介して外部の装置と通信する。
デプロイ計画生成システム100は、環境候補検索部110、情報収集部111、及び予測部112を有する。また、デプロイ計画生成システム100は、基盤システム稼働管理情報120、インスタンス稼働管理情報121、起動時間管理情報122、リソース量予測モデル情報123、起動時間予測モデル情報124、及びデプロイ計画DB125を保持する。
基盤システム稼働管理情報120は、基盤システム104の稼働状態を管理するための情報である。インスタンス稼働管理情報121は、インスタンスの稼働状態を管理するための情報である。起動時間管理情報122は、インスタンスの起動時間を管理するための情報である。リソース量予測モデル情報123は、インスタンスのデプロイに必要なリソース量を予測するためのモデルを管理するための情報である。起動時間予測モデル情報124は、インスタンスの起動時間を予測するためのモデルを管理するための情報である。デプロイ計画DB125は、インスタンスをデプロイする環境の組み合わせ等を含むデプロイ計画に関する情報を格納するデータベースである。
情報収集部111は、各種情報を収集する。予測部112は、リソース量予測モデル情報123を用いて、インスタンスのデプロイに必要なリソース量を予測し、また、起動時間予測モデル情報124を用いて、インスタンスの起動時間を予測する。環境候補検索部110は、インスタンスをデプロイする環境の組み合わせを検索し、デプロイ計画を生成する。
なお、デプロイ計画生成システム100が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。例えば、予測部112を、リソース量を予測する機能部と、起動時間を予測する機能部とに分けてもよい。
図3は、実施例1の基盤システム稼働管理情報120の一例を説明する図である。
基盤システム稼働管理情報120は、基盤システムID301、クラスタID302、CPU情報303、メモリ情報304、及びタイムスタンプ305を含むエントリを格納する。一つの環境に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
基盤システムID301は、基盤システム104のIDを格納するフィールドである。クラスタID302は、環境を構成するクラスタのIDを格納するフィールドである。基盤システム104には一つ以上のクラスタが構成され、一つのクラスタを用いて一つの環境が実現されるものとする。
CPU情報303は、クラスタが有するCPUに関する情報を格納するフィールド群である。CPU情報303には、諸元、総数量、及び未割当量等のフィールドが含まれる。メモリ情報304は、クラスタが有するメモリに関する情報を格納するフィールド群である。メモリ情報304には、諸元、総量、及び未割当量等のフィールドが含まれる。なお、エントリは、ネットワーク帯域等に関するフィールドを含んでもよい。
タイムスタンプ305は、エントリに対応する情報を取得した日時を格納するフィールドである。
図4は、実施例1のインスタンス稼働管理情報121の一例を説明する図である。
インスタンス稼働管理情報121は、アプリケーションID401、インスタンスID402、インスタンス種別403、CPU情報404、メモリ情報405、及びタイムスタンプ406を含むエントリを格納する。一つのインスタンスに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
アプリケーションID401は、アプリケーションのIDを格納するフィールドである。インスタンスID402は、アプリケーションを構成するインスタンスのIDを格納するフィールドである。インスタンス種別403は、インスタンスの種別を格納するフィールドである。例えば、関数、コンテナ、及び仮想計算機等が格納される。
本実施例では、インスタンスの種別に応じて起動方法が判別される。関数等、サーバレスインスタンスの場合、コールドスタート及びウォームスタートのいずれかを選択できる。ウォームスタートは、デプロイ時にリソースを割当て、起動させることを示す。コールドスタートは、デプロイ時には起動させず、リクエスト受信時にインスタンスにリソースを割当て、起動させることを示す。
CPU情報404は、インスタンスのCPUの使用量に関する情報を格納するフィールド群である。CPU情報404には、割当値、最小使用率、最大使用率、及び平均使用率等のフィールドが含まれる。メモリ情報405は、インスタンスのメモリの使用量に関する情報を格納するフィールド群である。メモリ情報405には、割当量、最小使用量、最大使用量、及び平均使用量等のフィールドが含まれる。なお、エントリは、ネットワーク帯域等に関するフィールドを含んでもよい。
タイムスタンプ406は、エントリに対応する情報を取得した日時を格納するフィールドである。
図5は、実施例1の起動時間管理情報122の一例を説明する図である。
起動時間管理情報122は、アプリケーションID501、インスタンスID502、インスタンス種別503、環境504、リソース505、起動種別506、起動時間507、及びタイムスタンプ508を含むエントリを格納する。一つのインスタンスに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
アプリケーションID501、インスタンスID502、及びインスタンス種別503は、アプリケーションID401、インスタンスID402、及びインスタンス種別403と同一のフィールドである。
環境504は、インスタンスがデプロイされた基盤システム104及びクラスタのIDを格納するフィールドである。リソース505は、インスタンスに対して割り当てられたリソースに関する情報を格納するフィールド群である。リソース505には、CPU及びメモリ等のフィールドが含まれる。
起動種別506は、インスタンスの起動種別を格納するフィールドである。起動種別506には、ウォームスタート及びコールドスタートのいずれかが格納される。起動時間507は、リクエストを受信してからインスタンスが処理を実行可能な状態になるまでの時間(起動時間)を格納するフィールドである。
タイムスタンプ508は、起動時間が計測された日時を格納するフィールドである。
図6は、実施例1のリソース量予測モデル情報123の一例を説明する図である。
リソース量予測モデル情報123は、アプリケーションID601、インスタンスID602、インスタンス種別603、モデル604、及びタイムスタンプ605を含むエントリを格納する。一つのインスタンスに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
アプリケーションID601、インスタンスID602、及びインスタンス種別603は、アプリケーションID401、インスタンスID402、及びインスタンス種別403と同一のフィールドである。
モデル604は、各リソースのリソース量を予測するためのモデルを格納するフィールド群である。モデル604には、CPU及びメモリ等のリソース量を予測するためのモデルを格納するフィールドが含まれる。
タイムスタンプ605は、モデルが登録された日時を格納するフィールドである。
図7は、実施例1の起動時間予測モデル情報124の一例を説明する図である。
起動時間予測モデル情報124は、アプリケーションID701、インスタンスID702、インスタンス種別703、モデル704、及びタイムスタンプ705を含むエントリを格納する。一つのインスタンスに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
アプリケーションID701、インスタンスID702、及びインスタンス種別703は、アプリケーションID401、インスタンスID402、及びインスタンス種別403と同一のフィールドである。
モデル704は、インスタンスの起動種別ごとの起動時間を予測するためのモデルを格納するフィールド群である。モデル704には、コールドスタートの起動時間を予測するためのモデルと、ウォームスタートの起動時間を予測するためのモデルとが格納される。
タイムスタンプ705は、モデルが登録された日時を格納するフィールドである。
図8A、図8B、図8C、図8D、及び図8Eは、実施例1のデプロイ計画DB125の一例を説明する図である。
デプロイ計画DB125は、予測リソース量情報800、配置パターン情報810、起動パターン情報820、起動タイミング情報830、及びデプロイ計画管理情報840を含む。
図8Aに示す予測リソース量情報800は、インスタンスに必要なリソース量の予測値を管理するための情報である。予測リソース量情報800は、インスタンスID801、インスタンス種別802、及びリソース量803を含むエントリを格納する。一つのインスタンスに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
インスタンスID801及びインスタンス種別802は、インスタンスID402及びインスタンス種別403と同一のフィールドである。
リソース量803は、インスタンスに必要なリソース量の予測値を格納するフィールドである。リソース量803には、CPU及びメモリ等のリソース量の予測値が格納される。
図8Bに示す配置パターン情報810は、アプリケーションを構成するインスタンスの各々のデプロイ先の環境の組み合わせを示す配置パターンを管理するための情報である。配置パターン情報810は、配置パターンID811及びインスタンス812を含むエントリを格納する。一つの配置パターンに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
配置パターンID811は、配置パターンのIDを格納するフィールドである。インスタンス812は、アプリケーションを構成する各インスタンスのデプロイ先の環境の情報を格納するフィールド群である。インスタンス812には、アプリケーションを構成するインスタンスの数だけフィールドが存在する。フィールドには、基盤システム104のID及びクラスタのIDの組み合わせが格納される。
図8Cに示す起動パターン情報820は、アプリケーションを構成するインスタンスの各々の起動種別の組み合わせを示す起動パターンを管理するための情報である。起動パターン情報820は、起動パターンID821及びインスタンス822を含むエントリを格納する。一つの起動パターンに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
起動パターンID821は、起動パターンのIDを格納するフィールドである。インスタンス822は、アプリケーションを構成する各インスタンスの起動種別を格納するフィールド群である。インスタンス822には、アプリケーションを構成するインスタンスの数だけフィールドが存在する。フィールドには、ウォームスタート及びコールドスタートのいずれかが格納される。
図8Dに示す起動タイミング情報830は、起動パターンに対するインスタンスの起動タイミングを管理するための情報である。起動タイミング情報830は、起動タイミングID831、起動パターンID832、及び起動タイミング833を含むエントリを格納する。一つの起動タイミングに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
起動タイミングID831は、起動タイミングのIDを格納するフィールドである。起動パターンID832は、起動タイミングの設定対象である起動パターンのIDを格納するフィールドである。起動タイミング833は、起動パターンに対するインスタンスの起動タイミングを格納するフィールドである。
図8Eに示すデプロイ計画管理情報840は、アプリケーションを構成するインスタンスをデプロイするためのデプロイ計画を管理するための情報である。デプロイ計画管理情報840は、配置パターンID841、起動パターンID842、起動タイミング843、予測処理時間844、予測起動時間845、予測コスト846、及び予測消費電力847を含むエントリを格納する。一つのデプロイ計画に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
実施例1では、デプロイ計画は、配置パターン、起動パターン、及び起動タイミングの組み合わせによって定義される。
配置パターンID841、起動パターンID842、及び起動タイミング843は、配置パターンID811、起動パターンID821、及び起動タイミングID831と同一のフィールドである。
予測処理時間844は、デプロイ計画に基づいてインスタンスをデプロイした場合のアプリケーションの処理時間の予測値を格納するフィールドである。予測起動時間845は、デプロイ計画に基づいてインスタンスをデプロイした場合において、コールドスタートのインスタンスの起動時間の予測値を格納するフィールドである。予測コスト846は、デプロイ計画に基づいてインスタンスをデプロイした場合のアプリケーションの運用に要するコストの予測値を格納するフィールドである。予測消費電力847は、デプロイ計画に基づいてインスタンスをデプロイした場合のアプリケーションの運用による消費電力の予測値を格納するフィールドである。
予測処理時間844、予測起動時間845、予測コスト846、及び予測消費電力847は、デプロイ計画の性能指標である。
図9は、実施例1のデプロイ計画生成システム100が実行する基盤システム稼働管理情報120の更新処理の一例を説明するフローチャートである。
情報収集部111は、基盤システム104から基盤システム104の稼働情報を取得する(ステップS101)。例えば、情報収集部111は、取得要求を送信することによって基盤システム104から基盤システム104の稼働情報を取得する。また、基盤システム104が周期的に基盤システム104の稼働情報を送信するようにしてもよい。
基盤システム104の稼働情報には、基盤システム104のID、クラスタのID、及びリソースの情報等が含まれる。
情報収集部111は、取得した基盤システム104の稼働情報に基づいて基盤システム稼働管理情報120を更新する(ステップS102)。基盤システム稼働管理情報120に稼働情報を取得した基盤システム104のエントリが存在しない場合、情報収集部111は、基盤システム稼働管理情報120にエントリを追加し、追加されたエントリに稼働情報に含まれる値を設定する。基盤システム稼働管理情報120に稼働情報を取得した基盤システム104のエントリが存在する場合、情報収集部111は、当該エントリに稼働情報に含まれる値を上書きする。
図10は、実施例1のデプロイ計画生成システム100が実行するインスタンス稼働管理情報121の更新処理の一例を説明するフローチャートである。
情報収集部111は、基盤システム104からインスタンスの稼働情報を取得する(ステップS201)。例えば、情報収集部111は、取得要求を送信することによって基盤システム104から、当該基盤システム104が提供する環境にデプロイされているインスタンスの稼働情報を取得する。基盤システム104が周期的にインスタンスの稼働情報を送信するようにしてもよい。また、基盤システム104は、インスタンスによる処理が実行された場合、稼働情報を送信するようにしてもよい。
インスタンスの稼働情報には、基盤システム104のID、クラスタのID、アプリケーションのID、インスタンスのID及び種別、並びに、リソースの使用量に関する情報等が含まれる。
情報収集部111は、取得したインスタンスの稼働情報に基づいてインスタンス稼働管理情報121を更新する(ステップS202)。インスタンス稼働管理情報121に稼働情報を取得したインスタンスのエントリが存在しない場合、情報収集部111は、インスタンス稼働管理情報121にエントリを追加し、追加されたエントリに稼働情報に含まれる値を設定する。インスタンス稼働管理情報121に稼働情報を取得したインスタンスのエントリが存在する場合、情報収集部111は、当該エントリに稼働情報に含まれる値を上書きする。
図11は、実施例1のデプロイ計画生成システム100が実行する起動時間管理情報122の更新処理の一例を説明するフローチャートである。
情報収集部111は、基盤システム104からインスタンスの起動処理情報を取得する(ステップS301)。例えば、基盤システム104は、インスタンスの起動処理を実行した場合、インスタンスの起動処理情報を送信する。
起動処理情報には、アプリケーションのID、インスタンスのID及び種別、基盤システム104のID、環境のID、インスタンスに割り当てられたリソース量、起動種別、及び起動時間等が含まれる。
情報収集部111は、取得したインスタンスの起動処理情報に基づいて起動時間管理情報122を更新する(ステップS302)。起動時間管理情報122に起動処理情報を取得したインスタンスのエントリが存在しない場合、情報収集部111は、起動時間管理情報122にエントリを追加し、追加されたエントリに起動処理情報に含まれる値を設定する。起動時間管理情報122に起動処理情報を取得したインスタンスのエントリが存在する場合、情報収集部111は、当該エントリに起動処理情報に含まれる値を上書きする。
図12は、実施例1のデプロイ計画生成システム100が実行するリソース量予測モデル情報123の更新処理の一例を説明するフローチャートである。
予測部112は、インスタンス稼働管理情報121を参照し(ステップS401)、インスタンスのリソースの割当量に関する情報を用いて、各リソースのリソース量予測モデルを生成する(ステップS402)。例えば、多変量解析、機械学習等を用いて、モデルが生成される。本発明は、モデルの生成手法に限定されない。
予測部112は、リソース量予測モデルの生成結果に基づいて、リソース量予測モデル情報123を更新する(ステップS403)。リソース量予測モデル情報123にインスタンスのエントリが存在しない場合、予測部112は、リソース量予測モデル情報123にエントリを追加し、当該エントリにID及びリソース量予測モデル等を設定する。リソース量予測モデル情報123にインスタンスのエントリが存在する場合、予測部112は、当該エントリのモデル604に、生成されたリソース量予測モデルを上書きする。
図13は、実施例1のデプロイ計画生成システム100が実行する起動時間予測モデル情報124の更新処理の一例を説明するフローチャートである。
予測部112は、起動時間管理情報122を参照し(ステップS501)、インスタンスの起動時間に関する情報を用いて、インスタンスの起動時間予測モデルを生成する(ステップS502)。例えば、多変量解析、機械学習等を用いて、モデルが生成される。本発明は、モデルの生成手法に限定されない。
予測部112は、起動時間予測モデルの生成結果に基づいて、起動時間予測モデル情報124を更新する(ステップS503)。起動時間予測モデル情報124にインスタンスのエントリが存在しない場合、予測部112は、起動時間予測モデル情報124にエントリを追加し、当該エントリにID及び起動時間予測モデル等を設定する。起動時間予測モデル情報124にインスタンスのエントリが存在する場合、予測部112は、当該エントリのモデル704に、生成された起動時間予測モデルを上書きする。
図14A及び図14Bは、実施例1のシステムにおけるアプリケーションのデプロイ処理の流れを説明するシーケンス図である。図15、図16、及び図17は、実施例1のクライアントPC101に表示される画面の一例を示す図である。
ユーザが操作するクライアントPC101は、アプリケーションカタログ管理システム102にアプリケーション一覧取得要求を送信する(ステップS601)。
アプリケーションカタログ管理システム102は、アプリケーション一覧取得要求を受信した場合、クライアントPC101にアプリケーション一覧を送信する(ステップS602)。アプリケーション一覧には、アプリケーションカタログ管理システム102が管理するアプリケーションに関する情報が含まれる。
クライアントPC101を操作するユーザは、アプリケーション一覧を参照して、使用するアプリケーションを選択する。ユーザが操作するクライアントPC101は、ユーザによって選択されたアプリケーションを取得するために、アプリケーションカタログ管理システム102にアプリケーション取得要求を送信する(ステップS603)。
アプリケーションカタログ管理システム102は、アプリケーション取得要求を受信した場合、クライアントPC101にアプリケーションを送信する(ステップS604)。
ユーザが操作するクライアントPC101は、デプロイ計画生成システム100にデプロイ計画生成要求を送信する(ステップS605)。デプロイ計画生成要求にはアプリケーションに関する情報が含まれる。なお、KPI等、デプロイ計画の絞り込みに使用する情報が含まれてもよい。
クライアントPC101は、例えば、図15に示すような画面1500を介してデプロイ計画生成要求を送信する。画面1500は、入力ボックス1501、設定欄1502、設定欄1503、設定欄1504、実行ボタン1505、及びキャンセルボタン1506を含む。
入力ボックス1501は、アプリケーションの実体であるファイル等を入力するためのボックスである。
設定欄1502及び設定欄1503は、デプロイ計画の評価指標であるKPIを設定するための欄である。本実施例では、少なくとも一つの性能指標がKPIとして選択される。ユーザは、ラジオボタンを操作することによって、設定欄1502及び設定欄1503のいずれかに入力を行う。
設定欄1502には、入力ボックス1511、1512及び追加ボタン1513が含まれる。入力ボックス1511は、KPIの種別を入力するためのボックスである。入力ボックス1512は、KPIの目標値を入力するためのボックスである。追加ボタン1513は、入力ボックス1511、1512を追加するためのボタンである。
設定欄1503には入力ボックス1514が含まれる。入力ボックス1514は、フェーズを入力するためのボックスである。フェーズは、アプリケーションのデプロイを行うフェーズを表し、テストフェーズ及び本番フェーズ等が考えられる。例えば、ユーザは、図16に示すような画面1600を用いて、フェーズに対して予めKPIが設定する。
画面1600は、入力ボックス1601、1602、1603、追加ボタン1604、登録ボタン1605、及びキャンセルボタン1606を含む。
入力ボックス1601は、フェーズの名称を入力するためのボックスである。入力ボックス1602、1603は、入力ボックス1511、1512と同一のボックスである。追加ボタン1604は追加ボタン1513と同一のボタンである。
登録ボタン1605は、フェーズに対するKPIの設定を登録するためのボタンである。キャンセルボタン1606は、操作を取り消すためのボタンである。
図15の説明に戻る。設定欄1504は、起動パターンの制約を設定するための欄である。ユーザは、ウォームスタートのみの起動パターン、コールドスタートのみの起動パターン、並びに、ウォームスタート及びコールドスタートが混在した起動パターンのいずれかを指定できる。なお、設定欄1504には、並列して起動させるインスタンスの数(閾値)を設定するためのボックスが含まれてもよい。
実行ボタン1505は、デプロイ計画生成要求を送信するための操作ボタンである。キャンセルボタン1506は、操作を取り消すためのボタンである。
デプロイ計画生成システム100は、デプロイ計画生成要求を受信した場合、デプロイ計画生成処理を実行する(ステップS606)。デプロイ計画生成処理の詳細は後述する。
デプロイ計画生成システム100は、デプロイ計画生成処理の結果として、クライアントPC101にデプロイ計画表示情報を送信する(ステップS607)。
クライアントPC101は、デプロイ計画表示情報を受信した場合、図17に示すような画面1700を表示する。画面1700は、テーブル1701、デプロイボタン1702、及びキャンセルボタン1703を含む。
テーブル1701は、デプロイ計画を表示するテーブルである。テーブル1701は、選択1711、配置パターン1712、起動パターン1713、起動タイミング1714、予測処理時間1715、予測起動時間1716、予測コスト1717、及び予測消費電力1718を含むエントリを格納する。一つのデプロイ計画に対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
選択1711は、採用するデプロイ計画を選択するためのボックスを格納するフィールドである。配置パターン1712は、インスタンスのデプロイ先の環境の組み合わせを格納するフィールドである。起動パターン1713は、インスタンスの起動種別の組み合わせを格納するフィールドである。起動タイミング1714は、インスタンスの起動タイミングに関する情報を格納するフィールドである。
予測処理時間1715、予測起動時間1716、予測コスト1717、及び予測消費電力1718は、予測処理時間844、予測起動時間845、予測コスト846、及び予測消費電力847と同一のフィールドである。
デプロイボタン1702は、アプリケーションのデプロイ要求を送信するためのボタンである。キャンセルボタン1703は、操作を取り消すためのボタンである。
ユーザは、テーブル1701を参照して、採用するデプロイ計画を選択し、デプロイボタン1702を操作する。クライアントPC101は、デプロイ計画生成システム100に、選択されたデプロイ計画の識別情報及びアプリケーションを含むデプロイ要求を送信する(ステップS610)。
デプロイ計画生成システム100は、デプロイ要求を受信した場合、デプロイ制御システム103に、選択されたデプロイ計画に関する情報及びアプリケーションを含むデプロイ要求を送信する(ステップS611)。なお、デプロイ計画生成システム100は、デプロイ計画DB125から、選択されなかったデプロイ計画に関する情報を削除する。
デプロイ制御システム103は、デプロイ要求を受信した場合、基盤システム104の環境にインスタンスをデプロイする(ステップS612)。
デプロイ制御システム103は、基盤システム104へのインスタンスのデプロイが完了した場合、クライアントPC101にデプロイ完了通知を送信する(ステップS613)。
クライアントPC101は、デプロイ完了通知を受信した後、所定のタイミングでアプリケーションを利用する(ステップS614)。
図18は、実施例1のデプロイ計画生成システム100が実行するデプロイ計画生成処理の一例を説明するフローチャートである。
まず、予測部112は、アプリケーションに関する情報及びリソース量予測モデル情報123を用いて、インスタンスの予測リソース量を算出する(ステップS701)。予測部112は算出結果に基づいて予測リソース量情報800を生成する。
次に、環境候補検索部110は、インスタンスの予測リソース量及び基盤システム稼働管理情報120に基づいて、インスタンスの配置パターンを生成する(ステップS702)。具体的には、以下のような処理が実行される。
(S702-1)環境候補検索部110は、インスタンスを一つ選択する。
(S702-2)環境候補検索部110は、基盤システム稼働管理情報120を参照して、選択したインスタンスの予測リソース量を割り当てることができる環境(基盤システム104及びクラスタ)を特定する。環境候補検索部110は、インスタンスと特定された環境とを対応づけたデータをワークエリアに保存する。
(S702-3)環境候補検索部110は、全てのインスタンスについて処理が完了したか否かを判定する。全てのインスタンスについて処理が完了していない場合、環境候補検索部110は、S702-1に戻る。
(S702-4)全てのインスタンスについて処理が完了した場合、環境候補検索部110は、各インスタンスの環境を組み合わせることによって配置パターンを生成する。環境候補検索部110は生成結果に基づいて配置パターン情報810を生成する。
以上がステップS702の処理の説明である。
次に、環境候補検索部110は、インスタンスの起動パターンを生成する(ステップS703)。具体的には、以下のような処理が実行される。
(S703-1)環境候補検索部110は、インスタンスを一つ選択する。
(S703-2)環境候補検索部110は、選択したインスタンスの種別に基づいて、起動種別を特定する。例えば、インスタンスが関数である場合、ウォームスタート及びコールドスタートが特定される。環境候補検索部110は、インスタンスと特定された起動種別とを対応づけたデータをワークエリアに保存する。
(S703-3)環境候補検索部110は、全てのインスタンスについて処理が完了したか否かを判定する。全てのインスタンスについて処理が完了していない場合、環境候補検索部110は、S703-1に戻る。
(S703-4)全てのインスタンスについて処理が完了した場合、環境候補検索部110は、各インスタンスの起動種別を組み合わせることによって起動パターンを生成する。環境候補検索部110は生成結果に基づいて起動パターン情報820を生成する。このとき、環境候補検索部110は、設定欄1504の情報に基づいて、生成する起動パターンを制御する。
以上がステップS703の処理の説明である。
次に、環境候補検索部110は、起動パターンのループ処理を開始する(ステップS704)。具体的には、環境候補検索部110は、起動パターン情報820からエントリを一つ選択する。
次に、環境候補検索部110は、起動パターンに対する起動タイミングを立案する(ステップS705)。
例えば、環境候補検索部110は、並列で起動させるインスタンスの数が最大となるように起動タイミングを立案する。また、並列で起動させるインスタンスの数(閾値)が指定されている場合、環境候補検索部110は、並設で起動させるインスタンスの数が閾値より大きくなるように起動タイミングを立案する。例えば、コールドスタートのインスタンスを三つ含む起動パターンであり、かつ、閾値が「1」である場合、三つ又は二つのインスタンスを並列で起動させる起動タイミングが立案される。これによって、立案される起動タイミングの数を抑制できる。したがって、処理負荷を低減できる。
環境候補検索部110は、起動パターンと、一つの起動タイミングとの組み合わせを起動タイミング情報830に登録する。
次に、環境候補検索部110は、配置パターン、起動パターン、及び起動タイミングを組み合わせることによってデプロイ計画を生成する(ステップS706)。環境候補検索部110は、デプロイ計画管理情報840にデプロイ計画を登録する。なお、この時点では、予測処理時間844、予測起動時間845、予測コスト846、及び予測消費電力847は空欄である。
環境候補検索部110は、全ての起動パターンについて処理が完了したか否かを判定する(ステップS707)。
全ての起動パターンについて処理が完了していない場合、環境候補検索部110はステップS704に戻る。
全ての起動パターンについて処理が完了した場合、環境候補検索部110は、デプロイ計画を絞り込む(ステップS708)。具体的には、以下のような処理が実行される。
(S708-1)環境候補検索部110は、予測部112に、デプロイ計画の各々について性能指標の予測値の算出を指示する。
(S708-2)予測部112はデプロイ計画を選択する。
(S708-3)予測部112は、インスタンスの情報及び起動時間予測モデル情報124を用いて、デプロイ計画に含まれる各インスタンスの予測起動時間を算出する。また、予測部112は、デプロイ計画に基づいて、予測処理時間、予測コスト、及び予測消費電力を算出する。予測処理時間は、例えば、アプリケーションの実行履歴に基づいて算出できる。予測コスト及び予測消費電力は、デプロイ先の環境及びリソース量に基づいて算出できる。予測部112は、デプロイ計画に対応するエントリの予測処理時間844、予測起動時間845、予測コスト846、及び予測消費電力847に算出結果を設定し、処理の終了を環境候補検索部110に通知する。
(S708-4)環境候補検索部110は、デプロイ計画管理情報840から、KPIを満たさないデプロイ計画を削除する。例えば、処理時間がKPIとして指定されている場合、環境候補検索部110は、予測処理時間及び予測起動時間の合計値とKPIの目標値との比較結果に基づいて、KPIを満たすか否かを判定する。
以上がステップS708の処理の説明である。
次に、環境候補検索部110は、デプロイ計画管理情報840に基づいてデプロイ計画表示情報を生成する(ステップS709)。
なお、アプリケーションがサーバレスインスタンスを含まない場合、ステップS703からステップS707は実行されない。この場合、配置パターンがデプロイ計画として出力される。
なお、環境候補検索部110は、KPIの値に基づいて、デプロイ計画をソートしてもよい。このとき、配置パターン及び起動パターンが同一であって、起動タイミング(並列数)が異なるデプロイ計画について、KPIの違いに差がない場合、環境候補検索部110は、並列数が小さいデプロイ計画を優先的に表示するようにしてもよい。
実施例1の環境候補検索部110は、インスタンスのデプロイ先の環境の組み合わせを立案するだけではなく、環境におけるインスタンスの起動パターン及び起動タイミングも同時に立案できる。これによって、サーバレスインスタンスの起動方法が考慮されたデプロイ計画を提示することができる。
図19は、実施例1のデプロイ制御システム103が実行するデプロイ処理の一例を説明するフローチャートである。図20は、実施例1のデプロイ制御システム103が送信する起動管理情報2000の一例を示す図である。
デプロイ制御システム103は、デプロイ計画に基づいて、デプロイするインスタンスを一つ選択する(ステップS801)。
デプロイ制御システム103は、デプロイ計画に基づいて、インスタンスを所定の基盤システム104の環境にデプロイする(ステップS802)。
デプロイ制御システム103は、インスタンスがデプロイされた基盤システム104に起動管理情報2000を登録する(ステップS803)。
起動管理情報2000は、デプロイ計画に含まれる起動パターン及び起動タイミングに基づいて生成される。起動管理情報2000は、アプリケーションID2001、インスタンスID2002、及び起動タイミング2003を含むエントリを格納する。一つのエントリは一つのインスタンスに対応する。
アプリケーションID2001及びインスタンスID2002は、アプリケーションID401及びインスタンスID402と同一のフィールドである。起動タイミング2003は、インスタンスの起動タイミングに関する情報を格納するフィールドである。なお、ウォームスタートのインスタンスの起動タイミング2003は空欄である。
なお、デプロイ制御システム103は、起動管理情報2000とともに、インスタンスの実行フローを定義した情報を登録してもよい。
デプロイ制御システム103は、全てのインスタンスのデプロイが完了したか否かを判定する(ステップS804)。全てのインスタンスのデプロイが完了していない場合、デプロイ制御システム103はステップS801に戻る。
全てのインスタンスのデプロイが完了した場合、デプロイ制御システム103はデプロイ処理を終了する。
なお、起動管理情報2000は、起動タイミングに関連するインスタンスがデプロイされた基盤システム104のみに登録されてもよい。
図21は、実施例1の基盤システム104によるアプリケーション呼出処理の一例を説明するフローチャートである。
基盤システム104は、インスタンスに対するリクエストを受信した場合(ステップS901)、起動管理情報2000を参照して、他のインスタンスを起動させる必要があるか否かを判定する(ステップS902)。すなわち、インスタンスに対するリクエストの受信を契機に起動させるインスタンスが存在するか否かが判定される。
他のインスタンスを起動させる必要がない場合、基盤システム104はステップS904に進む。
他のインスタンスを起動させる必要がある場合、基盤システム104は、起動管理情報2000に基づいて、他のインスタンスを起動させる(ステップS903)。その後、基盤システム104はステップS904に進む。例えば、他のインスタンスが自基盤システム104の環境にデプロイされている場合、基盤システム104は、他のインスタンスにリソースを割り当てて起動させる。他のインスタンスが他の基盤システム104の環境にデプロイされている場合、基盤システム104は、他の基盤システム104にインスタンスの起動を指示する。
ステップS904では、基盤システム104は、受信したリクエストに対する処理をインスタンスに実行させる(ステップS904)。
インスタンスのデプロイ時に基盤システム104に起動管理情報2000を登録することによって、インスタンスの起動を自動化することができる。
以上で説明したように、実施例1のデプロイ計画生成システム100は、サーバレスインスタンスの起動方法が考慮されたデプロイ計画を立案し、提示することができる。
実施例2では、インスタンスの再デプロイを行うシステムについて説明する。以下、実施例1との差異を中心に実施例2について説明する。
図22は、実施例2のシステムの構成の一例を示す図である。
実施例2のシステムの構成は実施例1と同一である。実施例2では、デプロイ計画生成システム100の構成が一部異なる。実施例2のデプロイ計画生成システム100は、アプリケーション稼働管理情報126を保持する。
図23は、実施例2のアプリケーション稼働管理情報126の一例を示す図である。
アプリケーション稼働管理情報126は、アプリケーションの稼働状態を管理するための情報である。アプリケーション稼働管理情報126は、アプリケーションID2301、配置パターン2302、起動パターン2303、起動タイミング2304、処理時間2305、コスト2306、及び消費電力2307を含むエントリを格納する。一つのアプリケーションに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは前述したものに限定されない。前述したフィールドのいずれかを含まなくてもよいし、また、他のフィールドを含んでもよい。
アプリケーションID2301は、アプリケーションID401と同一のフィールドである。
配置パターン2302は、インスタンスの配置パターンを格納するフィールドである。起動パターン2303は、インスタンスの起動パターンを格納するフィールドである。起動タイミング2304は、インスタンスの起動タイミングに関する情報を格納するフィールドである。
処理時間2305は、アプリケーションの処理時間を格納するフィールドである。コスト2306は、アプリケーションの運用に要するコストを格納するフィールドである。消費電力2307は、アプリケーションの運用による消費電力を格納するフィールドである。
実施例2のデプロイ計画生成システム100が実行する情報(基盤システム稼働管理情報120、インスタンス稼働管理情報121、起動時間管理情報122、リソース量予測モデル情報123、及び起動時間予測モデル情報124)の更新処理は実施例1と同一である。実施例2のアプリケーションのデプロイ処理の流れは実施例1と同一である。ただし、実施例2では、デプロイ計画生成システム100は、クライアントPC101からデプロイ要求を受信した場合(ステップS610)、アプリケーション稼働管理情報126にエントリを追加する。デプロイ計画生成システム100は、選択されたデプロイ計画に基づいて、追加されたエントリのアプリケーションID2310、配置パターン2302、起動パターン2303、及び起動タイミング2304に値を設定する。
実施例2のデプロイ計画生成システム100が実行するデプロイ計画生成処理は実施例1と同一である。実施例2のデプロイ制御システム103が実行するデプロイ処理は実施例1と同一である。実施例2の基盤システム104が実行するアプリケーション呼出処理は実施例1と同一である。
実施例2では、デプロイ計画生成システム100の情報収集部111が、基盤システム104からアプリケーションの稼働情報を取得し、取得した情報に基づいてアプリケーション稼働管理情報126を更新する。
実施例2では、クライアントPC101は、任意のタイミングで、デプロイ計画生成システム100に再デプロイ要求を送信する。この場合、デプロイ計画生成システム100は、図24に示すような画面をクライアントPC101に表示する。
画面2400は、入力ボックス2401、表示ボタン2402、表示欄2403、設定欄2404、設定欄2405、設定欄2406、実行ボタン2407、及びキャンセルボタン2408を含む。
設定欄2404、設定欄2405、設定欄2406、実行ボタン2407、及びキャンセルボタン2408は、設定欄1502、設定欄1503、設定欄1504、実行ボタン1505、及びキャンセルボタン1506と同一である。
入力ボックス2401は、アプリケーションのID等を入力するためのボックスである。表示ボタン2402は、アプリケーションの稼働状態を表示するためのボタンである。表示欄2403は、アプリケーションの稼働情報を表示する欄である。
表示ボタン2402が操作された場合、デプロイ計画生成システム100は、アプリケーション稼働管理情報126から指定されたアプリケーションの稼働情報を取得し、クライアントPC101に送信する。クライアントPC101は、表示欄2403に、受信したアプリケーション稼働情報を表示する。
実行ボタン2407が操作された場合、デプロイ計画生成システム100はデプロイ計画生成処理を実行する。このとき、前回採用されたデプロイ計画は表示対象から除外される。
実施例2によれば、ユーザは、アプリケーションの稼働状態が予測と大きく乖離等している場合に、デプロイ計画を見直すことができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 デプロイ計画生成システム
101 クライアントPC
102 アプリケーションカタログ管理システム
103 デプロイ制御システム
104 基盤システム
110 環境候補検索部
111 情報収集部
112 予測部
120 基盤システム稼働管理情報
121 インスタンス稼働管理情報
122 起動時間管理情報
123 リソース量予測モデル情報
124 起動時間予測モデル情報
125 デプロイ計画DB
126 アプリケーション稼働管理情報
200 計算機
201 CPU
202 主記憶装置
203 副記憶装置
204 ネットワークインタフェース
800 予測リソース量情報
810 配置パターン情報
820 起動パターン情報
830 起動タイミング情報
2000 起動管理情報
1500、1600、1700、2400 画面

Claims (8)

  1. 計算機システムであって、
    プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を少なくとも一つ備え、
    処理を実行するアプリケーションを構成する複数のインスタンスの各々にリソースを提供する環境を実現する複数の基盤システムと接続し、
    前記プロセッサは、
    起動方法として、デプロイ時にリソースを割り当てて起動させるウォームスタートと、実行契機の検知時にリソースを割り当てて起動させるコールドスタートとのいずれかを選択可能なサーバレスインスタンスを少なくとも一つ含む前記アプリケーションのデプロイ計画生成要求を受信し、
    前記複数のインスタンスの各々に必要なリソース量に基づいて、前記複数のインスタンスの各々のデプロイ先の環境の組み合わせである配置パターンを生成し、
    前記複数のインスタンスの各々の前記起動方法の組み合わせである起動パターンを生成し、
    前記起動パターンに対して、少なくとも一つの前記サーバレスインスタンスの起動タイミングを立案し、
    前記配置パターン、前記起動パターン、及び前記起動タイミングを組み合わせて、複数のデプロイ計画を生成し、
    前記複数のデプロイ計画を表示するための表示情報を生成することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記デプロイ計画生成要求には、前記起動パターンの制約に関する情報が含まれ、
    前記プロセッサは、前記起動パターンの制約に関する情報に基づいて、前記起動パターンを生成することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記アプリケーションは、複数の前記サーバレスインスタンスを含み、
    前記デプロイ計画生成要求には、前記コールドスタートを採用する前記サーバレスインスタンスの起動処理の並列数の閾値が含まれ、
    前記プロセッサは、前記コールドスタートを採用する前記サーバレスインスタンスの起動処理の並列数が前記閾値より大きくなる前記起動タイミングを立案することを特徴とする計算機システム。
  4. 請求項1に記載の計算機システムであって、
    前記デプロイ計画生成要求には、前記デプロイ計画を評価するための評価指標の目標値が含まれ、
    前記プロセッサは、
    前記複数のデプロイ計画の各々の前記評価指標の値を算出し、
    前記複数のデプロイ計画の各々の前記評価指標の値と、前記目標値との比較結果に基づいて、提示する前記デプロイ計画を選択することを特徴とする計算機システム。
  5. 計算機システムが実行する、処理を実行するアプリケーションを構成する複数のインスタンスのデプロイ計画の生成方法であって、
    前記計算機システムは、
    プロセッサ、前記プロセッサに接続される記憶装置、及び前記プロセッサに接続されるネットワークインタフェースを有する計算機を少なくとも一つ含み、
    前記複数のインスタンスの各々にリソースを提供する環境を実現する複数の基盤システムと接続し、
    前記デプロイ計画の生成方法は、
    前記計算機が、起動方法として、デプロイ時にリソースを割り当てて起動させるウォームスタートと、実行契機の検知時にリソースを割り当てて起動させるコールドスタートとのいずれかを選択可能なサーバレスインスタンスを少なくとも一つ含む前記アプリケーションのデプロイ計画生成要求を受信する第1のステップと、
    前記計算機が、前記複数のインスタンスの各々に必要なリソース量に基づいて、前記複数のインスタンスの各々のデプロイ先の環境の組み合わせである配置パターンを生成する第2のステップと、
    前記計算機が、前記複数のインスタンスの各々の前記起動方法の組み合わせである起動パターンを生成する第3のステップと、
    前記計算機が、前記起動パターンに対して、少なくとも一つの前記サーバレスインスタンスの起動タイミングを立案する第4のステップと、
    前記計算機が、前記配置パターン、前記起動パターン、及び前記起動タイミングを組み合わせて、複数のデプロイ計画を生成する第5のステップと、
    前記計算機が、前記複数のデプロイ計画を表示するための表示情報を生成する第6のステップと、を含むことを特徴とするデプロイ計画の生成方法。
  6. 請求項5に記載のデプロイ計画の生成方法であって、
    前記デプロイ計画生成要求には、前記起動パターンの制約に関する情報が含まれ、
    前記第3のステップは、前記計算機が、前記起動パターンの制約に関する情報に基づいて、前記起動パターンを生成するステップを含むことを特徴とするデプロイ計画の生成方法。
  7. 請求項6に記載のデプロイ計画の生成方法であって、
    前記アプリケーションは、複数の前記サーバレスインスタンスを含み、
    前記デプロイ計画生成要求には、前記コールドスタートを採用する前記サーバレスインスタンスの起動処理の並列数の閾値が含まれ、
    前記第5のステップは、前記計算機が、前記コールドスタートを採用する前記サーバレスインスタンスの起動処理の並列数が前記閾値より大きくなる前記起動タイミングを立案するステップを含むことを特徴とするデプロイ計画の生成方法。
  8. 請求項5に記載のデプロイ計画の生成方法であって、
    前記デプロイ計画生成要求には、前記デプロイ計画を評価するための評価指標の目標値が含まれ、
    前記第6のステップは、
    前記計算機が、前記複数のデプロイ計画の各々の前記評価指標の値を算出するステップと、
    前記計算機が、前記複数のデプロイ計画の各々の前記評価指標の値と、前記目標値との比較結果に基づいて、提示する前記デプロイ計画を選択するステップと、を含むことを特徴とするデプロイ計画の生成方法。
JP2022135826A 2022-08-29 2022-08-29 計算機システム、デプロイ計画の生成方法、及びデプロイ制御システム Active JP7841990B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022135826A JP7841990B2 (ja) 2022-08-29 2022-08-29 計算機システム、デプロイ計画の生成方法、及びデプロイ制御システム
US18/119,035 US12169707B2 (en) 2022-08-29 2023-03-08 Computer system, deployment plan generation method, and deployment control system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022135826A JP7841990B2 (ja) 2022-08-29 2022-08-29 計算機システム、デプロイ計画の生成方法、及びデプロイ制御システム

Publications (2)

Publication Number Publication Date
JP2024032259A JP2024032259A (ja) 2024-03-12
JP7841990B2 true JP7841990B2 (ja) 2026-04-07

Family

ID=90000447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022135826A Active JP7841990B2 (ja) 2022-08-29 2022-08-29 計算機システム、デプロイ計画の生成方法、及びデプロイ制御システム

Country Status (2)

Country Link
US (1) US12169707B2 (ja)
JP (1) JP7841990B2 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210132947A1 (en) 2019-11-01 2021-05-06 Calvert Ventures LLC Serverless Workflow Enablement and Execution Platform

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160104A1 (en) * 2004-01-20 2005-07-21 Datasource, Inc. System and method for generating and deploying a software application
US10990370B1 (en) * 2018-11-21 2021-04-27 Candid Labs, Inc. System, apparatus and method for deploying infrastructure to the cloud
US11372634B1 (en) * 2020-01-29 2022-06-28 Amazon Technologies, Inc. Specialized cloud provider regions for availability-sensitive workloads

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210132947A1 (en) 2019-11-01 2021-05-06 Calvert Ventures LLC Serverless Workflow Enablement and Execution Platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
川畑光平,徹底攻略 AWS認定 デベロッパー-アソシエイト教科書,第1版,日本,株式会社インプレス,2022年02月21日,205~211ページ

Also Published As

Publication number Publication date
US12169707B2 (en) 2024-12-17
US20240069887A1 (en) 2024-02-29
JP2024032259A (ja) 2024-03-12

Similar Documents

Publication Publication Date Title
JP5476485B2 (ja) サービスの予約管理方法、仮想計算機システム及び記憶媒体
Zhao et al. Flexible service selection with user-specific QoS support in service-oriented architecture
JP4982216B2 (ja) ポリシ作成支援方法、ポリシ作成支援システム、およびプログラム
US20090198687A1 (en) Plan solver
JP7341073B2 (ja) 工場管理装置、工場管理方法、及び工場管理プログラム
WO2021220777A1 (ja) ユーザに提案する材料を決定するシステム
US12282793B2 (en) Virtual machine management method based on prediction of virtual machine workload prediction for virtual machines deployed on servers and virtual machine management system implementing the same
US11635996B2 (en) Management system and management method for migrating a business system operating on a target infrastructure
JP6094593B2 (ja) 情報システム構築装置、情報システム構築方法および情報システム構築プログラム
JP6094595B2 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
JP6094594B2 (ja) 情報システム構築支援装置、情報システム構築支援方法および情報システム構築支援プログラム
JP6842447B2 (ja) リソース割当ての最適化を支援するシステム及び方法
JP7841990B2 (ja) 計算機システム、デプロイ計画の生成方法、及びデプロイ制御システム
WO2017208431A1 (ja) 管理システム及びリソーススケジューリング方法
JP7756603B2 (ja) 計算機システム及び環境の検索方法
CN119836663B (zh) 用于挖掘新药候选物质的基于多实例gpu的系统
JP4940613B2 (ja) 制約条件に基づいた資源選択システム、資源選択方法および資源選択プログラム
JP7682823B2 (ja) 配置案探索装置、計算機システム、及び配置案探索方法
JP2023079086A (ja) モデル管理システム、方法、およびプログラム
JP7834550B2 (ja) 計算機システム及びデプロイ計画の生成方法
US12175229B2 (en) Knowledge base for predicting success of cluster scaling
JP7261710B2 (ja) データ仲介装置およびデータ仲介方法
JP2024141251A (ja) 配置案算出装置、計算機システム及び配置案算出方法
WO2023152807A1 (ja) 計算機システム及び情報共有方法
JP2024048914A (ja) バックアップ管理システム、管理計算機、及び管理プログラム

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20240814

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20251031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20260326

R150 Certificate of patent or registration of utility model

Ref document number: 7841990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150