This invention relates to a technology for placing objects such as an application and software in multi-cloud.
The use of multi-cloud for operating a business system through use of a plurality of cloud services is becoming widespread. As a technology in which an application, data, and the like for implementing a service of a business system are placed in an environment implemented by a cloud system, there is known a technology as described in JP 2017-174131 A.
In JP 2017-174131 A, it is described that “A deployment device 60 includes: a storage unit 61 for storing pieces of deployment destination information each including information indicating a system environment in which a system operates and information indicating a deployment target object that can be deployed in the system environment; and a selection module 62 for selecting a piece of deployment destination information indicating a system environment in which an input deployment target object can be deployed from among the pieces of deployment destination information stored in the storage unit 61.”
In this specification, an application, data, and the like to be placed in an environment are each referred to as “object.”
The related art involves presenting an environment that satisfies a requirement (environmental requirement) relating to an environment in which an object is to be placed and a constraint relating to the placement of the object. In the related art, when there is no environment that satisfies both the environmental requirement and the constraint, it is impossible to present the environment in which the object is to be placed.
This invention achieves a system for presenting, when there is no environment that satisfies both an environmental requirement and a constraint, an environment satisfying the environmental requirement as much as possible and satisfying the constraint.
A representative example of the present invention disclosed in this specification is as follows: a computer system for searching for a candidate for an environment in which an object is to be deployed, the computer system comprises at least one computer including a processor, a storage device coupled to the processor, and a network interface coupled to the processor. The computer system is coupled to a plurality of infrastructure systems each of which provides the environment. The at least one computer is configured to: receive a search request including an environmental requirement being a condition required for the environment in which the object is to be deployed and a constraint being a condition to be complied with in deployment of the object; execute first environment search processing for searching for the environment that satisfies the constraint and the environmental requirement; change the environmental requirement in a case where the environment in which the object is deployable does not exist as a result of the first environment search processing; and execute second environment search processing for searching for the environment that satisfies the constraint and the changed environmental requirement.
According to the at least one embodiment of this invention, when there is no cloud system that satisfies both the environmental requirement and the constraint, the computer system can present, as an environment candidate, a cloud system satisfying the environmental requirement as much as possible and satisfying the constraint. Other problems, configurations, and effects than those described above will become apparent in the descriptions of embodiments below.
The present invention can be appreciated by the description which follows in conjunction with the following figures, wherein:
Now, description is given of at least one embodiment of this invention referring to the drawings. It should be noted that this invention is not to be construed by limiting the invention to the content described in the following at least one embodiment. A person skilled in the art would easily recognize that specific configurations described in the following at least one embodiment may be changed within the scope of the concept and the gist of this invention.
In configurations of the at least one embodiment of this invention described below, the same or similar components or functions are denoted by the same reference numerals, and a redundant description thereof is omitted here.
Notations of, for example, “first”, “second”, and “third” herein are assigned to distinguish between components, and do not necessarily limit the number or order of those components.
The position, size, shape, range, and others of each component illustrated in, for example, the drawings may not represent the actual position, size, shape, range, and others in order to facilitate understanding of this invention. Thus, this invention is not limited to the position, size, shape, range, and others disclosed in, for example, the drawings.
The system according to the first embodiment includes an environment candidate search system 100, an application catalog management system 101, a deployment control system 102, and a plurality of infrastructure systems (cloud systems) 103. The environment candidate search system 100, the application catalog management system 101, the deployment control system 102, and the plurality of infrastructure systems 103 are coupled to each other through a network 104 such as a local area network (LAN) and a wide area network (WAN). A coupling method of the network 104 may be any one of a wired manner or a wireless manner.
The system may include a terminal for inputting various kinds of information and receiving output of various kinds of information.
The infrastructure system 103 is a computer system that provides an environment for executing applications 110. The environment provided by the infrastructure system 103 includes the applications 110 and databases (hereinafter referred to as “DBs”) 120.
The application catalog management system 101 manages an application catalog being information regarding the applications 110.
The environment candidate search system 100 searches environments (infrastructure systems 103) in which objects, such as the applications 110 and data, are to be placed based on an environmental requirement and a constraint. In the first embodiment, the application 110 is described as an object to be placed. The data may also be set as an object.
The environmental requirement represents a condition required for an environment in which an object is to be deployed, which includes software and a protocol that are implemented in the environment and a resource amount required for deploying the object. The constraint represents a condition to be complied with in deployment of the object, which includes a placement location of the object and a user of the object.
The deployment control system 102 deploys an object in an environment based on information on environment candidates retrieved by the environment candidate search system 100 and selected by a user.
The environment candidate search system 100, the application catalog management system 101, the deployment control system 102, and the infrastructure system 103 are each formed of such a computer 200 as illustrated in, for example,
The computer 200 includes a processor 201, a main storage device 202, a secondary storage device 203, a network interface 204, an input device 205, and an output device 206. The respective hardware components are coupled to each other through a bus 207. The input device 205 and the output device 206 may be excluded from the computer 200.
The processor 201 executes programs stored in the main storage device 202. The processor 201 functions as a functional module (module) by executing processing in accordance with the programs. In the following description, when processing is described with the functional module as the subject of the sentence, this indicates that the processor 201 executes a program for implementing the functional module.
The main storage device 202 is a memory, for example, and stores the programs executed by the processor 201 and the information used by the programs. The main storage device 202 also includes a work area to be temporarily used by the program.
The secondary storage device 203 is, for example, a hard disk drive (HDD) or a solid state drive (SSD), and stores a large amount of data permanently. The programs and information stored in the main storage device 202 may be stored in the secondary storage device 203. In this case, the processor 201 reads out programs and information from the secondary storage device 203, and loads the read programs and information onto the main storage device 202.
The network interface 204 communicates to and from other devices via the network. The input device 205 is a keyboard, a mouse, a touch panel, or the like. The output device 206 is a display or the like.
The environment candidate search system 100 includes an object information management module 301, an infrastructure system information management module 302, an environment candidate search module 303, an environment evaluation module 304, an environmental requirement changing module 305, an environment candidate presentation module 306, and an application monitoring module 307. The environment candidate search system 100 also holds an application DB 311, an infrastructure system DB 312, an operation history DB 313, a setting item DB 314, a setting item change pattern DB 315, and a change risk DB 316.
The application DB 311 is a database for managing information regarding the applications 110. The infrastructure system DB 312 is a database for managing information regarding the infrastructure systems 103. The operation history DB 313 is a database for managing operation histories of the applications 110 that have been deployed.
The setting item DB 314 is a database for managing setting items that define an environmental requirement. The setting item change pattern DB 315 is a database for managing change patterns for setting items (setting item change patterns). The change risk DB 316 is a database for managing information regarding risks involved in changing the setting item.
The object information management module 301 collects pieces of information on objects, and registers the pieces of information in the application DB 311. The infrastructure system information management module 302 collects pieces of information on the infrastructure systems 103, and registers the pieces of information in the infrastructure system DB 312. The application monitoring module 307 monitors deployment and termination of the application 110, and registers results of the monitoring in the operation history DB 313.
The environment candidate search module 303 searches for an environment (environment candidate) that satisfies the environmental requirement and the constraint. The environment evaluation module 304 evaluates placement of an object in an environment. For example, the environment evaluation module 304 evaluates a processing time period, a cost, and the like involved in the placement of the object in the environment. The environmental requirement changing module 305 changes the environmental requirement based on the setting item change pattern. The environment candidate presentation module 306 presents the retrieved environment candidates.
In regard to the respective functional modules included in the environment candidate search system 100, a plurality of functional modules may be integrated into one functional module, or one functional module may be divided into a plurality of functional modules.
The application DB 311 stores three tables, namely, a table 400 shown in
The table 400 of
The table 400 stores an entry including an application ID 401, an application name 402, a repository 403, a version 404, an owner 405, and a fee 406. There is one entry for each application 110. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The application ID 401 is a field for storing an ID of the application 110. The ID of the application 110 stored in the application ID 401 is handled as identification information on the entry. The application name 402 is a field for storing a name of the application 110. The repository 403 is a field for storing information on a repository in which an entity of the application 110 is stored. For example, a link thereto is stored in the repository 403. The version 404 is a field for storing a version of the application 110. The owner 405 is a field for storing an owner of the application 110. The fee 406 is a field for storing a usage fee of the application 110.
The table 410 of
The table 410 stores an entry including an application ID 411, an infrastructure software 412, a CPU 413, a memory 414, and a storage 415. There is one entry for each application 110. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The application ID 411 is the same field as the application ID 401. The ID of the application 110 stored in the application ID 411 is handled as identification information on the entry. The infrastructure software 412 is a field for storing information on software to be implemented by the environment for deployment. The CPU 413, the memory 414, and the storage 415 are a group of fields for storing resource amounts required for deploying the application 110.
The table 420 of
The table 420 stores an entry including an application ID 421, a user 422, and a place 423. There is one entry for each application 110. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The application ID 421 is the same field as the application ID 401. The ID of the application 110 stored in the application ID 421 is handled as identification information on the entry. The user 422 is a field for storing information on a user who can use the application 110. The place 423 is a field for storing a place such as a country or region in which there is an environment in which the application 110 can be placed.
The infrastructure system DB 312 stores a table 500. The table 500 stores an entry including an environment ID 501, an environment name 502, a cluster name 503, an infrastructure software 504, resources 505, and a user 506. There is one entry for each environment. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The environment ID 501 is a field for storing an ID of an environment. The ID of the environment stored in the environment ID 501 is handled as identification information on the entry. The environment name 502 is a field for storing a name of the environment. The cluster name 503 is a field for storing a name of a cluster that forms the environment. In the first embodiment, one or more clusters are formed in the infrastructure system 103, and one cluster is used to implement one environment.
The infrastructure software 504 is a field for storing information on software implemented in the environment. The resources 505 are a group of fields for managing resources of the environment. The resources 505 include fields for storing a total number of CPUs, the number of available CPUs, a total amount of memory, the amount of available memory, and the like. The user 506 is a field for storing information on a user who can use the environment.
The operation history DB 313 stores a table 600. The table 600 stores an entry including an object ID 601, an environment ID 602, a catalog name 603, an application ID 604, a user 605, resources 606, a start time 607, an end time 608, a schedule 609, and migration 610. There is one entry for each object. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The object ID 601 is a field for storing an ID of a deployed object. The ID of the object stored in the object ID 601 is handled as identification information on the entry. A plurality of the same applications 110 may be deployed in an environment, and hence the deployed application 110 is identified through use of the object ID.
The environment ID 602 is the same field as the environment ID 501. The catalog name 603 is a field for storing a name of the table 400 that manages the information on the application 110 corresponding to the object. The application ID 604 is a field for storing the ID of the application 110.
The user 605 is a field for storing information regarding a user who uses the object. The resources 606 are a group of fields for storing resource amounts allocated in accordance with the deployment of the object. The resources 606 include a group of fields for storing the number of CPUs, a memory capacity, a storage capacity, and the like.
The start time 607 is a field for storing a time at which the object was deployed in the environment. The end time 608 is a field for storing a time at which the object was deleted from the environment.
The schedule 609 is a field for storing a usage period of the application 110. The migration 610 is a field for storing whether or not an object can be migrated.
The setting item DB 314 stores a table 700. The table 700 stores an entry including a setting item ID 701, an object ID 702, and a setting item 703. There is one entry for each set of the application 110 and the setting item. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The setting item ID 701 is a field for storing an ID handled as identification information on the entry. The object ID 702 is a field for storing identification information on an object to be deployed. The setting item 703 is a field for storing a value of the setting item that defines the environmental requirement.
The setting item change pattern DB 315 stores a table 800. The table 800 stores an entry including a pattern ID 801, an item type 802, a setting item (before change) 803, a setting item (after change) 804, a count 805, and an approver 806. There is one entry for each setting item change pattern. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The pattern ID 801 is a field for storing an ID of a setting item change pattern. The ID stored in the pattern ID 801 is handled as identification information on the entry. The item type 802 is a field for storing a type of setting item. The setting item (before change) 803 is a field for storing a value of the setting item before a change. The setting item (after change) 804 is a field for storing a value of the setting item after the change. The count 805 is a field for storing the number of times that the setting item change pattern has been used. The approver 806 is a field for storing an approver from whom approval is required for applying the setting item change pattern. The approver 806 being blank indicates that no approval is required.
The setting item change pattern is set through use of, for example, such a screen 900 as shown in
The input field 901 is a field for inputting an item type. The input field 902 is a field for inputting the value of the setting item before the change. The input field 903 is a field for inputting the value of the setting item after the change.
The operation button 904 is an operation button for registering, in the setting item change pattern DB 315, an entry including the values input in the input fields 901, 902, and 903. The operation button 905 is an operation button for canceling the registration of the entry in the setting item change pattern DB 315.
The display field 906 is a field for displaying entries registered in the setting item change pattern DB 315. The display field 906 may display all entries registered in the setting item change pattern DB 315, or may display only entries registered by the user.
The change risk DB 316 stores two tables, namely, a table 1000 shown in
The table 1000 of
The risk ID 1001 is a field for storing an ID handled as identification information on the entry. The item type 1002 is a field for storing the type of setting item. The risk value 1003 is a field for storing the risk value indicating the magnitude of the risk of a change in the setting item classified under the item type 1002.
The table 1010 of
The risk factor ID 1011 is a field for storing an ID handled as identification information on the entry. The influence range 1012 is a field for storing a range of an influence caused by the change corresponding to the setting item change pattern. The risk factor 1013 is a field for storing the risk factor.
The environment candidate search system 100 monitors deployment and termination of the application 110, and when any one of the deployment or termination of the application 110 is detected, executes processing described below.
As a method of monitoring the deployment of the application 110, a method of receiving a notification of the deployment from the deployment control system 102 is conceivable. The notification includes the ID of an object, the name of a catalog, and the ID of the application 110. Meanwhile, as a method of monitoring the termination of the application 110, a method of receiving a notification of the termination from the infrastructure system 103 is conceivable. The notification includes the ID of an object. This invention is not limited by the method of monitoring the deployment and termination of the application 110.
In a case where the application monitoring module 307 receives a notification from any one of the deployment control system 102 or the infrastructure system 103 (Step S101), the application monitoring module 307 determines whether or not the notification is a notification regarding the deployment of the application 110 (Step S102).
In a case where the received notification is a notification regarding the deployment of the application 110 (YES in Step S102), the application monitoring module 307 obtains information regarding the deployed application 110 (Step S103). For example, the application monitoring module 307 obtains the information regarding the application 110 from an environment in which this application 110 has been deployed.
The application monitoring module 307 updates the operation history DB 313 based on the information regarding the deployed application 110 (Step S104).
Specifically, the application monitoring module 307 adds an entry to the operation history DB 313, and sets an ID in the object ID 601 of the added entry. The application monitoring module 307 sets values in the environment ID 602, the catalog name 603, the application ID 604, the user 605, the resources 606, the schedule 609, and the migration 610 of the added entry based on the information regarding the deployed application 110. The application monitoring module 307 also sets the current time in the start time 607 of the added entry. The start time 607 may be set to a time at which the deployment control system 102 deployed the application 110.
The application monitoring module 307 updates the setting item DB 314 based on the information regarding the deployed application 110 (Step S105), and ends the application information update processing.
Specifically, the application monitoring module 307 extracts the environmental requirement from the information regarding the deployed application 110. The application monitoring module 307 adds an entry to the setting item DB 314 for each setting item of the extracted environmental requirement.
In a case where it is determined in Step S102 that the received notification is a notification regarding the termination of the application 110 (NO in Step S102), the application monitoring module 307 obtains information regarding the terminated application 110 (Step S106). For example, the application monitoring module 307 obtains the information regarding the application 110 from an environment in which this application 110 has been deployed.
The application monitoring module 307 updates the operation history DB 313 based on the information regarding the deployed application 110 (Step S107).
Specifically, the application monitoring module 307 refers to the operation history DB 313 to retrieve an entry in which the ID of the object included in the notification is set in the object ID 601. The application monitoring module 307 sets the current time in the end time 608 of the retrieved entry. The end time 608 may be set to a time at which the application 110 was stopped in the environment.
The application monitoring module 307 updates the infrastructure system DB 312 (Step S108), and ends the application information update processing.
Specifically, the application monitoring module 307 obtains the information regarding the resources from the environment in which the terminated application 110 was deployed. The application monitoring module 307 refers to the infrastructure system DB 312 to update the resources 505 of the entry corresponding to the environment.
The environment candidate search system 100 presents a screen 1300 to a user who wishes to deploy the application 110. The screen 1300 includes input fields 1301, 1302, 1303, 1304, 1305, 1306, 1307, and 1308, radio buttons 1309 and 1310, and an operation button 1311.
The input field 1301 and the input field 1302 are fields for inputting values for designating the application 110 to be deployed. A field for inputting the version may be provided. The input field 1303 is a field for inputting a key performance indicator (KPI). For example, “cost,” “performance,” and “power consumption” are displayed in the input field 1303 in a pull-down format. The input field 1304 is a field for inputting a time period required for deployment requested by the user. The input field 1305 is a field for inputting a time limit for the deployment of the application 110.
The input field 1306 and the input field 1307 are fields for inputting dates and times for designating the usage period of the application 110. The input field 1308 is a field for inputting whether or not the application 110 can be migrated.
The radio button 1309 and the radio button 1310 are radio buttons for controlling whether or not to execute an additional search when there is no environment that satisfies the environmental requirement and constraint. The radio button 1309 is operated to permit the execution of an additional search, and the radio button 1310 is operated to not permit the execution of an additional search.
In the first embodiment, the environment candidate search processing to be performed when the execution of an additional search is permitted is described.
The operation button 1311 is an operation button for instructing to execute the environment candidate search processing. In a case where the user presses the operation button 1311, a search request including various values input on the screen 1300 is transmitted to the environment candidate search system 100.
The environment candidate search module 303 refers to the tables 400, 410, and 420 based on the information on the application 110 included in an execution request to obtain the environmental requirement and the constraint (Step S201). The execution request may include the information regarding the environmental requirement and the constraint.
The environment candidate search module 303 obtains pieces of information on the respective infrastructure systems 103 from the infrastructure system DB 312 (Step S202).
The environment candidate search module 303 executes, based on the pieces of information on the infrastructure systems 103, first environment search processing for searching for an environment that satisfies the constraint and the environmental requirement (Step S203). Details of the first environment search processing are described with reference to
The environment candidate search module 303 determines based on a result of the first environment search processing whether or not there is an environment (environment candidate) in which the application 110 can be placed (Step S204).
In a case where there is an environment candidate (YES in Step S204), the environment candidate search module 303 presents the environment candidate (Step S208), and ends the environment candidate search processing.
In a case where there is no environment candidate (NO in Step S204), the environment candidate search module 303 instructs the environmental requirement changing module 305 to execute environmental requirement changing processing (Step S205). In the environmental requirement changing processing, the environmental requirement is changed. Details of the environmental requirement changing processing are described with reference to
The environment candidate search module 303 executes, based on the pieces of information on the infrastructure systems 103, second environment search processing for searching for an environment that satisfies the constraint and the changed environmental requirement (Step S206). Details of the second environment search processing are described with reference to
In a case where environment candidates are retrieved by the second environment search processing, such an environment candidate list 1400 as shown in
The environment candidate list 1400 stores an entry including a candidate ID 1401, an application ID 1402, an environment ID 1403, a KPI achievement degree 1404, a cost 1405, a setting item change detail 1406, and a total risk value 1407. There is one entry for each environment candidate. The fields included in the entry are not limited to those described above. Any one of the fields described above may be excluded, or another field may be included.
The candidate ID 1401 is a field for storing an ID of an entry. The application ID 1402 is a field for storing the ID of the application 110 to be deployed. The environment ID 1403 is a field for storing an ID of an environment candidate.
The KPI achievement degree 1404 is a field for storing a degree to which the KPI has been achieved. In the first embodiment, a ratio of an actual deployment time period to the requested deployment time period is used as the degree of KPI achievement. The cost 1405 is a field for storing a cost required for usage of the deployed application 110.
The setting item change detail 1406 is a field for storing details of the changed setting item. The total risk value 1407 is a field for storing a risk value involved in changing the setting item.
The environment candidate search module 303 determines based on a result of the second environment search processing whether or not there is an environment (environment candidate) in which the application 110 can be placed (Step S207).
In a case where there is an environment candidate (YES in Step S207), the environment candidate search module 303 presents the environment candidate (Step S208), and ends the environment candidate search processing.
For example, the environment candidate search module 303 causes the environment candidate presentation module 306 to present such a screen 1500 as illustrated in
The list 1501 is a list of retrieved environment candidates. The list 1501 is displayed based on the environment candidate list 1400. The user refers to the list 1501 to press a radio button for any one of the environment candidates. The operation button 1502 is an operation button for instructing to deploy the application 110 in the selected environment candidate. In a case where the operation button 1502 is pressed, the environment candidate search module 303 transmits a deployment request including information on the selected environment candidate and application 110 to the deployment control system 102.
In a case where there is no environment candidate (NO in Step S207), the environment candidate search module 303 notifies the user of an error (Step S209), and ends the environment candidate search processing. For example, the user is notified that there is no environment candidate.
In a case where the execution of an additional search is not permitted and the determination results in “NO” in Step S204, the environment candidate search module 303 advances the process to Step S209.
The environment candidate search module 303 refers to the infrastructure system DB 312 to identify environments in which infrastructure software required for the application 110 is installed and resource amounts required for the application 110 can be provided (Step S301).
The environment candidate search module 303 starts loop processing for the identified environments (Step S302). The environment candidate search module 303 selects one environment from among the identified environments.
The environment candidate search module 303 determines whether or not the selected environment satisfies the environmental requirement and constraint (Step S303).
In a case where the selected environment does not satisfy the environmental requirement and the constraint (NO in Step S303), the environment candidate search module 303 advances the process to Step S305.
In a case where the selected environment satisfies the environmental requirement and the constraint (YES in Step S303), the environment candidate search module 303 registers the selected environment in the environment candidate list 1400 (Step S304), and then advances the process to Step S305. At this time, the environment candidate search module 303 instructs the environment evaluation module 304 to calculate the degree of KPI achievement and the cost. The setting item change detail 1406 and the total risk value 1407 of an entry added to the environment candidate list 1400 are blank.
In Step S305, the environment candidate search module 303 determines whether or not the processing has been completed for all the identified environments (Step S305).
In a case where the processing has not been completed for all the identified environments, the environment candidate search module 303 returns the process to Step S302.
In a case where the processing has been completed for all the identified environments, the environment candidate search module 303 ends the first environment search processing. The environment candidate search module 303 may, for example, sort or curtail the retrieved environment candidates based on the KPI designated by the user.
The environmental requirement changing module 305 extracts setting items relating to the application 110 to be deployed based on the environmental requirement (Step S401). At this time, the environmental requirement changing module 305 identifies the types of setting items based on the extracted setting items.
The environmental requirement changing module 305 starts loop processing for the types of setting items (Step S402). The environmental requirement changing module 305 selects one type of setting item from among the identified type of setting item.
The environmental requirement changing module 305 refers to the setting item change pattern DB 315 to obtain a setting item change pattern corresponding to the selected type of setting item (Step S403). Specifically, the environmental requirement changing module 305 obtains an entry in which the selected type of setting item is stored in the item type 802 and the same value as the value included in the current environment item is stored in the setting item (before change) 803.
The environmental requirement changing module 305 determines whether or not the processing has been completed for all the identified types of setting items (Step S404).
In a case where the processing has not been completed for all the identified types of setting items, the environmental requirement changing module 305 returns the process to Step S402.
In a case where the processing has been completed for all the identified types of setting items, the environmental requirement changing module 305 uses the obtained setting item change patterns to change the environmental requirement (Step S405), and then ends the environmental requirement changing processing. The environmental requirement changing module 305 outputs a completion notification including the changed environmental requirement to the environment candidate search module 303.
Specifically, the environmental requirement changing module 305 changes at least one setting item included in the environmental requirement based on the setting item change pattern. It is assumed herein that a plurality of changed environmental requirements are generated. The environmental requirement changing module 305 associates the ID of the used setting item change pattern with each of the changed environmental requirements.
It is assumed that the number of setting items to be changed and the number of environmental requirements to be generated are set in advance. In addition, priorities may be set for the setting items to be changed.
The environment candidate search module 303 starts loop processing for the environmental requirements changed by the environmental requirement changing module 305 (Step S501). The environment candidate search module 303 selects one environmental requirement from among the plurality of changed environmental requirements.
The environment candidate search module 303 refers to the infrastructure system DB 312 to identify an environment in which infrastructure software required for the application 110 is installed and resource amounts required for the application 110 can be provided (Step S502). The processing step of Step S502 is the same as the processing step of Step S301.
The environment candidate search module 303 starts loop processing for the identified environments (Step S503). The environment candidate search module 303 selects one environment from among the identified environments.
The environment candidate search module 303 determines whether or not the selected environment satisfies the environmental requirement and constraint (Step S504).
In a case where the selected environment does not satisfy the environmental requirement and the constraint (NO in Step S504), the environment candidate search module 303 advances the process to Step S506.
In a case where the selected environment satisfies the environmental requirement and the constraint (YES in Step S504), the environment candidate search module 303 registers the selected environment in the environment candidate list 1400 (Step S505), and then advances the process to Step S506.
At this time, the environment candidate search module 303 sets details of the changed environmental requirement in the setting item change detail 1406 of the entry, and sets a total risk value in the total risk value 1407.
The total risk value is calculated in the following manner. The environment candidate search module 303 identifies the changed setting item and an influence range caused by the change in the setting item based on the details of the changed environmental requirement. The environment candidate search module 303 obtains, from the table 1000, the value of the risk value 1003 of the entry corresponding to the type of the changed setting item. The environment candidate search module 303 also obtains, from the table 1010, the value of the risk factor 1013 of the entry corresponding to the identified influence range. The environment candidate search module 303 calculates, for each changed setting item, a value obtained by multiplying the risk value by the risk factor. The environment candidate search module 303 calculates, as the total risk value, a total sum of the values calculated for each of the changed setting items.
In Step S506, the environment candidate search module 303 determines whether or not the processing has been completed for all the identified environments (Step S506).
In a case where the processing has not been completed for all the identified environments, the environment candidate search module 303 returns the process to Step S503.
In a case where the processing has been completed for all the identified environments, the environment candidate search module 303 determines whether or not the processing has been completed for all the changed environmental requirements (Step S507).
In a case where the processing has not been completed for all the changed environmental requirements, the environment candidate search module 303 returns the process to Step S501.
In a case where the processing has been completed for all the changed environmental requirements, the environment candidate search module 303 starts loop processing for the environment candidates (Step S508). The environment candidate search module 303 selects one entry from the environment candidate list 1400.
The environment candidate search module 303 determines whether or not approval involved in changing the setting item is required (Step S509).
The environment candidate search module 303 determines whether or not a value is set in the approver 806 for the setting item change pattern associated with the selected entry. In a case where a value is set in the approver 806 of the setting item change pattern, the environment candidate search module 303 determines that approval involved in changing the setting item is required.
In a case where the approval involved in changing the setting item is not required (NO in Step S509), the environment candidate search module 303 advances the process to Step S513.
In a case where the approval involved in changing the setting item is required (YES in Step S509), the environment candidate search module 303 issues an approval request to the user (Step S510). The environment candidate search module 303 maintains a waiting state until input by the user is obtained.
In a case where input by the user is obtained, the environment candidate search module 303 determines whether or not the approval has been granted (Step S511).
In a case where the approval has been granted (YES in Step S511), the environment candidate search module 303 advances the process to Step S513.
In a case where the approval has not been granted (NO in Step S511), the environment candidate search module 303 deletes the selected environment candidate from the environment candidate list 1400 (Step S512), and then advances the process to Step S513.
In Step S513, the environment candidate search module 303 determines whether or not the processing has been completed for all the environment candidates (Step S513).
In a case where the processing has not been completed for all the environment candidates, the environment candidate search module 303 returns the process to Step S508.
In a case where the processing has been completed for all the environment candidates, the environment candidate search module 303 ends the second environment search processing.
The first embodiment has been described by taking the application 110 as an example of the object to be placed, but this invention is not limited by the object to be placed.
In a case where the application 110 is formed of a plurality of tasks, the environment candidate search system 100 searches an environment for each of objects for implementing a task, and registers a combination of environments for the respective objects in the environment candidate list 1400.
As described above, according to the first embodiment, when there is no environment candidate that satisfies the constraint and the environmental requirement, the environment candidate search system 100 changes the environmental requirement within a range in which the application 110 operates. The environment candidate search system 100 can also retrieve and present environment candidates based on the constraint and the changed environmental requirement.
The details of the changed environmental requirement are presented together with results of retrieving the environment candidates, thereby being capable of improving convenience of the user.
A second embodiment of this invention differs from the first embodiment in partial steps of the environment candidate search processing. The second embodiment is described below with a focus on differences from the first embodiment.
A configuration of a system of the second embodiment is the same as that of the first embodiment. A configuration of the environment candidate search system 100 of the second embodiment is the same as that of the first embodiment.
The processing steps of from Step S601 to Step S606, Step S608, and Step S611 are the same as the processing steps of from Step S201 to Step S206, Step S208, and Step S209, respectively.
In a case where it is determined in Step S607 that there is no environment candidate (NO in Step S607), the environment candidate search module 303 executes third environment search processing (Step S609).
The environment candidate search module 303 determines based on a result of the third environment search processing whether or not there is an environment (environment candidate) in which the application 110 can be placed (Step S610).
In a case where there is an environment candidate (YES in Step S610), the environment candidate search module 303 presents the environment candidate (Step S608), and ends the environment candidate search processing.
In a case where there is no environment candidate (NO in Step S610), the environment candidate search module 303 notifies the user of an error (Step S611), and ends the environment candidate search processing.
The environment candidate search module 303 refers to the infrastructure system DB 312 to identify an environment in which infrastructure software required for the application 110 is installed (Step S701). In this case, the resource amounts are not taken into consideration.
The environment candidate search module 303 starts loop processing for the identified environments (Step S702). The environment candidate search module 303 selects one environment from among the identified environments.
The environment candidate search module 303 refers to the operation history DB 313 to search for an environment to which the application 110 (migratable application 110) operating in the selected environment and being capable of migration is to be migrated (Step S703).
Specifically, the environment candidate search module 303 executes the first environment search processing on the migratable application 110. Thus, it is possible to search for an environment to which the migratable application 110 is to be migrated. The migratable application 110 can be identified based on the migration 610 of the operation history DB 313.
The environment candidate search module 303 determines whether or not there is an environment to which the migratable application 110 is to be migrated (Step S704).
In a case where there is no environment to which the migratable application 110 is to be migrated (NO in Step S704), the environment candidate search module 303 advances the process to Step S707.
In a case where there is an environment to which the migratable application 110 is to be migrated (YES in Step S704), the environment candidate search module 303 determines whether or not the environment from which the migratable application 110 has been migrated satisfies the environmental requirement and the constraint (Step S705).
In a case where the environment from which the migratable application 110 has been migrated does not satisfy the environmental requirement and the constraint (NO in Step S705), the environment candidate search module 303 advances the process to Step S707.
In a case where the environment from which the migratable application 110 has been migrated satisfies the environmental requirement and the constraint (YES in Step S705), the environment candidate search module 303 registers the selected environment in the environment candidate list 1400 (Step S706), and then advances the process to Step S707.
In Step S707, the environment candidate search module 303 determines whether or not the processing has been completed for all the identified environments (Step S707).
In a case where the processing has not been completed for all the identified environments, the environment candidate search module 303 returns the process to Step S702.
In a case where the processing has been completed for all the identified environments, the environment candidate search module 303 ends the third environment search processing.
According to the second embodiment, the number of environments that are ready for deployment can be increased through migration of the application 110 that has already been deployed.
A third embodiment of this invention differs from the first embodiment in partial steps of the environment candidate search processing. The third embodiment is described below with a focus on differences from the first embodiment.
A configuration of a system of the third embodiment is the same as that of the first embodiment. A configuration of the environment candidate search system 100 of the third embodiment is the same as that of the first embodiment.
In the third embodiment, the same environment candidate search processing as that in the second embodiment is executed. However, the third embodiment differs from the second embodiment in partial steps of the third environment search processing.
The processing steps of Step S701 and Step S702 in the third embodiment are the same as those in the second embodiment. Further, the processing steps of Step S706 and Step S707 in the third embodiment are the same as those in the second embodiment.
The environment candidate search module 303 refers to the operation history DB 313 to generate predicted operation information on the selected environment (Step S751).
Specifically, the environment candidate search module 303 obtains the usage period and placement time limit of the application 110 to be deployed. The environment candidate search module 303 calculates a time that is earlier than a start time of the usage period by the placement time limit. For this calculation, a value obtained by adding an offset to the placement time limit may be used. The environment candidate search module 303 identifies the application 110 operating in the environment at the calculated time based on the usage periods of the applications 110 in the selected environment, and also calculates a free resource amount of the environment. The environment candidate search module 303 outputs results of the above-mentioned processing as the predicted operation information.
The environment candidate search module 303 determines based on the predicted operation information whether or not the environment is to satisfy the environmental requirement and the constraint after a lapse of a predetermined time period from the current time (Step S752).
In a case where the environment is not to satisfy the environmental requirement and the constraint after a lapse of a predetermined time period from the current time (NO in Step S752), the environment candidate search module 303 advances the process to Step S707. In a case where the environment is to satisfy the environmental requirement and the constraint after a lapse of a predetermined time period from the current time (YES in Step S752), the environment candidate search module 303 advances the process to Step S706.
According to the third embodiment, even when there is no environment candidate at the current time point, it is possible to present an environment candidate that becomes ready for deployment before the usage start of the application 110.
The present invention is not limited to the above embodiment and includes various modification examples. In addition, for example, the configurations of the above embodiment are described in detail so as to describe the present invention comprehensibly. The present invention is not necessarily limited to the embodiment that is provided with all of the configurations described. In addition, a part of each configuration of the embodiment may be removed, substituted, or added to other configurations.
A part or the entirety of each of the above configurations, functions, processing units, processing means, and the like may be realized by hardware, such as by designing integrated circuits therefor. In addition, the present invention can be realized by program codes of software that realizes the functions of the embodiment. In this case, a storage medium on which the program codes are recorded is provided to a computer, and a CPU that the computer is provided with reads the program codes stored on the storage medium. In this case, the program codes read from the storage medium realize the functions of the above embodiment, and the program codes and the storage medium storing the program codes constitute the present invention. Examples of such a storage medium used for supplying program codes include a flexible disk, a CD-ROM, a DVD-ROM, a hard disk, a solid state drive (SSD), an optical disc, a magneto-optical disc, a CD-R, a magnetic tape, a non-volatile memory card, and a ROM.
The program codes that realize the functions written in the present embodiment can be implemented by a wide range of programming and scripting languages such as assembler, C/C++, Perl, shell scripts, PHP, Python and Java.
It may also be possible that the program codes of the software that realizes the functions of the embodiment are stored on storing means such as a hard disk or a memory of the computer or on a storage medium such as a CD-RW or a CD-R by distributing the program codes through a network and that the CPU that the computer is provided with reads and executes the program codes stored on the storing means or on the storage medium.
In the above embodiment, only control lines and information lines that are considered as necessary for description are illustrated, and all the control lines and information lines of a product are not necessarily illustrated. All of the configurations of the embodiment may be connected to each other.
Number | Date | Country | Kind |
---|---|---|---|
2022-103487 | Jun 2022 | JP | national |
The present application claims priority from Japanese patent application JP 2022-103487 filed on Jun. 28, 2022, the content of which is hereby incorporated by reference into this application.