Deployment methods, programs, server equipment, and information processing systems
Patent Information
- Application Number
- JP2022169380
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-10-21
- Publication Date
- 2026-10-01
- Estimated Expiration
- 2042-10-21
Smart Images

Figure 0007927546000001 
Figure 0007927546000002 
Figure 0007927546000003
Abstract
Description
[[Technical Field]]
[0001] Embodiments of the present invention relate to a deployment method, a program, a server device and an information processing system. [[Background Art]]
[0002] Computer systems such as cloud and on-premises systems are constructed by configuring software installed on hardware. In recent years, it has become common practice to construct a computer system with an arbitrary configuration using software or a console, without performing conventional physical construction and configuration work. [[Prior Art Documents]] [[Patent Documents]]
[0003] [[Patent Document 1]] International Publication No. 2020 / 188852 [[Patent Document 2]] Japanese Patent No. 6673355 [[Summary of the Invention]] [[Problem to be Solved by the Invention]]
[0004] However, with conventional technology, it was difficult to construct a computer system with an arbitrary configuration at an arbitrary location unless the person has knowledge equivalent to that of a program code creator. [[Means for Solving the Problem]]
[0005] The deployment method of the embodiment includes the steps of: a server device storing a recipe tree in which components that realize a predetermined function and recipes that set up a service configuration are arranged in a tree structure; the server device receiving an operation input to edit the recipe tree; the server device receiving a service deployment instruction based on the edited recipe tree; the server device obtaining the recipes included in the edited recipe tree and a recipe execution container that executes the recipes included in the edited recipe tree from a software configuration management system; the server device starting a container execution environment that executes the recipe execution container; and the server device constructing a computer system that realizes the service on a target system by executing the recipe execution container in the container execution environment. [Brief explanation of the drawing]
[0006] [Figure 1] A diagram showing an example of the overall configuration of an information processing system according to an embodiment. [Figure 2] A diagram showing an example of display information indicating the configuration information of an embodiment. [Figure 3] A diagram showing an example of the service configuration of the embodiment. [Figure 4] A diagram showing an example of the recipe configuration of the embodiment. [Figure 5A] A diagram illustrating an example of a deployment method based on the information in the recipe card of the embodiment. [Figure 5B] A diagram showing an example of the schema (DB storage method) of the BoM database in the embodiment. [Figure 6] A diagram illustrating an example of a service update method for an embodiment. [Figure 7] A diagram illustrating the inheritance of parameters in the embodiment and the mechanism for passing values obtained from recipe execution as parameters to the next stage. [Figure 8] A flowchart illustrating an example of how to deploy an embodiment. [Figure 9] A diagram showing an example of the overall configuration of an information processing system based on a modified embodiment. [Figure 10] A diagram showing an example of the hardware configuration of the server device in the embodiment. [Modes for carrying out the invention]
[0007] The deployment method, program, server equipment, and information processing system embodiments will be described in detail below with reference to the attached drawings.
[0008] In the cloud, computing systems that provide services on the cloud are configured as IaaS (Infrastructure as a Service) and PaaS (Platform as a Service), etc. Specifically, the cloud provider prepares the underlying computing services, and the software that runs on those computing services is configured using a dedicated web console and a dedicated CLI (Command Line Interface), etc.
[0009] Traditionally, when system designers configure computing systems on the cloud using consoles and CLIs, the operations and procedures become complex. Therefore, automating a series of operations performed by an operator using programs has been considered, leading to the development of methods for constructing computing systems using program code.
[0010] IaC (Infrastructure as Code) is a general term for methods of building and configuring the above-mentioned computer systems using software program code. System designers create an IaC program for each system they want to build, prepare an environment in which that IaC program can be executed, and then build the target system by executing the IaC program.
[0011] By using IaC program code, similar computer systems can be automatically constructed by reusing that code when building similar computer systems. Furthermore, in the event of a computer system failure or disaster recovery, if an environment capable of executing IaC programs exists, IaC can be used to quickly construct a computer system with the same configuration and restore services.
[0012] While IaC programs enabled the automated construction of computer systems, their use was limited to developers with specialized skills in coding them. Those without the necessary skills and know-how found IaC difficult to utilize. Furthermore, it was necessary to create and prepare an environment capable of executing IaC programs in advance. Depending on the setup environment and the network environment on which the IaC program ran, the IaC program might not function, requiring modification (correction). Additionally, modifying an IaC program required changing not only the program itself, but also its parameters or parameter files.
[0013] Furthermore, when utilizing software, IaaS, and PaaS functions, and creating IaC for each function and combining these components to form a single computer system, the combination of program code and parameters used becomes complex, making it difficult to configure the computer system. Additionally, when reusing program code, it was difficult to do so without detailed design information from the code creator.
[0014] The service factory system of the following embodiment provides a UI for configuring a computer system by diverting components described in IaC to service providers who do not have the knowledge required for creating IaC programs. When a service provider uses a UI (User Interface) to configure a computer system by diverting components described in IaC, the service factory system of the embodiment automatically acquires an IaC program in accordance with configuration information of the computer system. Then, the service factory system of the embodiment automatically configures an execution environment for executing the IaC program as a virtual machine, and configures a computer system that provides a service at an arbitrary location.
[0015] Specifically, the information processing system of the embodiment is provided with a software configuration management system that stores resources (software components) such as software codes, scripts, IaC programs, and container images. The service factory system of the embodiment has a database that stores reference URLs to the resources (link addresses that directly refer to software codes), names of the software codes, and access keys to the software configuration management system. The service factory system of the embodiment configures configuration information of these software components in a tree shape and stores the configuration information in the database. Then, the service factory system of the embodiment acquires software codes from the reference URLs in order according to the tree configuration configured via the UI, prepares an environment suitable for executing the software codes, and executes the software codes, thereby configuring a system at an arbitrary location.
[0016] Example of Overall Configuration FIG. 1 is a diagram illustrating an example of the overall configuration of an information processing system 100 according to the embodiment. The information processing system 100 of the embodiment includes a software configuration management system 10, a service factory system 20, and a target system 30.
[0017] An IaC program (including scripts describing commands for executing configuration procedures, etc.) is referred to as a recipe in the present embodiment. Normally, a developer stores developed code as a recipe in the software configuration management system 10 or the like. In addition, a developer creates containers that allow multiple processes to be collectively executed in a virtual execution environment on a single physical computer system, and registers the containers in a storage called a registry within the software configuration management system 10. This container is an environment that individually has SW (software) including applications, an OS for executing an IaC program, or libraries.
[0018] The service factory system 20 of the embodiment comprises a service BoM (Bills of materials) 21, a service configuration editing means 22, a deployment service 23, a BoM database 24, an API GW (Application Programming Interface Gateway) 25, a container execution environment 26, a recipe execution container 27, a container transfer container 28, and a status storage 29. Among these, the three main functions (services) of the service factory system 20 are the service BoM 21, the service configuration editing means 22, and the deployment service 23.
[0019] The service BoM 21, which is the first main function, manages configuration information for referencing recipes registered in the software configuration management system 10.
[0020] The service configuration editing means 22, which is the second main function, provides a UI for creating and editing system configuration information of a service that a service provider wants to build. For example, the UI is display information displayed via a web browser. An example of the display information will be described later with reference to Figure 2.
[0021] The deployment service 23, which is the third main function, actually deploys (builds) the system edited by the service applicant onto a cloud, any physical computer system, or the like.
[0022] Next, we will explain the functional configuration other than the three main functions mentioned above.
[0023] The BoM database 24 stores a recipe tree in which components and recipes are arranged in a tree structure, and is referenced by the service BoM 21. Details of the BoM database 24 will be described later with reference to Figure 5B.
[0024] API GW25 handles the three main functions (services) mentioned above and communicates with the service provider's web browser.
[0025] The container execution environment 26 is the execution environment (execution platform) that runs individual recipes during deployment (service deployment and construction). Specifically, the recipe execution container 27 and the container transfer container 28 are executed in the container execution environment 26.
[0026] The recipe execution container 27 retrieves a recipe from the software configuration management system 10 and executes the recipe. The recipe execution container 27 is obtained from the software configuration management system 10.
[0027] The container transfer container 28 transfers the container to the target system 30 (deployment destination). The container transfer container 28 is obtained from the software configuration management system 10.
[0028] The state storage 29 stores the state and results when the recipe is executed.
[0029] The target system 30 includes a platform 31 and a container execution environment 32.
[0030] Platform 31 and container execution environment 32 are built on target system 30 by the execution of a recipe by recipe execution container 27.
[0031] Each of the above-described software configuration management system 10, service factory system 20, and target system 30 is implemented by, for example, one or more server devices. An example of the hardware configuration of the server devices will be described later with reference to Figure 10.
[0032] [Example of displayed information] Figure 2 is a diagram showing an example of display information indicating the configuration information of an embodiment. The service configuration editing means 22 provides a web program for displaying the configuration information registered in the service BoM 21 to the service owner's web browser via API GW 25, and displays the display information as shown in Figure 2 on the web browser. At this time, the web browser obtains the configuration information registered in the service BoM 21 via the API.
[0033] In the example shown in Figure 2, the displayed information is divided into three panes (areas), including a service pane 101, a recipe pane 102, and a component pane 103.
[0034] The Service pane 101 is the area for editing the service configuration. The Recipe pane 102 is the area for displaying the recipe tree used as a template. The Component pane 103 is the area for displaying individual components. Each service, recipe, and component is represented as a card and shown in a parent-child relationship.
[0035] Figure 3 shows an example of the service configuration of the embodiment. The example in Figure 3 shows an example of the service configuration in the UI displayed in a web browser.
[0036] In the Service Pane 101, the services to be built are structured in a tree. A card with the service name is created at the top of the tree. By dragging and dropping Recipe 1 (including the entire tree structure below Recipe 1) selected from the Recipe Pane 102 onto the Service Name card, all the tree-like data below Recipe 1 is copied to the area below the Service Name card.
[0037] As shown in Figure 3 (dotted line), when Recipe 1 is copied, the tree in Recipe Pane 102 is copied and linked as is, allowing parameters and configurations to be changed for each service. In other words, the Service Configuration Editing Means 22 accepts operation inputs to configure the service by dragging and dropping the recipe tree used as a template from Recipe Pane 102 to Service Pane 101.
[0038] In the recipe section, you can edit recipes (e.g., add, change, move, and delete them). Furthermore, by dragging and dropping a component (registered container) from the component pane 103 onto the target recipe in the recipe pane 102, the component is added to the target recipe. Note that adding a component to the target recipe only references the component in the component pane 103; no copy of the component is performed. (In other embodiments, component copying may be performed.)
[0039] In the service pane 101, multiple service cards can be created, and by copying and using the same recipe, multiple computer systems with the same configuration can be created. Furthermore, the service configuration editing means 22 accepts operation inputs in the service pane 101 to change the parameters included in the recipe tree used as a template, allowing for customization of computer systems with the same configuration.
[0040] Figure 4 shows an example of a recipe configuration in an embodiment. The example in Figure 4 shows an example of a recipe structured in a parent-child relationship.
[0041] An individual recipe is an IaC program or functional unit, as well as a group of recipes.
[0042] Components A through C are, for example, program components that perform a predetermined function.
[0043] For example, Recipe 2 contains Component A, which is used in Recipe 2. In this case, Component A is represented with one indentation. Recipe 3 is a recipe that groups together its grandchild recipes from Recipe 3-1 to Recipe 3-3. Recipe 3-2 is a recipe that uses two components, Components B and C.
[0044] Data structured in a tree-like manner (tree-structured data) is called a recipe tree. When the deployment service 23 deploys the configuration to the target system 30, it adds recipes in the following order: top-level recipe 1 -> recipe 2 -> recipe 3 -> recipe 3-1 -> recipe 3-2 -> recipe 3-3. Specifically, the recipe execution container 27 stores the state and output values of the recipes executed by the recipe execution container 27 in the state storage 29. The recipe execution container 27 then uses parameters based on the state and output values of the recipes stored in the state storage 29 to sequentially execute the subsequent recipes included in the recipe tree, thereby constructing the computer system. Note that if there are no dependencies between recipes, the parameters of the subsequent recipes do not have to be based on the state and output values of the recipes stored in the state storage 29.
[0045] When the deployment service 23 deletes a deployed computer system, it executes the deletion in the reverse order of deployment: Recipe 3 -> Recipe 3-3 -> Recipe 3-2 -> Recipe 3-1 -> Recipe 2 -> Recipe 1. Specifically, the recipe execution container 27 stores the state and output values of the recipes executed by the recipe execution container 27 in the state storage 29. Then, the recipe execution container 27 uses parameters based on the state and output values of the recipes stored in the state storage 29 to execute the preceding recipes included in the recipe tree in the reverse order of when the computer system was built. Note that if there are no dependencies between recipes, the parameters of the preceding recipe do not have to be based on the state and output values of the recipes stored in the state storage 29.
[0046] The right side of Figure 4 shows an example of a constructed computer system. The relationship between the function of each layer and the recipes is indicated by arrows. Recipe 1 constructs the platform 31 (the base operating system OS and environment, etc.) of the target system 30. Recipe 2, which runs on top of Recipe 1, constitutes middleware a (software that runs the components). Then, Recipe 2 starts component A, which is included in Recipe 2, to run on middleware a (Recipe 2).
[0047] Recipe 3 is a group of logical recipes that represent the entire application. In the example in Figure 4, Recipe 3 itself does not perform any actions (functions), but it sets the parameters necessary when configuring the recipes grouped together within Recipe 3.
[0048] When Recipe 3 is executed, Recipe 3-1, a child recipe of Recipe 3, is executed first. Recipe 3-1 configures the database within the application. Next, Recipe 3-2 configures middleware b (Recipe 3-2) within the application and starts components B and C included in Recipe 3-2 on middleware b (Recipe 3-2). Finally, Recipe 3-3 completes the target system 30 by setting the initial data values for the database.
[0049] When deleting the target system 30, the deployment service 23 executes the above execution order (the order of the recipe tree) in reverse order. Specifically, when deleting the application of recipe 3, the deployment service 23 executes the deletion starting from its child recipe 3-3. The deletion of recipe 3-3 deletes the database data. Next, the deletion of recipe 3-2 stops and deletes components B and C, and then middleware b is deleted. Finally, the deletion of recipe 3-1 deletes the database and the application (recipe 3).
[0050] Next, the deletion of Recipe 2 stops and deletes Component A, and middleware a is deleted. Finally, the deletion of Recipe 1 deletes Platform 31. In this way, the deletion is performed in the reverse order of the execution order during the construction of the computer system, which ensures that the computer system built on Target System 30 is correctly deleted.
[0051] Figure 5A shows an example of a deployment method based on information from a recipe card in an embodiment. The information from the recipe card and the recipe tree are managed by the service BoM21. Each recipe card has information such as ID (identifier), Name, Type, recipeContainerRegistryUrl, sourceRepositoryUrl, and Parameters, and this information is stored in the BoM database 24 (an example of a storage unit).
[0052] Figure 5B shows an example of the schema (DB storage method) of the BoM database 24 in the embodiment. The ID is assigned a unique number to the recipe card. The Name indicates the name of the recipe, etc. The Type indicates the type of the recipe, etc. If the Type is Recipe Group, it indicates that the recipe has multiple child recipes. If the Type is Recipe, it indicates that the recipe has an actual recipe entity.
[0053] The recipeContainerRegistryUrl indicates the location of the registry (the system that stores the containers for the software configuration management system 10) where the container for executing that recipe is stored. In the example in Figure 5A, registry / iac-container:1.0.0 is represented as a combination of the registry name, the container name iac-container, and the version 1.0.0.
[0054] The sourceRepositoryUrl indicates the location of the reference to the recipe (the actual file). The actual recipe is stored in the registry of the software configuration management system 10, and the sourceRepositoryUrl is a URL that describes the location of the registry reference. In the example in Figure 5A, it is https: / / repository.info / common / recipe1.yaml, indicating that the actual recipe for the Recipe 1 card is recipe1.yaml stored under repository.info / common / .
[0055] Parameters are set and held to store the parameters required when running a recipe. In the example in Figure 5A, the Recipe 1 card has a parameter named Key1 with the value xxxxxx set.
[0056] Similarly, in the Recipe 2 card, recipeContainerRegistryUrl indicates that it is not set (N / A), and the recipe (entity) of the Recipe 2 card is recipe2 under repository.info / common / .
[0057] When the deployment service 23 performs a deployment, it starts execution from the top-level recipe. In the example in Figure 5A, the deployment service 23 determines the container to run recipe 1 from the recipeContainerRegistryUrl of recipe 1. At the same time, the deployment service 23 obtains the source of recipe 1 from sourceRepositoryUrl and retrieves recipe 1.
[0058] Recipe 1 defines how to start the recipe execution container 27 (startup definition). The values of the Parameters in Recipe 1 are also set in the startup definition. Since the Type of Recipe 1 is Recipe Group, the deployment service 23 does not take any action in Recipe 1 and proceeds to execute the recipe below it.
[0059] In the example in Figure 5A, since Recipe 2 is a child recipe under Recipe 1, the deployment service 23 also retrieves information about Recipe 2. At this time, the deployment service 23 does not have a value set for recipeContainerRegistryUrl, so it retains the value for Recipe 1. Then, the deployment service 23 extracts the recipe (the actual recipe) for Recipe 2 from the value of sourceRepositoryUrl and adds it to the container startup definition of Recipe 1 so that it can be included in the container. The deployment service 23 also adds the values of the Parameters for Recipe 2 to the startup definition. That is, the Parameters values Key1:xxxxxx and Key2:yyyyy are set in the startup definition as the values for Recipe 2.
[0060] Then, since the Type is Recipe, the deployment service 23 issues a start command CMD:deploy to the container execution environment 26 to start the recipe execution container 27.
[0061] The container execution environment 26 receives a startup command from the deployment service 23 and starts the startup of the recipe execution container 27 according to the startup definition. The container execution environment 26 starts the recipe execution container 27 by retrieving the actual image of the recipe execution container 27 from the registry of the software configuration management system 10.
[0062] The recipe execution container 27 retrieves recipe 2 from the software configuration management system 10 and executes recipe 2 using the parameter values Key1:xxxxxx and Key2:yyyyy. The recipe execution container 27 sends build instructions to the target system 30 (cloud control) in the order described in recipe 2, thereby building the platform 31 according to the contents described in recipe 2.
[0063] The state storage 29 stores the parameter values when Recipe 2 is executed, and the status (state) after platform 31 is built.
[0064] The state storage 29 saves the state of each recipe from the previous deployment, so that when the deployment service 23 performs another deployment, it can load the state of the previous deployment, modify only the parts that have changed, and leave the parts that have not changed untouched (idempotency can be achieved).
[0065] Once the deployment is complete, the recipe execution container 27 will stop running and will be removed from the container execution environment 26.
[0066] When deleting a computer system deployed on target system 30, the deletion is performed in the reverse order of the deployment. In the example in Figure 5A, there is one Recipe1 at the top level, so the deployment service 23 sets recipeContainerRegistryUrl and sourceRepositoryUrl, just as during deployment. Next, the deployment service 23 also sets the contents of recipe2 and issues the container startup command CMD:undeploy.
[0067] When the recipe execution container 27 is started by the deployment service 23, it checks if the state storage storage 29 contains a file that saves the state of recipe 2 from when it was executed during the previous deployment. If the recipe execution container 27 finds a file that saves the state of recipe 2, it loads that file to obtain data indicating the state at the time of deployment. The recipe execution container 27 then extracts the parameter values Key1:xxxxxx and Key2:yyyyy from the data indicating the state at the time of deployment and executes them as parameters for recipe 2.
[0068] When recipe 2 is executed according to the CMD:undeploy instruction, a discard instruction is sent to the target system 30 (cloud control), and platform 31 is deleted. When the execution of recipe 2 is finished, the recipe execution container 27 deletes the file indicating the state of recipe 2 that was stored in the state storage 29.
[0069] Once the undeployment (destruction) is complete, the recipe execution container 27 will stop running and will be removed from the container execution environment 26.
[0070] [Example of update method] Figure 6 shows an example of a service update method according to the embodiment. The example in Figure 6 shows how to update some functions using a recipe when the service has been deployed.
[0071] When the service is initially built, a service card (ID:10) is created in service pane 101. Then, Ver1 recipes (ID:1~ID:5) are dragged and dropped from recipe pane 102, and the Ver1 recipes are placed below the service card. Specifically, the drag and drop copies recipes ID:1~ID:5 from recipe pane 102, new IDs are assigned, and recipes ID:11~ID:15 are created in service pane 101.
[0072] The service with ID:10 in service pane 101 is built when recipes 1 (ID:11) through 3-1 (ID:15) are deployed. Let's assume a case occurs where some of the functionality of this service needs to be updated (updating recipe 1 to Ver2, and simultaneously updating component A to Ver2).
[0073] First, the original recipes (ID:1~ID:5) used in the current service of Recipe Pane 102 are copied together as a tree on Recipe Pane 102. When copied, new IDs are assigned, and the copied recipes are set to ID:21~ID:25. Each recipe has an inheritance ID (HID), which indicates the ID of the original recipe. Therefore, the IDs of the copied recipes (ID:21~ID:25) are newly assigned IDs, and the HIDs are the same as those of the original recipes (ID:1~ID:5).
[0074] When service BoM21 receives a change to the contents of Recipe 1 (ID:21) included in the copied recipe, it registers the change to Recipe 1 (ID:21) as Ver2. Next, component A (ID:3) under Recipe 2 (ID:22) is replaced with component (ID:6) from Ver2. This completes the new Ver2 tree (ID:21~ID:25).
[0075] To update the currently running Ver1 (ID:11~ID:15), the Ver2 recipes (ID:21~ID:25) in recipe pane 102 are dragged and dropped onto the service card ID:10. The service configuration editing means 22 checks each recipe under service pane 101 to see if the HID of the original recipe matches the HID of the new recipe, and replaces any matching recipes with the new Ver2 recipes. This updates the recipes (ID:21~ID:25) while maintaining their configuration. Subsequently, the updated service is built when this service is deployed.
[0076] To summarize the update control operations of the above services, each recipe has an ID that identifies the recipe and an inheritance ID that indicates the ID of the recipe from which it was copied. The service configuration editing means 22 accepts a copy of the recipe tree used as a template in the recipe pane 102 and accepts updates to the copied recipe tree. Service BoM 21 assigns a new ID to the copied recipe tree and sets the inheritance ID of the original recipe to the inheritance ID of the copied recipe tree. Then, the service configuration editing means 22 accepts an operation input to update the service by dragging and dropping the copied recipe tree from the recipe pane 102 to the service pane 101, thereby overwriting the recipe with the same inheritance ID.
[0077] Figure 7 is a diagram illustrating the inheritance of parameters in the embodiment and the mechanism for passing values obtained from recipe execution as parameters to the next stage.
[0078] The recipe execution container 27 retrieves the parameter value (Key1,xxxxxx) from the recipe R0001. Next, when executing the recipe R00002, the recipe execution container 27 executes recipe 2 with the parameter value (Key2,yyyy) from recipe 2 combined with (Key1,xxxxxx). In this way, the parameters of the parent recipe are inherited by the child recipe.
[0079] Furthermore, if the execution result of Recipe 2 is to be used as a parameter for the subsequent Recipe R0004, the state storage 29 will hold the execution result of Recipe 2 (Key4, ddddd) and proceed to the execution of Recipe R0003.
[0080] Since R0003 is a Recipe Group, the recipe execution container 27 simply adds the parameter values of recipe 3 to the stored parameter values. Similarly, recipe 4 of R0004 has the parameter values held by the recipes executed so far and the execution result of recipe 2 (Key4, ddddd). For Key2, the value from recipe 4 (Key2, aaaaa) is overwritten, and recipe 4 is executed with the parameters (Key1, xxxxx), (Key2, aaaaaa), (Key3, zzzzzz) and (Key4, ddddd).
[0081] When the execution result (Key5,ffffff) of recipe 4 is returned to recipe 4, the state storage 29 saves the execution result (Key5,ffffff) as the status of recipe 4.
[0082] In this way, the parameters of each recipe can be inherited by the next recipe. Furthermore, the results of the recipe execution (e.g., URL, address, and resource name) can be retained and used as parameters for the next step.
[0083] [Example of deployment method] Figure 8 is a flowchart showing an example of a deployment method of the embodiment. First, the service configuration editing means 22 accepts an editing operation of configuration information via display information (see Figure 2) that shows the configuration information of the service (step S1). Next, the deployment service 23 accepts a service deployment instruction based on the recipe tree edited in step S1 (step S2).
[0084] Next, the deployment service 23 obtains the containers and recipes necessary to build a service based on the edited recipe tree from the software configuration management system 10 (step S3). For example, the deployment service 23 obtains the recipes included in the recipe tree edited in step S1 and the recipe execution container 27 that executes the recipes included in the recipe tree edited in step S1 from the software configuration management system 10. Also, for example, the deployment service 23 obtains the containers that implement the components included in the recipe tree edited in step S1 and the container transfer container 28 that transfers the containers that implement the components included in the recipe tree edited in step S1 to the target system 30 from the software configuration management system 10.
[0085] Next, the container transfer container 28 transfers the containers that implement the components included in the recipe tree edited in step S1 to the target system 30 (step S4). Then, the deployment service 23 starts the container execution environment 26 that runs the recipe execution container 27 (step S5). (In other embodiments, it may be started in advance.)
[0086] Next, the recipe execution container 27 executes the recipes included in the recipe tree edited in step S1 in the container execution environment 26 (step S6).
[0087] As described above, in the information processing system 100 of this embodiment, the software configuration management system 10 stores components that realize predetermined functions and recipes that set up service configurations. The service BoM 21 stores a recipe tree in which the components and recipes are arranged in a tree structure. The service configuration editing means 22 receives an operation input to edit the recipe tree. When the deployment service 23 receives a service deployment instruction based on the edited recipe tree, it retrieves the recipes included in the edited recipe tree and a recipe execution container 27 that executes the recipes included in the edited recipe tree from the software configuration management system 10, and starts a container execution environment 26 that executes the recipe execution container 27. Then, by executing the recipe execution container 27 in the container execution environment 26, a computer system that realizes the service is built on the target system 30.
[0088] This allows a computer system to be built in any configuration and location (target system 30 in this embodiment) even by someone who does not possess the same level of knowledge as the program code creator. Specifically, even if a service provider does not have knowledge of how to execute recipes (e.g., IaC programs and scripts), how to set parameters, or how to build and configure the environment for executing recipes, they can build any computer system (service system) simply by using the UI in Figure 2 to set the specified parameters and issue a deployment command.
[0089] Furthermore, service providers can reuse the same recipe to build similar services in different locations. For example, when a service provider updates a part of an already built service, they can update the service simply by updating the recipe and issuing a deployment command, without having to go through a complex update procedure.
[0090] For example, if a service provider wants to stop or delete a service, they can do so in bulk from the UI shown in Figure 2.
[0091] The deployment method of this embodiment offers flexibility, allowing deployment not only to specific clouds and environments but also to devices in diverse cloud and on-premises environments, all using the same UI (Figure 2). Therefore, service providers do not need to learn the usage methods and procedures of individual clouds, and service integration (SI) is not required, thus reducing development time.
[0092] According to the deployment method of this embodiment, a system can be arbitrarily built on a target system 30 such as a cloud or on-premises system using software and software definitions, and SaaS (Software as a Service) services, including IoT services, can be provided.
[0093] Traditional deployment methods involved, for example, having a dedicated construction service UI for the target cloud service provider, using that UI to perform operations, configure settings, or create construction procedures, upload containers, and build the system. Alternatively, for example, a user could prepare an environment on their local PC to run IaC programs, write IaC programs from the command line, upload containers, and then run the uploaded containers to build the system. The UIs provided by cloud providers differ in operation, and construction is limited to that specific cloud. The method of running IaC programs on a local PC requires preparing an environment to run IaC programs and executing them from the command line.
[0094] On the other hand, in the deployment method of the above embodiment, the environment for executing IaC programs is held as a container, the execution environment is selected for each type of IaC program, and the IaC program is automatically loaded and executed, thereby enabling the construction of a system with the same operation UI (Figure 2) regardless of the cloud environment.
[0095] (modified version) Next, a modified example of the embodiment will be described. In the description of the modified example, explanations similar to those of the embodiment described above will be omitted, and only the differences from the embodiment described above will be explained.
[0096] [Example of overall structure] Figure 9 shows an example of the overall configuration of an information processing system as a modified embodiment. The example in Figure 9 shows a case where the recipes and containers located within the organization in Figure 1 are located in an internal service factory system 20-1 separated from an external network by a firewall 40. In the example in Figure 9, the external network consists of an external environment 20-2, a target system 30, and resources 50 on the internet.
[0097] The software configuration management system 10 stores recipes and containers, and the service BoM 21 of the internal service factory system 20-1 stores service configuration information. For security reasons, a firewall 40 may be installed to isolate the network and prevent access to the software configuration management system 10 and the internal service factory system 20-1 from external networks.
[0098] In this configuration, outbound resources for specific protocols can be forwarded to the firewall 40, but access from the network outside the organization to the network inside the organization (software configuration management system 10 and internal service factory system 20-1) is not possible. When executing a recipe on the container execution environment 26, depending on the language of the recipe, it may dynamically use resources 50 on the external internet, and if the container execution environment 26 is located within the organization, it cannot obtain resources 50 on the internet.
[0099] To solve this, a container transfer container 28 and a deployment service 23 that retrieves recipes from the software configuration management system 10 are provided on the organization's internal network. The container transfer container 28 transfers containers to the container execution environment 26 (recipe execution container 27) in the external environment 20-2, and the deployment service 23 transfers recipes to the container execution environment 26 (recipe execution container 27) in the external environment 20-2.
[0100] This allows resources 50 on the internet to be dynamically downloaded and recipes executed, even in cases separated by a firewall 40. In other words, it becomes possible to use resources within the organization (recipes and containers) and resources 50 on the internet outside the organization simultaneously.
[0101] According to a modified embodiment, a recipe that simultaneously utilizes internal resources (recipes and containers) and external resources (Internet resources 50) can be executed to build a service on the target system 30.
[0102] Finally, an example of the hardware configuration of the server device in this embodiment will be described.
[0103] [Example hardware configuration] Figure 10 shows an example of the hardware configuration of a server device according to an embodiment. The server device according to the embodiment comprises a control device 201, a main memory 202, an auxiliary storage device 203, a display device 204, an input device 205, and a communication device 206. The control device 201, the main memory 202, the auxiliary storage device 203, the display device 204, the input device 205, and the communication device 206 are connected via a bus 210.
[0104] Note that the server device of the embodiment may not be equipped with some of the above-described components. For example, if the server device can utilize the input and display functions of an external device, the server device may not be equipped with the display device 204 and the input device 205.
[0105] The control device 201 executes the program read from the auxiliary storage device 203 into the main memory 202. The main memory 202 is memory such as ROM (Read Only Memory) and RAM (Random Access Memory). The auxiliary storage device 203 is such as an HDD (Hard Disk Drive) and a memory card.
[0106] The display device 204 is, for example, a liquid crystal display. The input device 205 is an interface for operating the server device. The display device 204 and the input device 205 may be implemented by a touch panel or the like that has both display and input functions. The communication device 206 is an interface for communicating with other devices.
[0107] Programs executed on server devices are provided as computer program products, recorded in installable or executable file formats on computer-readable storage media such as CD-ROMs, memory cards, CD-Rs, and DVDs.
[0108] Alternatively, the program executed on the server device may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Alternatively, the program executed on the server device may be provided via a network such as the Internet without requiring downloads.
[0109] Alternatively, the server device program may be pre-installed and provided in ROM or similar media.
[0110] For example, the program executed by the server device used in the service factory system 20 of the embodiment has a modular configuration that includes functions that can also be realized by the program, as shown in the functional configuration of Figure 1 above. In actual hardware terms, each of these functions is loaded onto the main memory 202 by the control device 201 reading and executing the program from the storage medium. In other words, each of the above-mentioned functional blocks is generated on the main memory 202.
[0111] It should be noted that some or all of the functions shown in Figure 1 above may be implemented using hardware such as an IC (Integrated Circuit) instead of software.
[0112] Furthermore, when multiple processors are used to implement each function, each processor may implement one of the functions, or it may implement two or more of the functions.
[0113] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These novel embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims of the invention and its equivalents. [Explanation of Symbols]
[0114] 10. Software Configuration Management Systems 20 Service Factory System 21 Service BoM 22 Service Configuration Editing Means 23 Deployment Services 24 BoM Database 25 API GW 26 Container Execution Environments 27 Recipe Execution Container 28 Container Transfer Containers 29. Storage for preserving state 30 Target Systems 31 Platforms 32 Container Execution Environments 100 Information Processing Systems 201 Control device 202 Main storage 203 Auxiliary storage device 204 Display device 205 Input device 206 Communication equipment 210 Bus
Claims
1. The server device stores a recipe tree in which components that perform predetermined functions and recipes that configure service settings are arranged in a tree structure. The server device receives an input for editing the recipe tree, The server device receives a service deployment instruction based on the edited recipe tree, The server device obtains the recipes included in the edited recipe tree and the recipe execution container that executes the recipes included in the edited recipe tree from the software configuration management system. The server device starts a container execution environment that runs the recipe execution container, The server device constructs a computer system on the target system that realizes the service by executing the recipe execution container in the container execution environment, The step of receiving input for editing the aforementioned recipe tree is: The server device displays display information including a service pane which is an area for editing the configuration of the service, a recipe pane which is an area for displaying a recipe tree used as a template, and a component pane which is an area for displaying the components. The server device accepts operational inputs that constitute a service by dragging and dropping the recipe tree used as the template from the recipe pane to the service pane. The server device includes the step of receiving an operation input in the service pane to change the parameters included in the recipe tree used as the template, The aforementioned recipe has an ID (identifier) that identifies the recipe and an inheritance ID that indicates the ID of the source from which the recipe was copied. The step of receiving input for editing the aforementioned recipe tree is: The server device receives a copy of the recipe tree used as the template in the recipe pane, and receives updates to the copied recipe tree. The server device assigns a new ID to the copied recipe tree and sets the inheritance ID of the original recipe to the inheritance ID of the copied recipe tree. The server device accepts an input operation to update the service by dragging and dropping the copied recipe tree from the recipe pane to the service pane, thereby overwriting a recipe with the same inheritance ID. Deployment methods including [specific methods].
2. The steps of displaying the aforementioned display information and displaying the aforementioned display information via a web browser. The deployment method according to claim 1.
3. The aforementioned deployment method is The server device obtains from a software configuration management system a container that implements the components included in the edited recipe tree, and a container transfer container that transfers the container that implements the components included in the edited recipe tree to the target system. The server device constructs the computer system on the target system by executing the container transfer container in the container execution environment. The deployment method according to claim 1, further comprising:
4. The step of constructing the aforementioned computer system on the target system is: The recipe execution container stores the state and output values of the recipe executed by the recipe execution container in storage. The recipe execution container executes subsequent recipes included in the edited recipe tree in order, using parameters based on the state and output values of the recipes stored in the storage. The deployment method according to claim 1, further comprising:
5. A server device storing a recipe tree in which components that realize a predetermined function and recipes that set up a service configuration are arranged in a tree structure, The server device receives an input for editing the recipe tree, The server device receives a service deployment instruction based on the edited recipe tree, The server device obtains the recipes included in the edited recipe tree and the recipe execution container that executes the recipes included in the edited recipe tree from the software configuration management system. The server device starts a container execution environment that runs the recipe execution container, The server device constructs a computer system on the target system that realizes the service by executing the recipe execution container in the container execution environment. The server device receives an instruction to undeploy a service based on the edited recipe tree, The server device removes the computer system from the target system by executing the recipe execution container in the container execution environment, The step of removing the aforementioned computer system from the target system is: The recipe execution container stores the state and output values of the recipe executed by the recipe execution container in storage. The recipe execution container executes the preceding recipes included in the edited recipe tree in the reverse order of their execution during the construction of the computer system, using parameters based on the state and output values of the recipes stored in the storage. Deployment methods including [specific methods].
6. On the computer, A step of storing a recipe tree in which components that perform a predetermined function and recipes that configure the service are arranged in a tree structure, The steps include: accepting input for editing the aforementioned recipe tree; A step of receiving a service deployment instruction based on the edited recipe tree, The steps include obtaining the recipes included in the edited recipe tree and the recipe execution container that executes the recipes included in the edited recipe tree from a software configuration management system, The steps include: starting a container execution environment to run the aforementioned recipe execution container, The container execution environment is used to execute the recipe execution container, thereby constructing a computer system on the target system that implements the service. The step of receiving input for editing the aforementioned recipe tree is: A step of displaying display information including a service pane which is an area for editing the configuration of the service, a recipe pane which is an area for displaying a recipe tree used as a template, and a component pane which is an area for displaying the components, The step of accepting operation inputs that constitute a service by dragging and dropping the recipe tree used as the template from the recipe pane to the service pane, The service pane includes the step of accepting an operation input to change the parameters included in the recipe tree used as the template, The aforementioned recipe has an ID (identifier) that identifies the recipe and an inheritance ID that indicates the ID of the source from which the recipe was copied. The step of receiving input for editing the aforementioned recipe tree is: The recipe pane includes the steps of accepting a copy of the recipe tree used as the template and accepting updates to the copied recipe tree, The steps include assigning a new ID to the copied recipe tree and setting the inheritance ID of the original recipe to the inheritance ID of the copied recipe tree, The process involves accepting an input to overwrite a recipe with the same inheritance ID and update the service by dragging and dropping the copied recipe tree from the recipe pane to the service pane, A program that includes this.
7. A computer, A step of storing a recipe tree in which components that perform a predetermined function and recipes that configure the service are arranged in a tree structure, The steps include: accepting input for editing the aforementioned recipe tree; A step of receiving a service deployment instruction based on the edited recipe tree, The steps include obtaining the recipes included in the edited recipe tree and the recipe execution container that executes the recipes included in the edited recipe tree from a software configuration management system, The steps include: starting a container execution environment to run the aforementioned recipe execution container, The steps include: constructing a computer system that implements the service on the target system by executing the recipe execution container in the container execution environment; A step of receiving an instruction to undeploy the service based on the edited recipe tree, In the container execution environment, the following steps are performed: the recipe execution container is executed to remove the computer system from the target system; The step of removing the aforementioned computer system from the target system is: The recipe execution container stores the state and output values of the recipe executed by the recipe execution container in storage. The recipe execution container executes the preceding recipes included in the edited recipe tree in the reverse order of their execution during the construction of the computer system, using parameters based on the state and output values of the recipes stored in the storage. A program that includes this.
8. A service BoM (Bills of materials) stores a recipe tree in which components that implement a predetermined function and recipes that configure the service are arranged in a tree structure. A service configuration editing means that accepts input for editing the aforementioned recipe tree, The system includes a deployment service that, upon receiving a deployment instruction for a service based on the edited recipe tree, retrieves the recipes included in the edited recipe tree and a recipe execution container that executes the recipes included in the edited recipe tree from a software configuration management system, and starts a container execution environment that executes the recipe execution container, In the container execution environment, the recipe execution container is executed to build a computing system on the target system that realizes the service. The service configuration editing means is Display information including a service pane, which is an area for editing the configuration of the service; a recipe pane, which is an area for displaying the recipe tree used as a template; and a component pane, which is an area for displaying the components. The recipe tree used as the template is dragged and dropped from the recipe pane to the service pane to accept operation inputs that constitute the service. In the aforementioned service pane, an operation input is received to change the parameters included in the recipe tree used as the template. The aforementioned recipe has an ID (identifier) that identifies the recipe and an inheritance ID that indicates the ID of the source from which the recipe was copied. The service configuration editing means is In the aforementioned recipe pane, a copy of the recipe tree used as the template is accepted, and updates to the copied recipe tree are accepted. A new ID is assigned to the copied recipe tree, and the inheritance ID of the original recipe is set to the inheritance ID of the copied recipe tree. The system accepts an input operation to overwrite a recipe with the same inheritance ID and update the service by dragging and dropping the copied recipe tree from the recipe pane to the service pane. Server device.
9. A service BoM (Bills of materials) that stores a recipe tree in which components that realize a predetermined function and recipes that set the service configuration are arranged in a tree structure, A service configuration editing means that accepts input for editing the aforementioned recipe tree, The system includes a deployment service that, upon receiving a deployment instruction for a service based on the edited recipe tree, retrieves the recipes included in the edited recipe tree and a recipe execution container that executes the recipes included in the edited recipe tree from a software configuration management system, and starts a container execution environment that executes the recipe execution container, In the container execution environment, the recipe execution container is executed to build a computing system on the target system that realizes the service. When the container execution environment receives an instruction to undeploy a service based on the edited recipe tree, the container execution environment executes the recipe execution container to remove the computer system from the target system. The process of removing the aforementioned computer system from the target system is: The recipe execution container stores the state and output values of the recipe executed by the recipe execution container in storage. The recipe execution container uses parameters based on the state and output values of the recipes stored in the storage to execute the preceding recipes included in the edited recipe tree in the reverse order of how they were executed during the construction of the computer system. Server device.
10. A software configuration management system that stores components that perform a predetermined function and recipes for configuring the service, The system comprises a server device that communicates with the aforementioned software configuration management system, The server device is The aforementioned components and the aforementioned recipes are stored in a service BoM (Bills of materials) that stores a recipe tree structured in a tree-like manner, A service configuration editing means that accepts input for editing the aforementioned recipe tree, The system includes a deployment service that, upon receiving a deployment instruction for a service based on the edited recipe tree, retrieves the recipes included in the edited recipe tree and a recipe execution container that executes the recipes included in the edited recipe tree from the software configuration management system, and starts a container execution environment that executes the recipe execution container, In the container execution environment, the recipe execution container is executed to build a computing system on the target system that realizes the service. The service configuration editing means is Display information including a service pane, which is an area for editing the configuration of the service; a recipe pane, which is an area for displaying the recipe tree used as a template; and a component pane, which is an area for displaying the components. The recipe tree used as the template is dragged and dropped from the recipe pane to the service pane to accept operation inputs that constitute the service. In the aforementioned service pane, an operation input is received to change the parameters included in the recipe tree used as the template. The aforementioned recipe has an ID (identifier) that identifies the recipe and an inheritance ID that indicates the ID of the source from which the recipe was copied. The service configuration editing means is In the aforementioned recipe pane, a copy of the recipe tree used as the template is accepted, and updates to the copied recipe tree are accepted. A new ID is assigned to the copied recipe tree, and the inheritance ID of the original recipe is set to the inheritance ID of the copied recipe tree. The system accepts an input operation to overwrite a recipe with the same inheritance ID and update the service by dragging and dropping the copied recipe tree from the recipe pane to the service pane. Information processing system.
11. A software configuration management system that stores components that realize a predetermined function and recipes for setting a service configuration, The system comprises a server device that communicates with the aforementioned software configuration management system, The server device is The aforementioned components and the aforementioned recipes are stored in a service BoM (Bills of materials) that stores a recipe tree structured in a tree-like manner, A service configuration editing means that accepts input for editing the aforementioned recipe tree, The system includes a deployment service that, upon receiving a deployment instruction for a service based on the edited recipe tree, retrieves the recipes included in the edited recipe tree and a recipe execution container that executes the recipes included in the edited recipe tree from the software configuration management system, and starts a container execution environment that executes the recipe execution container, In the container execution environment, the recipe execution container is executed to build a computing system on the target system that realizes the service. When the container execution environment receives an instruction to undeploy a service based on the edited recipe tree, the container execution environment executes the recipe execution container to remove the computer system from the target system. The process of removing the aforementioned computer system from the target system is: The recipe execution container stores the state and output values of the recipe executed by the recipe execution container in storage. The recipe execution container uses parameters based on the state and output values of the recipes stored in the storage to execute the preceding recipes included in the edited recipe tree in the reverse order of how they were executed during the construction of the computer system. Information processing system.
Citation Information
Patent Citations
Data-Driven Automated Provisioning for Telecommunications Applications
JP2019508769A
API selection system and API selection method
JP2022036800A
API mash-up infrastructure generation on computing system
JP2022041907A
Deployment device, deployment method, and program
JP6673355B2
unicontainers
US20200159536A1