WO2024069843A1 - マイクロサービスの分散デプロイメント制御 - Google Patents

マイクロサービスの分散デプロイメント制御 Download PDF

Info

Publication number
WO2024069843A1
WO2024069843A1 PCT/JP2022/036418 JP2022036418W WO2024069843A1 WO 2024069843 A1 WO2024069843 A1 WO 2024069843A1 JP 2022036418 W JP2022036418 W JP 2022036418W WO 2024069843 A1 WO2024069843 A1 WO 2024069843A1
Authority
WO
WIPO (PCT)
Prior art keywords
host
functional group
amount
control device
destination
Prior art date
Application number
PCT/JP2022/036418
Other languages
English (en)
French (fr)
Inventor
仁 中里
紗季 田中
遥 堀内
啓佑 高見
Original Assignee
楽天モバイル株式会社
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 楽天モバイル株式会社 filed Critical 楽天モバイル株式会社
Priority to PCT/JP2022/036418 priority Critical patent/WO2024069843A1/ja
Publication of WO2024069843A1 publication Critical patent/WO2024069843A1/ja

Links

Images

Classifications

    • 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]

Definitions

  • This disclosure relates to distributed deployment control of microservices.
  • each NF Network Function
  • each NF is built as a single service composed of multiple microservices.
  • container-based virtualization technology for example, using "Kubernetes" (registered trademark) as a microservices architecture
  • each NF is built from one or more CNFs (Containerized Network Functions). Since each microservice can be distributed and placed on different hosts (also called “servers"), the processing load of each host can be leveled by using a microservices architecture.
  • microservices that make up a single service are placed on different hosts, communication between the microservices will increase the frequency with which they cross hosts. For this reason, it may be preferable to deploy some microservices on the same host.
  • the present disclosure has been made in consideration of the above, and aims to provide distributed deployment control of microservices that can reduce the frequency with which redeployment processing is required.
  • the control device has one or more processors.
  • the one or more processors select a destination host from a host cluster consisting of one or more hosts for deploying one or more microservices that make up a service for each functional group, based on the amount of free resources of each host in the host cluster and the amount of resources required to deploy the functional group.
  • the one or more processors generate a deployment request for deploying the functional group to the destination host selected for each functional group.
  • the control method includes selecting a destination host from a host cluster consisting of one or more hosts for deploying one or more microservices that build one service for each functional group using one or more processors, based on the amount of free resources of each host in the host cluster and the amount of resources required to deploy the functional group.
  • the control method also includes generating, using the one or more processors, a deployment request for deploying the functional group to the destination host selected for each functional group.
  • a non-transitory computer-readable medium records a program that, when read by a computer, causes one or more processors of the computer to select a destination host and generate a deployment request. Selecting the destination host selects a destination host from a host cluster consisting of one or more hosts for deploying one or more microservices that make up a service for each functional group, based on the amount of free resources of each host in the host cluster and the amount of resources required to deploy the functional group. Generating the deployment request generates a deployment request for deploying the functional group to the destination host selected for each functional group.
  • FIG. 1 is a diagram for explaining a host cluster.
  • FIG. 2 is a diagram illustrating the relationship between services and microservices in the microservice architecture.
  • FIG. 3 is a functional block diagram illustrating a configuration example of a control device according to the present disclosure.
  • FIG. 4 is a diagram showing an example of the association between the amount of free resource and the free resource label.
  • FIG. 5 is a diagram illustrating an example of a processing sequence in the control device according to the present disclosure.
  • FIG. 6 is a flowchart illustrating a control method according to the present disclosure.
  • FIG. 7 is a block diagram illustrating an example of a hardware configuration of a control device according to the present disclosure.
  • control device 100 and control method according to the present disclosure control the distributed deployment of microservices that constitute a service to each host cluster including one or more hosts.
  • FIG. 1 is a diagram for explaining a host cluster.
  • a host cluster includes multiple hosts (L hosts, L is an integer).
  • each host is, for example, a single server, and a host cluster including multiple hosts can be considered as at least one virtual server.
  • the number L of hosts belonging to a host cluster is not limited, and can be set according to constraints such as the physical location where the host cluster is installed.
  • a host cluster is formed, for example, by hosts that are geographically close to each other. Note that a host cluster does not necessarily have to be formed only by hosts that are geographically close to each other. For example, a host cluster may be formed by hosts that are installed in logically close locations. Also, a host cluster may include hosts installed in a central data center. Also, a host cluster may include hosts installed in a regional data center.
  • Figure 1 shows three host clusters, a first host cluster 10a, a second host cluster 10b, and a third host cluster 10c.
  • Figure 1 shows an example in which the first host cluster 10a includes two hosts 11a and 12a, the second host cluster 10b includes five hosts 11b, 12b, 13b, 14b, and 15b, and the third host cluster 10c includes four hosts 11c, 12c, 13c, and 14c.
  • Figure 2 is a diagram showing the relationship between services and microservices in a microservice architecture. As shown in Figure 2, one service is built from one or more microservices. The number of microservices that make up one service varies depending on the service and design. Figure 2 shows an example in which service 20 is built from four microservices 21, 22, 23, and 24.
  • each of the NFs Network Functions
  • NFs Network Functions
  • CNF Containerized Network Function
  • Kubernetes is open source software (OSS: Open Source Software) that automatically configures and manages containerized services.
  • NFs and CNFs are used as services and microservices.
  • the number of CNFs that make up one NF may vary depending on the NF and design.
  • Each CNF may be deployed to a host individually and run on the host OS within the host. However, depending on the functions that the CNFs have, it may be preferable for CNFs with related functions to be deployed to the same host. For example, CNFs that frequently communicate data between them are preferably deployed to the same host.
  • a group of CNFs that are preferably deployed to the same host among the CNFs that make up one service is referred to as a functional group.
  • a functional group is composed of CNFs that have related functions, for example.
  • CNFs may be grouped into functional groups based on the tendency of communication volume between the CNFs.
  • FIG. 3 is a functional block diagram showing an example configuration of a control device 100 according to the present disclosure.
  • the control device 100 includes a resource monitoring unit 110, a label allocation unit 120, a destination host selection unit 130, and a deployment unit 140.
  • the control device 100 may be installed in the same data center as the data center in which the host is installed, or may be installed in a different data center.
  • the resource monitoring unit 110 monitors the amount of free resources of each host in the host cluster.
  • resources refer to hardware resources such as the CPU and memory of the server that realizes the host.
  • the amount of free resources may be monitored periodically, or when a service deployment request is notified to the control device 100.
  • the label allocation unit 120 classifies each host according to the amount of free resources each host has, and assigns a label indicating this class (hereinafter referred to as a "free resource label") to each host.
  • This free resource label is used when selecting a destination host by the destination host selection unit 130, which will be described later.
  • the label allocation unit 120 classifies each host according to, for example, the results of comparing the amount of free resources each host has with a predetermined threshold, and assigns a label indicating the class to each host.
  • Figure 4 is a diagram showing an example of the correspondence between free resource amounts and free resource labels.
  • Figure 4 shows an example in which the label allocation unit 120 uses three predetermined thresholds, threshold 1, threshold 2, and threshold 3 (threshold 1 > threshold 2 > threshold 3), and assigns free resource labels of "large”, “medium”, “small”, and “zero” to each host as free resource labels.
  • the label allocation unit 120 assigns a "large” free resource label to the host. If threshold 1 > amount of free resources is greater than or equal to threshold 2, the label allocation unit 120 assigns a "medium” free resource label to the host. If threshold 2 > amount of free resources is greater than or equal to threshold 3, the label allocation unit 120 assigns a "small” free resource label to the host. If threshold 3 > amount of free resources, the label allocation unit 120 assigns a "zero" free resource label to the host.
  • each host was classified into four classes according to the amount of free resources, but the number of classifications is not limited to four and can be any number.
  • the number of classifications and the threshold value may be set according to the tendency of the amount of resources required to deploy all CNFs belonging to a functional group.
  • the threshold used when assigning a free resource label of "zero" may be the amount of resources required to deploy one CNF.
  • threshold 3 may be the amount of resources required to deploy one CNF.
  • the label allocation unit 120 assigns to each host a label (free resource label) according to the amount of free resources. After the label allocation unit 120 assigns a free resource label to each host in each host cluster, the label allocation unit 120 stores information about the assigned free resource label in association with the host. The label allocation unit 120 may store and store this association as a list in storage. The storage may be inside the control device 100 or outside the control device 100.
  • the destination host selection unit 130 selects a destination host from a host cluster to which to deploy the functional group.
  • a functional group includes multiple CNFs.
  • a host cluster is composed of one or more hosts.
  • the destination host selection unit 130 selects a destination host from a host cluster based on the amount of free resources of each host in the host cluster and the amount of resources required to deploy the functional group (hereinafter also referred to as the "required amount of resources for the functional group").
  • the destination host selection unit 130 selects a host to which to deploy the functional group, using the association between the host and the free resource label created by the label allocation unit 120. At this time, the destination host selection unit 130 selects as the destination host a host on which all of the CNFs belonging to the functional group can be deployed to the same host, for example, by the first or second method described below, depending on the amount of resources required by the functional group.
  • the destination host selection unit 130 selects a destination host for each functional group using the association between the hosts and free resource labels described above. Specifically, the destination host selection unit 130 selects a host that has a sufficient amount of free resources to deploy the amount of resources required to deploy the functional group (required resource amount of the functional group) as the destination host. For example, if the required resource amount of the functional group is greater than or equal to threshold 2, the destination host selection unit 130 selects a host with a free resource label of "large" or "medium” as the destination host.
  • the destination host selection unit 130 sequentially selects destination hosts for functional groups for which destinations have not been determined from the hosts excluding those that have already been selected as destination hosts.
  • the order in which the destinations of the functional groups are determined by the destination host selection unit 130 is not particularly limited. For example, destination hosts may be selected in descending order of the amount of resources required by the functional groups. In this case, a destination host for a functional group requiring a small amount of resources is selected first, thereby reducing the frequency of occurrence of a situation in which a destination host for a functional group requiring a large amount of resources cannot be found.
  • the destination host selection unit 130 classifies each functional group according to the amount of resources required by the functional group, and assigns a label indicating the class (hereinafter referred to as a "functional group label") to each functional group.
  • the destination host selection unit 130 selects a destination host for each functional group using the association between the functional group and the functional group label in addition to the association list between the host and the free resource label.
  • the destination host selection unit 130 assigns functional group labels to functional groups using the same classification criteria as those used in classification according to the amount of available resources. For example, the destination host selection unit 130 uses the same three thresholds, threshold 1, threshold 2, and threshold 3, as the predetermined thresholds used by the label assignment unit 120, and assigns the functional group labels "large,” “medium,” and “small” to each functional group according to the amount of resources required by the functional group.
  • the destination host selection unit 130 assigns the functional group label "large” to the functional group. If threshold 1 > required resource amount of a functional group is greater than or equal to threshold 2, the destination host selection unit 130 assigns the functional group label "medium” to the functional group. If threshold 2 > required resource amount of a functional group is greater than or equal to threshold 3, the destination host selection unit 130 assigns the functional group label "small” to the functional group.
  • the destination host selection unit 130 selects a destination host for the functional group from among the hosts that have the same label as the functional group label.
  • a host assigned the "small” label is preferentially selected as a destination host. This prevents a host assigned the "large” or “medium” label from being selected as a destination host for a functional group to which the "small” label is assigned, increasing the resource utilization rate of each host and enabling more efficient use of resources.
  • the destination host selection unit 130 may select a host to which another "small” label is assigned. For example, if the label assignment unit 120 ranks the hosts to which the same "small” label is assigned in order of the amount of free resources of the host when creating the list, the destination host selection unit 130 may select the host with the next largest amount as the destination host.
  • the destination host selection unit 130 may reselect a host to which a "medium” label is assigned as the destination host. In this case, the functional group can be reliably deployed to the destination host, and redeployment processing is avoided.
  • the destination host selection unit 130 performs the above-mentioned selection process until a destination host has been selected for all functional groups.
  • the destination host selection unit 130 associates information about the destination host with the functional group, and notifies the deployment unit 140 of the information about the association.
  • the method of selecting a destination host in the destination host selection unit 130 is not limited to the first or second method described above.
  • the destination host selection unit 130 may select a destination host from multiple host clusters so that multiple function groups that build the same service are deployed to the same host cluster as much as possible. This makes it possible to prevent communication from occurring between different host clusters, and to reduce delays caused by distributed deployment.
  • the destination host selection unit 130 may also select a destination host so that multiple functional groups that make up the same service are deployed to the same host as much as possible. For example, in the first and second methods described above, the amount of resources required to deploy multiple functional groups may be used instead of the amount of resources required to deploy a single functional group. This allows multiple functional groups that make up one service to be deployed to the same host, making it possible to reduce communication between different hosts.
  • the destination host selection unit 130 selects a destination host, it may notify the label allocation unit 120 of information about the destination host and the amount of resources required by the functional group to be deployed to the destination host.
  • the label allocation unit 120 may update the free resource label of the destination host.
  • the destination host selection unit 130 may select a destination host so that multiple functional groups that build the same service are deployed to the same host as much as possible. As a result, multiple functional groups that build one service may be deployed to the same host depending on the free resource situation, and communication between different hosts can be suppressed.
  • the deployment unit 140 generates a deployment request for deploying the functional groups to the destination host selected for each functional group. This makes it possible to reduce the frequency of redeployment processing performed because functionally related CNFs could not be deployed to the same host, even if there are sufficient free resources on a host cluster basis. As a result, it is possible to reduce the length of time it takes to provide services due to redeployment processing.
  • FIG. 5 is a diagram showing an example of a processing sequence in the control device 100 according to the present disclosure.
  • FIG. 5 shows how the free resource amounts of the hosts 11a and 12a in the first host cluster 10a shown in FIG. 1 are monitored.
  • the control device 100 monitors the free resource amounts of the hosts 11a and 12a in the host cluster 10a (T11, T12). The free resource amounts may be monitored periodically or in response to a service creation request.
  • the control device 100 may notify the resource management device of a request to check the free resource amounts and receive information about the free resource amounts from the resource management device.
  • the control device 100 assigns a free resource label to the host according to the amount of free resources of the host (T13).
  • the control device 100 selects a destination host for each functional group using the association between the host and the free resource label (T14).
  • the control device 100 generates a deployment request to deploy the function groups to the destination host selected for each function group (T15).
  • FIG. 6 is a flowchart for explaining a control method of the control device 100 according to the present disclosure.
  • the control device 100 monitors the amount of free resources of the hosts in the host cluster (S11).
  • the control device 100 classifies each host according to the amount of free resources of each host, and assigns a free resource label indicating the class to each host (S12).
  • the control device 100 selects a destination host from the host cluster to which the functional group is to be deployed (S13).
  • the control device 100 may classify each functional group according to the amount of resources required to deploy the functional group, and assign a functional group label indicating the class to each functional group.
  • the control device 100 may further use the correspondence between the functional group and the functional group label to select a destination host for each functional group.
  • the control device 100 may assign a functional group label to the functional group using the same classification criteria as the classification criteria in the classification according to the amount of free resources. Note that when a destination host for deploying the functional group is selected in S13, the control device 100 may update the free resource label of the destination host.
  • the control device 100 may select a destination host so that multiple functional groups that build the same service are deployed to the same host cluster as much as possible.
  • the control device 100 generates a deployment request to deploy the function groups to the destination host selected for each function group (S14).
  • the destination host for deployment to each functional group is selected from the host cluster based on the amount of free resources of each host in the host cluster and the amount of resources required to deploy the functional group.
  • functionally related microservices are deployed to the same host, preventing long delays and increased latency.
  • each host is classified according to the amount of free resources it has, a free resource label indicating its class is assigned to each host, and a destination host is selected for each functional group using the association between the host and the free resource label. If the amount of free resources was managed for each host without setting labels, the number would become enormous, making the process of determining the destination host complicated. However, by using the association between the host and the free resource label, it is possible to relatively easily shorten the time it takes to deploy functionally related microservices to the same host.
  • the services and microservices in the microservice architecture are implemented using container-type virtualization technology, and container-type NFs and CNFs are used as services and microservices, but this is not limiting.
  • the control device 100 and control method according to the present disclosure can be applied even when services and microservices are implemented using a VM (Virtual Machine) type or a VM/container combined type as the virtualization technology.
  • VM Virtual Machine
  • the VNFs running on each guest OS correspond to the microservices.
  • a VM/container combined type is used as the virtualization technology
  • the VNFs running on each guest OS or the CNFs running on the hypervisor correspond to the microservices.
  • the control device 100 and control method according to the present disclosure can be applied to reduce the time it takes for functionally related microservices to be deployed to the same host.
  • FIG. 6 is a diagram showing a computer 200 that implements the control device 100 according to the present disclosure.
  • the computer 200 includes a processor 210, a memory 220, and a communication unit 230.
  • the number of processors 210, memories 220, and communication units 230 is not limited and may be one or more.
  • the processors 210, memories 220, and communication units 230 may be deployed together at each location where each unit constituting the control device 100 is located.
  • the processor 210 is a program-controlled device such as a microprocessor that operates according to a program installed in the control device 100.
  • the memory 220 is a storage element such as a ROM or RAM, or a storage device such as a solid-state drive (SSD) or a hard disk drive (HDD).
  • the memory 220 stores programs and the like to be executed by the processor 210.
  • the communication unit 230 is, for example, a communication interface such as a NIC or a wireless LAN module. Note that SDN (Software-Defined Networking) may be implemented in the communication unit 230.
  • the computer 200 may further include a storage 240. Examples of information stored in the storage 240 include information on the association between hosts and free resource labels, the amount of resources required by functional groups, and the association between functional groups and functional group labels.
  • the computer 200 may further include other components not shown.
  • the control device 100 may be implemented in an orchestrator that manages and deploys containers and VMs, which are used when building services using virtualization technology.
  • the present disclosure is not limited to the above-mentioned configuration, and the present disclosure also includes a control program.
  • the present disclosure also includes a program that, when loaded by a computer, causes one or more processors of the computer to execute each part of the control device 100.
  • the above program may be provided by being recorded on a computer-readable, non-transitory storage medium.
  • One or more processors The one or more processors: Selecting a destination host for deploying one or more microservices that constitute one service for each functional group from the host cluster based on the amount of free resources of each host in the host cluster composed of one or more hosts and the amount of resources required to deploy the functional group; generating a deployment request for deploying the functional groups to the destination hosts selected for each of the functional groups.
  • the process comprises: further comprising classifying each host according to the amount of free resources of the host, and assigning a free resource label indicating the class to each host;
  • the selecting comprises: selecting the destination host for each of the functional groups by using the association between the host and the free resource label.
  • the selecting comprises: further comprising: classifying each functional group according to an amount of resources required to deploy the functional group; and assigning a functional group label indicating the class to each functional group; and selecting the destination host for each of the functional groups by further using the association between the functional groups and the functional group labels.
  • Assigning the functional group labels to the functional groups includes: The control device according to [3], further comprising: allocating the functional group label to the functional group using a classification criterion that is the same as a classification criterion in the classification according to the amount of available resources.
  • the step of selecting the destination host includes: The control device according to any one of [1] to [4], further comprising: selecting the destination host from a plurality of host clusters so that the plurality of functional groups that construct the same service are deployed to the same host cluster as much as possible.
  • the step of selecting the destination host includes: The control device according to any one of [1] to [4], further comprising: selecting the destination host such that the plurality of functional groups that configure the same service are deployed to the same host as much as possible.
  • Allocating the free resource label to the host comprises: When a destination host for deploying the functional group is selected, updating the free resource label of the destination host.
  • the process comprises: The control device according to any one of [1] to [7], further comprising: monitoring the amount of available resources.
  • the service is built using a microservices architecture.
  • the control device according to any one of [1] to [8].
  • the functional group is composed of microservices having related functions.
  • the control device according to any one of [1] to [9].
  • the program When loaded by a computer, the program causes one or more processors of the computer to: Selecting a destination host for deploying one or more microservices that constitute one service for each functional group from the host cluster based on the amount of free resources of each host in the host cluster composed of one or more hosts and the amount of resources required to deploy the functional group; and generating a deployment request for deploying the functional group to the destination host selected for each of the functional groups.
  • Control device 110 Resource monitoring unit 120 Label allocation unit 130 Destination host selection unit 140 Deployment unit 200 Computer 210 Processor 220 Memory 230 Communication unit 240 Storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

制御装置は、1又は複数のプロセッサを有する。前記1又は複数のプロセッサは、1つのサービスを構築する1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択する。前記1又は複数のプロセッサは、前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成する。

Description

マイクロサービスの分散デプロイメント制御
 本開示は、マイクロサービスの分散デプロイメント制御に関する。
 近年、第5世代移動体通信システム(5G:5th Generation mobile communication systems)を構築する技術として、マイクロサービスアーキテクチャが注目されている。マイクロサービスアーキテクチャを用いて5Gシステムを構築する場合、5Gシステムを構成する各NF(Network Function)が、複数のマイクロサービスから形成される1つのサービスとして構築される。マイクロサービスアーキテクチャとして、例えば、「Kubernetes」(登録商標)を用いて、各NFをコンテナ型仮想化技術で構築する場合、各NFは、1以上のCNF(Containerized Network Function)から構築される。各マイクロサービスは、分散して異なるホスト(「サーバ」とも呼ばれる)に配置し得るため、マイクロサービスアーキテクチャを用いることにより、各ホストの処理負荷を平準化することができる。
 一方で、1つのサービスを構築する複数のマイクロサービスを異なるホストに配置すると、マイクロサービス間の通信がホスト間を跨がる頻度が増えてしまう。そのため、一部のマイクロサービスを同じホストにデプロイさせるのが好ましい場合がある。
特開2022-070307号公報
 しかしながら、ホストの数は非常に多いため、ホストのコンピューティングリソースの空きリソース量は、ホスト単体ごとでなく、複数のホストを含むホストクラスタごとに管理されることが多い。そのため、ホストクラスタでは空きリソース量が充分にあるような場合であっても、複数のマイクロサービスを同一のホストにデプロイすることができず、再デプロイ処理が必要になって、サービスを提供するまでの時間が長引いてしまう場合がある。
 本開示は、上記に鑑みてなされたものであって、再デプロイ処理が必要となる頻度を低減することができるマイクロサービスの分散デプロイメント制御を提供することを目的とする。
 本開示の一態様によれば、制御装置は、1又は複数のプロセッサを有する。前記1又は複数のプロセッサは、1つのサービスを構築する1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択する。前記1又は複数のプロセッサは、前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成する。
 本開示の一態様によれば、制御方法は、1又は複数のプロセッサを用いて、1つのサービスを構築1又は複数のプロセッサする1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択することを含む。また、前記制御方法は、前記1又は複数のプロセッサを用いて、前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成することを含む。
 本開示の一態様によれば、非一時的(non-transitory)なコンピュータ可読媒体は、コンピュータによって読み込まれると、前記コンピュータの1又は複数のプロセッサに、配置先ホストを選択することと、デプロイ依頼を生成することとを実行させるプログラムを記録する。前記配置先ホストを選択することは、1つのサービスを構築する1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択する。前記デプロイ依頼を生成することは、前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成する。
図1は、ホストクラスタを説明するための図である。 図2は、マイクロサービスアーキテクチャにおける、サービスと、マイクロサービスとの関係を示す図である。 図3は、本開示に係る制御装置の構成例を示す機能ブロック図である。 図4は、空きリソース量と空きリソースラベルとの対応付けの一例を示す図である。 図5は、本開示に係る制御装置における処理シーケンスの一例を示す図である。 図6は、本開示に係る制御方法を説明するためのフローチャートである。 図7は、本開示に係る制御装置のハードウェア構成の一例を示すブロック図である。
 以下、添付図面を参照して、本開示に係る実施の形態について説明する。以下に説明する実施の形態は例示であり、この記載によって限定解釈されるものではない。
(一実施の形態)
 本開示に係る制御装置100及び制御方法は、1以上のホストを含む各ホストクラスタへの、サービスを構築するマイクロサービスの分散デプロイメントを制御する。
 本開示に係る制御装置100及び制御方法について説明する前に、ホストクラスタについて説明する。図1は、ホストクラスタを説明するための図である。ホストクラスタは、複数(L個、Lは整数)のホストを含む。ここで、各ホストは、例えば、1台のサーバであり、複数のホストを含むホストクラスタは、少なくとも1台以上の仮想的なサーバとみなすことができる。なお、ホストクラスタに属するホストの数Lは、限定されず、ホストクラスタが設置される物理的な場所の制約等により設定され得る。
 ホストクラスタは、例えば、地理的な設置位置が近いホストにより形成される。なお、必ずしも、地理的な設置位置が近いホストのみでホストクラスタが形成されている必要はない。例えば、ホストクラスタは、論理的に近い位置に設置されたホストにより形成されていてもよい。また、ホストクラスタには、セントラルデータセンタ内に設置されたホストが含まれていてもよい。また、ホストクラスタには、リージョナルデータセンタ内に設置されたホストが含まれていてもよい。
 図1には、3つのホストクラスタ、第1のホストクラスタ10a、第2のホストクラスタ10b、及び第3のホストクラスタ10cが示されている。図1には、第1のホストクラスタ10aが2つのホスト11a、12aを含み、第2のホストクラスタ10bが5つのホスト11b、12b、13b、14b、15bを含み、第3のホストクラスタ10cが4つのホスト11c、12c、13c、14cを含む例が示されている。
 次に、マイクロサービスアーキテクチャにおけるサービスとマイクロサービスとの関係について、図2を用いて説明する。図2は、マイクロサービスアーキテクチャにおける、サービスとマイクロサービスとの関係を示す図である。図2に示すように、1つのサービスは1以上のマイクロサービスから構築される。1つのサービスを構築するマイクロサービス数は、サービス及び設計によって異なる。図2には、サービス20が4つのマイクロサービス21、22、23、24によって構築されている例が示されている。
 5Gシステムをマイクロサービスアーキテクチャにより構築する場合、5Gを構成するNF(Network Function)の各々が、1つのサービスに対応する。また、サービスを、「Kubernetes」(登録商標)を用いてコンテナ型仮想化技術を用いて構築する場合、CNF(Containerized Network Function)がマイクロサービスに対応する。Kubernetesは、コンテナ化されたサービスの設定及び管理を自動で行うオープンソースソフトウェア(OSS:Open Source Software)である。以下の説明では、サービス、マイクロサービスとして、NF、CNFを用いて説明する。
 上述したように、1つのNFを構築するCNF数は、NF及び設計によって異なり得る。CNFはそれぞれ単体でホストにデプロイされて、ホスト内のホストOS上で動作し得る。しかしながら、CNFが有する機能によっては、関連する機能を有するCNFが同一のホストにデプロイされるのが好ましい場合がある。例えば、CNF同士でのデータ通信が頻繁に発生するようなCNFは、同一のホストにデプロイされるのが好ましい。
 以下では、1つのサービスを構築するCNFのうち、同一のホストにデプロイされるのが好ましいCNFが属するグループを機能グループという。図2において、点線で囲まれた2つのCNF21、22は、同一の機能グループ25に属することを示している。機能グループは、例えば、関連する機能を有するCNFにより構成される。また、CNF同士での通信量の傾向に基づいて、CNFが機能グループにグループ化されてもよい。
 図3は、本開示に係る制御装置100の構成例を示す機能ブロック図である。制御装置100は、リソース監視部110、ラベル割り当て部120、配置先ホスト選択部130、及び、デプロイ部140を備える。制御装置100は、ホストが設置されるデータセンタと同じデータセンタに設置されていてもよいし、異なるデータセンタに設置されてもよい。
 リソース監視部110は、ホストクラスタ内の各ホストの空きリソース量を監視する。ここで、リソースとは、ホストを実現するサーバのCPU、メモリ等のハードウェアリソースである。空きリソース量の監視は、定期的に行われてもよいし、サービスのデプロイ依頼が制御装置100に通知されたタイミングで行われてもよい。
 ラベル割り当て部120は、各ホストの空きリソース量に応じて、各ホストをクラス分けし、このクラスを示すラベル(以下「空きリソースラベル」という)を各ホストに割り当てる。この空きリソースラベルは、後述の配置先ホスト選択部130において配置先ホストを選択する際に用いられる。ラベル割り当て部120は、例えば、ホストの空きリソース量と所定の閾値との比較結果に応じて、各ホストをクラス分けし、クラスを示すラベルを各ホストに割り当てる。
 図4を用いて、ラベル割り当て部120における、閾値を用いたラベル割り当てについて説明する。図4は、空きリソース量と空きリソースラベルとの対応付けの一例を示す図である。図4には、ラベル割り当て部120が、所定の閾値として、3つの閾値1、閾値2、閾値3(閾値1>閾値2>閾値3)を使用して、各ホストに対して、「大」、「中」、「小」、「ゼロ」の空きリソースラベルを空きリソースラベルとして割り当てた例が示されている。
 この例では、空きリソース量≧閾値1の場合、ラベル割り当て部120は、当該ホストに、「大」の空きリソースラベルを割り当てる。閾値1>空きリソース量≧閾値2の場合、ラベル割り当て部120は、当該ホストに、「中」の空きリソースラベルを割り当てる。閾値2>空きリソース量≧閾値3の場合、ラベル割り当て部120は、当該ホストに、「小」の空きリソースラベルを割り当てる。閾値3>空きリソース量の場合、ラベル割り当て部120は、当該ホストに、「ゼロ」の空きリソースラベルを割り当てる。
 なお、以上の説明では、空きリソース量に応じて、各ホストを4つのクラスに分類した例について説明したが、クラス分けの数は4つに限定されず、クラス分けの数は任意である。また、クラス分けの数及び閾値の値は、機能グループに属する全てのCNFをデプロイするために必要なリソース量の傾向に応じて設定されてよい。なお、「ゼロ」の空きリソースラベルを割り当てる際に用いられる閾値は、CNFを1つデプロイするために必要なリソース量としてもよい。例えば、上述の例では、閾値3は、CNFを1つデプロイするために必要なリソース量としてもよい。これにより、「ゼロ」の空きリソースラベルが割り当てられたホストにはCNFが1つもデプロイできない状態であることが明確となる。
 ラベル割り当て部120は、このようにして、各ホストに対して、空きリソース量に応じたラベル(空きリソースラベル)を割り当てる。ラベル割り当て部120は、各ホストクラスタの各ホストに対して、空きリソースラベルを割り当てると、割り当てた空きリソースラベルについての情報をホストと対応付けて保持する。ラベル割り当て部120は、この対応付けをリストとして、ストレージに格納して保持してもよい。当該ストレージは、制御装置100内にあってもよいし、制御装置100外にあってもよい。
 配置先ホスト選択部130は、機能グループをデプロイする配置先ホストをホストクラスタから選択する。上述したように、機能グループは、複数のCNFを含む。また、ホストクラスタは、1以上のホストにより構成されている。配置先ホスト選択部130は、ホストクラスタ内の各ホストの空きリソース量と、機能グループをデプロイするために必要なリソース量(以下「機能グループの必要リソース量」ともいう)とに基づいて、ホストクラスタから配置先ホストを選択する。
 具体的には、配置先ホスト選択部130は、ラベル割り当て部120において作成された、ホストと空きリソースラベルとの対応付けを用いて、機能グループをデプロイするホストを選択する。このとき、配置先ホスト選択部130は、機能グループの必要リソース量に応じて、例えば、以下に説明する第1の方法又は第2の方法によって、機能グループに属するCNFの全てが同一のホストにデプロイできるようなホストを配置先ホストとして選択する。
 第1の方法においては、配置先ホスト選択部130は、上述のホストと空きリソースラベルとの対応付けを用いて、機能グループごとに配置先ホストを選択する。具体的には、配置先ホスト選択部130は、機能グループをデプロイするために必要なリソース量(機能グループの必要リソース量)をデプロイし得るだけの空きリソース量を有するホストを、配置先ホストとして選択する。例えば、機能グループの必要リソース量が、機能グループの必要リソース量≧閾値2の場合、配置先ホスト選択部130は、空きリソースラベルが「大」又は「中」のホストを配置先ホストとして選択する。
 そして、配置先ホスト選択部130は、既に配置先ホストとして選択されたホストを除外したホストから、配置先が決まっていない機能グループの配置先ホストを順次選択する。配置先ホスト選択部130において、配置先が決定される機能グループの順番は、特に限定されない。例えば、機能グループの必要リソース量が大きい順に、配置先ホストを選択してもよい。この場合には、必要リソース量が小さい機能グループの配置先ホストが先に選ばれてしまうことにより、必要リソース量が大きい機能グループの配置先ホストが見つからない状況が発生する頻度を下げることができる。
 第2の方法においては、配置先ホスト選択部130は、機能グループの必要リソース量の大きさに応じて、各機能グループをクラス分けし、クラスを示すラベル(以下「機能グループラベル」という)を各機能グループに割り当てる。配置先ホスト選択部130は、ホストと空きリソースラベルとの対応付けリストに加えて、機能グループと機能グループラベルとの対応付けを用いて、機能グループごとに配置先ホストを選択する。
 なお、配置先ホスト選択部130は、空きリソース量に応じたクラス分けにおけるクラス分け基準と同じクラス分け基準を用いて、機能グループラベルを機能グループに割り当てる。例えば、配置先ホスト選択部130は、所定の閾値として、ラベル割り当て部120において用いられた閾値と同じ3つの閾値1、閾値2、閾値3を使用して、各機能グループに対して、機能グループの必要リソース量に応じて、「大」、「中」、「小」の機能グループラベルを割り当てる。
 具体的には、機能グループの必要リソース量≧閾値1の場合、配置先ホスト選択部130は、当該機能グループに、「大」の機能グループラベルを割り当てる。閾値1>機能グループの必要リソース量≧閾値2の場合、配置先ホスト選択部130は、当該機能グループに、「中」の機能グループラベルを割り当てる。閾値2>機能グループの必要リソース量≧閾値3の場合、配置先ホスト選択部130は、当該機能グループに、「小」の機能グループラベルを割り当てる。
 そして、配置先ホスト選択部130は、機能グループラベルと同じラベルを有するホストから、当該機能グループの配置先ホストを選択する。つまり、第2の方法によれば、「小」ラベルが割り当てられた機能グループには、「小」ラベルが割り当てられたホストが配置先ホストとして優先的に選択されるようになる。これにより、「小」ラベルが割り当てられた機能グループに、「大」又は「中」ラベルが割り当てられたホストが配置先ホストとして選択されることがなくなり、各ホストにおけるリソース使用率が上がって、リソースの有効利用を図ることができる。
 なお、ホストの空きリソースラベルが及び機能グループラベルが共に「小」であっても、当該ホストの空きリソース量が機能グループの必要リソース量より小さく、制御装置100が、機能グループが当該ホストにデプロイできない旨の通知を受け取る場合があり得る。その場合には、配置先ホスト選択部130は、他の「小」ラベルが割り当てられたホストを選んでもよい。例えば、ラベル割り当て部120が、リスト作成する際に、同じ「小」ラベルが割り当てられたホスト内で、ホストの空きリソース量の大きさの順にホストの順位付けをしている場合には、配置先ホスト選択部130は、次に大きさが大きいホストを配置先ホストに選択してもよい。また、「小」ラベルが割り当てられたホストに機能グループが当該ホストにデプロイできなかった場合、配置先ホスト選択部130は、「中」ラベルが割り当てられたホストを配置先ホストとして再選択してもよい。この場合には、確実に機能グループを配置先ホストにデプロイすることができるので、再デプロイ処理が回避される。
 配置先ホスト選択部130は、全ての機能グループに対して、配置先ホストが選択されるまで、上述の選択処理を行う。配置先ホスト選択部130は、全ての機能グループに対して配置先ホストを選択すると、配置先ホストについての情報を機能グループと対応付け、当該対応付けについての情報をデプロイ部140に通知する。
 なお、配置先ホスト選択部130における配置先ホストの選択方法は、上述の第1の方法又は第2の方法に限定されない。例えば、配置先ホスト選択部130は、同一のサービスを構築する複数の機能グループができるだけ同一のホストクラスタにデプロイされるように、複数のホストクラスタから、配置先ホストを選択してもよい。これにより、異なるホストクラスタ間で通信が発生するのを抑えることができ、分散デプロイメントによる遅延時間を抑えることができる。
 また、配置先ホスト選択部130は、同一のサービスを構築する複数の機能グループができるだけ同一のホストにデプロイされるように、配置先ホストを選択してもよい。例えば、上記第1の方法及び第2の方法において、単一の機能グループをデプロイするために必要なリソース量に代えて、複数の機能グループをデプロイするために必要なリソース量を用いてもよい。これにより、1つのサービスを構築する複数の機能グループが同一のホストにデプロイされることになり、異なるホスト間で通信が発生するのを抑えることができる。
 なお、配置先ホスト選択部130は、配置先ホストを選択すると、配置先ホストと当該配置先ホストにデプロイされる機能グループの必要リソース量についての情報を、ラベル割り当て部120に通知するようにしてもよい。ラベル割り当て部120は、当該情報を受け取ると、配置先ホストの空きリソースラベルを更新するようにしてもよい。これにより、機能グループをデプロイしたとしても、配置先ホストに空きリソースがあるような場合に、当該ホストが他の機能グループの配置先ホストの候補になり得る。配置先ホスト選択部130は、同一のサービスを構築する複数の機能グループができるだけ同一のホストにデプロイされるように、配置先ホストを選択してもよい。これにより、空きリソースの状況によっては、1つのサービスを構築する複数の機能グループが同一のホストにデプロイされることになり、異なるホスト間で通信が発生するのを抑えることができる。
 デプロイ部140は、機能グループごとに選択された配置先ホストに、機能グループをデプロイするためのデプロイ依頼を生成する。これにより、ホストクラスタ単位では、空きリソースが充分であっても、機能的に関連しているCNFを同一のホストにデプロイすることができなかったために再デプロイ処理が行われる頻度を低減させることができる。この結果、再デプロイ処理のためにサービスを提供するまでの時間が長引いてしまうのを低減することができる。
 次に、図5を用いて、本開示に係る制御装置100における処理について説明する。図5は、本開示に係る制御装置100における処理シーケンスの一例を示す図である。
 図5には、図1に示した第1のホストクラスタ10a内のホスト11a、12aの空きリソース量が監視されている様子が示されている。制御装置100は、ホストクラスタ10a内のホスト11a、12aの空きリソース量を監視する(T11、T12)。空きリソース量の監視は、定期的、又は、サービスの作成依頼をトリガとして行われてもよい。また、第1のホストクラスタ10aのホスト11a、12aを管理するリソース管理装置(不図示)が設けられている場合には、制御装置100は、リソース管理装置に空きリソース量確認依頼を通知して、リソース管理装置から空きリソース量についての情報を受け取るようにしてもよい。
 制御装置100は、ホストの空きリソース量に応じた空きリソースラベルをホストに割り当てる(T13)。
 制御装置100は、ホストと空きリソースラベルとの対応付けを用いて、機能グループごとに配置先ホストを選択する(T14)。
 制御装置100は、機能グループごとに選択された配置先ホストに、機能グループをデプロイするためのデプロイ依頼を生成する(T15)。
 図6は、本開示に係る制御装置100の制御方法を説明するためのフローチャートである。制御装置100は、ホストクラスタ内のホストの空きリソース量を監視する(S11)。制御装置100は、各ホストの空きリソース量に応じて、各ホストをクラス分けし、クラスを示す空きリソースラベルを各ホストに割り当てる(S12)。
 制御装置100は、機能グループをデプロイする配置先ホストをホストクラスタから選択する(S13)。S13において、制御装置100は、機能グループをデプロイするために必要なリソース量に応じて、各機能グループをクラス分けし、クラスを示す機能グループラベルを各機能グループに割り当てもよい。そして、制御装置100は、機能グループと機能グループラベルとの対応付けを更に用いて、機能グループごとに配置先ホストを選択してもよい。また、この場合において、制御装置100は、空きリソース量に応じたクラス分けにおけるクラス分け基準と同じクラス分け基準を用いて、機能グループラベルを機能グループに割り当ててもよい。なお、S13において、機能グループをデプロイするための配置先ホストが選択されると、制御装置100は、配置先ホストの前記空きリソースラベルを更新してもよい。また、S13において、制御装置100は、同一のサービスを構築する複数の機能グループができるだけ同一のホストクラスタにデプロイされるように、配置先ホストを選択してもよい。
 制御装置100は、機能グループごとに選択された配置先ホストに、機能グループをデプロイするためのデプロイ依頼を生成する(S14)。
 以上のように、本実施の形態によれば、機能グループごとにデプロイするための配置先ホストを、ホストクラスタ内の各ホストの空きリソース量と、機能グループをデプロイするために必要なリソース量とに基づいて、ホストクラスタから選択する。この結果、機能的に関連しているマイクロサービスが同一のホストにデプロイされるようになって、遅延時間が長くなるのを抑え、レイテンシーが大きくなってしまうのを抑えることができる。
 また、ホストの空きリソース量に応じて、各ホストがクラス分けされ、クラスを示す空きリソースラベルが各ホストに割り当てられ、ホストと空きリソースラベルとの対応付けを用いて、機能グループごとに配置先ホストが選択される。ラベルを設けずにホストごとに空きリソース量を管理すると、その数が膨大となってしまって、配置先ホストを決定するまでの処理が煩雑となってしまうのに対し、ホストと空きリソースラベルとの対応付けを用いることにより、比較的簡易に、機能的に関連しているマイクロサービスが同一のホストにデプロイされるまでの時間を短縮することができる。
 なお、以上の説明では、マイクロサービスアーキテクチャにおけるサービス、マイクロサービスを、コンテナ型仮想化技術を用いて実装し、サービス、マイクロサービスとして、コンテナ型のNF、CNFを例に説明したが、これに限定されない。例えば、仮想化技術として、VM(Virtual Machine)型、又は、VM・コンテナ併用型を用いて、サービス、マイクロサービスを実装する場合においても、本開示に係る制御装置100及び制御方法を適用することができる。仮想化技術としてVM型を用いる場合には、各ゲストOS上で動作するVNFが、マイクロサービスに対応する。仮想化技術としてVM・コンテナ併用型を用いる場合には、各ゲストOS上で動作するVNF又はハイパーバイザー上で動作するCNFが、マイクロサービスに対応する。また、1つのサービスが、複数のマイクロサービスとして実装されるようなマイクロサービスアーキテクチャにより構築されていれば、本開示に係る制御装置100及び制御方法を適用して、機能的に関連しているマイクロサービスが同一のホストにデプロイされるまでの時間を短縮することができる。
 図6は、本開示に係る制御装置100を実装するコンピュータ200を示す図である。コンピュータ200は、プロセッサ210と、メモリ220と、通信部230と、を含む。プロセッサ210、メモリ220、及び通信部230の数は限定されず、1つ又は複数であってよい。また、プロセッサ210、メモリ220、及び通信部230は、制御装置100を構成する各部が配置される場所ごとにまとめてデプロイされていてもよい。
 プロセッサ210は、制御装置100にインストールされるプログラムに従って動作するマイクロプロセッサ等のプログラム制御デバイスである。メモリ220は、ROM若しくはRAM等の記憶素子、ソリッドステートドライブ(SSD)、又はハードディスクドライブ(HDD)等の記憶デバイスである。メモリ220には、プロセッサ210によって実行されるプログラム等が記憶される。通信部230は、例えば、NIC又は無線LANモジュール等の通信インターフェースである。なお、通信部230において、SDN(Software-Defined Networking)が実装されていてもよい。
 コンピュータ200は、更にストレージ240を含んでもよい。ストレージ240に記憶される情報としては、ホストと空きリソースラベルとの対応付け、機能グループの必要リソース量、機能グループと機能グループラベルとの対応付けの情報を例示することができる。
 コンピュータ200は、図示していない他の構成を更に含んでいてもよい。
 なお、本開示に係る制御装置100は、仮想化技術を用いてサービスを構築する場合に用いられる、コンテナ、VMの管理及びデプロイを行うオーケストレータに実装させてもよい。
 本開示は、前述の構成に限定されず、本開示には制御プログラムも含まれる。すなわち、コンピュータによって読み込まれると、コンピュータの1以上のプロセッサに、制御装置100の各部を実行させるためのプログラムも本開示に含まれる。当該上記プログラムは、コンピュータ読み取り可能で非一時的な(non-transitory)記憶媒体に記録されて提供されてよい。
 なお、本開示は、前述の実施形態に限定されるものではなく、前述の構成に対して、構成要素の付加、削除又は転換を行った様々な変形例も含むものとする。
 以上説明した本開示には、下記[1]から[12]が含まれる。
[1]
 1又は複数のプロセッサを有し、
 前記1又は複数のプロセッサは、
 1つのサービスを構築する1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択することと、
 前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成することと
 を含む処理を実行する制御装置。
[2]
 前記処理は、
 前記ホストの前記空きリソース量に応じて、各ホストをクラス分けし、クラスを示す空きリソースラベルを各ホストに割り当てることを更に含み、
 前記選択することは、
 前記ホストと前記空きリソースラベルとの対応付けを用いて、前記機能グループごとに前記配置先ホストを選択すること
 を含む[1]に記載の制御装置。
[3]
 前記選択することは、
 前記機能グループをデプロイするために必要なリソース量に応じて、各機能グループをクラス分けし、クラスを示す機能グループラベルを各機能グループに割り当てることを更に含み、
 前記機能グループと前記機能グループラベルとの対応付けを更に用いて、前記機能グループごとに前記配置先ホストを選択すること
 を含む[2]に記載の制御装置。
[4]
 前記機能グループラベルを前記機能グループに割り当てることは、
 前記空きリソース量に応じたクラス分けにおけるクラス分け基準と同じクラス分け基準を用いて、前記機能グループラベルを前記機能グループに割り当てること
 を含む[3]に記載の制御装置。
[5]
 前記配置先ホストを選択することは、
 同一のサービスを構築する複数の前記機能グループができるだけ同一のホストクラスタにデプロイされるように、複数のホストクラスタから、前記配置先ホストを選択すること
 を含む[1]から[4]のいずれか1つに記載の制御装置。
[6]
 前記配置先ホストを選択することは、
 同一のサービスを構築する複数の前記機能グループができるだけ同一のホストにデプロイされるように、前記配置先ホストを選択すること
 を含む[1]から[4]のいずれか1つに記載の制御装置。
[7]
 前記空きリソースラベルを前記ホストに割り当てることは、
 前記機能グループをデプロイするための配置先ホストが選択されると、前記配置先ホストの前記空きリソースラベルを更新すること
 を含む[2]から[6]のいずれか1つに記載の制御装置。
[8]
 前記処理は、
 前記空きリソース量を監視すること
 を更に含む[1]から[7]のいずれか1つに記載の制御装置。
[9]
 前記サービスは、マイクロサービスアーキテクチャにより構築されている、
 [1]から[8]のいずれか1つに記載の制御装置。
[10]
 前記機能グループは、関連する機能を有するマイクロサービスにより構成される、
 [1]から[9]のいずれか1つに記載の制御装置。
[11]
 1又は複数のプロセッサを用いて、1つのサービスを構築1又は複数のプロセッサする1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択することと、
 前記1又は複数のプロセッサを用いて、前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成することと
 を有する制御方法。
[12]
 コンピュータによって読み込まれると、前記コンピュータの1又は複数のプロセッサに、
 1つのサービスを構築する1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択することと、
 前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成することと
を実行させるプログラムが記録された、非一時的(non-transitory)なコンピュータ可読媒体。
 100 制御装置
 110 リソース監視部
 120 ラベル割り当て部
 130 配置先ホスト選択部
 140 デプロイ部
 200 コンピュータ
 210 プロセッサ
 220 メモリ
 230 通信部
 240 ストレージ

Claims (12)

  1.  1又は複数のプロセッサを有し、
     前記1又は複数のプロセッサは、
     1つのサービスを構築する1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択することと、
     前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成することと
     を含む処理を実行する制御装置。
  2.  前記処理は、
     前記ホストの前記空きリソース量に応じて、各ホストをクラス分けし、クラスを示す空きリソースラベルを各ホストに割り当てることを更に含み、
     前記選択することは、
     前記ホストと前記空きリソースラベルとの対応付けを用いて、前記機能グループごとに前記配置先ホストを選択すること
     を含む請求項1に記載の制御装置。
  3.  前記選択することは、
     前記機能グループをデプロイするために必要なリソース量に応じて、各機能グループをクラス分けし、クラスを示す機能グループラベルを各機能グループに割り当てることを更に含み、
     前記機能グループと前記機能グループラベルとの対応付けを更に用いて、前記機能グループごとに前記配置先ホストを選択すること
     を含む請求項2に記載の制御装置。
  4.  前記機能グループラベルを前記機能グループに割り当てることは、
     前記空きリソース量に応じたクラス分けにおけるクラス分け基準と同じクラス分け基準を用いて、前記機能グループラベルを前記機能グループに割り当てること
     を含む請求項3に記載の制御装置。
  5.  前記配置先ホストを選択することは、
     同一のサービスを構築する複数の前記機能グループができるだけ同一のホストクラスタにデプロイされるように、複数のホストクラスタから、前記配置先ホストを選択すること
     を含む請求項1に記載の制御装置。
  6.  前記配置先ホストを選択することは、
     同一のサービスを構築する複数の前記機能グループができるだけ同一のホストにデプロイされるように、前記配置先ホストを選択すること
     を含む請求項1に記載の制御装置。
  7.  前記空きリソースラベルを前記ホストに割り当てることは、
     前記機能グループをデプロイするための配置先ホストが選択されると、前記配置先ホストの前記空きリソースラベルを更新すること
     を含む請求項2に記載の制御装置。
  8.  前記処理は、
     前記空きリソース量を監視すること
     を更に含む請求項1に記載の制御装置。
  9.  前記サービスは、マイクロサービスアーキテクチャにより構築されている、
     請求項1に記載の制御装置。
  10.  前記機能グループは、関連する機能を有するマイクロサービスにより構成される、
     請求項1に記載の制御装置。
  11.  1又は複数のプロセッサを用いて、1つのサービスを構築1又は複数のプロセッサする1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択することと、
     前記1又は複数のプロセッサを用いて、前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成することと
     を有する制御方法。
  12.  コンピュータによって読み込まれると、前記コンピュータの1又は複数のプロセッサに、
     1つのサービスを構築する1以上のマイクロサービスを、機能グループごとにデプロイするための配置先ホストを、1以上のホストにより構成されるホストクラスタ内の各ホストの空きリソース量と、前記機能グループをデプロイするために必要なリソース量とに基づいて、前記ホストクラスタから選択することと、
     前記機能グループごとに選択された前記配置先ホストに、前記機能グループをデプロイするためのデプロイ依頼を生成することと
    を実行させるプログラムが記録された、非一時的(non-transitory)なコンピュータ可読媒体。

     
PCT/JP2022/036418 2022-09-29 2022-09-29 マイクロサービスの分散デプロイメント制御 WO2024069843A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/036418 WO2024069843A1 (ja) 2022-09-29 2022-09-29 マイクロサービスの分散デプロイメント制御

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/036418 WO2024069843A1 (ja) 2022-09-29 2022-09-29 マイクロサービスの分散デプロイメント制御

Publications (1)

Publication Number Publication Date
WO2024069843A1 true WO2024069843A1 (ja) 2024-04-04

Family

ID=90476774

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/036418 WO2024069843A1 (ja) 2022-09-29 2022-09-29 マイクロサービスの分散デプロイメント制御

Country Status (1)

Country Link
WO (1) WO2024069843A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02117236A (ja) * 1988-10-27 1990-05-01 Toshiba Corp 経路決定方式
JP2009193411A (ja) * 2008-02-15 2009-08-27 Tokyo Univ Of Science サーバ割り当て方法及びサーバ割り当て装置
JP2019211955A (ja) * 2018-06-04 2019-12-12 株式会社日立製作所 システム及びサービス制御方法
JP2022539955A (ja) * 2020-03-11 2022-09-14 上▲海▼商▲湯▼智能科技有限公司 タスクスケジューリング方法及び装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02117236A (ja) * 1988-10-27 1990-05-01 Toshiba Corp 経路決定方式
JP2009193411A (ja) * 2008-02-15 2009-08-27 Tokyo Univ Of Science サーバ割り当て方法及びサーバ割り当て装置
JP2019211955A (ja) * 2018-06-04 2019-12-12 株式会社日立製作所 システム及びサービス制御方法
JP2022539955A (ja) * 2020-03-11 2022-09-14 上▲海▼商▲湯▼智能科技有限公司 タスクスケジューリング方法及び装置

Similar Documents

Publication Publication Date Title
US20210405902A1 (en) Rule-based provisioning for heterogeneous distributed systems
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
US7685148B2 (en) Automatically configuring a distributed computing system according to a hierarchical model
US11375014B1 (en) Provisioning of clustered containerized applications
US9027017B2 (en) Methods and apparatus for movement of virtual resources within a data center environment
CN114788227B (zh) 使用动态标记和清单的灵活策略语义扩展
EP3200393B1 (en) Method and device for virtual network function management
US20220057947A1 (en) Application aware provisioning for distributed systems
CN110098946B (zh) 虚拟化网元设备的部署方法以及装置
US9569242B2 (en) Implementing dynamic adjustment of I/O bandwidth for virtual machines using a single root I/O virtualization (SRIOV) adapter
US20200358666A1 (en) Releasing and retaining resources for use in a nfv environment
CN106296530B (zh) 针对非聚合基础设施的信任覆盖
CN114090176A (zh) 一种基于Kubernetes的容器调度方法
CN115280285B (zh) 由独立操作的多个调度器在公共资源集上调度工作负载
US10203976B2 (en) Virtual appliance management in a virtualized computing environment based on operational modes associated with virtual appliance
JP6993495B2 (ja) クラウド・ネットワーキングにおけるスケーラブルな統計及び分析メカニズム
US20110167067A1 (en) Classification of application commands
US11726684B1 (en) Cluster rebalance using user defined rules
US20220075694A1 (en) Automatic reclamation of reserved resources in a cluster with failures
CN112015515B (zh) 一种虚拟网络功能的实例化方法及装置
KR102231359B1 (ko) 고성능 클라우드 서비스를 위한 단일 가상화 시스템 및 프로세스 스케줄링 방법
WO2024069843A1 (ja) マイクロサービスの分散デプロイメント制御
US11843548B1 (en) Resource scaling of microservice containers
CN109005071B (zh) 一种决策部署方法和调度设备
US11815999B2 (en) Optimized alarm state restoration through categorization

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22960903

Country of ref document: EP

Kind code of ref document: A1