Method and apparatus for application deployment, and related device
Patent Information
- Application Number
- HK62026127805
- Authority / Receiving Office
- HK · HK
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-07-11
- Filing Date
- 2026-08-21
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2043-12-12
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
(12) International application published under the Patent Cooperation Treaty (19) International Bureau of WIPO (43) International Publication Date November 28, 2024 (28.11.2024) WIPO I PCT (51) International Patent Classification: G06F 8 / 60 (2018.01) G06F 9 / 50 (2006.01) (21) International Application Number: PCT / CN2023 / 138478 (22) International Application Date: December 13, 2023 (13.12.2023) (25) Application Language: Chinese (26) Publication Language: Chinese (30) Priority: 202310573141.1 May 19, 2023 (19.05.2023) CN 202310847475.3 July 11, 2023 Date (11.07.2023) CN (71) Applicant: Huawei Cloud Computing Technologies Co., Ltd. [CN / CN]; Huawei Cloud Data Center, Jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province, China, 550025 (CN) 0 lllllllllllllllllllllllllllllllll^ (10) International Publication No.: WO 2024 / 239612 Al (72) Inventors: Liang Ming (LIANG, Ming); Huawei Cloud Data Center, Jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province, China, 550025 (CN) 0 Ye Liangfeng (YE, Liangfeng); Huawei Cloud Data Center, Jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province, China, 550025 (CN) 0 Yue Xiaoming (YUE, Xiaoming); Huawei Cloud Data Center, Xinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province, China, 550025 (CN) 0 (74) Agent: Shenzhen Intellectual Property Agency (General Partnership); 18c2, 18D, 18E, 18E2, Block B, Lushan Building, Chunfeng Road, Nanhu Street, Luohu District, Shenzhen City, Guangdong Province, China, 518001 (CN) 0 (81) Designated Country (unless otherwise specified, each requiring available national protection): AE, AG, AL, AM, AO, AT, AU, AZ, BA, BB, BG, BH, BN, BR, BW, BY, BZ, CA, CH, CL, CN, CO, CR, CU, = - = == = - = = = = = = = = = = = = AA User Submitted Figure 2 (54) Title: METHOD AND APPARATUS FOR APPLICATION DEPLOYMENT, AND RELATED DEVICE (54)Title of the invention: An application deployment method, apparatus and related equipment Cloud platform 200 AA Provided by a user BB Configuration template CC Value of the second configuration item DD Deploy the application 100 Client 200 Cloud platform 300 Apparatus for application deployment 301 Application orchestration module 302 Configuration module 303 Cloud environment feedback module S201 Acquire a user's configuration template for an application to be deployed S202 Send the configuration template S203 Request an available resource S204 Feed back the available resource S205 Determine a value of a second configuration item according to the available resource S206 Deploy the application on the cloud according to a first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item (57) Abstract: The present application provides a method for application一种部署方法,包括以下步骤:获取用户提供的配置模板,其中所述配置模板包括第一配置项和第二配置项,所述第一配置项的值由用户配置;在云环境中获取与所述第二配置项匹配的至少一个可用资源,并根据所述至少一个可用资源确定所述第二配置项的值,随后根据所述第一配置项、所述用户配置的所述第一配置项的值、所述第二配置项以及所述应用部署设备自动确定的所述第二配置项的值,在云上部署应用。由此,通过自动确定剩余配置的值[见续页] WO 2024 / 239612 A1 IIIIIIIIIIIIIIIIIIIIIIIIIIIIM CY CZ, DE, DJ, DK, DM, DO, DZ, EC, EE, EG, ES, FI, GB, GD, GE, GH, GM, GT, HN, HR, HU,ID, IL, IN, IQ, IR, IS, IT, JM, JO, JP, KE, KG, KH, KN, KP, KR, KW, KZ, LA, LC, LK, LR, LS, LU, LY MA, MD, MG, MK, MN, MU, MW, MX, MY MZ, NA, NG, NI, NO, NZ, OM, PA, PE, PG, PH, PL, PT, QA, RO, RS, RU, RW, SA, SC, SD, SE, SG, SK, SL, ST, SY SY TH, TJ, TM, TN, TR, TT, TZ, UA, UG, US, UZ, VC, VN, WS, ZA, ZM, ZWO (84) Designated Country (unless otherwise specified, each available regional protection is required): ARIPO (BW, CV, GH, GM, KE, LR, LS, MW, MZ, NA, RW, SC, SD, SL, ST, SZ, TZ, UG, ZM, ZW), Eurasia (AM, AZ, BY, KG, KZ, RU, TJ, TM), Europe (AL, AT, BE, BG, CH, CY, CZ, DE, DK, EE, ES, FI, FR, GB, GR, HR, HU, IE, IS, IT, LT, LU, LV, MC, ME, MK, MT, NL, NO, PL, PT, RO, RS, SE, SI, SK, SM, TR), OAPI (BF, BJ, CF, CG, CI, CM, GA, GN, GQ, GW, KM, ML, MR, NE, SN, TD,TG). This international publication states: An international search report (Article 21(3)________________________________________________________ item which is not configured by the user according to the currently available resource in the cloud environment; the success rate of application deployment can be effectively improved, and the user does not need to eliminate...This application provides an application deployment method, comprising: obtaining a configuration template provided by a user, the configuration template including a first configuration item and a second configuration item, the value of the first configuration item being configured by the user; obtaining at least one available resource in the cloud environment that matches the second configuration item, and determining the value of the second configuration item based on the at least one available resource, thereby deploying the application on the cloud based on the first configuration item, the value of the first configuration item specified by the user, the second configuration item, and the value of the second configuration item automatically determined by the application deployment device. Thus, by automatically determining the values of the remaining configuration items not configured by the user based on the currently available resources in the cloud environment, the success rate of application deployment can be effectively improved, eliminating the need for the user to troubleshoot application deployment anomalies through multiple trials and errors, thereby improving the efficiency of application deployment on the cloud and reducing deployment difficulty. Furthermore, this application also provides a corresponding application deployment device and related equipment. WO 2024 / 239612 PCT / CN2023 / 138478 1 5 10 15 20 25 30 35 40 45 An Application Deployment Method, Apparatus and Related Equipment This application claims priority to Chinese Patent Application No. 202310573141, filed on May 19, 2023, entitled "An Application Deployment Method, Apparatus and Related Equipment", and to Chinese Patent Application No. 202310847475.3, filed on July 11, 2023, entitled "An Application Deployment Method, Apparatus and Related Equipment", the entire contents of which are incorporated herein by reference. Technical Field This application relates to the field of cloud computing technology, and more particularly to an application deployment method, apparatus and related equipment. Background Art Application orchestration service (Application Orchestration Service)Application Orchestration Service (AOS) is a service for automating application deployment and orchestration on cloud platforms. It enables one-click application creation and cloud service resource activation in the cloud, providing efficient application replication and migration capabilities. Currently, during application deployment in the cloud, the application orchestration service provides users with templates, and users input values for multiple configuration items into these templates. The application orchestration service can then deploy the application in the cloud based on these values. However, in real-world applications, the application orchestration service frequently reports deployment failures, requiring users to troubleshoot through multiple trials, thus reducing the efficiency and increasing the difficulty of cloud application deployment. In view of this, this application provides an application deployment method to improve the efficiency and reduce the difficulty of cloud application deployment. This application also provides a corresponding application deployment device, computing device cluster, computer-readable storage medium, and computer program product. Firstly, embodiments of this application provide an application deployment method, which can be executed by a corresponding application deployment device. Specifically, the application deployment device obtains a configuration template provided by a user. This configuration template can be a user-defined configuration template or a configuration template obtained after the user completes configuration for some configuration items on the configuration template provided by the application deployment device. The configuration template includes multiple configuration items for the application, including a first configuration item and a second configuration item. The value of the first configuration item is configured by the user, while the value of the second configuration item is not configured by the user. These multiple configuration items are used to configure resources in the cloud environment required for deploying the application. Then, the application deployment device obtains at least one available resource in the cloud environment that matches the second configuration item. The available resource includes at least one of computing resources, storage resources, and network resources. Based on the at least one available resource, the device determines the value of the second configuration item. The determined value of the second configuration item is used to indicate the target resource among the at least one available resource. Thus, the application deployment device deploys the application in the cloud based on the first configuration item, the value of the first configuration item specified by the user, the second configuration item, and the value of the second configuration item automatically determined by the application deployment device. In this way, the application deployment device automatically determines the values of the remaining configuration items that the user has not configured based on the currently available resources in the cloud environment. This prevents application deployment failures caused by the unavailability of resources corresponding to these configuration items, effectively improving the success rate of application deployment. Users no longer need to troubleshoot application deployment issues through multiple trial and error attempts, thus increasing the efficiency and reducing the difficulty of deploying applications in the cloud. Furthermore, the application deployment device automatically determines the values of the unconfigured configuration items, effectively reducing the number of parameters that the user needs to configure, further improving the user's experience.Deploying applications in the cloud improves efficiency and reduces deployment difficulty. In one possible implementation, the application deployment device can also acquire deployment instruction information, which is used to instruct the selection of available resources from the cloud environment based on target factors for a second configuration item (i.e., to instruct the user's preference for the resources selected for the second configuration item). The target factors include one or more of the application's functionality, performance, and cost. Specifically, when determining the value of the second configuration item, the application deployment device can determine the value of the second configuration item based on the deployment instruction information and at least one available resource. Thus, the application processing device selects suitable available resources for the application to be deployed based on the deployment instruction information (i.e., determines the value of the second configuration item), making the available resources allocated to the application more in line with the user's expectations. For example, it can select low-cost / high-performance resources that meet the user's expectations to deploy the application, thereby improving the user experience. In one possible implementation, when determining the value of the second configuration item, the application deployment device may first obtain the scores corresponding to multiple candidate values of the second configuration item WO 2024 / 239612 PCT / CN2023 / 138478 2 5 10 15 20 25 30 35 40 45, where each candidate value indicates an available resource in the cloud environment. Then, based on the scores corresponding to the multiple candidate values, the value of the second configuration item is determined. In this way, the application deployment device can automatically determine an appropriate value for the second configuration item based on the scoring mechanism, that is, automatically select a suitable resource from the cloud environment to deploy the application. In one possible implementation, the number of second configuration items is multiple, and each second configuration item corresponds to at least one candidate value. When determining the value of a second configuration item, the application deployment device may first determine multiple configuration combinations. Each configuration combination includes multiple second configuration items and a candidate value corresponding to each of the multiple second configuration items. The candidate values corresponding to the multiple second configuration items are different in different configuration combinations. Then, the application deployment device determines the score of each configuration combination. The score of each configuration combination is calculated based on the scores of the candidate values corresponding to the multiple second configuration items. Based on the scores of each configuration combination, a target configuration combination is determined from the multiple configuration combinations. The candidate values in the target configuration combination are the values of the multiple second configuration items. Thus, determining the values of multiple second configuration items based on configuration combinations avoids ignoring the dependencies between configuration items, which could lead to conflicts in the values set for multiple second configuration items and affect the final application deployment effect. In one possible implementation, the multiple candidate values of the second configuration item include a target candidate value. The score of the target candidate value is the sum of a base score and a preferred score, where the preferred score is determined based on the preferred level of the target candidate value. The application deployment device...The system can also adjust the score of a target candidate value in response to adjustments made by administrators (e.g., regarding the priority level of the candidate value). By adjusting the priority level of a candidate value, its score during resource configuration can be adjusted, facilitating fine-grained management and control of available resources in the cloud environment. For example, by adjusting the priority level of a candidate value corresponding to available resources in some Availability Zones (AZs), the score of that candidate value can be increased, allowing for priority allocation of available resources in that AZ to the applications to be deployed, thus achieving resource management in the cloud environment. In one possible implementation, when deploying an application in the cloud, the application deployment device may first output the value of a second configuration item to be presented to the user, and in response to the user's modification of the value of the second configuration item, determine the correction value corresponding to the second configuration item. The application deployment device then deploys the application in the cloud based on the first configuration item, the user-specified value of the first configuration item, the second configuration item, and the correction value corresponding to the user-modified second configuration item. Thus, by having the user modify (or confirm) the value of the second configuration item, not only can the operations required for user application deployment be simplified, improving configuration efficiency and reducing configuration difficulty, but the final configuration for the application can also better meet the user's expectations, improving the user's application deployment experience. In one possible implementation, when deploying an application in the cloud, the application deployment device may first output the value of a second configuration item and the historical configuration record corresponding to the configuration template to be presented to the user. This historical configuration record includes the values configured for the second configuration item during application deployment within a historical time period. Thus, in response to the user's selection of the value for the second configuration item, the application deployment device can deploy the application in the cloud based on the first configuration item, its value, the second configuration item, and its value. By presenting the user with the historical configuration record for the second configuration item, a reference is provided for the user's application configuration. The user can then refer to other users' configurations of the second configuration item to make decisions and set appropriate values for it, thereby improving the user's application deployment experience. Secondly, this application provides an application deployment apparatus, which includes an application orchestration module for obtaining a configuration template provided by a user. The configuration template includes multiple configuration items for an application, including a first configuration item and a second configuration item. The value of the first configuration item is configured by the user, and the multiple configuration items are used to configure resources in the cloud environment required for deploying the application. A cloud environment feedback module is used for obtaining at least one available resource in the cloud environment that matches the second configuration item. The available resources include at least one of computing resources, storage resources, and network resources. A configuration module is used for determining the value of the second configuration item based on the at least one available resource. The value of the second configuration item is used to indicate the target resource among the at least one available resource. The application orchestration module is further used for determining the value of the first configuration item based on the first configuration item and the second configuration item.The application orchestration module is configured to: obtain deployment instruction information, which instructs the selection of available resources from the cloud environment based on target factors for the second configuration item, including one or more factors such as application functionality, performance, and cost; and determine the value of the second configuration item based on the deployment instruction information and at least one available resource. In one possible implementation, the configuration module is further configured to: obtain scores corresponding to multiple candidate values of the second configuration item, each candidate value indicating an available resource in the cloud environment; and determine the value of the second configuration item based on the scores corresponding to the multiple candidate values. In one possible implementation, there are multiple second configuration items, each corresponding to at least one candidate value. The configuration module is specifically configured to: determine multiple configuration combinations, each including multiple second configuration items and a candidate value corresponding to each of the multiple second configuration items, wherein the candidate values corresponding to the multiple second configuration items are different in different configuration combinations; determine a score for each configuration combination, the score of each configuration combination being calculated based on the scores of the candidate values corresponding to the multiple second configuration items; and determine a target configuration combination from the multiple configuration combinations based on the scores of each configuration combination, wherein the candidate values in the target configuration combination are the values of the multiple second configuration items. In one possible implementation, the multiple candidate values include a target candidate value, the score of the target candidate value being the sum of a base score and a preferred score, the preferred score being determined based on the preferred level of the target candidate value; the configuration module is further configured to: adjust the score of the target candidate value in response to an adjustment operation on the preferred level of the target candidate value. In one possible implementation, the application orchestration module is specifically configured to: output the value of a second configuration item for presentation to the user; determine a correction value corresponding to the second configuration item in response to the user's modification operation on the value of the second configuration item; and deploy the application in the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the correction value corresponding to the second configuration item. In another possible implementation, the application orchestration module is specifically configured to: output the value of the second configuration item for presentation to the user and historical configuration records corresponding to the configuration template, the historical configuration records including the values configured for the second configuration item when deploying the application within a historical time period; and deploy the application in the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item in response to the user's selection operation on the value of the second configuration item. It is worth noting that the application deployment apparatus provided in the second aspect corresponds to the application deployment method provided in the first aspect; therefore, the second aspect...The technical effects of any embodiment in the second aspect can be found in the technical effects of the first aspect or its corresponding implementation. In a third aspect, this application provides a computing device cluster, the computing device including at least one computing device, the at least one computing device including at least one processor and at least one memory; the at least one memory is used to store instructions, and the at least one processor executes the instructions stored in the at least one memory to cause the computing device cluster to execute the application deployment method in the first aspect or any possible implementation of the first aspect. It should be noted that the memory can be integrated into the processor or can be independent of the processor. The at least one computing device may also include a bus. The processor is connected to the memory via the bus. The memory may include readable storage and random access memory. In a fourth aspect, this application provides a computer-readable storage medium storing instructions that, when executed on at least one computing device, cause the at least one computing device to execute the method described in the first aspect or any implementation of the first aspect. In a fifth aspect, this application provides a computer program product containing instructions that, when executed on at least one computing device, cause the at least one computing device to execute the method described in the first aspect or any implementation of the first aspect. Based on the implementation methods provided in the above aspects, this application can be further combined to provide more implementation methods. Brief Description of the Drawings To more clearly illustrate the technical solutions in the embodiments of this application, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in this application. For those skilled in the art, other drawings can be obtained based on these drawings. Figure 1 is a schematic diagram of the structure of an exemplary application deployment system provided by this application; Figure 2 is a schematic diagram of the flow of an application deployment method provided by this application; Figure 3 is a schematic diagram of an exemplary interactive interface 1 provided by this application; Figure 4 is a schematic diagram of another exemplary interactive interface 2 provided by this application; Figure 5 is a schematic diagram of the structure of a computing device provided by this application; Figure 6 is a schematic diagram of the structure of a computing device cluster provided by this application. Detailed Description of the Embodiments The solutions in the embodiments provided by this application will be described below with reference to the accompanying drawings. The terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms can be interchanged where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. WO 2024 / 239612 PCT / CN2023 / 138478 4 5 10 15 20 25 30Referring to Figure 1, a schematic diagram of an exemplary application deployment system provided in this application is shown. As shown in Figure 1, the application deployment system 10 includes a client 100, a cloud platform 200, and an application deployment device 300. The client 100, cloud platform 200, and application deployment device 300 can communicate with each other via a network. The client 100 can be an application running on a user-side device, or it can be a web browser provided by the application deployment system 10. Figure 1 only illustrates one client included in the application deployment system 10. In actual applications, the application deployment system 10 can include any number of clients, and this is not limited. The cloud platform 200 refers to a platform that provides computing, networking, and storage capabilities based on hardware and software resources. One or more applications can be deployed on the cloud platform 200, and these applications can provide corresponding cloud services, such as Elastic Cloud Server (ECS) and cloud storage services, when running. The application deployment device 300 includes an application orchestration module 30L, a configuration module 302, and a cloud environment feedback module 303, which facilitates application deployment for users on the cloud platform 200. In practical applications, the application deployment device 300 can be deployed in the cloud to provide users with cloud services for application deployment. Typically, the application deployment device 300 can provide users with a configuration template through the client 100. This configuration template can be a text description file in YAML or JSON format, defining multiple configuration items required for application deployment. These configuration items are used to configure the resources in the cloud environment required for deploying the application, such as configuring the region and availability zone (AZ) where the application resides, and the specifications of the processor and memory required for the application to run. Users input the values of each configuration item in the configuration template into the client 100, and the application deployment device 300 can then deploy the corresponding application on the cloud platform 200 according to the values of each configuration item in the configuration template. However, resource usage in a cloud environment is dynamically changing. This means that during application deployment, the quantity / specification of resources indicated by some configuration items entered by the user in the configuration template may be insufficient to meet the application's runtime resource requirements, leading to deployment failure on the cloud platform 200. For example, the user might configure the application with 4U8G (4 processors and 8GB of memory) resources in AZ1 in the configuration template. However, in actual application scenarios, the number of unallocated processors in the remaining computing resources of AZ1 may be less than 4, or the size of the unallocated memory resources may be less than 8GB. This means that the remaining available computing resources in AZ1 cannot meet the resource requirements for application deployment, resulting in deployment failure. In such cases, users typically adopt a trial-and-error approach.The user modifies the values of corresponding configuration items in the configuration template and attempts to re-deploy the application using the application deployment device 300 based on the modified configuration template. This process of trial and error to troubleshoot deployment anomalies leads to low efficiency and increased difficulty in deploying applications on the cloud platform 200. Therefore, this application provides an application deployment method where the application deployment device 300 automatically sets appropriate values for certain configuration items to improve deployment efficiency and reduce deployment difficulty. Specifically, the user can input values for certain configuration items in the configuration template on the client 100, such as configuring the specifications of computing resources required for application operation. Configuration for the region or AZ where the application resides is optional. Then, the application orchestration module 301 obtains the configuration template provided by the client 100, iterates through the template, identifies the remaining unconfigured configuration items, and provides these unconfigured items to the configuration module 302. Then, the configuration module 302 can instruct the cloud environment feedback module 303 to collect one or more available resources in the cloud environment that match the configuration items not configured by the user. These resources include at least one of computing resources, storage resources, and network resources. The module then determines the value of the configuration item based on these available resources and feeds it back to the application orchestration module 301. In this way, the application orchestration module 301 can deploy the application on the cloud, specifically on the cloud platform 200, based on the values defined by the user for some configuration items in the configuration template and the values of the remaining configuration items fed back by the configuration module 302. Thus, the application deployment device 300 automatically determines the values of the remaining configuration items not configured by the user based on the currently available resources in the cloud environment. This prevents application deployment failures caused by the unavailability of resources corresponding to these configuration items (such as those already allocated to other applications) when deploying applications based on these values. This effectively improves the success rate of application deployment, eliminating the need for users to troubleshoot deployment anomalies through multiple trial and error attempts, thereby increasing the efficiency and reducing the difficulty of application deployment in the cloud. Furthermore, the application deployment device 300 automatically determines the values of configuration items not configured by the user, effectively reducing the number of parameters the user needs to configure. This further improves the efficiency of application deployment on the cloud and reduces deployment difficulty. It is worth noting that the application deployment system 10 shown in Figure 1 is only an example. In actual applications, the application deployment system 10 can have other possible structures. For example, in other possible implementations, the application deployment system 10 may include multiple clients and cloud platforms, such as the application deployment device 300 supporting user deployment on multiple cloud platforms. Additionally, the functional module division in the application deployment device 300 shown in Figure 1 is not limited to the example shown in Figure 1. In other possible implementations, the configuration WO...Module 302 can also be divided into a scoring module and a configuration association module. The scoring module is used to determine the score of multiple optional values for the second configuration item, and the configuration association module is used to determine a unique value from multiple optional values as the value of the second configuration item, etc., without limitation. Exemplarily, the application deployment device 300 of Figure 1 can be implemented by software or by hardware. As an example of a software functional unit, the application deployment device 300 can include code running on a computing instance. The computing instance can include at least one of a host, a virtual machine, and a container. Further, the computing instance can be one or more. For example, the application deployment device 300 can include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed within the same Availability Zone (AZ) or in different AZs, each AZ comprising one or more geographically proximate data centers. Typically, a region can include multiple AZs. Similarly, the multiple hosts / virtual machines / containers used to run the code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within one region. Communication between two VPCs within the same region, and between VPCs in different regions, requires a communication gateway within each VPC to interconnect the VPCs. As an example of a hardware functional unit, the application deployment apparatus 300 can include at least one computing device, such as a server. Alternatively, the application deployment apparatus 300 can be implemented using devices including application-specific integrated circuits (ASICs) or programmable logic devices (PLDs). The aforementioned PLD can be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or a data processing unit.DPU or any combination thereof. Next, various non-limiting specific implementations of the application deployment process will be described in detail. Referring to Figure 2, it is a flowchart illustrating an application deployment method according to an embodiment of this application. This method can be applied to the application deployment system 10 shown in Figure 1, or it can be applied to other applicable application deployment systems. The following description uses the application deployment system 10 shown in Figure 1 as an example. The application deployment method shown in Figure 2 may specifically include: S201: The client 100 obtains a configuration template provided by the user. This configuration template includes multiple configuration items for the application, including a first configuration item and a second configuration item. The value of the first configuration item is configured by the user. The multiple configuration items in the configuration template are used to configure the resources in the cloud environment required for deploying the application. When a user needs to deploy an application on the cloud platform 200, the user can provide relevant configurations for the application, specifically configuring information such as the resources required for the application during deployment. As an implementation example, the application deployment device 300 can provide a configuration template to the client 100, which defines multiple configuration items. At this point, client 100 can present a configuration interface to the user based on the configuration template. This interface displays multiple configuration items, allowing the user to input values for some items according to the requirements of the application to be deployed, such as specifying the number of processors, memory size, and database required for the application to run. For the remaining configuration items, the user can leave them unset; for example, the user can leave the application's region and Availability Zone (AZ) unspecified. For ease of description and distinction, the configuration item with the user-set value is referred to as the first configuration item, and the configuration item without a user-set value is referred to as the second configuration item. There can be one or more first and second configuration items. Then, client 100 can add the user's input value for the first configuration item to the configuration template and send the configuration template, including the first configuration item's value, to application orchestration module 3010. In another implementation example, the user can customize a configuration template on client 100. This customized configuration template includes multiple configuration items, and a value is set for the first configuration item, while no value is set for the second configuration item. Then, client 100 can send a user-defined configuration template, including the value of the first configuration item, to application orchestration module 301. In this embodiment, for the second configuration item that has not been configured by the user, application deployment device 300 can automatically set an appropriate value for it. In actual application scenarios, there may be a large number of available resources of some types in the cloud environment. Accordingly, the second configuration item may have multiple values. For example, the second configuration item may include a configuration item for computing specifications, and the value of the second configuration item may be processor 1 to processor 4 in az1 (the computing specification is specified in the original text).The memory space size in the configuration specification is fixed, such as 8GB (details omitted here), or it can be processors 5 to 8 in AZ2, or processors 3 to 6 in AZ3. Therefore, in a further possible implementation, the user can also input deployment instruction information to the client 100. This deployment instruction information represents the user's preference for the resources selected in the second configuration item, such as prioritizing lower-cost resources based on cost considerations, prioritizing higher-performance resources based on performance considerations, or prioritizing higher-performance resources based on functional considerations, etc. In specific implementation, the deployment instruction information is used to instruct the application deployment device 300 to select available resources from the cloud environment based on target factors for the second configuration item. These target factors can be one or more of the following: the functionality, performance, and cost of the application to be deployed, or other types of factors. This allows the application deployment device 300 to subsequently use the deployment instruction information to select suitable available resources for the second configuration item to deploy the application. Correspondingly, the client 100 can send the deployment instruction information and the aforementioned configuration template to the application orchestration module 301. S202: The application orchestration module 301 sends the user-provided configuration template to the configuration module 302. In specific implementation, the application orchestration module 301 can parse the received configuration template, determine the first configuration item and its value, and determine any unconfigured second configuration items, such as identifying configuration items with empty values as the second configuration item. In practical application scenarios, due to potential dependencies between different configuration items, such as configuration item 1 configuring the application's host az and configuration item 2 configuring the number of processors required to support the application's operation, when configuring processors for the application, it is necessary to configure the corresponding number of processors for the application from the az indicated by the value of configuration item 1. Therefore, the application orchestration module 301 can send the first configuration item, its value, and the second configuration item to the configuration module 302 to request the configuration module 302 to set the corresponding value for the second configuration item. Further, when the application orchestration module 301 receives deployment instruction information sent by the client 100, the application orchestration module 301 can also send the deployment instruction information to the configuration module 302 so that the configuration module 302 can set the corresponding value for the second configuration item according to the deployment instruction information. S203: The configuration module 302 requests at least one available resource in the cloud environment that matches the second configuration item from the cloud environment feedback module 303. In this embodiment, available resources refer to resources in the cloud environment that can be allocated to the application to be deployed, which can be one or more of computing resources, storage resources, and network resources.For example, computing resources can be resources with computing power such as central processing units (CPUs), data processing units (DPUs), and infrastructure processing units (IPUs). Storage resources can be resources with storage capabilities such as caches, memory, and storage devices. Network resources can be network transmission resources such as uplink bandwidth, downlink bandwidth, and network interface card (NIC) type. S204: The cloud environment feedback module 303 feeds back at least one available resource that matches the second configuration item to the configuration module 302. In this embodiment, the application deployment device 300 can automatically set a value for the second configuration item based on the currently available resources in the cloud environment to avoid application deployment failure caused by the unavailability of resources in the cloud environment indicated by the value set for the second configuration item later. For example, the value of the second configuration item can specifically be the identifier (such as the resource ID) of an available resource that matches the second configuration item. For example, the second configuration item is used to configure one processor required for deploying the application. Assuming the cloud environment includes three processors, processor 1, processor 2, and processor 3, and processors 2 and 3 are idle, the available resource matching the second configuration item is either processor 2 or processor 3. The value of the second configuration item can be the identifier of processor 2 or the identifier of processor 3. In one possible implementation, the configuration module 302 can generate a request including the first configuration item, the value of the first configuration item, and the second configuration item, and send this request to the cloud environment feedback module 303 to request available resources in the cloud environment that match the second configuration item. The cloud environment feedback module 303 can respond to the request, call the query interface based on the received configuration item information to query available resources in the cloud environment, such as the remaining availability of available resources, network latency, and cost, and filter out available resources that match the second configuration item. In practical applications, for some resources that cannot be accessed through the query interface, such as the access address of cloud services, technical personnel can manually enter these available resources and provide them to the cloud environment feedback module 303. The cloud environment feedback module 303 can filter out one or more available resources, corresponding to one or more values for the second configuration item. For example, if the available resource matching the second configuration item is processor 2 or processor 3, the value of the second configuration item can be the identifier of processor 2 or the identifier of processor 3. In this embodiment, the cloud environment feedback module 303 can feed back information on all available resources corresponding to the second configuration item to the configuration module 302, so that the configuration module 302 can determine the value of the second configuration item based on one of the available resources. For ease of description, the possible values of the second configuration item will be referred to as candidate values below.Furthermore, there may be multiple unconfigured configuration items by the user, and correspondingly, there may be multiple second configuration items. In this case, the available resources selected by the cloud environment feedback module 303 that match the second configuration items can specifically be at least one available resource that matches each of the second configuration items. The candidate values for each second configuration item can be one or more. In practical applications, the application deployment device 300 can be configured with one or more plugins, allowing the cloud environment feedback module 303 to collect available resources in the cloud environment using these plugins. For example, when the application deployment device 300 is configured with multiple plugins, different plugins can collect different types of available resources in the cloud environment. Thus, when it is necessary to collect a new type of available resource in the cloud environment, a new plugin can be deployed on the application deployment device 300 to collect this new type of available resource. S205: Configuration module 302 determines the value of the second configuration item based on at least one available resource matching the second configuration item, and provides the value of the second configuration item to application orchestration module 301. The value of the second configuration item is used to indicate the target resource among the at least one available resource. Configuration module 302 can select one of the at least one available resource as the target resource and set the value of the second configuration item according to the selected target resource. In this embodiment, the following implementation examples for determining the value of the second configuration item are provided. In the first implementation example, when multiple available resources match the second configuration item, there can be multiple candidate values corresponding to the multiple available resources. At this time, configuration module 302 can randomly select one candidate value from multiple candidate values as the value of the second configuration item; or, configuration module can select one candidate value from multiple candidate values as the value of the second configuration item based on load balancing or other strategies. When only one available resource matches the second configuration item, the second configuration item corresponds to one candidate value, and configuration module 302 can directly determine the candidate value as the value of the second configuration item. In the second implementation example, configuration module 302 can determine the value of the second configuration item by scoring. In practice, the configuration module 302 first scores the candidate values corresponding to each available resource. For example, for each available resource, the configuration module 302 can calculate the scores for the candidate values corresponding to that available resource in the functional dimension, the performance dimension, and the cost dimension, respectively, as score 1, score 2, and score 3. Then, the configuration module 302 compares the scores 1, 2, and 3 to determine the largest score (let's assume it's score 2). The configuration module 302 can then determine the largest score as the score for that candidate value.(That is, the candidate value's score is 2). Alternatively, the configuration module 302 can prioritize candidate values according to the order of "Functionality > Performance > Cost," and first select the candidate value's score in the functionality dimension as the candidate value's score. The functionality score of the candidate value corresponding to the available resource can be manually labeled by technical personnel beforehand for that available resource, and the configuration module 302 obtains the candidate value's functionality score by reading the manually labeled results. For example, the functionality of Elastic Load Balancer (ELB) can be divided into dedicated and shared types. Both have the same basic functionality, but the dedicated type is superior to the shared type in terms of reliability and protocol support range. Therefore, technical personnel can label the dedicated type's functionality dimension score as higher than the shared type's functionality dimension score. The performance score of the candidate value can be determined by the configuration module 302 based on the performance level of the available resource. Generally, the performance of the available resource is positively correlated with the candidate value's performance dimension score. Taking computing resources as an example, they can be categorized by performance into "general-purpose," "general-purpose enhanced computing," and "high-performance computing." "General-purpose" computing resources have the lowest performance and the lowest score, while "high-performance computing" resources have the highest performance and the highest score. Similarly, the cost score of a candidate value can be determined by the configuration module 302 based on the cost of available resources. The cost of available resources is negatively correlated with the cost score of the candidate value. Furthermore, the maximum score determined by the configuration module 302 from the scores of the functional, performance, and cost dimensions can be used as the base score for the candidate value. This candidate value can also have a preferred score, determined based on the preferred level of the candidate value. The preferred level of each candidate value can be set by technical personnel or by the configuration module 302. Taking the determination of the score of a candidate value (hereinafter referred to as the target candidate value) for the second configuration item as an example, the configuration module 302 can select the score of one dimension (functionality, performance, or cost) as the base score for the target candidate value, determine the preferred level of the target candidate value, and determine the preferred score based on the preferred level. For example, the preference level can include three levels: "Recommended," "Recommended+," and "Recommended++," corresponding to preference scores of 5, 10, and 15 points, respectively. Then, the configuration module 302 can calculate the sum of the base score and the preference score, and use this sum as the score for the target candidate value. In practical applications, the configuration module 302 can include a score management file, which records the base score and preference level of one or more candidate values. For example, the content recorded in the score management file can be as shown in Table 1 below. Table 1 Wherein, cloud resources refer to resources on the cloud to which the configuration item belongs, such as Elastic Cloud Servers (ECS).Cloud Server, a simplified cloud resource configuration item, has a base score and preferred rating. The configuration options include ECS (Elastic Compute Service), Cloud Container Engine (CCE), and other cloud computing resources. When a configuration item does not belong to a specific cloud resource, such as an access address for a cloud service, a generic identifier, such as "global," can be used. The rating management file records the ratings for multiple configuration items. After determining candidate values for a configuration item based on the received available resources, the configuration module 302 can search the rating management file to determine the base score and preferred rating corresponding to that candidate value, and then calculate the final score. For example, suppose the preferred rating for the original target candidate value was "recommended," and the preferred rating for that candidate value was 5 points. Then, technicians can adjust the preference level corresponding to the target candidate value, specifically adjusting it to "Recommended++", thereby adjusting the preference score corresponding to the candidate value to 15. Thus, the final target candidate value's score increases by 10 points (i.e., 15 points - 5 points). In practical applications, technicians can also modify the preference level of the (candidate) value of the configuration item recorded in the score management file, thereby adjusting the preference score corresponding to that value and ultimately modifying the final score. Furthermore, when the configuration module 302 receives deployment instruction information (used to indicate the user's preference for the resources selected by the second configuration item) sent by the application orchestration module 301, the configuration module 302 can also combine this deployment instruction information to determine the score of the candidate value corresponding to each available resource. Specifically, the configuration module 302 can determine, based on deployment instructions, the available resources to be selected from the cloud environment for the second configuration item based on target factors. These target factors can be one or more of the following: functionality, performance, or cost of the application to be deployed. The configuration module 302 can then select the score from candidate values in the functional, performance, and cost dimensions that matches the target factor. For example, when the target factor is specifically a functional factor, the configuration module 302 can use the candidate value's functional score as the candidate value's score. Alternatively, when the target factor includes performance and cost factors, the configuration module 302 can compare the candidate value's performance and cost scores and use the score with the higher score as the candidate value's score. After determining the scores of each candidate value for the second configuration item, the configuration module 302 can select the candidate value with the highest score from among multiple candidate values.The configuration module 302 selects a value and determines the candidate value as the value of the second configuration item. When multiple candidate values have the same score, the configuration module 302 can randomly select one candidate value from among the multiple candidate values as the value of the second configuration item. Alternatively, the configuration module 302 can select the candidate value with the highest score in other dimensions from among the multiple candidate values as the value of the second configuration item. For example, assuming that the configuration module 302 determines the score of each candidate value in the function dimension based on the deployment instruction information, then when multiple candidate values have the same score, the configuration module 302 can sort them according to the priority of "function > performance > cost", further compare the scores of the multiple candidate values in the function dimension, determine the candidate value with the highest score in the function dimension, and determine the candidate value with the highest score in the function dimension as the value of the second configuration item. If multiple candidate values still have the same score in the function dimension, the configuration module 302 can continue to compare the scores of the multiple candidate values in the cost dimension, and determine the candidate value with the highest score in the cost dimension as the value of the second configuration item. Alternatively, there may be multiple second configuration items, and there may be dependencies between different second configuration items. At this point, after obtaining the scores of each candidate value, the configuration module 302 can also determine multiple configuration combinations, such as determining multiple configuration combinations based on the dependencies between different second configuration items. Each configuration combination includes the same multiple second configuration items, and each second configuration item in each configuration combination corresponds to a candidate value. Moreover, the candidate values corresponding to the multiple second configuration items in different configuration combinations are different. Then, the configuration module 302 can calculate the score of each configuration combination. For example, the configuration module 302 can calculate the sum of the scores of the candidate values of all second configuration items in the configuration combination and use the calculated sum as the score of the configuration combination; or, the configuration module 302 can perform a weighted summation of the scores of a candidate value corresponding to all second configuration items in the configuration combination, where the weights of different second configuration items are different, and use the weighted summation as the score of the configuration combination. Finally, the configuration module 302 can determine the configuration combination with the highest score based on the scores of each configuration combination, and thus determine the candidate values of each second configuration item in the configuration combination as the values of that second configuration item. This avoids overlooking dependencies between configuration items, which could lead to conflicting values set for multiple secondary configuration items and negatively impact the final application deployment. Furthermore, when calculating the score of a configuration combination using a weighted summation method, assigning different weights to different configuration items improves the granularity of configuration item management, providing users with better configuration recommendations and thus improving the overall configuration effectiveness for the application to be deployed. For example, when a user instructs to prioritize lower-cost available resources based on cost considerations, this...Setting lower weight values for AZ (Available Zone) configuration items and higher weight values for computing resource specifications allows the final application configuration to select computing resources with better specifications, rather than selecting computing resources with poorer specifications due to excessively high weight values for AZ configuration items. (WO 2024 / 239612 PCT / CN2023 / 138478 9) In practical applications, the configuration module 302 can maintain a configuration item weight file, such as a configuration item weight table, which records the weights corresponding to each configuration item. For example, the configuration item weight file can record the weight values corresponding to each configuration item based on the format shown in Table 2 below. Table 2 Cloud Resource Configuration Item Weights 5 10 15 20 25 30 35 40 45 Thus, when calculating the score of each configuration combination, the configuration module 302 can use the weights of each configuration item recorded in the configuration item weight file to perform a weighted sum of the scores of multiple second configuration items in each configuration combination, thereby calculating the score of each configuration combination. It should be noted that the specific implementation methods for determining the values of one or more second configuration items described above are only illustrative examples. In other possible implementations, the configuration module 302 may also determine the values of the second configuration items in other ways. For example, the configuration module 302 may determine the values of the second configuration items by combining or changing the above implementation methods, and this is not limited. After determining the value of the second configuration item, the configuration module 302 may send it to the application orchestration module 301. S206: The application orchestration module 301 deploys the application in the cloud according to the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. In this embodiment, the following specific implementation examples of deploying applications in the cloud are provided. In the first implementation method, the application orchestration module 301 deploys the application in the cloud according to the value configured by the user for the first configuration item and the value automatically configured by the configuration module 302 for the second configuration item. Specifically, it may allocate the available resources in the cloud environment indicated by the values of the first and second configuration items to the application so as to support the successful operation of the application based on the available resources, thereby realizing the deployment of the application in the cloud. In this way, users only need to provide some configuration parameters, and the remaining configuration parameters can be automatically completed by the application deployment device 300. This reduces the number of parameters that users need to configure during application deployment, thereby improving the efficiency of application deployment in the cloud and reducing the deployment difficulty. Furthermore, the value of the second configuration item indicates that the resources in the cloud environment are available, thus avoiding application deployment failures due to resource unavailability, further improving the efficiency and reducing the difficulty of application deployment. In the second implementation, the application orchestration module 301 can output the second configuration item; specifically, it can output the second configuration item...The client 100 is provided with the information so that it can present the value of the second configuration item to the user. For example, the client 100 can present the user with an interactive interface 1 as shown in Figure 3. This interface 1 includes a custom configuration and a recommended configuration. The custom configuration includes multiple first configuration items and their values, while the recommended configuration includes multiple second configuration items and their values. This allows the user to manually confirm the value of the second configuration item in the recommended configuration. Once the user confirms the value of the second configuration item is appropriate on the client 100, the application orchestration module 301 deploys the application in the cloud based on the value configured for the first configuration item and the automatically configured value for the second configuration item. When a user determines that the value of the second configuration item is inappropriate, the user can modify the value of the second configuration item on the client 100 (in actual applications, the user can modify the values of some of the multiple second configuration items). The application orchestration module 301 can then respond to the user's modification operation for that part of the second configuration item's value, determine the corresponding correction value for that part of the second configuration item, and deploy the application on the cloud, i.e., on the cloud platform 200, based on the value configured for the first configuration item and the correction value configured for the second configuration item. Thus, by having the user confirm (and modify) the value of the second configuration item, not only can the operations required for user application deployment be simplified, configuration efficiency improved, and configuration difficulty reduced, but the final configuration for the application can also meet the user's expectations, improving the user's application deployment experience. In the third implementation method, when the user provides the value of some configuration items (i.e., the first configuration item) based on the configuration template, the configuration module 302 can obtain the historical configuration record corresponding to the configuration template, such as retrieving the historical configuration record from the database shown in Figure 1. The historical configuration records include the values configured for the second configuration item when the application was deployed within a historical time period. For example, configuration module 302 can obtain configuration information for one or more applications used by multiple users with this configuration template within the past year. This configuration information includes the value of the second configuration item (and may also include the value of the first configuration item). Configuration module 302 then provides the historical configuration records corresponding to this configuration template to application orchestration module 301. Application orchestration module 301, through client 100, can not only present the values automatically configured by configuration module 302 for the second configuration item to the user, but also the historical configuration records corresponding to this configuration template. As shown in Figure 4, the interactive interface 2 presented by client 100 can include multiple historical configuration records and the value configured by the current application deployment device 300 for the second configuration item. Further, application WO 2024 / 239612 PCT / CN2023 / 138478 10 5 10 15 20 25 30 35 40 45The orchestration module 301 can also display the success rate of application deployment using various historical configuration records on the interactive interface 2. This allows users to refer to the values configured by other users for the second configuration item within a historical time period (and the corresponding application deployment success rates) to verify whether the value automatically configured for the second configuration item by the current application deployment device 300 is appropriate. When the user confirms on the client 100 that the value of the second configuration item is appropriate, the application orchestration module 301 deploys the application on the cloud based on the values configured for the first configuration item and the automatically configured value for the second configuration item. When the user determines that the value of the second configuration item is inappropriate, the user can modify the value of the second configuration item on the client 100, such as by referring to the configurations of other users for the second configuration item within a historical time period and modifying the value of the second configuration item on the interactive interface 2. Thus, the application orchestration module 301 can deploy the application on the cloud, i.e., on the cloud platform 200, based on the values configured for the first configuration item and the corrected values configured for the second configuration item. Thus, by presenting users with historical configuration records for the second configuration item, a reference is provided for application configuration. Users can then refer to other users' configurations of this second configuration item to make decisions and set appropriate values, thereby improving the user's application deployment experience. It is worth noting that the above implementation of deploying applications in the cloud based on the values of multiple configuration items is only an example. In actual applications, the application orchestration module 301 can also use other methods to deploy applications, and this is not limited. Furthermore, after completing application deployment, the application orchestration module 301 can also provide feedback on the application deployment result to the user through the client 100, such as indicating successful or failed deployment, so that the user is aware of the application deployment status. Moreover, the application orchestration module 301 (or configuration module 302) can also generate new historical configuration records based on the application deployment results generated by the value of the second configuration item and write these new historical configuration records into a database, such as the database shown in Figure 1, to provide configuration references for users when deploying other applications. In the embodiment shown in Figure 2 above, the application deployment device 300 involved in the application deployment process can be software configured on a computing device or a computing device cluster. By running this software on the computing device or computing device cluster, the computing device or computing device cluster can implement the functions of the application deployment device 300. Below, based on the hardware implementation, the application deployment device 300 involved in the application deployment process will be described in detail. Figure 5 shows a schematic diagram of a computing device, on which the application deployment device 300 can be deployed.The device can be a computing device in a cloud environment (such as a server) or a computing device in an edge environment, specifically used to implement the functions of the application deployment device 300 in the embodiment shown in Figure 2. As shown in Figure 5, the computing device 500 includes a processor 510, a memory 520, a communication interface 530, and a bus 540. The processor 510, memory 520, and communication interface 530 communicate with each other via the bus 540. The bus 540 can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into address bus, data bus, control bus, etc. For ease of representation, only one thick line is used in Figure 5, but this does not mean that there is only one bus or one type of bus. The communication interface 530 is used for communication with the outside world, such as receiving configuration templates and deployment instructions provided by the user. The processor 510 can be a central processing unit (CPU), an application-specific integrated circuit (ASIC), a graphics processing unit (GPU), or one or more integrated circuits. The processor 510 can also be an integrated circuit chip with signal processing capabilities. In implementation, the functions of the application deployment device 300 can be accomplished through integrated logic circuits in the hardware of the processor 510 or through software instructions. The processor 510 can also be a general-purpose processor, a digital signal processor (DSP), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components, capable of implementing or executing the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor, etc. The methods disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software modules can reside in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in the memory 520. The processor 510 reads information from the memory 520 and, in conjunction with its hardware, completes some or all of the functions in the application deployment device 300.Memory 520 may include volatile memory, such as random access memory (RAM). Memory 520 may also include non-volatile memory, such as read-only memory (ROM), flash memory, HDD, or SSD. Memory 520 stores executable code, which processor 510 executes to perform the methods performed by the aforementioned application deployment apparatus 300. Specifically, in the case of implementing the embodiment shown in FIG2, and where the application deployment device 300 described in the embodiment shown in FIG2 is implemented by software, the software or program code required to execute the function of the application deployment device 300 in FIG2 is stored in the memory 520. The interaction between the application deployment device 300 and other devices is achieved through the communication interface 530. The processor is used to execute the instructions in the memory 520 to implement the method executed by the application deployment device 300. FIG6 shows a schematic diagram of the structure of a computing device cluster. The computing device cluster 60 shown in FIG6 includes multiple computing devices, and the application deployment device 300 can be distributed and deployed on multiple computing devices in the computing device cluster 60. As shown in FIG6, the computing device cluster 60 includes multiple computing devices 600. Each computing device 600 includes a memory 620, a processor 610, a communication interface 630, and a bus 640. The memory 620, the processor 610, and the communication interface 630 are interconnected through the bus 640. The processor 610 can be a CPU, GPU, ASIC, or one or more integrated circuits. The processor 610 can also be an integrated circuit chip with signal processing capabilities. In the implementation process, some functions of the application deployment device 300 can be accomplished through integrated logic circuits in the hardware of the processor 610 or through instructions in software form. The processor 610 can also be a DSP, FPGA, general-purpose processor, other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components, capable of implementing or executing some of the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor, etc. The steps of the methods disclosed in the embodiments of this application can be directly manifested as execution by a hardware decoding processor, or execution by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, or read-only memory, and are programmable.The memory 620 is a mature storage medium in the art, such as a read-only memory, electrically erasable programmable memory, or registers. In each computing device 600, the processor 610 reads information from the memory 620 and, in conjunction with its hardware, can perform some of the functions of the application deployment device 300. The memory 620 may include ROM, RAM, static storage devices, dynamic storage devices, hard disks (e.g., SSDs, HDDs), etc. The memory 620 can store program code, for example, some or all of the program code for implementing the application orchestration module 301, some or all of the program code for implementing the configuration module 302, and some or all of the program code for implementing the cloud environment feedback module 303, etc. For each computing device 600, when the program code stored in the memory 620 is executed by the processor 610, the processor 610 executes a portion of the methods executed by the application deployment device 300 based on the communication interface 630. For example, a portion of the computing devices 600 can be used to execute the methods executed by the application orchestration module 301, while another portion of the computing devices 600 can be used to execute the methods executed by the configuration module 302 and the cloud environment feedback module 303. The memory 620 can also store data, such as intermediate data or result data generated by the processor 610 during execution, such as multiple candidate values of the second configuration item, the score corresponding to each candidate value, and the value of the second configuration item. The communication interface 603 in each computing device 600 is used for communication with the outside world, such as interacting with other computing devices 600. The bus 640 can be a peripheral component interconnection standard bus or an extended industry standard structure bus, etc. For ease of representation, the bus 640 in each computing device 600 in Figure 6 is represented by only one thick line, but this does not mean that there is only one bus or one type of bus. The aforementioned multiple computing devices 600 establish communication paths through a communication network to realize the functions of the application deployment device 300. Any computing device can be a computing device in a cloud environment (e.g., a server) or a computing device in an edge environment. Furthermore, this application embodiment also provides a computer-readable storage medium storing instructions that, when executed on one or more computing devices, cause the one or more computing devices to perform the methods executed by the application deployment device 300 of the above embodiments. Additionally, this application embodiment also provides a computer program product, which, when executed by one or more computing devices, causes the one or more computing devices to perform any of the aforementioned application deployment methods. This computer program product can be a software installation package; when any of the aforementioned application deployment methods needs to be used, the computer program product can be downloaded and executed on a computer. It should also be noted that the embodiments described above are merely illustrative, and the units described as separate components may be...Alternatively, the components may not be physically separated. The components displayed as units may or may not be physical units; they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Furthermore, in the accompanying drawings of the embodiments provided in this application, the connection relationship between modules indicates that they have a communication connection, specifically implemented as one or more communication buses or signal lines. Through the above description of the embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus necessary general-purpose hardware, or it can be implemented by dedicated hardware including dedicated integrated circuits, dedicated CPUs, dedicated memory, dedicated components, etc. Generally, any function performed by a computer program can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can be diverse, such as analog circuits, digital circuits, or dedicated circuits. However, for this application, software implementation is more often a preferred implementation method. Based on this understanding, the technical solution of this application, in essence or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a readable storage medium, such as a computer floppy disk, USB flash drive, portable hard drive, ROM, RAM, magnetic disk, or optical disk, and includes several instructions to cause a computer device (which may be a personal computer, training equipment, or network device, etc.) to execute the methods described in the various embodiments of this application. In the above embodiments, it can be implemented entirely or partially by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, training device, or data center to another via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium can be any available medium that a computer can store, or a training device or data center that integrates one or more available media.Data storage devices, etc. The available media may be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state drives (SSDs)). WO 2024 / 239612 PCT / CN2023 / 138478 13 5 10 15 20 25 30 35 40 45 Claim 1. An application deployment method, characterized in that the method comprises: obtaining a configuration template provided by a user, the configuration template including multiple configuration items for the application, the multiple configuration items including a first configuration item and a second configuration item, the value of the first configuration item being configured by the user, the multiple configuration items being used to configure resources in a cloud environment required for deploying the application; obtaining at least one available resource in the cloud environment that matches the second configuration item, the available resource including at least one of computing resources, storage resources, and network resources; determining the value of the second configuration item based on the at least one available resource, the value of the second configuration item being used to indicate a target resource among the at least one available resource; deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. 2. The method according to claim 1, characterized in that the method further comprises: obtaining deployment instruction information, the deployment instruction information being used to instruct the selection of available resources from the cloud environment based on target factors for the second configuration item, the target factors including one or more factors of the application's functionality, performance, and cost; then, determining the value of the second configuration item based on the at least one available resource comprises: determining the value of the second configuration item based on the deployment instruction information and the at least one available resource. 3. The method according to claim 1 or 2, characterized in that, determining the value of the second configuration item based on the at least one available resource comprises: obtaining scores corresponding to a plurality of candidate values of the second configuration item, each of the plurality of candidate values being used to indicate an available resource in the cloud environment; determining the value of the second configuration item based on the scores corresponding to the plurality of candidate values. 4. The method according to claim 3, wherein the number of the second configuration items is multiple, and each second configuration item corresponds to at least one candidate value; the step of determining the value of the second configuration item according to the scores corresponding to the multiple candidate values includes: determining multiple configuration combinations, each configuration combination including the multiple second configuration items and a candidate value corresponding to each of the multiple second configuration items, wherein the candidate values corresponding to the multiple second configuration items are different in different configuration combinations;The method comprises: determining a score for each of the plurality of configuration combinations, wherein the score for each configuration combination is calculated based on the scores of the candidate values corresponding to the plurality of second configuration items; determining a target configuration combination from the plurality of configuration combinations based on the scores of each configuration combination, wherein the candidate values in the target configuration combination are the values of the plurality of second configuration items. 5. The method according to claim 3, wherein the plurality of candidate values includes a target candidate value, the score of the target candidate value is the sum of a base score and a preferred score, and the preferred score is determined based on the preferred level of the target candidate value; the method further comprises: adjusting the score of the target candidate value in response to an adjustment operation for the preferred level of the target candidate value. 6. The method according to any one of claims 1 to 5, wherein deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item comprises: outputting the value of the second configuration item for presentation to the user; determining a correction value corresponding to the second configuration item in response to a user's modification operation on the value of the second configuration item; and deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the correction value corresponding to the second configuration item. 7. The method according to any one of claims 1 to 5, characterized in that, the step of deploying the application on the cloud according to the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item includes: outputting the value of the second configuration item for presentation to the user, and a historical configuration record corresponding to the configuration template, wherein the historical configuration record includes the value configured for the second configuration item when deploying the application within a historical time period; WO 2024 / 239612 PCT / CN2023 / 138478 14 5 10 15 20 25 30 35 40 45 In response to the user's selection operation for the value of the second configuration item, the application is deployed on the cloud according to the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. 8. An application deployment apparatus, characterized in that the apparatus comprises: an application orchestration module, configured to acquire a configuration template provided by a user, the configuration template including multiple configuration items for the application, the multiple configuration items including a first configuration item and a second configuration item, the value of the first configuration item being configured by the user, the multiple configuration items being used to configure resources in a cloud environment required for deploying the application; and a cloud environment feedback module, configured to acquire at least one available resource in the cloud environment matching the second configuration item, the available resource including at least one of computing resources, storage resources, and network resources;A configuration module is configured to determine the value of the second configuration item based on the at least one available resource, wherein the value of the second configuration item is used to indicate a target resource among the at least one available resource; the application orchestration module is further configured to deploy the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. 9. The apparatus according to claim 8, wherein the application orchestration module is further configured to: obtain deployment instruction information, wherein the deployment instruction information is used to indicate the selection of available resources from the cloud environment based on target factors for the second configuration item, wherein the target factors include one or more factors among the application's functionality, performance, and cost; the configuration module is specifically configured to: determine the value of the second configuration item based on the deployment instruction information and the at least one available resource. 10. The apparatus according to claim 8 or 9, wherein the configuration module is specifically configured to: obtain scores corresponding to a plurality of candidate values of the second configuration item, wherein each candidate value among the plurality of candidate values is used to indicate an available resource in the cloud environment; and determine the value of the second configuration item based on the scores corresponding to the plurality of candidate values. 11. The apparatus according to claim 10, wherein the number of the second configuration items is plurality, each second configuration item corresponds to at least one candidate value, and the configuration module is specifically configured to: determine a plurality of configuration combinations, each configuration combination including the plurality of second configuration items and a candidate value corresponding to each of the plurality of second configuration items, wherein the candidate values corresponding to the plurality of second configuration items are different in different configuration combinations; determine a score for each configuration combination, the score for each configuration combination being calculated based on the scores of the candidate values corresponding to the plurality of second configuration items; determine a target configuration combination from the plurality of configuration combinations based on the scores of each configuration combination, wherein the candidate values in the target configuration combination are the values of the plurality of second configuration items. 12. The apparatus according to claim 10, wherein the plurality of candidate values includes a target candidate value, the score of the target candidate value is the sum of a base score and a preferred score, and the preferred score is determined based on the preferred level of the target candidate value; the configuration module is further configured to: adjust the score of the target candidate value in response to an adjustment operation on the preferred level of the target candidate value. 13. The apparatus according to any one of claims 8 to 12, wherein the application orchestration module is specifically configured to: output the value of the second configuration item for presentation to the user; determine a correction value corresponding to the second configuration item in response to a user's modification operation on the value of the second configuration item; and, based on the first configuration item, the value of the first configuration item, the second configuration item, and the correction value corresponding to the second configuration item, in...deploying the application on the cloud. 14. The device according to any one of claims 8 to 12, characterized in that the application orchestration module is specifically configured to: output the value of the second configuration item for presentation to a user and the historical configuration record corresponding to the configuration template, wherein the historical configuration record comprises values configured for the second configuration item when the application is deployed within a historical time period; and in response to a user's selection operation on the value of the second configuration item, deploying the application on the cloud according to the first configuration item, the value of the first configuration item, the second configuration item and the value of the second configuration item. 15. A cluster of computing devices, characterized by comprising at least one computing device, each computing device comprising a processor and a memory; the processor is configured to execute instructions stored in the memory, so that the computing device cluster performs the method according to any one of claims 1 to 7. WO 2024 / 239612 PCT / CN2023 / 138478 15 16. A computer-readable storage medium, characterized in that instructions are stored in the computer-readable storage medium, and when the instructions run on at least one computing device, the instructions cause the at least one computing device to perform the method according to any one of claims 1 to 7. WO 2024 / 239612 PCT / CN2023 / 138478 1 / 4 Application Deployment System 10 Figure 1 WO 2024 / 239612 PCT / CN2023 / 138478 2 / 4 Figure 2 WO 2024 / 239612 PCT / CN2023 / 138478 3 / 4 Interactive Interface 1 < Λ Configuration for application Custom configuration / First configuration item 1 ( ) First configuration item 2 ( ) First configuration item 3 ( ) Recommended configuration Second configuration item 1 ( ) Second configuration item 2 ( ) Second configuration item 3 ( ) Figure 3 Interactive Interface 2 / λ Configuration for application Custom configuration ▼Recommended configuration A P \ I Second configuration item 1 ( ) ! ! Second configuration item 2 ( ) ! ! Second configuration item 3 ( ) ! Historical configuration records based on configuration template | Historical configuration record 1 1| Details g | Historical configuration record 2 ―| Details ψ | Historical configuration record 3 ―| Details v Figure 4 WO 2024 / 239612 PCT / CN2023 / 138478 4 / 4 Computing Device 500 Processor 510 Communication Interface 530 A Bus 540 | Program code | | Data ] Memory 520 Figure 5 y Figure 6 INTERNATIONAL SEARCH REPORT International application No. PCT / CN2023 / 138478 A. CLASSIFICATION OF SUBJECTMATTER G06F8 / 60(2018.01)i; G06F9 / 50(2006.01)i According to International Patent Classification (IPC) or to both national classification and IPC B. FIELDS SEARCHED Minimum documentation searched (classification system followed by classification symbols) IPC: G06F Documentation searched other than minimum documentation to the extent that such documents are included in the fields searched Electronic data base consulted during the international search (name of data base and, where practicable, search terms used) VEN, CNTXT, USTXT, DWPI, CNKI, IEEE: cloud, application deployment, configuration, available resource, template, orchestration, user, automatic C. DOCUMENTS CONSIDERED TO BE RELEVANT Category* Citation of document, with indication, where appropriate, of the relevant passages Relevant to claim No. A CN 111580977 A (TRAVELSKY TECHNOLOGY LIMITED) 25 August 2020 (2020-08-25) description, paragraphs 133-135 1-16 A CN 104317642 A (HUAWEI TECHNOLOGIES CO.,LTD.) 28 January 2015 (2015-01-28) entire document 1-16 A CN 111897541 A (SHANGHAI HI-COLD SUPPLY CHAIN INFORMATION TECHNOLOGY CO., LTD.) 06 November 2020 (2020-11-06) entire document 1-16 A CN 111880811 A (INSPUR CLOUD INFORMATION TECHNOLOGY CO., LTD.) 03 November 2020 (2020-11-03) entire document 1-16 A US 2017289060 Al (AT&T INTELLECTUAL PROPERTY I, L.P.) 05 October 2017 (2017-10-05) entire document 1-16 A US 2023110722 Al (HUMANA INC.) 13 April 2023 (2023-04-13) entire document 1-16 | | Further documents are listed in the continuation of Box C. | / 1 See patent family annex. * Special categories of cited documents: “T" later document published after the international filing date or priority “A" document defining the general state of the art which is not considered date and not in conflict with the application but cited to understand the to be of paiticulai' relevance principle or theory underlying the invention "D” document cited by the applicant in the international application “χ”document of particular relevance; the claimed invention cannot be “E” eailier application or patent but published on or after the international considered novel or cannot be considered to involve an inventive step filing date when the document is taken alone “L" document which may thi'ow doubts on priority claim(s) or which is “Y" document of paiticulai' relevance; the claimed invention cannot be cited to establish the publication date of another citation or other considered to involve an inventive step when the document is special reason (as specified) combined with one or more other such documents, such combination "O” document refen'ing to an oral disclosure, use, exhibition or other being obvious to a person skilled in the art means document member of the same patent family "P” document published prior to the international filing date but later than the priority date claimed Date of the actual completion of the international search 18 February 2024 Date of mailing of theinternational search report 28 February 2024 Name and mailing address of the ISA / CN China National Intellectual Property Administration (ISA / CN) China No. 6, Xitucheng Road, Jimenqiao, Haidian District, Beijing 100088 Authorized officer Telephone No. Form PCT / ISA / 210 (second sheet) (July 2022) International application No. PCT / CN2023 / 138478 INTERNATIONAL SEARCH REPORT Information on patent family members Patent document cited in search report Publication date (day / month / year) Patent family member(s) Publication date (day / month / year) CN 111580977 A 25 August 2020 None CN 104317642 A 28 January 2015 None CN 111897541 A 06 November 2020 None CN 111880811 A 03 November 2020 None US 2017289060 Al 05 October 2017 US 2023198857 Al 22 June 2023 US 2022086055 Al 17 March 2022 US 2023110722 Al 13 April 2023 None Form PCT / ISA / 210 (patent family annex) (July 2022) International Application Number PCT / CN2023 / 138478 International Search Report A. Subject Classification G06F8 / 60 (2018.01)i; G06F9 / 50 (2006.01)i According to the International Patent Classification (IPC) or both national classification and IPC classification B. Search FieldMinimum literature retrieved (indicating classification system and classification number) IPC: G06F Electronic databases consulted during international searches, excluding the minimum literature retrieved, in addition to the literature in the search field (database name and search terms used, if applicable) VEN, CNTXT, USTXT, DWPI, CNKI, IEEE: cloud, application, deployment, configuration, available, resource, template, orchestration, user, automatic c. Relevant document types* Referenced documents, indicating relevant paragraphs where necessary Relevant claims A CN 111580977 A (China Civil Aviation Information Network Co., Ltd.) August 25, 2020 (2020-08-25) Specification paragraphs 133-135 1-16 A CN 104317642 A (Huawei Technologies Co., Ltd.) January 28, 2015 (2015-01-28) Full text 1-16 A CN 111897541 A (Shanghai Hicool Strong Supply Chain Information Technology Co., Ltd.) November 6, 2020 (2020-11-06) Full text 1-16 A CN 111880811 A (Inspur Cloud Information Technology Co., Ltd.) November 3, 2020 (2020-11-03) Full text 1-16 A US 2017289060 A1 (AT & T INTELLECTUAL PROPERTY I, LP) October 5, 2017 (2017-10-05) Full text 1-16 A US 2023110722 A1 (HUMANA INC.) April 13, 2023 (2023-04-13) Full text 1-16 □ The remaining documents are listed on the continuation page in column C. *Specific types of cited documents: "A" Documents deemed not particularly relevant that describe the general state of the prior art; "D" Documents cited by the applicant in an international application; "E" Prior applications or patents published on or after the international filing date; "L" Documents that may cast doubt on the priority claim, or documents cited to determine the publication date of another cited document, or documents cited for other specific reasons (as specifically stated); Documents involving oral disclosure, use, exhibition, or other forms of disclosure; "P" Documents published before the international filing date but after the claimed priority date (see appendix to the patent family); "T" Documents published after the filing date or priority date, not in conflict with the application, but for the purpose of understanding...Documents whose inventive theory or principle differ particularly from subsequent documents "X", considered alone, are deemed not novel or lacking inventiveness of the claimed invention, or documents particularly related to "Y", when such documents are not combined with any other documents of the same type and such combination is obviously difficult for those skilled in the art to understand, the claimed invention lacks inventiveness. International search of patent family documents: Date of actual completion: February 18, 2024; Name and mailing address of ISA / CN: China National Intellectual Property Administration, No. 6, Tucheng Road, Xijimenqiao, Haidian District, Beijing 100088, China; Mailing date of international search report: February 28, 2024; Authorized officer: Kong Xin; Telephone number: (+86) 010-53961371; PCT / ISA / 210 Form (Page 2) (July 2022); International Application Number: PCT / CN2023 / 138478; International Search Report: Information search report on patent family; Publication date of cited patent documents (year / month / day). Publication Date of Patent Family (Year / Month / Day) CN 111580977 A August 25, 2020 None CN 104317642 A January 28, 2015 None CN 111897541 A November 6, 2020 None CN 111880811 A November 3, 2020 None US 2017289060 A1 October 5, 2017 US 2023198857 A1 June 22, 2023 US 2022086055 A1 March 17, 2022 US 2023110722 A1 April 13, 2023 None PCT / ISA / 210 Form (Appendix to Patent Family) (July 2022) (19) *EP004700566A1* (11) EP 4 700 566 A1 (12) EUROPEAN PATENT APPLICATION published in accordance with Art. 153(4) EPC (43) Date of publication: 25.02.2026 Bulletin 2026 / 09 (21) Application number: 23938279.9 (22) Date of filing: 13.12.2023 (51) International Patent Classification (IPC): G06F 8 / 60 (2018.01) G06F 9 / 50 (2006.01) (52) Cooperative Patent Classification (CPC):G06F 8 / 60; G06F 8 / 71; G06F 9 / 50 (86) International application number: PCT / CN2023 / 138478 (87) International publication number: WO 2024 / 239612 (28.11.2024 Gazette 2024 / 48) (84) Designated Contracting States: AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR Designated Extension States: BA Designated Validation States: KH MA MD TN (30) Priority: 19.05.2023 CN 202310573141 11.07.2023 CN 202310847475 (71) Applicant: Huawei Cloud Computing Technologies Co., Ltd. Guiyang, Guizhou 550025 (CN) (72) Inventors: • LIANG, Ming Guiyang, Guizhou 550025 (CN) • YE, Liangfeng Guiyang, Guizhou 550025 (CN) • YUE, Xiaoming Guiyang, Guizhou 550025 (CN) (74) Representative: Goddar, Heinz J. Boehmert & Boehmert Anwaltspartnerschaft mbB Pettenkoferstrasse 22 80336 München (DE) (54) METHOD AND APPARATUS FOR APPLICATION DEPLOYMENT, AND RELATED DEVICE (57) This application provides an application deploy- ment method, including: obtaining aconfiguration tem- plate provided by a user, where the configuration tem- plate includes a first configuration item and a second configuration item, and a value of the first configuration item is configured by the user; obtaining at least one available resource that matches the second configura- tion item and that is in a cloud environment; and deter- mining a value of the second configuration item based on the at least one available resource, to deploy an applica- tion on a cloud based on the first configuration item, the value that is of the first configuration item and that is specified by the user, the second configuration item, and the value that is of the second configuration item and that is automatically determined by an application deploy- ment apparatus. In this way, values of remaining config- uration items that are not configured by the user are automatically determined based on a currently available resource in the cloud environment. This can effectively improve a successrate of application deployment, and the user does not need to rectify an application deploy- ment exception in a repeated trial and error manner, thereby improving efficiency of deploying the application on the cloud by the user and reducing deployment diffi- culty. In addition, this application further provides a cor- responding application deployment apparatus and a re- lated device. EP 4 70 0 56 6 A 1 Processed by Luminess, 75001 PARIS (FR) Description
[0001] This application claims priorities to Chinese Patent Application No. 202310573141.1, filed with the China National Intellectual Property Administration on May 19, 2023 and entitled "APPLICATION DEPLOYMENT METHOD AND APPARATUS, AND RELATED DEVICE", and to Chinese Patent Application No. 202310847475.3, filed with the China National Intellectual Property Administration on July 11, 2023 and entitled "APPLICATION DEPLOYMENT METHOD AND APPARATUS, AND RELATED DEVICE", both of which are incorporated herein by reference in theirentireties. TECHNICAL FIELD
[0002] This application relates to the field of cloud computing technologies, and in particular, to an application deployment method and apparatus, and a related device. BACKGROUND
[0003] An application orchestration service (application orchestration service, AOS) is a service for automatically deploying and orchestrating applications on a cloud platform, and can implement one-click application creation and cloud service resource activation on a cloud and provide efficient cloud application replication and migration capabilities.
[0004] Currently, in a process of deploying an application on the cloud, the application orchestration service provides a template for a user, and the user inputs values of a plurality of configuration items into the template, so that the application orchestration service can deploy the application on the cloud based on the values of the plurality of configuration items in the template.
[0005] However, in an actual applicationscenario, the application orchestration service often feeds back an application deployment failure to the user. In this case, the user needs to rectify a deployment exception in a repeated trial and error manner or the like. As a result, efficiency of deploying the application on the cloud by the user is reduced and deployment difficulty is increased. SUMMARY
[0006] In view of this, embodiments of this application provide an application deployment method, to improve efficiency of deploying an application on a cloud by a user and reduce deployment difficulty. This application further provides a corresponding application deployment apparatus, a computing device cluster, a computer-readable storage medium, and a computer program product.
[0007] According to a first aspect, an embodiment of this application provides an application deployment method. The method may be performed by a corresponding application deployment apparatus. Specifically, the application deployment apparatus obtains aconfiguration template provided by a user, where the configuration template may be a configuration template customized by the user, or may be a configuration template obtained by completing configuration by the user for some configuration items in a configuration template provided by the application deployment apparatus, and the configuration template includes a plurality of configuration items for an application. The plurality of configuration items include a first configuration item and a second configuration item, a value of the first configuration item is configured by the user, a value of the second configuration item is not configured by the user, and the plurality of configuration items are used to configure a resource that is in a cloud environment and that is required for deploying the application. Then, the application deployment apparatus obtains at least one available resource that matches the second configuration item and that is in the cloud environment, where theavailable resource includes at least one of a computing resource, a storage resource, and a network resource; and determines the value of the second configuration item based on the at least one available resource, where the determined value of the second configuration item indicates a target resource in the at least one available resource. In this way, the application deployment apparatus deploys the application on a cloud based on the first configuration item, the value that is of the first configuration item and that is specified by the user, the second configuration item, and the value that is of the second configuration item and that is automatically determined by the application deployment apparatus.
[0008] In this way, the application deployment apparatus automatically determines, based on a currently available resource in the cloud environment, values of remaining configuration items that are not configured by the user, so that when the application is deployed based on thevalues of the part of configuration items, an application deployment failure caused by unavailability of resources corresponding to the values of the part of configuration items can be avoided. This can effectively improve a success rate of application deployment, and the user does not need to rectify an exception in an application deployment process in a repeated trial and error manner, thereby improving efficiency of deploying the application on the cloud by the user and reducing deployment difficulty. In addition, that the application deployment 2 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 apparatus automatically determines the values of the part of configuration items that are not configured by the user can also effectively reduce a quantity of parameters that need to be configured by the user. This further improves efficiency of deploying the application on the cloud by the user and reducing deployment difficulty.
[0009] In a possible implementation, the applicationdeployment apparatus may further obtain deployment indication information, where the deployment indication information indicates to select an available resource from the cloud environment for the second configuration item based on a target factor (that is, indicates a preference of the user for selecting a resource for the second configuration item), and the target factor includes one or more factors in a function, performance, and costs of the application. In this case, when determining the value of the second configuration item, the application deployment apparatus may specifically determine the value of the second configuration item based on the deployment indication information and the at least one available resource. In this way, the application processing apparatus selects, based on the deployment indication information, an appropriate available resource for the application that needs to be deployed (that is, determines the value of the second configuration item), so that theavailable resource allocated to the application can better meet an expectation of the user. For example, a low-cost / high-performance resource that meets an expectation of the user may be selected for application deployment. This improves user experience.
[0010] In a possible implementation, when determining the value of the second configuration item, the application deployment apparatus may specifically first obtain scores respectively corresponding to a plurality of candidate values of the second configuration item, where each of the plurality of candidate values indicates an available resource in the cloud environment; and then determine the value of the second configuration item based on the scores respectively corre- sponding to the plurality of candidate values. In this way, the application deployment apparatus may automatically determine an appropriate value for the second configuration item based on a scoring mechanism, that is, automatically select an appropriate resource fromthe cloud environment for application deployment.
[0011] In a possible implementation, there are a plurality of second configuration items, and each second configuration item corresponds to at least one candidate value. In this case, when determining the value of the second configuration item, the application deployment apparatus may specifically first determine a plurality of configuration combinations, where each of the plurality of configuration combinations includes the plurality of second configuration items and one candidate value corresponding to each of the plurality of second configuration items, and candidate values respectively corresponding to the plurality of second configuration items vary in different configuration combinations. Then, the application deployment apparatus determines a score of each of the plurality of configuration combinations, where the score of each configuration combination is obtained through calculation based on scores of candidate valuesrespectively corresponding to the plurality of second configuration items; and determines a target configuration combination from the plurality of configuration combinations based on the score of each configuration combination, where candidate values in the target configuration combination are values of the plurality of second configuration items. In this way, the values of the plurality of second configuration items are determined in a configuration combination manner. This may prevent final application deployment effect from being affected due to a conflict between values set for the plurality of second configuration items caused by ignoring a dependency relationship between configuration items.
[0012] In a possible implementation, the plurality of candidate values of the second configuration item include a target candidate value, a score of the target candidate value is a sum value of a basic score and a preference score, and the preference score is determined based on a preferencelevel of the target candidate value. In this case, the application deployment apparatus may further adjust the score of the target candidate value in response to an adjustment operation (for example, of an administrator) on the preference level of the target candidate value. In this way, a preference level of a candidate value is adjusted, so that a score of the candidate value in a resource configuration process may be adjusted, to facilitate fine-granularity management and control over an available resource in the cloud environment. For example, a preference level of a candidate value corresponding to an available resource in some AZs may be adjusted, so that a score of the candidate value may be increased. In this way, the available resource in the AZs may be preferentially allocated to the application that needs to be deployed, to implement resource management in the cloud environment.
[0013] In a possible implementation, when deploying the application on the cloud, the applicationdeployment apparatus may specifically first output the value that is of the second configuration item and that is for presentation to the user, and determine, in response to a modification operation of the user on the value of the second configuration item, a modified value corresponding to the second configuration item, so that the application deployment apparatus deploys the application on the cloud based on the first configuration item, the value that is of the first configuration item and that is specified by the user, the second configuration item, and the modified value that corresponds to the second configuration item and that is modified by the user. In this way, that the user modifies (or confirms) the value of the second configuration item can simplify an operation that needs to be performed by the user when deploying the application, improve configuration efficiency, and reduce configuration difficulty, and can also make a final configuration for the application further meetan expectation of the user, to improve user experience of deploying the application.
[0014] In a possible implementation, when deploying the application on the cloud, the application deployment apparatus may specifically first output a value that is of the second configuration item and that is for presentation to the user, and a 3 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 historical configuration record corresponding to the configuration template, where the historical configuration record includes a value configured for the second configuration item when an application is deployed in a historical time period, so that the application deployment apparatus may deploy the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item in response to a selection operation of the user on the value of the second configuration item. In this way, the historicalconfiguration record for the second configuration item is presented to the user, to provide a reference for the user to configure an application, so that the user can makea decision by referring to aconfiguration situation of another user for the second configuration item, and set an appropriate value for the second configuration item. This can improve user experience of deploying the application.
[0015] According to a second aspect, this application provides an application deployment apparatus. The application deployment apparatus includes: an application orchestration module, configured to obtain a configuration template provided by a user, where the configuration template includes a plurality of configuration items for an application, the plurality of configuration items includes a first configuration item and a second configuration item, a value of the first configuration item is configured by the user, and the plurality of configuration items are used to configure a resource thatis in a cloud environment and that is required for deploying the application; a cloud environment feedback module, configured to obtain at least one available resource that matches the second configuration item and that is in the cloud environment, where the available resource includes at least one of a computing resource, a storage resource, and a network resource; and a configuration module, configured to determine a value of the second configuration item based on the at least one available resource, where the value of the second configuration item indicates a target resource in the at least one available resource; and the application orchestration module is further configured to deploy the application on a cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item.
[0016] In a possible implementation, the application orchestration module is further configured to obtaindeployment indication information, where the deployment indication information indicates to select an available resource from the cloud environment for the second configuration item based on a target factor, and the target factor includes one or more factors in a function, performance, and costs of the application; and the configuration module is specifically configured to determine the value of the second configuration item based on the deployment indication information and the at least one available resource.
[0017] In a possible implementation, the configuration module is specifically configured to: obtain scores respectively corresponding to a plurality of candidate values of the second configuration item, where each of the plurality of candidate values indicates an available resource in the cloud environment; and determine the value of the second configuration item based on the scores respectively corresponding to the plurality of candidate values.
[0018] In a possibleimplementation, there are a plurality of second configuration items, each second configuration item corresponds to at least one candidate value, and the configuration module is specifically configured to: determine a plurality of configuration combinations, where each of the plurality of configuration combinations includes the plurality of second configuration items and one candidate value corresponding to each of the plurality of second configuration items, and candidate values respectively corresponding to the plurality of second configuration items vary in different config- uration combinations; determine a score of each of the plurality of configuration combinations, where the score of each configuration combination is obtained through calculation based on scores of candidate values respectively correspond- ing to the plurality of second configuration items; and determine a target configuration combination from the plurality of configuration combinations based on the score of eachconfiguration combination, where candidate values in the target configuration combination are values of the plurality of second configuration items.
[0019] In a possible implementation, the plurality of candidate values include a target candidate value, a score of the target candidate value is a sum value of a basic score and a preference score, and the preference score is determined based on a preference level of the target candidate value; and the configuration module is further configured to: in response to an adjustment operation on the preference level of the target candidate value, adjust the score of the target candidate value.
[0020] In a possible implementation, the application orchestration module is specifically configured to: output the value that is of the second configuration item and that is for presentation to the user; in response to a modification operation of the user on the value of the second configuration item, determine a modified value corresponding to thesecond configuration item; and deploy the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the modified value corresponding to the second configuration item.
[0021] In a possible implementation, the application orchestration module is specifically configured to: output the value that is of the second configuration item and that is for presentation to the user, and a historical configuration record corresponding to the configuration template, where the historical configuration record includes a value configured for the second configuration item when an application is deployed in a historical time period; and in response to a selection operation of the user on the value of the second configuration item, deploy the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second 4 EP 4 700 566 A1 510 15 20 25 30 35 40 45 50 55 configuration item.
[0022] It should be noted that the application deployment apparatus provided in the second aspect corresponds to the application deployment method provided in the first aspect. Therefore, for technical effects of the second aspect and any one of the implementations of the second aspect, refer to technical effects of the first aspect or a corresponding implementation of the first aspect.
[0023] According to a third aspect, this application provides a computing device cluster. The computing device includes at least one computing device. The at least one computing device includes at least one processor and at least one memory. The at least one memory is configured to store instructions. The at least one processor executes the instructions stored in the at least one memory, so that the computing device cluster performs the application deployment method according to any one of the first aspect or the possible implementations of the firstaspect. It should be noted that the memory may be integrated into the processor, or may be independent of the processor. The at least one computing device may further include a bus. The processor is connected to the memory through the bus. The memory may include a readable memory and a random access memory.
[0024] According to a fourth aspect, this application provides a computer-readable storage medium. The computer- readable storage medium stores instructions. When the instructions are run on at least one computing device, the at least one computing device is enabled to perform the method according to any one of the first aspect or the implementations of the first aspect.
[0025] According to a fifth aspect, this application provides acomputer program product including instructions. When the computer program product is run on at least one computing device, the at least one computing device is enabled to perform the method according to any one of the first aspect or the implementationsof the first aspect.
[0026] In this application, based on implementations provided in the foregoing aspects, the implementations may be further combined to provide more implementations. BRIEF DESCRIPTION OF DRAWINGS
[0027] To describe technical solutions in embodiments of this application more clearly, the following briefly describes accompanying drawings used in describing embodiments. It is clear that the accompanying drawings in the following descriptions show merely some embodiments of this application, and a person of ordinary skill in the art may still derive other drawings from these accompanying drawings. FIG. 1 is a diagram of a structure of an example application deployment system according to this application; FIG. 2 is a schematic flowchart of an application deployment method according to this application; FIG. 3 is a diagram of an example interaction interface 1 according to this application; FIG. 4 is a diagram of another example interaction interface 2 according to thisapplication; FIG. 5 is a diagram of a structure of a computing device according to this application; and FIG. 6 is a diagram of a structure of a computing device cluster according to this application. DESCRIPTION OF EMBODIMENTS
[0028] The following describes the solutions in embodiments provided in this application with reference to the accompanying drawings in this application.
[0029] In the specification, claims, and accompanying drawings of this application, the terms "first", "second", and the like are intended to distinguish between similar objects but do not necessarily indicate a specific order or sequence. It should be understood that the terms used in such a way are interchangeable in proper circumstances, and this is merely a discrimination manner for describing objects with a same attribute in embodiments of this application.
[0030] FIG. 1 is a diagram of a structure of an example application deployment system according to this application. As shown in FIG. 1, theapplication deployment system 10 includes a client 100, a cloud platform 200, and an application deployment apparatus 300. The client 100, the cloud platform 200, and the application deployment apparatus 300 may communicate with each other through a network.
[0031] The client 100 may be an application run on a user-side device, or may be a network browser provided by the application deployment system 10 for the outside, or the like. FIG. 1 shows only one client included in the application deployment system 10. During actual application, the application deployment system 10 may include any quantity of clients. This is not limited herein.
[0032] The cloud platform 200 is a platform that provides computing, network, and storage capabilities based on services of a hardware resource and a software resource. One or more applications may be deployed on the cloud platform 200, and the application can provide a corresponding cloud service during running, for example, an elastic cloud server(Elastic Cloud Server, ECS) or a cloud storage service.
[0033] The application deployment apparatus 300 includes an application orchestration module 301, a configuration 5 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 module 302, and a cloud environment feedback module 303, to provide convenience for a user to deploy an application on the cloud platform 200. During actual application, the application deployment apparatus 300 may be deployed on a cloud, and is configured to provide a cloud service for the user to deploy an application.
[0034] Usually, the application deployment apparatus 300 may provide aconfiguration template for the user via the client 100. The configuration template may be a text description file in a YAML format or a JSON format, and may define a plurality of configuration items required for deploying an application. The plurality of configuration items are used to configure a resource that is in a cloud environment and that is required for deploying theapplication, for example, configure a region (region) and an availability zone (availability zone, AZ) in which the application is located, and a specification of a processor and a memory specification that support application running. The user inputs, on the client 100, a value of each configuration item in the configuration template, so that the application deployment apparatus 300 may deploy a corresponding application on the cloud platform 200 based on the value of each configuration item in the configuration template.
[0035] However, resource usage in the cloud environment is in a dynamic change state. Therefore, in a process of deploying an application, a quantity / specification that is of a resource and that is indicated by values that are of some configuration items and that are input by the user into the configuration template may not meet a resource requirement of the application when the application is run. Consequently, the application fails to be deployed on the cloudplatform 200. For example, the user configures, in the configuration template, a resource of a specification of 4U8G (namely, four processors and 8G memory) in an AZ 1 for the application. In an actual application scenario, a quantity of processors that are not allocated in a remaining computing resource in the AZ 1 may be less than 4, or a size of a memory resource that is not allocated may be less than 8G. As a result, a remaining available computing resource in the AZ 1 cannot meet a resource requirement during application deployment, and consequently, the application fails to be deployed. In this case, the user usually modifies a value of a corresponding configuration item in the configuration template in a trial and error manner, and attempts to request, based on a modified configuration template, the application deployment apparatus 300 to deploy the application again. In this way, the user rectifies a deployment exception in a repeated trial and error manner. This leads to lowefficiency of deploying the application on the cloud platform 200 and high deployment difficulty.
[0036] In view of this, this application provides an application deployment method. The application deployment apparatus 300 automatically sets appropriate values for some configuration items, to improve application deployment efficiency and reduce application deployment difficulty. During specific implementation, the user may input corresponding values on the client 100 for some configuration items in the configuration template, for example, configure a specification of a computing resource required for supporting application running, and may not configure a region or an AZ in which the application is located. Then, the application orchestration module 301 may obtain the configuration template provided by the client 100, traverse the configuration template, determine the remaining configuration items that are not configured by the user, and provide, for the configuration module 302, theremaining configuration items that are not configured by the user. After that, the configuration module 302 may indicate the cloud environment feedback module 303 to collect one or more available resources that are in the cloud environment and that match the configuration item that is not configured by the user, where the resource includes at least one of a computing resource, a storage resource, and a network resource; determine values of the part of configuration items based on the one or more available resources; and feed back the values to the application orchestration module 301. In this way, the application orchestration module 301 may deploy the application on the cloud based on the values defined by the user in the configuration template for some configuration items and the values that are of the remaining configuration items and that are fed back by the configuration module 302, which may be specifically deploying the application on the cloud platform 200.
[0037] In this way,the application deployment apparatus 300 automatically determines, based on a currently available resource in the cloud environment, the values of the remaining configuration items that are not configured by the user, so that when the application is deployed based on the values of the part of configuration items, an application deployment failure caused by unavailability of resources corresponding to the values of the part of configuration items (for example, the resources have been allocated to another application) can be avoided. This can effectively improve a success rate of application deployment, and the user does not need to rectify a deployment exception in a repeated trial and error manner, thereby improving efficiency of deploying the application on the cloud by the user and reducing deployment difficulty. In addition, that the application deployment apparatus 300 automatically determines the values of the part of configuration items that are not configured by the user canalso effectively reduce a quantity of parameters that need to be configured by the user. This further improves efficiency of deploying the application on the cloud by the user and reducing deployment difficulty.
[0038] It should be noted that the application deployment system 10 shown in FIG. 1 is merely used as an example for description. During actual application, the application deployment system 10 may alternatively have another possible structure. For example, in another possible implementation, the application deployment system 10 may include a plurality of clients and aplurality of cloud platforms. For example, the application deployment apparatus 300 may support the user in deploying applications on the plurality of cloud platforms. In addition, division of function modules in the application deployment apparatus 300 in FIG. 1 is not limited to the example shown in FIG. 1. In another possible implementation, the 6 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 configurationmodule 302 may alternatively be divided into a scoring module and an association configuration module. The scoring module is configured to determine scores of a plurality of optional values of a second configuration item, and the association configuration module is configured to determine a unique value from the plurality of optional values as a value of the second configuration item. This is not limited herein.
[0039] For example, the application deployment apparatus 300 in FIG. 1 may be implemented by using software, or may be implemented by using hardware.
[0040] In an example in which the application deployment apparatus 300 is a software function unit, the application deployment apparatus 300 may include code that is run on a computing instance. The computing instance may include at least one of a host, a virtual machine, and a container. Further, there may be one or more computing instances. For example, the application deployment apparatus 300 may include code run on a pluralityof hosts / virtual machines / con- tainers. It should be noted that the plurality of hosts / virtual machines / containers configured to run the code may be distributed in a same region, or may be distributed in different regions. Further, the plurality of hosts / virtual machines / - containers configured to run the code may be distributed in a same AZ, or may be distributed in different AZs. Each AZ includes one data center or a plurality of data centers that are geographically close to each other. Usually, one region may include a plurality of AZs.
[0041] Similarly, the plurality of hosts / virtual machines / containers configured to run the code may be distributed in a same virtual private cloud (virtual private cloud, VPC), or may be distributed in a plurality of VPCs. Usually, one VPC is arranged in one region. For cross-region communication between two VPCs in a same region and between VPCs in different regions, a communication gateway needs to be arranged in each of the VPCs, andinterconnection between the VPCs is implemented through the communication gateway.
[0042] The application deployment apparatus 300 is used as an example of a hardware function unit, and the application deployment apparatus 300 may include at least one computing device, for example, a server. Alternatively, the application deployment apparatus 300 may be implemented by using a device including an application-specific integrated circuit (application-specific integrated circuit, ASIC) or a programmable logic device (programmable logic device, PLD), or the like. The PLD may be implemented by a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (field-programmable gate array, FPGA), generic array logic (generic array logic, GAL), a data processing unit (Data processing unit, DPU), or any combination thereof.
[0043] The following describes various non-limiting specific implementations of an application deployment process in detail.
[0044] FIG. 2 is a schematic flowchart of an application deployment method according to an embodiment of this application. The method may be applied to the application deployment system 10 shown in FIG. 1, or may be applied to another applicable application deployment system. The following uses an example in which the method is applied to the application deployment system 10 shown in FIG. 1 for description.
[0045] The application deployment method shown in FIG. 2 may specifically include the following steps.
[0046] S201: A client 100 obtains a configuration template provided by a user, where the configuration template includes a plurality of configuration items for an application, the plurality of configuration items include a first configuration item and a second configuration item, a value of the first configuration item is configured by the user, and the plurality of configuration items in the configuration template are used to configure a resource that is in a cloud environment andthat is required for deploying the application.
[0047] When the user needs to deploy the application on a cloud platform 200, the user may provide related configuration for the application, which may be specifically configuring information such as the resource required for deploying the application.
[0048] In an implementation example, an application deployment apparatus 300 may provide a configuration template for the client 100, and a plurality of configuration items are defined in the configuration template. In this case, the client 100 may present a configuration interface to the user based on the configuration template. A plurality of configuration items are displayed in the configuration interface, so that the user may input, on the configuration interface according to a requirement of a to-be-deployed application, values of some configuration items, for example, specify a quantity of processors, a memory size, and a used database that are required when the application is run.For the remaining configuration items, the user may not set values of the part of configuration items, for example, the user may not specify a region or an AZ in which the application is located. For ease of description and differentiation, the configuration item whose value is set by the user is referred to as a first configuration item, and the configuration item whose value is not set by the user is referred to as a second configuration item. There may be one or more first configuration items and one or more second configuration items. Then, the client 100 may add, to the configuration template, the value input by the user for the first configuration item, and send the configuration template that includes the value of the first configuration item to an application orchestration module 301.
[0049] In another implementation example, the user may customize a configuration template on the client 100. The customized configuration template includes a plurality of configuration items. Avalue is set for a first configuration item in the plurality of configuration items. No value is set for a second configuration item in the plurality of configuration items. 7 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 Then, the client 100 may send, to an application orchestration module 301, the configuration template that is defined by the user and that includes the value of the first configuration item.
[0050] In this embodiment, for the second configuration item that is not configured by the user, the application deployment apparatus 300 may automatically set an appropriate value for the second configuration item. In an actual application scenario, there may be a large quantity of available resources of some types in the cloud environment. Correspondingly, there may be a plurality of values of the second configuration item. For example, the second config- uration item may include a configuration item of a computing specification. In this case, the values of the secondconfiguration item may be a processor 1 to a processor 4 in an AZ 1 (a size of memory space in this computing specification is fixed, for example, a size of 8G, which is not described in detail herein), may be a processor 5 to a processor 8 in an AZ 2, or may be a processor 3 to a processor 6 in an AZ 3.
[0051] Therefore, in a further possible implementation, the user may further input deployment indication information into the client 100. The deployment indication information indicates a preference of the user for selecting a resource for the second configuration item, for example, preferentially selecting a resource with lower costs from a cost perspective, preferentially selecting a resource with higher performance from a performance perspective, or preferentially selecting a resource with higher performance from a function perspective. During specific implementation, the deployment indication information indicates the application deployment apparatus 300 to select an availableresource from the cloud environ- ment for the second configuration item based on a target factor. The target factor may be, for example, one or more factors in a function, performance, and costs of the to-be-deployed application, or may be another type of factor, to facilitate the application deployment apparatus 300 in subsequently selecting, for application deployment, an appropriate available resource for the second configuration item by using the deployment indication information. Correspondingly, the client 100 may send the deployment indication information and the configuration template together to the application orchestration module 301.
[0052] S202: The application orchestration module 301 sends, to a configuration module 302, the configuration template provided by the user.
[0053] During specific implementation, the application orchestration module 301 may parse the received configuration template, determine the first configuration item and the value of the firstconfiguration item, and determine the second configuration item that is not configured, for example, determine a configuration item whose value is null as the second configuration item. In an actual application scenario, a dependency relationship may exist between different configuration items. For example, a configuration item 1 is used to configure an AZ in which an application is located, and a configuration item 2 is used to configure a quantity of processors required for supporting application running. In this case, when a processor is configured for the application, the corresponding quantity of processors need to be configured for the application in the AZ indicated by a value of the configuration item 1. Therefore, the application orchestration module 301 may send the first configuration item, the value of the first configuration item, and the second configuration item to the configuration module 302, to request the configuration module 302 to set a corresponding value for thesecond configuration item.
[0054] Further, when the application orchestration module 301 receives the deployment indication information sent by the client 100, the application orchestration module 301 may further send the deployment indication information to the configuration module 302, so that the configuration module 302 sets the corresponding value for the second configuration item based on the deployment indication information.
[0055] S203: The configuration module 302 requests, from a cloud environment feedback module 303, at least one available resource that matches the second configuration item and that is in the cloud environment.
[0056] In this embodiment, the available resource is a resource that is in the cloud environment and that can be allocated to an application that needs to be deployed, and the resource may be one or more of a computing resource, a storage resource, and a network resource.
[0057] For example, the computing resource may be a resource with computingpower, for example, a central processing unit (central processing unit, CPU), a data processing unit (data processing unit, DPU), or an infrastructure processing unit (infrastructure processing unit, IPU).
[0058] The storage resource may be a resource that has a storage capability, for example, a cache, a memory, or a storage device.
[0059] The network resource may be, for example, a network transmission resource, for example, an uplink bandwidth, a downlink bandwidth, or a network adapter type.
[0060] S204: The cloud environment feedback module 303 feeds back, to the configuration module 302, the at least one available resource that matches the second configuration item.
[0061] In this embodiment, the application deployment apparatus 300 may automatically set a value for the second configuration item based on a currently available resource in the cloud environment, to avoid a subsequent application deployment failure caused by unavailability of a resource that is in the cloudenvironment and that is indicated by the value set for the second configuration item.
[0062] For example, the value of the second configuration item may be specifically an identifier of the available resource 8 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 that matches the second configuration item (for example, an ID of the resource). For example, the second configuration item is used to configure one processor required for deploying an application. It is assumed that the cloud environment includes three processors: a processor 1, a processor 2, and a processor 3, and the processor 2 and the processor 3 are in an idle state. In this case, the available resource that matches the second configuration item is the processor 2 or the processor 3, and the value of the second configuration item may be an identifier of the processor 2, ormay be an identifier of the processor 3.
[0063] In a possible implementation, the configuration module 302 may generate a request including the firstconfig- uration item, the value of the first configuration item, and the second configuration item, and send the request to the cloud environment feedback module 303 to request the available resource that matches the second configuration item and that is in the cloud environment. The cloud environment feedback module 303 may respond to the request, invoke a query interface based on received information about the configuration item, to query available resources in the cloud environ- ment, for example, query information such as a margin of the available resources, a network delay, and costs, and obtain, through screening, the available resource that matches the second configuration item from the available resources.During actual application, for a part of resources that cannot be accessed through the query interface, for example, an access address of a cloud service, a skilled person may manually enter the part of available resources, and provide the available resources for the cloudenvironment feedback module 303.
[0064] There may be one or more available resources obtained by the cloud environment feedback module 303 through screening, and there may be one or more values corresponding to the second configuration item. For example, when the available resource that matches the second configuration item is a processor 2 or a processor 3, the value of the second configuration item may be an identifier of the processor 2, or may be an identifier of the processor 3. In this embodiment, the cloud environment feedback module 303 may feed back information about various available resources corresponding to the second configuration item to the configuration module 302, so that the configuration module 302 determines the value of the second configuration item based on one of the available resources. For ease of description, the value that may be set for the second configuration item is referred to as a candidate value in the following.
[0065] In addition, there may be aplurality of configuration items that are not configured by the user, and correspond- ingly, there may be a plurality of second configuration items. In this case, the available resource that is obtained by the cloud environment feedback module 303 through screening and that matches the second configuration item may be specifically at least one available resource that separately matches each second configuration item, and there may be one or more candidate values corresponding to each second configuration item.
[0066] During actual application, the application deployment apparatus 300 may be configured with one or more plug- ins, so that the cloud environment feedback module 303 may collect an available resource in the cloud environment by using the plug-in. For example, when the application deployment apparatus 300 is configured with a plurality of plug-ins, different plug-ins may collect different types of available resources in the cloud environment. In this way, when an availableresource of a newly added type in the cloud environment needs to be collected, a new plug-in may be deployed on the application deployment apparatus 300, to collect the available resource of the newly added type.
[0067] S205: The configuration module 302 determines the value of the second configuration item based on the at least one available resource that matches the second configuration item, and provides the value of the second configuration item for the application orchestration module 301, where the value of the second configuration item indicates a target resource in the at least one available resource.
[0068] The configuration module 302 may select one of the at least one available resource as the target resource from the at least one available resource, and set the value of the second configuration item based on the selected target resource.
[0069] In this embodiment, the following several implementation examples of determining the value of the second configuration item areprovided.
[0070] In a first implementation example, when a plurality of available resources match the second configuration item, there may be a plurality of candidate values corresponding to the plurality of available resources. In this case, the configuration module 302 may randomly select one candidate value from the plurality of candidate values as the value of the second configuration item; or the configuration module may select one candidate value from the plurality of candidate values as the value of the second configuration item based on load balancing or another strategy. When there is only one available resource that matches the second configuration item, the second configuration item corresponds to one candidate value, and the configuration module 302 may directly determine the candidate value as the value of the second configuration item.
[0071] In a second implementation example, the configuration module 302 may determine the value of the second configuration item in ascoring manner.
[0072] During specific implementation, the configuration module 302 first scores a candidate value corresponding to each available resource. For example, for each available resource, the configuration module 302 may calculate a score of a candidate value corresponding to the available resource in a function dimension, a score of the candidate value in a performance dimension, and a score of the candidate value in a cost dimension, where the scores are a score 1, a score 2, 9 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 and a score 3 in sequence. Then, the configuration module 302 compares the score 1, the score 2, and the score 3, and determines amaximum score (assuming that the maximum score is the score 2). In this case, the configuration module 302 may determine the maximum score as a score of the candidate value (that is, the score of the candidate value is the score 2). Alternatively, the configuration module 302 may preferentially select a score of thecandidate value in a function dimension based on a priority of "function>performance>cost", and determine the score of the candidate value in a function dimension as a score of the candidate value.
[0073] The score of the candidate value corresponding to the available resource in a function dimension may be obtained by the skilled person by manually annotating the available resource in advance, so that the configuration module 302 obtains the score of the candidate value in a function dimension by reading a manual annotation result. For example, elastic load balance (elastic load balance, ELB) can be classified into exclusive and shared elastic load balance in terms of functions. The two types of elastic load balance have same basic functions, but the exclusive elastic load balance is better than the shared elastic load balance in terms of reliability and protocol support ranges. Therefore, the skilled person can annotate that a score of the exclusive elastic load balance is higherthan a score of the shared elastic load balance in a function dimension.
[0074] The score of the candidate value in a performance dimension may be determined by the configuration module 302 based on performance of the available resource. Usually, performance of the available resource is positively correlated with the score of the candidate value in a performance dimension. For example, computing resources can be classified into "general-purpose", "general-purpose computing enhanced", and "high-performance computing" types based on performance. The "general-purpose type" of computing resource has lowest performance and a lowest score. The "high-performance computing type" of computing resource has highest performance and a highest score.
[0075] Similarly, the score of the candidate value in a cost dimension may be determined by the configuration module 302 based on costs of the available resource, and the costs of the available resource is negatively correlated with the score of thecandidate value in a cost dimension.
[0076] Further, a maximum score determined by the configuration module 302 from the score in a function dimension, the score in a performance dimension, and the score in a cost dimension may be used as a basic score of the candidate value. The candidate value may further have a preference score. The preference score is determined based on a preference level of the candidate value. A preference level of eachcandidate value may be set by the skilled person, or may be set by the configuration module 302. Determining a score of a candidate value (referred to as a target candidate value below) of the second configuration item is used as an example. The configuration module 302 may select a score in one of function, performance, and cost dimensions as a basic score of the target candidate value in the foregoing manner, determine a preference level of the target candidate value, and determine a preference score based on the preference level. For example,the preference level may include three levels: "recommended", "recommended+", and "recom- mended++", and preference scores corresponding to the three levels are 5, 10, and 15 points respectively. Then, the configuration module 302 may calculate a sum value of the basic score and the preference score, and use the sum value as the score of the target candidate value.
[0077] During actual application, the configuration module 302 may include a score management file, where a basic score and a preference level of one or more candidate values are recorded in the score management file. For example, content recorded in the score management file may be shown in Table 1. Table 1 Cloud resource Configuration item Value Basic score Preference level
[0078] The cloud resource is a resource that is on a cloud and to which the configuration item belongs, for example, may be a cloud computing resource, for example, an elastic cloud server (Elastic Cloud Server, ECS for short) or a cloud containerengine (cloud container engine, CCE). If the configuration item does not belong to a cloud resource, for example, the configuration item is an access address of a cloud service, a universal identifier may be filled in the cloud resource, for example, "global".
[0079] Score content of values of a plurality of configuration items may be recorded in the score management file, so that after determining a candidate value of a configuration item based on a received available resource, the configuration module 302 may determine, by searching the score management file, a basic score and a preference score that correspond to the candidate value, and then calculate a final score corresponding to the candidate value. For example, it is assumed that a preference level corresponding to an original target candidate value is originally "recommended", and a preference score corresponding to the candidate value is 5 points. In this case, the skilled person may perform an adjustment operation on thepreference level corresponding to the target candidate value, which is specifically adjusting the preference level to "recommendation++", so that the preference score corresponding to the candidate value is correspondingly adjusted to 15. In this way, a final score of the target candidate value is further increased by 10 points (that is, 15 points‑5 points) based on an original score. 10 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55
[0080] During actual application, the skilled person may further modify a preference level that is of a (candidate) value of a configuration item and that is recorded in the score management file, to adjust a preference score corresponding to the value, thereby implementing modification of a final score corresponding to the value.
[0081] In addition, when the configuration module 302 receives the deployment indication information (indicating a preference of the user for selecting a resource for the second configuration item) sent by the applicationorchestration module 301, the configuration module 302 may further determine, with reference to the deployment indication information, a score of a candidate value corresponding to each available resource.
[0082] Specifically, the configuration module 302 may determine, based on the deployment indication information, to select an available resource from the cloud environment for the second configuration item based on a target factor, where the target factor may be one or more factors ina function, performance,or costs ofa to-be-deployed application. In thisway, the configuration module 302 may select, based on the target factor from a score of a candidate value in a function dimension, a score of the candidate value in a performance dimension, and a score of the candidate value in a cost dimension, a score of a dimension that matches the target factor. For example, when the target factor is specifically a factor in a function dimension, the configuration module 302 may use the score ofthe candidate value in a function dimension as a score of the candidate value. Alternatively, when the target factor includes a factor in a performance dimension and a factor in a cost dimension, the configuration module 302 may compare the score of the candidate value in a performance dimension with the score of the candidate value in a cost dimension, and use a score with a larger score as a score of the candidate value.
[0083] After determining a score of each candidate value of the second configuration item, the configuration module 302 may select a candidate value with a maximum score from the plurality of candidate values, and determine the candidate value as the value of the second configuration item. When scores of the plurality of candidate values are the same, the configuration module 302 may randomly select one candidate value from the plurality of candidate values as the value of the second configuration item. Alternatively, the configuration module 302 may select, from theplurality of candidate values based on scores in another dimension, a candidate value with a maximum score in the another dimension as the value of the second configuration item. For example, it is assumed that the configuration module 302 determines, based on the deployment indication information, a score of each candidate value in a function dimension as a score of the candidate value. In this case, when scores of the plurality of candidate values are the same, the configuration module 302 may further compare scores of the plurality of candidate values in a function dimension based on a priority of "function>performan- ce>cost", determine, from the plurality of candidate values, a candidate value with a maximum score in a function dimension, and determine the candidate value as the value of the second configuration item. If the plurality of candidate values still have a same score in a function dimension, the configuration module 302 may continue to compare scores of the plurality ofcandidate values in a cost dimension, and determine a candidate value with a maximum score in a cost dimension in the plurality of candidate values as the value of the second configuration item.
[0084] Alternatively, there may be a plurality of second configuration items, and a dependency relationship may exist between different second configuration items. In this case, after obtaining a score of each candidate value, the configuration module 302 may further determine a plurality of configuration combinations, for example, determine a plurality of configuration combinations based on the dependency relationship between different second configuration items, where each configuration combination includes a plurality of same second configuration items, each second configuration item in each configuration combination corresponds to one candidate value, and candidate values respectively corresponding to the plurality of second configuration items vary in different configuration combinations.Then, the configuration module 302 may calculate a score for each configuration combination. For example, the configuration module 302 may calculate a sum of scores of candidate values of all second configuration items in a configuration combination, and use,as a score of the configuration combination, a sum value obtained through calculation. Alternatively, the configuration module 302 may perform weighted summation on a score of one candidate value corresponding to each second configuration item in a configuration combination, where weights corresponding to different second configuration items are different; and use, as a score of the configuration combination, a sum value obtained through weighted summation. Finally, the configuration module 302 may determine a configuration combination with a highest score based on scores of the configuration combinations, to determine candidate values of second configuration items in the configuration combination as values of the secondconfiguration items.
[0085] This may prevent final application deployment effect from being affected due to a conflict between values set for the plurality of second configuration items caused by ignoring a dependency relationship between configuration items. In addition, when the score of the configuration combination is calculated through weighted summation, different weights are set for different configuration items, so that a management granularity for the configuration items can be improved, and a better configuration recommendation can be provided for the user. This improves overall configuration effect for a to-be- deployed application. For example, when the user indicates to preferentially select an available resource with low costs from a cost perspective, a weight value of a configuration item for an AZ is set to a low value, and a weight value of a computing resource specification is set to a high value, so that a configuration for an application can finally select acomputing resource with a good specification condition, instead of selecting a computing resource with a poor specifica- 11 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 tion condition due to setting the weight value of the configuration item for the AZ to an excessively high value.
[0086] During actual application, the configuration module 302 may maintain a configuration item weight file, for example, a configuration item weight table, where the configuration item weight file is used to record a weight corresponding to each configuration item. For example, a weight value corresponding to each configuration item may be recorded in the configuration item weight file based on a format shown in Table 2. Table 2 Cloud resource Configuration item Weight
[0087] In this way, when calculating a score of each configuration combination, the configuration module 302 may perform weighted summation on scores of a plurality of second configuration items in each configuration combination based onthe weight that is of each configuration item and that is recorded in the configuration item weight file, to obtain the score of each configuration combination through calculation.
[0088] It should be noted that a specific implementation of determining a value of one or more second configuration items is merely used as some examples for description. In another possible implementation, the configuration module 302 may alternatively determine the value of the second configuration item in another manner. For example, the configuration module 302 may determine the value of the second configuration item by combining or changing the foregoing implementations. This is not limited herein.
[0089] After determining the value of the second configuration item, the configuration module 302 may send the value of the second configuration item to the application orchestration module 301.
[0090] S206: The application orchestration module 301 deploys the application on a cloud based on the first config-uration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item.
[0091] In this embodiment, the following several specific implementation examples of deploying the application on the cloud are provided.
[0092] In a first implementation, the application orchestration module 301 deploys the application on the cloud based on the value configured by the user for the first configuration item and the value automatically configured by the configuration module 302 for the second configuration item, which may be specifically allocating, to the application, an available resource that is in the cloud environment and that is indicated by the value of the first configuration item and the value of the second configuration item, to facilitate supporting successful running of the application based on the available resource, thereby implementing deployment of the application on the cloud.
[0093] In this way, the user needs toprovide only some configuration parameters, and the application deployment apparatus 300 can automatically supplement other configuration parameters, so that a quantity of parameters that need to be configured by the user in an application deployment process can be reduced. This improves efficiency of deploying the application on the cloud by the user and reducing deployment difficulty. In addition, the resource that is in the cloud environment and that is indicated by the value of the second configuration item is available. This avoids a problem that application deployment fails because the resource is unavailable, further improves application deployment efficiency, and reduce application deployment difficulty.
[0094] In a second implementation, the application orchestration module 301 may output the second configuration item, which may be specifically outputting the second configuration item to the client 100. This facilitates the client 100 in presenting the value of the secondconfiguration item to the user. For example, the client 100 may present an interaction interface 1 shown in FIG. 3 to the user. The interaction interface 1 includes a customized configuration and a recommended configuration, where the customized configuration includes a plurality of first configuration items and values of the plurality of first configuration items, and the recommended configuration includes a plurality of second configuration items and values of the plurality of second configuration items. In this way, the user may manually confirm the values of the second configuration items in the recommended configuration. When the user confirms, on the client 100, that the values of the second configuration items are appropriate, the application orchestration module 301 deploys an application on the cloud based on the values configured for the first configuration items and the values automatically configured for the second configuration items. When the user determines that thevalues of the second configuration items are inappropriate, the user may modify the values of the second configuration items on the client 100 (during actual application, the user may modify values of a part of second configuration items in the plurality of second configuration items), so that the application orchestration module 301 may determine modified values corresponding to the part of second configuration items in response to a modification operation of the user on the values of the part of second configuration items, and deploy an application on the cloud based on the values configured for the first configuration items and the modified values configured for the second configuration items, that is, deploy the application on the cloud platform 200.
[0095] In this way, that the user confirms (and modifies) the values of the second configuration items can simplify an 12 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 operation that needs to be performed by the user when deployingthe application, improve configuration efficiency, and reduce configuration difficulty, and can also makea final configuration for the application meet an expectation of the user, to improve user experience of deploying the application.
[0096] In a third implementation, when the user provides values of some configuration items (namely, the first configuration items) based on the configuration template, the configuration module 302 may obtain a historical config- uration record corresponding to the configuration template, for example, may obtain the historical configuration record from a database shown in FIG. 1. The historical configuration record includes a value configured for the second configuration item when an application is deployed in a historical time period. For example, the configuration module 302 may obtain configuration information that is for one or more applications and that is used by a plurality of users in a past one year by using the configuration template, wherethe configuration information includes a value of the second configuration item (and may further include a value of the first configuration item). In this way, the configuration module 302 provides the historical configuration record corresponding to the configuration template for the application orches- tration module 301.
[0097] The application orchestration module 301 may present, to the user via the client 100, the value automatically configured by the configuration module 302 for the second configuration item, and also present the historical configuration record corresponding to the configuration template. As shown in FIG. 4, an interaction interface 2 presented by the client 100 may include a plurality of historical configuration records and a value currently configured by the application deployment apparatus 300 for the second configuration item. Further, the application orchestration module 301 may further present, on the interaction interface 2, a success rate of deploying anapplication by using each historical configuration record.
[0098] In this way, the user may refer to, based on the historical configuration record,a value (and a success rate that is of application deployment and that corresponds to the value) configured by another user for the second configuration item in the historical time period, and check whether a value currently automatically configured by the application deployment apparatus 300 for the second configuration item is appropriate. When the user confirms, on the client 100, that the value of the second configuration item is appropriate, the application orchestration module 301 deploys an application on the cloud based on the value configured for the first configuration item and the value automatically configured for the second configuration item. When the user determines that the value of the second configuration item is inappropriate, the user may modify the value of the second configuration item on the client 100. For example,the user may modify the value of the second configuration item on the interaction interface 2 with reference to a configuration of another user for the second configuration item in the historical time period, so that the application orchestration module 301 may deploy an application on the cloud based on the value configured for the first configuration item and a modified value configured for the second configuration item, that is, deploy the application on the cloud platform 200.
[0099] In this way, the historical configuration record for the second configuration item is presented to the user, to provide a reference for the user to configure an application, so that the user can make a decision by referring to a configuration situation of another user for the second configuration item, and set an appropriate value for the second configuration item. This can improve user experience of deploying the application.
[0100] It should be noted that the foregoing implementation of deploying theapplication on the cloud based on values of a plurality of configuration items is merely used as some examples for description. During actual application, the application orchestration module 301 may alternatively deploy the application in another manner. This is not limited herein.
[0101] Further, after completing application deployment, the application orchestration module 301 may further feed back an application deployment result to the user via the client 100, for example, feed back that the application is successfully deployed to the user, or feed back that the application fails to be deployed to the user, so that the user learns a deployment status of the application. In addition, the application orchestration module 301 (or the configuration module 302) may further generate a new historical configuration record based on the application deployment result generated based on the value of the second configuration item, and write the new historical configuration record into adatabase, for example, write the new historical configuration record into the database shown in FIG. 1, to provide a configuration reference for the user when the user deploys another application.
[0102] In the embodiment shown in FIG. 2, the application deployment apparatus 300 in the application deployment process may be software configured on a computing device or a computing device cluster. In addition, the software is run on the computing device or the computing device cluster, so that the computing device or the computing device cluster may implement a function of the foregoing application deployment apparatus 300. The following describes in detail the application deployment apparatus 300 in an application deployment process from a perspective of implementation of a hardware device.
[0103] FIG. 5 is a diagram of a structure of a computing device. The foregoing application deployment apparatus 300 may be deployed on the computing device. The computing device may be a computingdevice (for example, a server) in a cloud environment, a computing device in an edge environment, or the like that may be specifically configured to implement a function of the application deployment apparatus 300 in the embodiment shown in FIG. 2.
[0104] As shown in FIG. 5, the computing device 500 includes a processor 510, a memory 520, a communication 13 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 interface 530, and a bus 540. The processor 510, the memory 520, and the communication interface 530 communicate with each other through the bus 540. The bus 540 may be a peripheral component interconnect (peripheral component interconnect, PCI) bus, an extended industry standard architecture (extended industry standard architecture, EISA) bus, or the like. The bus may be classified into an address bus,a data bus, a control bus, and the like. For ease of representation, only one thick line is for indicating the bus in FIG. 5, but this does not indicate that there is only one bus oronly one type of bus. The communication interface 530 is configured to communicate with the outside, for example, receive a configuration template and deployment indication information that are provided by a user.
[0105] The processor 510 may be a central processing unit (central processing unit, CPU), an application-specific integrated circuit (application-specific integrated circuit, ASIC), a graphics processing unit (graphics processing unit, GPU), or one or more integrated circuits. The processor 510 may alternatively be an integrated circuit chip and has a signal processing capability. In an implementation process, a function of the application deployment apparatus 300 may be implemented by using a hardware integrated logic circuit in the processor 510, or by using instructions in a form of software. The processor 510 may alternatively be a general-purpose processor, a data signal processor (digital signal processor, DSP), a field programmable gate array (field programmable gatearray, FPGA) or another programmable logic device, a discrete gate or a transistor logic device, or a discrete hardware component, and may implement or perform the methods, steps, and logical block diagrams disclosed in embodiments of this application. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like. The method disclosed with reference to embodiments of this application may be directly performed and completed by a hardware decoding processor, or may be performed and completed by using a combination of hardware and software modules in a decoding processor. The software module may be located in a mature storage medium in the art, for example, a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, or a register. The storage medium is located in the memory 520. The processor 510 reads information in the memory 520, and completes some orall functions of the application deployment apparatus 300 in combination with hardware of the processor 510.
[0106] The memory 520 may include a volatile memory (volatile memory), for example, a random access memory (random access memory, RAM). The memory 520 may further include a non-volatile memory (non-volatile memory), for example, a read-only memory (read-only memory, ROM), a flash memory, an HDD, or an SSD.
[0107] The memory 520 stores executable code, and the processor 510 executes the executable code to perform the method performed by the application deployment apparatus 300.
[0108] Specifically, when the embodiment shown in FIG. 2 is implemented, and the application deployment apparatus 300 described in the embodiment shown in FIG. 2 is implemented by using software, software or program code required for executing a function of the application deployment apparatus 300 in FIG. 2 is stored in the memory 520. Interaction between the application deployment apparatus 300 andanother device is implemented through the communication interface 530. The processor is configured to execute instructions in the memory 520, to implement the method performed by the application deployment apparatus 300.
[0109] FIG. 6 is a diagram of a structure of a computing device cluster. A computing device cluster 60 shown in FIG. 6 includes a plurality of computing devices, and the foregoing application deployment apparatus 300 may be deployed on the plurality of computing devices in the computing device cluster 60 in a distributed manner. As shown in FIG. 6, the computing device cluster 60 includes the plurality of computing devices 600, and each computing device 600 includes a memory 620, a processor 610, a communication interface 630, and a bus 640. The memory 620, the processor 610, and the communication interface 630 are communicatively connected to each other through the bus 640.
[0110] The processor 610 may be a CPU, a GPU, an ASIC, or one or more integrated circuits. Theprocessor 610 may alternatively be an integrated circuit chip and has a signal processing capability. In an implementation process, some functions of the application deployment apparatus 300 may be implemented by using a hardware integrated logic circuit in the processor 610, or by using instructions in a form of software. The processor 610 may alternatively be a DSP, an FPGA, a general-purpose processor, another programmable logic device, a discrete gate or a transistor logic device, or a discrete hardware component, and may implement or perform some of the methods, steps, and logical block diagrams disclosed in embodiments of this application. The general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like. Steps of the method disclosed with reference to embodiments of this application may be directly performed and completed by a hardware decoding processor, or may be performed and completed by using a combination of hardware andsoftware modules in a decoding processor. The software module may be located in a mature storage medium in the art, for example, a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an electrically erasable programmable memory, or a register. The storage medium is located in the memory 620. In each computing device 600, the processor 610 reads information in the memory 620, and may complete some functions of the application deployment apparatus 300 in combination with hardware of the processor 610.
[0111] The memory 620 may include a ROM, a RAM, a static storage device, a dynamic storage device, a hard disk (for example, an SSD or an HDD), and the like. The memory 620 may store program code, for example, some or all program code for implementing an application orchestration module 301, some or all program code for implementing a config- 14 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 uration module 302, and some or all program code forimplementing a cloud environment feedback module 303. For each computing device 600, when the program code stored in the memory 620 is executed by the processor 610, the processor 610 performs, based on the communication interface 630, some methods performed by the application deployment apparatus 300. For example, some computing devices 600 may be configured to perform the methods performed by the application orchestration module 301, and the other computing devices 600 are configured to perform the methods performed by the configuration module 302 and the cloud environment feedback module 303. The memory 620 may further store data, for example, intermediate data or result data generated by the processor 610 in an execution process, for example, a plurality of candidate values of the foregoing second configuration item, a score corresponding to each candidate value, and a value of the second configuration item.
[0112] The communication interface 603 in each computing device 600 isconfigured to communicate with the outside, for example, interact with another computing device 600.
[0113] The bus 640 may be a peripheral component interconnect bus, an extended industry standard architecture bus, or the like. For ease of representation, only one thick line is for indicating the bus 640 in each computing device 600 in FIG. 6, but this does not indicate that there is only one bus or only one type of bus.
[0114] A communication path is established between the plurality of computing devices 600 through a communication network, to implement the function of the application deployment apparatus 300. Any one of the computing devices may be a computing device (for example, a server) in a cloud environment or a computing device in an edge environment.
[0115] In addition, an embodiment of this application further provides a computer-readable storage medium. The computer-readable storage medium stores instructions. When the instructions are run on one or more computing devices,the one or more computing devices are enabled to perform the method performed by the application deployment apparatus 300 in the foregoing embodiments.
[0116] In addition, an embodiment of this application further provides a computer program product. When the computer program product is executed by one or more computing devices, the one or more computing devices perform any one of methods in the foregoing application deployment method. The computer program product may be a software installation package. When any one of the methods in the foregoing application deployment method needs to be used, the computer program product may be downloaded, and executed on a computer.
[0117] It should be further noted that, the foregoing described embodiments are merely examples. The units described as separate parts may or may not be physically separate and the parts displayed as units may or may not be physical units, may be located in one position or may be distributed on a plurality of networkunits. Some or all the modules may be selected according to actual requirements to achieve the objectives of the solutions of embodiments. In addition, in the accompanying drawings of the embodiments provided by this application, connection relationships between modules indicate that the modules have communication connections with each other, which may be specifically implemented as one or more communication buses or signal cables.
[0118] Based on the description of the foregoing implementations, a person skilled in the art may clearly understand that this application may be implemented by software in addition to necessary universal hardware, or by dedicated hardware, including a dedicated integrated circuit, a dedicated CPU, a dedicated memory, a dedicated component, and the like. Usually, any functions that can be performed by a computer program can be easily implemented by using corresponding hardware. Moreover, a specific hardware structure for achieving a same function may be invarious forms, for example, in a form of an analog circuit, a digital circuit, or a dedicated circuit. However, as for this application, software program implementation is a better implementation in most cases. Based on such an understanding, the technical solutions of this application essentially or the part contributing to the conventional technology may be implemented in a form of a software product. The computer software product is stored in a readable storage medium, for example, a floppy disk, a USB flash drive, a removable hard disk, a ROM, a RAM, a magnetic disk, or an optical disc of a computer, and includes several instructions for instructing a computer device (which may be a personal computer, a training device, a network device, or the like) to perform the methods in embodiments of this application.
[0119] All or some of the foregoing embodiments may be implemented by using software, hardware, firmware, or any combination thereof. When software is used to implementembodiments, all or some of embodiments may be implemented in a form of a computer program product.
[0120] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the procedures or functions according to embodiments of this application are all or partially generated. The computer may be a general-purpose computer, a dedicated computer, a computer network, or another programmable apparatus. The computer instructions may be stored in a computer-readable storage medium, or may be transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website, a computer, a training device, or a data center to another website, computer, training device, or data center in a wired (for example, a coaxial cable, an optical fiber, or a digital subscriber line (DSL)) or wireless (for example, infrared, radio, ormicrowave) manner. The computer- readable storage medium may be any usable medium that can be stored by a computer, or a data storage device, for example, a training device or a data center, integrating one or more usable media. The usable medium may be a magnetic 15 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a DVD), a semiconductor medium (for example, a solid-state disk (Solid-State Disk, SSD)), or the like. Claims 1. An application deployment method, wherein the method comprises: obtaining a configuration template provided by a user, wherein the configuration template comprises a plurality of configuration items for the application, the plurality of configuration items comprise a first configuration item and a second configuration item, a value of the first configuration item is configured by the user, and the plurality of configuration items are used to configure a resourcethat is in a cloud environment and that is required for deploying the application; obtaining at least one available resource that matches the second configuration item and that is in the cloud environment, wherein the available resource comprises at least one of a computing resource, a storage resource, and a network resource; determining a value of the second configuration item based on the at least one available resource, wherein the value of the second configuration item indicates a target resource in the at least one available resource; and deploying the application on a cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. 2. The method according to claim 1, wherein the method further comprises: obtaining deployment indication information, wherein the deployment indication information indicates to select an available resource from the cloud environment for the secondconfiguration item based on a target factor, and the target factor comprises one or more factors in a function, performance, and costs of the application; and determining the value of the second configuration item based on the at least one available resource comprises: determining the value of the second configuration item based on the deployment indication information and the at least one available resource. 3. The method according to claim 1 or 2, wherein determining the value of the second configuration item based on the at least one available resource comprises: obtaining scores respectively corresponding to a plurality of candidate values of the second configuration item, wherein each of the plurality of candidate values indicates an available resource in the cloud environment; and determining the value of the second configuration item based on the scores respectively corresponding to the plurality of candidate values. 4. The method according to claim 3, wherein there are aplurality of second configuration items, and each second configuration item corresponds to at least one candidate value; and determining the value of the second configuration item based on the scores respectively corresponding to the plurality of candidate values comprises: determining a plurality of configuration combinations, wherein each of the plurality of configuration combinations comprises the plurality of second configuration items and one candidate value corresponding to each of the plurality of second configuration items, and candidate values respectively corresponding to the plurality of second configuration items vary in different configuration combinations; determining a score of each of the plurality of configuration combinations, wherein the score of each configuration combination is obtained through calculation based on scores of candidate values respectively corresponding to the plurality of second configuration items; and determining a target configuration combinationfrom the plurality of configuration combinations based on the score of each configuration combination, wherein candidate values in the target configuration combination are values of the plurality of second configuration items. 5. The method according to claim 3, wherein the plurality of candidate values comprise a target candidate value, a score of the target candidate value is a sum value of a basic score and a preference score, and the preference score is determined based on a preference level of the target candidate value; and the method further comprises: 16 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 in response to an adjustment operation on the preference level of the target candidate value, adjusting the score of the target candidate value. 6. The method according to any one of claims 1 to 5, wherein deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of thesecond configuration item comprises: outputting the value that is of the second configuration item and that is for presentation to the user; in response to a modification operation of the user on the value of the second configuration item, determining a modified value corresponding to the second configuration item; and deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the modified value corresponding to the second configuration item. 7. The method according to any one of claims 1 to 5, wherein deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item comprises: outputting the value that is of the second configuration item and that is for presentation to the user, and a historical configuration record corresponding to the configurationtemplate, wherein the historical configuration record comprises avalue configured for the second configuration item whenan application isdeployed in ahistorical time period; and in response to a selection operation of the user on the value of the second configuration item, deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. 8. An application deployment apparatus, wherein the apparatus comprises: an application orchestration module, configured to obtain a configuration template provided by a user, wherein the configuration template comprises a plurality of configuration items for the application, the plurality of configuration items comprise a first configuration item and a second configuration item, a value of the first configuration item is configured by the user, and the plurality of configuration items are used to configure a resourcethat is in a cloud environment and that is required for deploying the application; a cloud environment feedback module, configured to obtain at least one available resource that matches the second configuration item and that is in the cloud environment, wherein the available resource comprises at least one of a computing resource, a storage resource, and a network resource; and a configuration module, configured to determine a value of the second configuration item based on the at least one available resource, wherein the value of the second configuration item indicates a target resource in the at least one available resource, wherein the application orchestration module is further configured to deploy the application on a cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. 9. The apparatus according to claim 8, wherein the application orchestration module is furtherconfigured to obtain deployment indication information, wherein the deployment indication information indicates to select an available resource from the cloud environment for the second configuration item based on a target factor, and the target factor comprises one or more factors in a function, performance, and costs of the application; and the configuration module is specifically configured to determine the value of the second configuration item based on the deployment indication information and the at least one available resource. 10. The apparatus according to claim 8 or 9, wherein the configuration module is specifically configured to: obtain scores respectively corresponding to a plurality of candidate values of the second configuration item, wherein each of the plurality of candidate values indicates an available resource in the cloud environment; and determine the value of the second configuration item based on the scores respectively corresponding to the plurality ofcandidate values. 11. The apparatus according to claim 10, wherein there are a plurality of second configuration items, each second configuration item corresponds to at least one candidate value, and the configuration module is specifically configured 17 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 to: determine a plurality of configuration combinations, wherein each of the plurality of configuration combinations comprises the plurality of second configuration items and one candidate value corresponding to each of the plurality of second configuration items, and candidate values respectively corresponding to the plurality of second configuration items vary in different configuration combinations; determine a score of each of the plurality of configuration combinations, wherein the score of each configuration combination is obtained through calculation based on scores of candidate values respectively corresponding to the plurality of second configuration items; and determine a targetconfiguration combination from the plurality of configuration combinations based on the score of each configuration combination, wherein candidate values in the target configuration combination are values of the plurality of second configuration items. 12. The apparatus according to claim 10, wherein the plurality of candidate values comprise a target candidate value, a score of the target candidate value is a sum value of a basic score and a preference score, and the preference score is determined based on a preference level of the target candidate value; and the configuration module is further configured to: in response to an adjustment operation on the preference level of the target candidate value, adjust the score of the target candidate value. 13. The apparatus according to any one of claims 8 to 12, wherein the application orchestration module is specifically configured to: output the value that is of the second configuration item and that is for presentation to the user; inresponse to a modification operation of the user on the value of the second configuration item, determine a modified value corresponding to the second configuration item; and deploy the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the modified value corresponding to the second configuration item. 14. The apparatus according to any one of claims 8 to 12, wherein the application orchestration module is specifically configured to: output the value that is of the second configuration item and that is for presentation to the user, and a historical configuration record corresponding to the configuration template, wherein the historical configuration record comprises avalue configured for the second configuration item whenan application isdeployed in ahistorical time period; and in response to a selection operation of the user on the value of the second configuration item, deploy the applicationon the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item. 15. A computing device cluster, comprising at least one computing device, wherein each computing device comprises a processor and a memory; and the processor is configured to execute instructions stored in the memory, so that the computing device cluster performs the method according to any one of claims 1 to 7. 16. A computer-readable storage medium, wherein the computer-readable storage medium stores instructions, and when the instructions are run on at least one computing device, the at least one computing device is enabled to perform the method according to any one of claims 1 to 7. 18 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 19 EP 4 700 566 A1 20 EP 4 700 566 A1 21 EP 4 700 566 A1 22 EP 4 700 566 A1 23 EP 4 700 566 A1 24 EP 4 700 566 A1 25 EP 4 700 566 A1 5 10 15 20 25 30 35 40 45 50 55 26 EP 4 700 566A1 5 10 15 20 25 30 35 40 45 50 55 27 EP 4 700 566 A1 REFERENCES CITED IN THE DESCRIPTION This list of references cited by the applicant is for the reader’s convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard. Patent documents cited in the description • CN 202310573141
[0001] • CN 202310847475
[0001]
Claims
1. An application deployment method, wherein the method comprises: obtaining a configuration template provided by a user, wherein the configuration template comprises a plurality of configuration items for the application, the plurality of configuration items comprise a first configuration item and a second configuration item, a value of the first configuration item is configured by the user, and the plurality of configuration items are used to configure a resource that is in a cloud environment and that is required for deploying the application; obtaining at least one available resource that matches the second configuration item and that is in the cloud environment, wherein the available resource comprises at least one of a computing resource, a storage resource, and a network resource; determining a value of the second configuration item based on the at least one available resource, wherein the value of the second configuration item indicates a target resource in the at least one available resource; and deploying the application on a cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item.
2. The method according to claim 1, wherein the method further comprises: obtaining deployment indication information, wherein the deployment indication information indicates to select an available resource from the cloud environment for the second configuration item based on a target factor, and the target factor comprises one or more factors in a function, performance, and costs of the application; and determining the value of the second configuration item based on the at least one available resource comprises: determining the value of the second configuration item based on the deployment indication information and the at least one available resource.
3. The method according to claim 1 or 2, wherein determining the value of the second configuration item based on the at least one available resource comprises: obtaining scores respectively corresponding to a plurality of candidate values of the second configuration item, wherein each of the plurality of candidate values indicates an available resource in the cloud environment; and determining the value of the second configuration item based on the scores respectively corresponding to the plurality of candidate values.
4. The method according to claim 3, wherein there are a plurality of second configuration items, and each second configuration item corresponds to at least one candidate value; and determining the value of the second configuration item based on the scores respectively corresponding to the plurality of candidate values comprises: determining a plurality of configuration combinations, wherein each of the plurality of configuration combinations comprises the plurality of second configuration items and one candidate value corresponding to each of the plurality of second configuration items, and candidate values respectively corresponding to the plurality of second configuration items vary in different configuration combinations; determining a score of each of the plurality of configuration combinations, wherein the score of each configuration combination is obtained through calculation based on scores of candidate values respectively corresponding to the plurality of second configuration items; and determining a target configuration combination from the plurality of configuration combinations based on the score of each configuration combination, wherein candidate values in the target configuration combination are values of the plurality of second configuration items.
5. The method according to claim 3, wherein the plurality of candidate values comprise a target candidate value, a score of the target candidate value is a sum value of a basic score and a preference score, and the preference score is determined based on a preference level of the target candidate value; and the method further comprises: in response to an adjustment operation on the preference level of the target candidate value, adjusting the score of the target candidate value.
6. The method according to any one of claims 1 to 5, wherein deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item comprises: outputting the value that is of the second configuration item and that is for presentation to the user; in response to a modification operation of the user on the value of the second configuration item, determining a modified value corresponding to the second configuration item; and deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the modified value corresponding to the second configuration item.
7. The method according to any one of claims 1 to 5, wherein deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item comprises: outputting the value that is of the second configuration item and that is for presentation to the user, and a historical configuration record corresponding to the configuration template, wherein the historical configuration record comprises a value configured for the second configuration item when an application is deployed in a historical time period; and in response to a selection operation of the user on the value of the second configuration item, deploying the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item.
8. An application deployment apparatus, wherein the apparatus comprises: an application orchestration module, configured to obtain a configuration template provided by a user, wherein the configuration template comprises a plurality of configuration items for the application, the plurality of configuration items comprise a first configuration item and a second configuration item, a value of the first configuration item is configured by the user, and the plurality of configuration items are used to configure a resource that is in a cloud environment and that is required for deploying the application; a cloud environment feedback module, configured to obtain at least one available resource that matches the second configuration item and that is in the cloud environment, wherein the available resource comprises at least one of a computing resource, a storage resource, and a network resource; and a configuration module, configured to determine a value of the second configuration item based on the at least one available resource, wherein the value of the second configuration item indicates a target resource in the at least one available resource, wherein the application orchestration module is further configured to deploy the application on a cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item.
9. The apparatus according to claim 8, wherein the application orchestration module is further configured to obtain deployment indication information, wherein the deployment indication information indicates to select an available resource from the cloud environment for the second configuration item based on a target factor, and the target factor comprises one or more factors in a function, performance, and costs of the application; and the configuration module is specifically configured to determine the value of the second configuration item based on the deployment indication information and the at least one available resource.
10. The apparatus according to claim 8 or 9, wherein the configuration module is specifically configured to: obtain scores respectively corresponding to a plurality of candidate values of the second configuration item, wherein each of the plurality of candidate values indicates an available resource in the cloud environment; and determine the value of the second configuration item based on the scores respectively corresponding to the plurality of candidate values.
11. The apparatus according to claim 10, wherein there are a plurality of second configuration items, each second configuration item corresponds to at least one candidate value, and the configuration module is specifically configured to: determine a plurality of configuration combinations, wherein each of the plurality of configuration combinations comprises the plurality of second configuration items and one candidate value corresponding to each of the plurality of second configuration items, and candidate values respectively corresponding to the plurality of second configuration items vary in different configuration combinations; determine a score of each of the plurality of configuration combinations, wherein the score of each configuration combination is obtained through calculation based on scores of candidate values respectively corresponding to the plurality of second configuration items; and determine a target configuration combination from the plurality of configuration combinations based on the score of each configuration combination, wherein candidate values in the target configuration combination are values of the plurality of second configuration items.
12. The apparatus according to claim 10, wherein the plurality of candidate values comprise a target candidate value, a score of the target candidate value is a sum value of a basic score and a preference score, and the preference score is determined based on a preference level of the target candidate value; and the configuration module is further configured to: in response to an adjustment operation on the preference level of the target candidate value, adjust the score of the target candidate value.
13. The apparatus according to any one of claims 8 to 12, wherein the application orchestration module is specifically configured to: output the value that is of the second configuration item and that is for presentation to the user; in response to a modification operation of the user on the value of the second configuration item, determine a modified value corresponding to the second configuration item; and deploy the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the modified value corresponding to the second configuration item.
14. The apparatus according to any one of claims 8 to 12, wherein the application orchestration module is specifically configured to: output the value that is of the second configuration item and that is for presentation to the user, and a historical configuration record corresponding to the configuration template, wherein the historical configuration record comprises a value configured for the second configuration item when an application is deployed in a historical time period; and in response to a selection operation of the user on the value of the second configuration item, deploy the application on the cloud based on the first configuration item, the value of the first configuration item, the second configuration item, and the value of the second configuration item.
15. A computing device cluster, comprising at least one computing device, wherein each computing device comprises a processor and a memory; and the processor is configured to execute instructions stored in the memory, so that the computing device cluster performs the method according to any one of claims 1 to 7.
16. A computer-readable storage medium, wherein the computer-readable storage medium stores instructions, and when the instructions are run on at least one computing device, the at least one computing device is enabled to perform the method according to any one of claims 1 to 7.