A method and device for deploying computing instances

By considering its business characteristics when deploying computing instances and selecting the appropriate computing nodes for deployment, the problem of degradation in service quality among computing instances is solved, and higher service quality and resource utilization are achieved.

CN114327739BActive Publication Date: 2025-03-18HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011036127.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-27
Publication Date
2025-03-18
Estimated Expiration
2040-09-27

AI Technical Summary

Technical Problem

When deploying computing instances, the prior art cannot effectively ensure the quality of service between computing instances, especially when multiple computing instances deployed on computing nodes, there may be mutual interference, resulting in a degradation of service quality.

Method used

By determining the target business characteristics of the computing instance to be deployed and selecting appropriate computing nodes for deployment based on these characteristics, it is necessary to avoid deploying computing instances with the same business characteristics on the same computing node, thereby reducing the probability of mutual interference and improving service quality.

Benefits of technology

This method can not only improve the service quality of computing nodes when providing computing resources to users, but also make full use of computing node resources, improve resource utilization, and enhance the tenant's business experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114327739B_ABST
    Figure CN114327739B_ABST
Patent Text Reader

Abstract

A method and device for deploying computing instances, used to improve the service quality when providing computing resources to users. The method includes: a cloud server determines the target business characteristics corresponding to the computing instance to be deployed, determines the target computing node according to the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node, and deploys the computing instance to be deployed on the target computing node. By considering the business characteristics when selecting the target computing node, it helps the cloud server to try not to deploy computing instances with the same business characteristics on the same computing node. This method can not only reduce the probability of mutual interference between the computing instances on the same computing node, and try to ensure the service quality of these computing instances when performing computing services, improve the business experience of tenants when renting computing instances to perform business, but also enrich the business executed on the same computing node and make full use of various resources on the same computing node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of cloud computing technology, and in particular to a method and device for deploying a computing instance. Background Art

[0002] At present, with the development of big data technology, users' demand for data computing is also increasing. For users, when the computing power of a computer cannot meet the needs of data computing, users may need to purchase a computer with stronger computing power, or need to build a data center containing multiple computers. In this case, the costs that users have to bear include not only the high initial construction costs (such as the cost of purchasing computers and the cost of building data centers), but also the later operating expenses (such as electricity bills), computer maintenance expenses, and network maintenance expenses, etc. These expenses are difficult for users to bear. More importantly, even if users can afford these expenses, the service quality of users when performing data computing will be directly affected by factors such as the number of computers and the network of the data center, resulting in unstable service quality for users and unable to meet their actual needs. In order to solve these problems, cloud computing technology came into being.

[0003] Cloud computing technology can provide users with rentable computing resources. When the user's local resources are insufficient to provide the required computing power, the user can rent computing resources on the "cloud". The computing resources rented on the "cloud" are also called computing instances. The computing resources on the "cloud" can be infinitely expanded for users, as long as they pay according to the amount of computing resources used by the user. In addition, when renting computing resources, users can also sign a service level agreement (SLA) with the "cloud", which clearly stipulates the quality of service required by the user. By renting computing resources on the "cloud" to perform data operations, users can not only pay less than the cost of building a real computing network to perform data operations by themselves, but also get computing services that meet the service quality required by users. Therefore, cloud computing is becoming more and more popular among users.

[0004] In cloud computing technology, in order to improve resource utilization, two or more computing instances may be deployed simultaneously in each computing node. These computing instances may belong to different users or the same user. At present, when deploying the computing instances required by users, we usually only consider whether the computing nodes can provide the computing resources required by users. However, this method can only ensure that the resources of each computing instance deployed on the same computing node are sufficient, but cannot guarantee the service quality of each computing instance when it is actually used. If there is mutual interference between the computing instances, it is very likely that the service quality of some or even all computing instances on a computing node will be affected, thereby failing to meet the service quality requirements of users when performing computing services. Therefore, it can be seen that the computing node selected for the computing instance at this stage is not really suitable for the computing instance. Summary of the invention

[0005] The present application provides a method and apparatus for deploying a computing instance, which is used to deploy the computing instance on a suitable computing node to improve the service quality when the computing node provides computing resources to users.

[0006] In the first aspect, the present application provides a method for deploying a computing instance, which can be applied to a cloud server, and the method includes: the cloud server first determines the target business characteristics corresponding to the computing instance to be deployed, and then selects the target computing node from each computing node according to the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node, and deploys the computing instance to be deployed on the target computing node. In this design, by considering the business characteristics corresponding to the computing instance when selecting the target computing node, it helps the cloud server to try not to deploy computing instances with the same business characteristics on the same computing node. This method can not only reduce the probability of mutual interference between the computing instances on a computing node, and try to ensure the service quality of these computing instances when performing computing services, but also enrich the business executed on the same computing node and make full use of various resources of the same computing node. Obviously, this method can select a computing node suitable for the computing instance to deploy the computing instance, which helps to improve the service quality of the computing node when providing computing resources to tenants, thereby improving the business experience of tenants when renting computing instances to perform business.

[0007] In an optional design, the target business characteristics corresponding to the computing instance to be deployed may include one or more of the following: the business identifier of the business to be run on the computing instance to be deployed, the business type of the business to be run on the computing instance to be deployed, and the sensitive resources corresponding to the business to be run on the computing instance to be deployed. In this way, the business characteristics corresponding to the computing instance to be deployed can be used to characterize the business to be run on the computing instance to be deployed. This method helps to deploy computing instances that run the same business or have conflicts with the same sensitive resources on different computing nodes. This decentralized deployment method can not only avoid different computing instances on the same computing node from competing for the same sensitive resources, but also help to make full use of various sensitive resources on the same computing node and improve the resource utilization of the computing node.

[0008] In an optional design, when renting a computing instance, a tenant can send a first request message to the cloud server. The first request message is used to indicate the computing instance to be deployed and the corresponding target business characteristics. In this way, the cloud server can obtain the target business characteristics corresponding to the computing instance to be deployed based on the first request message. This design supports tenants to directly indicate the target business characteristics corresponding to the computing instance to be deployed. The target business characteristics indicated in this way can directly reflect the tenant's needs and are relatively more accurate.

[0009] In an optional design, when renting a computing instance, the tenant can send a first request message to the cloud server, and the first request message is used to indicate the computing instance to be deployed. In this way, after receiving the second request message, the cloud server can query and obtain the target business features corresponding to the computing instance to be deployed from the correspondence between the preset computing instance and the business features. Among them, the business features corresponding to the preset computing instance are predicted by a prediction model, and the prediction model is trained based on multiple computing instances with labeled business feature labels. This design predicts and stores the business features corresponding to each computing instance in advance, which helps to directly query and obtain the target business features when using it, without the need for real-time prediction, thereby improving the efficiency of deploying computing instances.

[0010] In an optional design, if the target business features corresponding to the computing instance to be deployed do not exist in the correspondence between the preset computing instances and business features, the computing instance to be deployed can be input into the prediction model to predict the target business features. This design predicts the target business features corresponding to the computing instance to be deployed through feature learning. Although the target business features obtained by this prediction method may have certain deviations from the tenant-specified method and cannot perfectly meet the tenant's needs, it can automatically determine the target business features when the tenant does not have the specified capability or other reasons cause the tenant to be unable to provide the target business features, so as to smoothly execute the computing instance deployment plan based on the target business features.

[0011] In an optional design, after the cloud server inputs the computing instance to be deployed into the prediction model to predict the target business characteristics, it can also map and store the computing instance to be deployed and the predicted target business characteristics in the corresponding relationship. This design can not only enrich the database, which helps the cloud server to provide more optional computing instances for tenants in the future, but also directly query the database to obtain the corresponding target business characteristics when the tenant repeatedly requests the new computing instance, without re-prediction, which also helps to improve the efficiency of subsequent deployment of computing instances.

[0012] In an optional design, the cloud server selects a target computing node from each computing node according to the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node, including: the cloud server selects a computing node that is not deployed with the first computing instance from each computing node as the target computing node. Among them, the business characteristics corresponding to the first computing instance are the target business characteristics. This design can deploy computing instances with the same business characteristics on different computing nodes, so that each computing node will basically not interfere with each other when executing the business, which helps to make the business execution quality meet the needs of tenants.

[0013] In an optional design, the cloud server selects a target computing node from each computing node according to the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node, including: the cloud server selects K candidate computing nodes from each computing node, passes each of the K candidate computing nodes through M weighing devices, obtains the weight value corresponding to each candidate computing node, and then determines the target computing node from the K candidate computing nodes according to the weight values ​​corresponding to the K candidate computing nodes. Wherein, K and M are positive integers, and the weight value corresponding to each candidate computing node is determined according to the M weights obtained when each candidate computing node passes through the M weighing devices. The M weighing devices include a business characteristic weighing device, and the business characteristic weighing device includes at least one weighing condition and a weight corresponding to at least one weighing condition. When a computing node meets a first weighing condition, the computing node obtains the weight corresponding to the first weighing condition; the first weighing condition is any one of the at least one weighing condition. Through this design, the cloud server can take into account the target business characteristics and other influencing factors corresponding to the computing instance to be deployed when selecting the target computing node. This method can select the target computing node that is more suitable for the computing instance to be deployed at a finer granularity, and the selected target computing node is more in line with the business needs of the tenant, which is more helpful to improve the tenant's business experience.

[0014] In an optional design, the cloud server selects K candidate computing nodes from each computing node, including: the cloud server passes each computing node in each computing node through N filters to filter and obtain K candidate computing nodes. Wherein, N is a positive integer, each filter in the N filters corresponds to a filtering condition, and when a computing node does not meet any of the N filtering conditions corresponding to the N filters, the computing node is filtered out by the filter corresponding to the unsatisfied filtering condition. Through this design, the cloud server will filter the computing nodes before selecting the target computing node to screen out the computing nodes that are obviously not compliant. In this way, the target computing node finally selected can not only meet the business needs, but also take into account the necessary conditions such as availability, so that the quality of the target computing node is better.

[0015] In a second aspect, the present application provides a device for deploying computing instances, the device comprising: a determination unit for determining target business characteristics corresponding to the computing instance to be deployed; a selection unit for selecting a target computing node from each computing node based on the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node; and a deployment unit for deploying the computing instance to be deployed on the target computing node.

[0016] In an optional design, the device for deploying a computing instance may further include a communication interface, which may receive a first request message sent by a tenant, the first request message being used to indicate the computing instance to be deployed and the corresponding target business feature. Correspondingly, the determination unit may determine the target business feature corresponding to the computing instance to be deployed based on the first request message.

[0017] In an optional design, the device for deploying a computing instance may also include a communication interface, which may receive a second request message sent by the tenant, and the second request message is used to indicate the computing instance to be deployed. Correspondingly, the determination unit may query and obtain the target business feature corresponding to the computing instance to be deployed from the correspondence between the preset computing instance and the business feature. When the target business feature corresponding to the computing instance to be deployed does not exist in the correspondence between the preset computing instance and the business feature, the determination unit inputs the computing instance to be deployed into the prediction model to predict the target business feature. The business feature corresponding to the preset computing instance is predicted by the prediction model, and the prediction model is trained based on multiple computing instances with labeled business feature labels.

[0018] In an optional design, after the determination unit inputs the computing instance to be deployed into the prediction model to predict the target business characteristics, the computing instance to be deployed and the predicted target business characteristics may be mapped and stored in a corresponding relationship.

[0019] In an optional design, the selection unit may select a computing node on which the first computing instance is not deployed from each computing node as a target computing node, and the service feature corresponding to the first computing instance is the target service feature.

[0020] In an optional design, the selection unit can select K candidate computing nodes from each computing node, and pass each of the K candidate computing nodes through M weighing devices to obtain a weight value corresponding to each candidate computing node, and then determine the target computing node from the K candidate computing nodes based on the weight values ​​corresponding to the K candidate computing nodes. Wherein, K and M are positive integers, and the weight value corresponding to each candidate computing node is determined based on the M weights obtained when each candidate computing node passes through the M weighing devices. The M weighing devices include a business feature weighing device, and the business feature weighing device includes at least one weighing condition and at least one weight corresponding to the weighing condition. When a computing node meets a first weighing condition, the computing node obtains a weight corresponding to the first weighing condition, and the first weighing condition is any one of the at least one weighing conditions.

[0021] In an optional design, the selection unit may also filter each computing node in each computing node through N filters to obtain K candidate computing nodes. Where N is a positive integer, each filter in the N filters may correspond to a filtering condition, and when a computing node does not satisfy any of the N filtering conditions corresponding to the N filters, the computing node is filtered out by the filter corresponding to the unsatisfied filtering condition.

[0022] In an optional design, the target business characteristics corresponding to the computing instance to be deployed may include one or more of the following: the business identifier of the business to be run on the computing instance to be deployed, the business type of the business to be run on the computing instance to be deployed, and the sensitive resources corresponding to the business to be run on the computing instance to be deployed.

[0023] In a third aspect, the present application provides a device for deploying computing instances, which may include a processor and a communication interface, wherein the communication interface is used to receive signals from other communication devices other than the device for deploying computing instances of the second aspect and transmit them to the processor or send signals from the processor to other communication devices other than the device for deploying computing instances of the second aspect, and the processor is used to implement a method such as any one of the first aspect through logic circuits or execution code instructions.

[0024] In a fourth aspect, the present application provides a device for deploying a computing instance, which may include a processor, the processor is connected to a memory, the memory stores a computer program, and the processor is used to execute the computer program stored in the memory so that the device performs any method as described in the first aspect above.

[0025] In a fifth aspect, the present application provides a computer-readable storage medium, which stores a computer program. When the computer program is executed, it implements any method as described in the first aspect above.

[0026] In a sixth aspect, the present application provides a chip, which may include a processor and an interface, wherein the processor is used to read instructions through the interface to execute the method described in any one of the first aspects above.

[0027] In a seventh aspect, the present application provides a computer program product, which stores a computer program. When the computer program runs on a computer, the computer executes any method described in the first aspect above.

[0028] For the beneficial effects of the second to seventh aspects mentioned above, please refer to the technical effects that can be achieved by the corresponding design in the first aspect mentioned above, and no further details will be given here. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] Figure 1 A schematic diagram of a possible system architecture applicable to the embodiments of the present application;

[0030] Figure 2 A schematic diagram of the overall process of renting a computing instance is shown as an example;

[0031] Figure 3 A flowchart corresponding to a method for deploying a computing instance provided in an embodiment of the present application is exemplarily shown;

[0032] Figure 4 A schematic diagram of an interface of a cloud rental website is shown as an example;

[0033] Figure 5 A schematic diagram showing the internal unit structure of a scheduler provided in an embodiment of the present application is exemplified;

[0034] Figure 6 A schematic diagram showing the internal unit structure of another scheduler provided in an embodiment of the present application is exemplified;

[0035] Figure 7 A flowchart corresponding to a method for deploying a computing instance provided in an embodiment of the present application is exemplarily shown;

[0036] Figure 8 A schematic diagram showing the internal unit structure of a feature learning module is shown as an example;

[0037] Fig. 9 A flowchart corresponding to another method for deploying a computing instance provided in an embodiment of the present application is exemplarily shown;

[0038] Fig.10 A schematic diagram showing the internal unit structure of a component library provided in an embodiment of the present application is exemplified;

[0039] Fig.11 A schematic diagram showing a structure of a device for deploying a computing instance provided in an embodiment of the present application is exemplified;

[0040] Fig.12 A schematic diagram of the structure of another apparatus for deploying computing instances provided in an embodiment of the present application is exemplified. DETAILED DESCRIPTION

[0041] The following will describe the technical solutions in the embodiments of the present application in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. In the following description, a tenant refers to a user who rents computing resources on the "cloud". The user can refer to a company, group, or group, and of course, can also refer to a general natural person individual, and this application does not limit this.

[0042] Figure 1 A possible system architecture diagram applicable to the embodiment of the present application is shown in FIG. Figure 1 The system architecture shown includes a cloud server and at least one tenant, such as Tenant 1, Tenant 2, and Tenant 3. It should be understood that the embodiments of the present application do not limit the number of cloud servers and the number of tenants in the system architecture. For example, a cloud server can only interact with one tenant, or it can interact with multiple tenants. In addition to cloud servers and tenants, the system architecture to which the embodiments of the present application are applicable may also include other devices, such as network devices, core network devices, wireless relay devices, and wireless backhaul devices, etc., which are not limited by the embodiments of the present application. In addition, the cloud server in the embodiments of the present application can integrate all functions into an independent physical device, or it can distribute the functions on multiple independent physical devices, which are not limited by the embodiments of the present application.

[0043] In the embodiment of the present application, the cloud server may refer to a single server or a server cluster. In a specific cloud computing application scenario, the cloud server may refer to a cloud service provider (CSP), also known as a cloud service control terminal, which is composed of a series of components and operation logic. The cloud server can provide tenants with rentable computing services, each of which is equivalent to a complete computing system, for example, it can include a virtual processor (virtual central processing unit, VCPU), internal memory or network bandwidth, etc., but the computing system is a virtual system with complete hardware system functions built on a real physical server or host based on virtualization technology. The computing service exists in the cloud server in the form of a computing instance. The various computing instances in the cloud server can be obtained by the cloud server pre-dividing the internal computing resource pool, or the cloud server can select the corresponding computing resources from the internal computing resource pool according to the needs of the tenant later. A computing instance is the smallest unit of computing services that a cloud server can provide to tenants. The categories of computing instances vary depending on the functions implemented. For example, virtual machine or virtual server (VM) type computing instances are used to implement complete system functions, while container type computing instances are used to migrate component libraries, dependencies, and files in different deployment environments. Serverless type computing instances can encapsulate different types of tenant requirements in different functions, so that tenants can complete the corresponding computing services by calling the corresponding functions.

[0044] The solution in the embodiment of the present application can be applied to the above Figure 1 The cloud computing scenario shown in the figure. The "cloud server" that appears below can be replaced by "cloud service provider" or "cloud server control terminal". Moreover, the "user" and "tenant" in the following text belong to the same concept and can be replaced with each other.

[0045] The following is based on Figure 1 The illustrated system architecture briefly introduces the overall process of tenants renting computing instances. Figure 2 The schematic diagram of the overall process of renting a computing instance is shown as an example, and the example takes tenant 1 renting computing instance 3 from a cloud server as an example. Figure 2 As shown, the process includes:

[0046] Step 201 , tenant 1 sends a request message for renting computing instance 3 to an application programming interface (API) in a cloud server.

[0047] In the embodiment of the present application, the cloud server can provide different types of computing instances to tenants, and each computing instance can correspond to its own resource specifications. These different types of computing instances and the corresponding resource specifications can be obtained by the cloud server by analyzing the needs of each tenant in the market. Different types of computing instances can correspond to different resource specifications. It should be understood that since different cloud servers correspond to different types of tenants, and different types of tenants have different needs, different cloud servers can provide different computing instances. Table 1 exemplarily shows a schematic table of the specifications of some computing instances and corresponding key resources provided by a cloud server. Referring to Table 1, among these key resources, the virtual central processing unit (VCPU) and memory are the resources most relevant to the computing power that the computing instance can provide. When the VCPU specification corresponding to the computing instance is larger and the memory specification is more, the computing power that the computing instance can provide is stronger. When the VCPU specification corresponding to the computing instance is smaller and the memory specification is less, the computing power that the computing instance can provide is weaker. For other key resources among these key resources, such as actual storage location, network bandwidth and cloud hard disk (elastic block store, EBS) bandwidth, these key resources are most related to the data processing performance that the computing instance can provide. When the computing instance supports more actual storage locations, supports larger network bandwidth and EBS bandwidth, the data storage performance and data transmission performance of the computing instance are stronger. When the computing instance supports fewer actual storage locations, supports smaller network bandwidth and EBS bandwidth, the data storage performance and data transmission performance of the computing instance are weaker. Among them, EBS is an easy-to-use high-performance data block storage service that can be used to handle throughput and transaction-intensive workloads of all sizes.

[0048] Compute instance type VCPU Memory (GiB) Instance storage (GiB) Network bandwidth (Gbps) EBS Bandwidth (Mbps) <![CDATA[A 11 ]]> 2 4 EBS only Up to 10 Up to 4750 <![CDATA[A 12 ]]> 4 8 EBS only Up to 10 Up to 4750 <![CDATA[A 13 ]]> 8 16 EBS only Up to 10 Up to 4750

[0049] Table 1

[0050] Continuing to refer to Table 1, some key resources of different types of computing instances may have the same specifications. For example, for computing instance A 11 、Calculation Example A 12 And calculation example A 13 , these three computing instances can only support a network bandwidth of no more than 10Gbps, and the generated data can only be stored in EBS with a transmission bandwidth of no more than 4750Mbps. This means that computing instance A 11 、Calculation Example A 12 And calculation example A 13All have the same data storage performance and output transmission performance. Some key resources of different types of computing instances can also have different specifications. For example, computing instance A 11 、Calculation Example A 12 And calculation example A 13 The VCPU and memory of these three computing instances increase in sequence, so the computing capabilities provided by these three computing instances are as follows from strong to weak: 13 、Calculation Example A 12 、Calculation Example A 11 .

[0051] In an optional embodiment, continue to refer to Figure 2 As shown, the cloud server may be provided with an application program interface API, a database, a scheduler, and at least one computing node, such as computing node 1 and computing node 2. The database is used to store relevant information of each computing instance that the cloud server can provide, such as resource information required for each computing instance and the cost that the tenant needs to pay when renting each computing instance. The API is used to realize information interaction between the cloud server and the tenant, such as informing the tenant of the various computing instances stored in the database, the specifications of the key resources corresponding to the various computing instances, and the cost, so that the tenant can select a computing instance 3 that meets the resource requirements and does not exceed the expected cost. The scheduler is used to manage each computing node, such as managing the available resources in each computing node and selecting a target computing node for the computing instance to deploy according to the available resources in each computing node. In this embodiment, tenant 1 can first select computing instance 3 from the various computing instances that the cloud server can provide, and then send a request message for renting computing instance 3, which can be first received by the API, and then submitted to the scheduler via the API, and the scheduler performs subsequent deployment operations.

[0052] Step 202: The API in the cloud server sends a request message for renting computing instance 3 to the scheduler in the cloud server.

[0053] Exemplarily, the scheduler may be a server cluster, a separate server, or a process in a server, without limitation.

[0054] Step 203: The scheduler in the cloud server obtains relevant information of computing instance 3 from the database.

[0055] Exemplarily, the request message may only include the identifier of computing instance 3. After receiving the request message, the scheduler may directly obtain relevant information of computing instance 3 from the database based on the identifier of computing instance 3. The relevant information includes not only the specifications of key resources, but also the rental cost, rental time, available tenants, the required deployment location and other information.

[0056] Step 204 , the scheduler in the cloud server selects a target computing node 1 suitable for computing instance 3 from computing node 1 and computing node 2 based on the relevant information of computing instance 3 , and deploys computing instance 3 in the target computing node 1 .

[0057] In an optional implementation, each computing node managed by the cloud server may refer to a different host (i.e., server, physical server, or physical host), or may refer to a different processor node (i.e., processor core), or may refer to a different shared top of rack (TOR) switch, without limitation. For example:

[0058] When the computing node is a host, if a host has multiple processor nodes, the cloud server can directly compare the business characteristics of the computing instances deployed by all the processor nodes of the host with the target business characteristics to find a host as the target host on which no computing instances corresponding to the target business characteristics are deployed in any processor node. Since no computing instances corresponding to the target business characteristics are deployed in each processor node of the target host, the computing instance to be deployed can be deployed in any processor node of the target host.

[0059] When the computing node is a processor node, the cloud server can compare the business characteristics of the deployed computing instances with the target business characteristics for each processor node on each host to find a processor node that does not have a computing instance with the target business characteristics deployed, and deploy the computing instance to be deployed in the processor node. In this case, there may be other processor nodes in the host to which the processor node belongs that have already deployed computing instances corresponding to the target business characteristics, but since the computing instance to be deployed will be deployed in the processor node, this will not affect the business operations of other processor nodes.

[0060] When the computing node is a TOR switch, multiple hosts may be deployed on the same TOR switch, so that multiple hosts share the resources of the TOR switch. In this case, the cloud server can compare the business characteristics of the deployed computing instances with the target business characteristics for all hosts on the TOR switch to find a TOR switch where computing instances with target business characteristics are not deployed in all hosts, and then select a processor node of a host from the TOR switch according to a certain rule to deploy the computing instance. In this way, since this method selects a TOR switch where the computing instance corresponding to the target business characteristic is not deployed, the computing instance to be deployed will not affect the processor nodes of other hosts on the TOR switch or the business operation of other processor nodes of the host after being deployed on any processor node of any host of the TOR switch.

[0061] In an optional implementation, when the cloud server selects a target computing node corresponding to computing instance 3, it can directly select a computing node with sufficient available resources for computing instance 3 from each computing node as the target computing node. If there are multiple computing nodes whose available resources are sufficient for rent, factors such as available resources, rental costs, and regions can also be considered, and a computing node with more available resources, lower rental costs, and the closest location to the tenant can be selected from the computing nodes that meet the requirements as the target computing node to ensure that the target computing node is the most cost-effective computing node among the computing nodes with sufficient resources for rent. For example, when the available resources in computing node 1 and computing node 2 are sufficient for computing instance 3, if the available resources in computing node 1 are greater than the available resources in computing node 2, and other factors in computing node 1 are the same as other factors in computing node 2, then this implementation will directly select computing node 1 to deploy computing instance 3.

[0062] However, the resources in the computing nodes are actually shared on the same physical device. Although some resources in the computing nodes can be used in isolation, sensitive resources such as network bandwidth are always mixed together and cannot be used in isolation. Even for computing instances with the same resource specifications, the sensitive resources required by the computing instance are different when running different services. For example, when the computing instance executes video encoding services, it mainly consumes sensitive resources such as VCPU and memory, while when the web server NGINX based on the asynchronous framework executes services (such as reverse proxy services, load balancing services, or HTTP cache services), it mainly consumes network bandwidth. In this case, if the services run by at least two computing instances deployed in the same computing node have the same sensitive resources, when one of the computing instances occupies more sensitive resources to run the service, the other computing instances are affected by the computing instance and can only use a small amount of sensitive resources to run the service, so that the delay of other computing instances to complete the service becomes longer, and even the service quality is reduced.

[0063] When a tenant rents a computing instance in a cloud server to perform a business, the tenant and the cloud service provider usually sign an SLA, which defines the resources required by the computing instance that the tenant wants to rent, the service quality that the tenant wants to obtain, and the cost that the tenant will pay to the cloud service provider. In other words, the tenant and the cloud service provider agree in advance on how much the tenant will pay to obtain a computing service with a certain service quality. If the quality of service (QoS) of the computing service actually provided to the tenant by the cloud server does not meet the service quality specified in the agreement, the tenant will feel that he has paid a higher cost but has not obtained a service quality that meets the cost, so the tenant's business experience is poor, and the tenant may even think that the cloud service provider has breached the contract. Obviously, the above implementation only considers the performance of the computing node itself when selecting the target computing node, but does not consider the relevant characteristics of the business to be run on the computing instance. The selected target computing node may not be suitable for the business to be run on the computing instance, so the tenant's business experience cannot be guaranteed, which is not conducive to the stable development of the cloud service provider.

[0064] In view of this, an embodiment of the present application provides a method for deploying a computing instance, which is used to select a suitable computing node for the computing instance in combination with the business characteristics corresponding to the computing instance, so as to maximize the business experience of tenants when using the computing instance to execute business.

[0065] The present application will be further described in detail below in conjunction with the accompanying drawings. It should be noted that in the description of the present application, "at least one" refers to one or more, and multiple refers to two or more. In view of this, "multiple" can also be understood as "at least two" in the embodiment of the present invention. "And / or" describes the association relationship of the associated objects, indicating that three relationships can exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / ", unless otherwise specified, generally indicates that the previous and subsequent associated objects are in an "or" relationship. In addition, it should be understood that in the description of the present application, words such as "first" and "second" are only used to distinguish the purpose of description, and cannot be understood as indicating or implying relative importance, nor can they be understood as indicating or implying order. For example, "first request message" and "second request message" are just exemplary indications of different request messages, and do not mean that the importance or priority of these request messages is different.

[0066] Embodiment 1

[0067] Figure 3 The following is a flow chart showing a method for deploying a computing instance provided in an embodiment of the present application, which is applicable to a cloud server. Figure 3 As shown, the method includes:

[0068] Step 301: The cloud server receives a request message triggered by a tenant, where the request message is used to indicate a computing instance to be deployed.

[0069] In the embodiment of the present application, the request message can be used only to indicate the computing instance to be deployed, or it can simultaneously indicate the computing instance to be deployed and the target business characteristics corresponding to the computing instance to be deployed. When the tenant clearly knows the resource specifications of the computing instance to be rented and the target business characteristics of the business to be run on the computing instance, the tenant can trigger the request message to the cloud server according to the computing instance to be rented and the corresponding target business characteristics. When the tenant only knows the resource specifications of the computing instance to be rented, but is not clear about the target business characteristics of the business running on the computing instance, the tenant can trigger the request message to the cloud server only according to the computing instance to be rented. Among them, the target business characteristics corresponding to the computing instance to be deployed can include one or more of the following: the business identifier of the business that the tenant will run on the computing instance to be deployed, the business type of the business that the tenant will run on the computing instance to be deployed, the sensitive resources corresponding to the business that the tenant will run on the computing instance to be deployed, or other information that helps to describe the business characteristics, such as the label corresponding to the business characteristic, the probability value belonging to a certain business characteristic, etc., are not specifically limited. The sensitive resources corresponding to the business may refer to resources with large consumption during the operation of the business. The resources with large consumption may be the first L (L is a positive integer) resources sorted in descending order of resource consumption, or may be resources with consumption greater than or equal to a preset consumption. Alternatively, the sensitive resources corresponding to the business may also refer to resources that cannot be distinguished when a computing node runs different computing instances, such as network bandwidth and central processing unit.

[0070] The following are two possible ways for tenants to trigger request messages:

[0071] Trigger method 1: The cloud server includes an API and a cloud backend. The tenant verbally or in writing explains to the developer of the cloud backend the computing instance to be rented, or also explains the target business characteristics corresponding to the computing instance. The developer of the cloud backend encapsulates this information through software programming to generate a request message, and uploads the request message to the API in the cloud server, which is then transmitted to the cloud backend via the API in the cloud server. It is understandable that if the tenant has a certain foundation in software programming, the tenant can also write a software program to upload the request message to the API in the cloud server without the need for the developer of the cloud backend to transfer it, which can convey the tenant's needs more directly and clearly.

[0072] Trigger method 2: The cloud server includes a cloud front end, an API, and a cloud back end. The cloud front end is used to implement interface interaction with tenants, while the cloud back end is used to deploy computing instances in each computing node according to tenant needs. Among them, the interface information displayed to tenants by the cloud front end is controlled by the API, and the API can provide tenants with a cloud rental website through the cloud front end. In this case, the tenant can first log in to the cloud rental website on the terminal device, and then fill in or select the computing instance to be rented on the website, or fill in or select the target business features corresponding to the computing instance to be rented, and then click the submit button, so that the cloud front end generates a request message based on the information received and submits it to the cloud back end via the API.

[0073] In the embodiment of the present application, when the tenant triggers a request message to the cloud server through the above trigger mode 2, the terminal device used by the tenant may refer to a device with a display screen and capable of providing voice and / or data connectivity to the user, for example, a handheld device with a wireless connection function, or a processing device connected to a wireless modem. The terminal device may communicate with the core network via a radio access network (RAN) and exchange voice and / or data with the RAN. The terminal device may include user equipment (UE), wireless terminal equipment, mobile terminal equipment, device-to-device (D2D) terminal equipment, vehicle-to-everything (V2X) terminal equipment, machine-to-machine / machine-type communications (M2M / MTC) terminal equipment, Internet of Things (IoT) terminal equipment, subscriber unit, subscriber station, mobile station, remote station, access point (AP), remote terminal, access terminal, user terminal, user agent, or user equipment, etc. For example, it may include a mobile phone (or "cellular" phone), a computer with a mobile terminal device, a portable, pocket-sized, handheld, or computer-built-in mobile device, etc. For example, personal communication service (PCS) phones, cordless phones, session initiation protocol (SIP) phones, wireless local loop (WLL) stations, personal digital assistants (PDA), and other devices. It also includes limited devices, such as devices with low power consumption, or devices with limited storage capacity, or devices with limited computing power, etc. For example, it includes information sensing devices such as barcodes, radio frequency identification (RFID), sensors, global positioning systems (GPS), laser scanners, etc.When the tenant triggers a request message to the cloud server through the terminal device, the terminal device and the cloud server can also communicate by wire or wirelessly through the network protocol, and the network protocol may include, for example, the transmission control protocol / internet protocol (TCP / IP), the user datagram protocol / internet protocol (UDP / IP), the hypertext transfer protocol (HTTP), the hypertext transfer protocol over secure socket (HTTPS), etc. The network protocol may also include the remote procedure call protocol (RPC) protocol and the representational state transfer (REST) ​​protocol used on top of the above protocols, without specific limitation.

[0074] In an optional implementation of trigger mode 2, the cloud server can display on the cloud rental website the specifications of some key resources of each computing instance that can be rented to tenants and the various business features that can be selected by tenants, or can also display the cost of renting each computing instance, so that tenants can comprehensively consider the cost to be paid and the resource specifications of the computing instance, and select a computing instance with better computing power without exceeding the expected cost. The above implementation can use the limited space on the cloud rental website to display content related to the information that tenants are actually concerned about, which helps tenants to more accurately select computing instances to be deployed. For example, Figure 4 An example of a schematic diagram of the interface of a cloud rental website is shown as follows: Figure 4 As shown, the interface of the cloud rental website can be composed of a computing instance selection area and a business feature selection area. The first column of the computing instance selection area is used to select a computing instance. Assume that the currently selected computing instance is the computing instance "General A" in the dotted box. 14 ", then when the tenant finds the computing instance "General A 14 The 12-core VCPU that can be provided is lower than the VCPU specification required by the tenant, and / or the computing instance "General A 14 If the 48GB memory that can be provided by the tenant is less than the memory specification required by the tenant, the tenant can click the downward triangle button to the right of the "Compute Instance" text in the first row of the first column of the compute instance selection area to switch to a compute instance with higher resource specifications, such as the compute instance "General A 15When the tenant finds the computing instance "General A 14 The 12-core VCPU that can be provided is not less than the VCPU specification required by the tenant, and the computing instance "General A 14 "The 48 GB memory that can be provided is not less than the memory specification required by the tenant. If the computing instance "General A 14 If the cost to be paid exceeds the tenant's expected cost, the tenant can click the upward triangle button on the right side of the "Compute Instance" text in the first row of the first column of the compute instance selection area to switch to a compute instance with lower resource specifications, such as the compute instance "General A 13 "; or, if the calculation instance "General A 14 If there is still a margin between the cost to be paid and the tenant's expected cost, the tenant can click the downward triangle button to the right of the "Compute Instance" text in the first row of the first column of the compute instance selection area to switch to a compute instance with higher resource specifications and higher costs, such as the compute instance "General A 15 ". After the tenant selects the computing instance, if the tenant clearly knows the target business characteristics corresponding to the computing instance, the tenant can also select the corresponding target business characteristics from the business characteristics selection area, and then click the Add button to add the computing instance and the corresponding target business characteristics to the computing instance table that the tenant needs to rent. After all the computing instances and the corresponding target business characteristics are added, the tenant can trigger the terminal device to generate a request message and submit it to the cloud server.

[0075] It should be understood that Figure 4 The other rows of the compute instance selection area shown in the figure can also be used to select resource types, unit resource consumption and cost types. For example, if the tenant is not concerned with the VCPU that the compute instance can provide, but is concerned with the network bandwidth that the compute instance can provide, the tenant can also click the upward or downward triangle button on the right side of the "VCPU" text in the first row of the second column of the compute instance selection area to switch to the "network bandwidth" resource. Alternatively, if the tenant is not concerned with the cost per hour of the compute instance (corresponding to Figure 4 The "pay as you go" resources shown are just a billing method. In addition to hourly billing, it can also be set to monthly billing or annual billing, or set to billing by points, etc.). If you are concerned about the cost of the compute instance on a monthly basis, you can also click the upward or downward triangle button on the right side of the "pay as you go (hour)" text in the first row of the fourth column of the compute instance selection area to switch to its "pay as you go (month)". Alternatively, if the tenant does not want to rent the compute instance on a monthly basis, but wants to rent the compute instance directly on an annual basis, the tenant can also click the upward or downward triangle button on the right side of the "standard catalog monthly price" text in the first row of the fifth column of the compute instance selection area to switch to the "standard catalog annual price".

[0076] It should be noted that the various business features displayed on the cloud rental website for tenants to choose from may be common business features determined in advance by the cloud server through feature analysis. The specific determination process may refer to step 303 and will not be introduced here.

[0077] In an optional implementation, the cloud server can provide the various computing instances stored in the database to the tenant for selection. However, considering that the various computing instances stored in the database may not meet the needs of all tenants, in order to improve the feasibility of tenants renting computing instances, the cloud server can also display various resource elements on the cloud rental website. When the tenant finds that the computing instances provided by the cloud server to the tenant do not meet the tenant's needs, the tenant can combine the various resource elements to obtain a new computing instance that meets the tenant's needs, and send it to the cloud server through a request message. In this case, if the request message only includes the resource information of the new computing instance, the cloud server can also name the new computing instance by itself, and then generate a corresponding relationship between the name of the new computing instance and the required resource information, and update the database accordingly. If the request message also includes the name of the computing instance named by the tenant, the cloud server can directly generate a corresponding relationship between the name of the new computing instance and the required resource information, and update the database accordingly. This method can not only enrich the database with new computing instances assembled by the tenant, but also directly display the new computing instance to the tenant for selection when providing a subsequent rental request, without the need for the tenant to reassemble it, thereby helping to save the tenant's rental operation and improve the rental experience.

[0078] In step 302 , the cloud server determines whether the request message indicates the target business characteristics corresponding to the computing instance to be deployed. If not, step 303 is executed. If yes, step 304 is executed.

[0079] Step 303: The cloud server calls the prediction model to predict the target business features corresponding to the computing instance to be deployed.

[0080] In an optional implementation, the prediction model can be trained in the following manner: the cloud server first obtains a large amount of business data, which can be historical business data executed in the cloud server, public business data downloaded from the network by the cloud server, or business data of a third party obtained by the cloud server based on interaction with a third party, and these business data include computing instances run by various businesses. Then, the cloud server can use big data analysis algorithms and classification algorithms to classify and count a large amount of business data, first obtain different types of business features based on the relevant information of each business, and then determine the corresponding relationship between various types of business features and various types of computing instances based on the computing instances run by each business, and then use machine learning algorithms (machine learning, ML) to associate the corresponding relationship to train the prediction model. The type of prediction model can be set by those skilled in the art based on experience, for example, it can be a decision tree model, a classification model, or a random forest model. The prediction model can predict the target business features corresponding to the computing instance when the relevant information of the computing instance is input.

[0081] In this implementation, after the prediction model is trained, the cloud server can call the prediction model to directly predict all computing instances stored in its database, and store the predicted business features corresponding to each computing instance in the database. In this way, for any subsequent request message that does not indicate a business feature, as long as the computing instance to be deployed is a computing instance stored in the database, the cloud server can directly query the database to obtain the target business features corresponding to the computing instance without the need to perform real-time predictions on the computing instance to be deployed, thereby helping to more quickly obtain the target business features corresponding to the computing instance to be deployed. However, this method predicts all computing instances before the tenant actually rents the computing instance, so resource consumption may be large.

[0082] In addition, in this embodiment, after the prediction model is trained, the cloud server may not predict the computing instances stored in its database first, but only call the prediction model to predict the computing instances to be deployed after receiving the request message, determine the target business features corresponding to the computing instances to be deployed, and store the corresponding relationship between the computing instances to be deployed and the target business features in the database. This method predicts and stores the corresponding target business features only when the tenant actually rents the computing instance, so it does not waste resources to predict computing instances that do not need to be deployed, nor does it need to repeat the prediction of the deployed computing instances, which is more helpful to save resources. However, the response speed of this method to the first few computing instances rented may not be as timely as the previous method.

[0083] In the embodiment of the present application, when the computing instance to be deployed is a new computing instance assembled by the tenant, the target business features corresponding to the new computing instance will not be stored in the database. In this case, the cloud server can directly call the prediction model to analyze the relevant information of the new computing instance, and after predicting the target business features corresponding to the new computing instance, the new computing instance and the corresponding target business features are mapped and stored in the database. This method can not only enrich the database and help the cloud server to provide more optional computing instances for tenants in the future, but also directly query the database to obtain the corresponding target business features when the tenant repeatedly requests the new computing instance, without re-predicting, thereby helping to improve the efficiency of subsequent deployment of computing instances.

[0084] Table 2 exemplifies a correspondence table between computing instances and business features stored in a database. In this example, business features specifically refer to sensitive resources corresponding to the business. It can be understood that Table 2 only exemplifies the correspondence between computing instances and business features in a tabular storage manner. In other examples, the correspondence can also be stored in the database in the form of key-value pairs, blocks or files, etc., without specific limitation.

[0085]

[0086]

[0087] Table 2

[0088] As shown in Table 2, a computing instance can correspond to only one sensitive resource or multiple sensitive resources at the same time. When a computing instance corresponds to multiple sensitive resources, the computing instance has a relatively large demand for each of the multiple sensitive resources during the operation of the business. When there is a sensitive resource that does not meet the business execution requirements, the business operation quality of the computing instance cannot be guaranteed. Exemplarily, in order to ensure the accuracy of the sensitive resources corresponding to each computing instance stored in the database, the cloud server can also re-predict each computing instance in Table 2 according to a set period. When the re-predicted sensitive resources are different from the previously stored sensitive resources, the cloud server can update Table 2.

[0089] In the above step 303, although a computing instance can be used to run different businesses, since the resources that the computing instance can provide are fixed, the businesses running on the computing instance also mostly have the same business characteristics, such as the same sensitive resources. In this case, the computing instance and the business characteristics can be considered to have a certain association relationship, and this association relationship can be directly determined based on the resources that the computing instance can provide. Although the accuracy of using this association relationship to determine the business characteristics corresponding to the business to be run on the computing instance may not be as high as the accuracy of the business characteristics directly indicated by the tenant, it can be used as an auxiliary means to assist the cloud server in determining the target computing node suitable for the computing instance when the tenant does not indicate the business characteristics.

[0090] In step 304, the cloud server passes each computing node in each computing node through N filters to obtain K candidate computing nodes, and determines the number of the K candidate computing nodes:

[0091] If there is no candidate computing node, execute step 305;

[0092] If there is only one candidate computing node, execute step 306;

[0093] If there are at least two candidate computing nodes, execute step 307 .

[0094] In the embodiment of the present application, the above step 304 can be specifically performed by a scheduler in the cloud server. Figure 5 A schematic diagram showing the internal unit structure of a scheduler provided in an embodiment of the present application is shown as follows: Figure 5 As shown, the scheduler may include N filters, M weighers and a storage unit, wherein the N filters belong to the first layer of the scheduler, and the M weighers belong to the second layer of the scheduler, and the storage unit is connected to the N filters and the M weighers respectively, and the storage unit stores the relevant information of each computing node and the relevant information of the computing instance, such as the identification of each computing node and the identification of the computing instance deployed on each computing node. The N filters may be named filter 1, filter 2, ..., filter N, respectively, and the M weighers may be named weigher 1, weigher 2, ..., weigher M, respectively, and N and M are positive integers. The N filters may be controlled by a filtering algorithm, and the filtering algorithm may filter out computing nodes that do not meet the requirements of the hard constraints (i.e., filtering conditions, including available resources and user-defined hard constraints). After the filtering algorithm is executed, only K candidate computing nodes that meet the requirements of the hard constraints are left in each computing node. Among them, N, M, and K are positive integers. The content of the M filters will be specifically described in step 307, and will not be introduced here.

[0095] Table 3 exemplarily shows a table showing the contents of several filters. In the embodiment of the present application, the N filters may include one or more filters shown in Table 3, and may also include other types of filters, which are not specifically limited.

[0096]

[0097]

[0098] Table 3

[0099] The following is a detailed introduction to the filters in Table 3:

[0100] Availability filter, the corresponding hard constraint is that the available resources in the computing node are sufficient. When the available resources in the computing node are not less than the resources required by the computing instance to be deployed, the available resources in the computing node are sufficient for the computing instance to be deployed, so the computing node can pass the availability filter and enter the next filter. When the available resources in the computing node are less than the resources required by the computing instance to be deployed, the available resources in the computing node are insufficient for the computing instance to be deployed, so the computing node is filtered out by the availability filter.

[0101] Affinity filter, the hard constraint is that at least two computing instances need to be deployed together. When the computing instance to be deployed has one or more other computing instances that need to be deployed together, if each other computing instance has been deployed in the computing node, the computing node can pass the affinity filter and enter the next filter. If at least one of the other computing instances is not deployed in the computing node, the computing node is filtered out by the affinity filter. When the computing instance to be deployed does not have other computing instances that need to be deployed together, each computing node can pass the affinity filter and enter the next filter.

[0102] Anti-affinity filter, the hard constraint condition is that at least two computing instances cannot be deployed together. When there are one or more other computing instances that cannot be deployed together with the computing instance to be deployed, if all other computing instances are not deployed in the computing node, the computing node can pass the anti-affinity filter and enter the next filter. If one of the other computing instances has been deployed in the computing node, the computing node is filtered out by the anti-affinity filter. When there are no other computing instances that cannot be deployed together with the computing instance to be deployed, each computing node can pass the anti-affinity filter and enter the next filter.

[0103] In an optional implementation, in order to ensure that the available resources in the target computing node are sufficient for the computing instance to be deployed, at least the availability filter needs to be included in the N filters. The affinity filter and anti-affinity filter are filters that are automatically generated by the cloud server according to the hard constraints customized by the tenant. For example, when the computing instance that the tenant wants to rent needs to be used in conjunction with other computing instances, the tenant can customize the same deployment hard constraints of the computing instance and the other computing instances and notify the cloud server so that the cloud server generates an affinity filter according to the same deployment hard constraints. Alternatively, when the computing instance that the tenant wants to rent cannot be used at the same time as other computing instances, otherwise interference will occur, the tenant can customize the different deployment hard constraints of the computing instance and the other computing instances and notify the cloud server so that the cloud server generates an anti-affinity filter according to the different deployment hard constraints. It should be understood that the tenant's customized hard constraints can be configured in advance by the tenant to the cloud server (for example, agreed upon by the tenant and the cloud server in the signed SLA), or can be carried in the tenant's request message for renting a computing instance, or can be obtained by the cloud server actively consulting the tenant after receiving the request message, without specific limitation.

[0104] Step 305: The cloud server returns a notification message to the tenant indicating that the deployment of the computing instance to be deployed has failed.

[0105] In the embodiment of the present application, when all computing nodes in the cloud server fail to pass the filtering of N filters, it means that all computing nodes in the cloud server are not suitable for the computing instance to be deployed. This may be caused by the fact that the available resources of each computing node are insufficient for the computing instance to be deployed, or it may be caused by the fact that each computing node does not meet the hardware constraints set by the user. In this case, the cloud server can display a notification message of deployment failure to the tenant through the interface, so that the tenant can determine whether to end the deployment directly, or redeploy after modifying the hardware constraints, or reselect the computing instance for deployment.

[0106] In step 306 , the cloud server directly uses the only candidate computing node as the target computing node, and then executes step 308 .

[0107] In the embodiment of the present application, when only one computing node in the cloud server passes the filtering of N filters, it means that only the available resources of this one computing node in the cloud server are sufficient for the computing instance to be deployed, and at the same time, the hardware constraints set by the user are met. In this case, the cloud server can use this computing node as the target computing node, and no longer needs to execute the subsequent M weighing machines on this computing node, so as to save unnecessary operation steps and complete the deployment operation of the computing instance faster.

[0108] In step 307, the cloud server passes each of the K candidate computing nodes through M weighing machines to obtain a weight value corresponding to each candidate computing node, and determines the target computing node from the K candidate computing nodes according to the weight values ​​of the K candidate computing nodes. Among them, the weight value corresponding to each candidate computing node is obtained according to the M weights obtained by the candidate computing node through the M weighing machines. For example, the weight value corresponding to each candidate computing node can be the sum of the M weights obtained when the candidate computing node passes through the M weighing machines. The M weighing machines include at least a business feature weighing machine. When the candidate computing node meets the weighing conditions corresponding to the business feature weighing machine, the candidate computing node can obtain the weight corresponding to the business feature weighing machine.

[0109] In the above step 307, the target computing node is determined from the K candidate computing nodes according to the weight values ​​of the K candidate computing nodes. The candidate computing node with the largest weight value among the K candidate computing nodes can be directly used as the target candidate computing node, or it can be randomly selected from the R candidate computing nodes with the highest weight value (the value is a positive integer not greater than K) as the target computing node, or it can be determined from the R candidate computing nodes with the highest weight value according to a preset rule. The preset rule can be set by those skilled in the art based on experience and is not specifically limited. The following is an introduction to the example of taking the candidate computing instance with the largest weight value as the target computing instance.

[0110] In an embodiment of the present application, M weighing devices may be controlled by a weighted weighing algorithm, which may weigh each candidate computing node according to the soft constraints (including business characteristics and user-defined soft constraints) corresponding to the M weighing devices, obtain M weights, and then determine the weight value of the candidate computing node by the sum of the M weights. Among them, each weighing device may correspond to one or more weights, and the sum of the maximum weights of each weighing device may be 1. It is understandable that the value of the maximum weight of the M weighing devices may be set according to the degree of influence of the M weighing devices on the computing instance to be deployed. For example, when the soft constraint of a certain weighing device has a greater influence on the computing instance to be deployed, the greater the maximum weight that the weighing device may correspond to, and when the soft constraint of a certain weighing device has a smaller influence on the computing instance to be deployed, the smaller the maximum weight that the weighing device may correspond to. Exemplarily, considering that business resources have a greater impact on the first computing instance, the embodiment of the present application can set the maximum weight of the business resource scale to be no less than the maximum weight of each other scale, for example, it can be set to 0.5 or a value greater than 0.5.

[0111] Table 4 shows a schematic table of the contents of several weighing devices. In the embodiment of the present application, the M filters may include one or more weighing devices shown in Table 4, and may also include other types of weighing devices, which are not specifically limited.

[0112]

[0113] Table 4

[0114] The following is a detailed introduction to several weighing devices in Table 4:

[0115] Business feature weigher, the soft constraint condition is whether there are computing instances sensitive to the same sensitive resources deployed in the candidate computing nodes. The business feature weigher corresponds to only one weight, which is 0.5 as shown in Table 4. When all the deployed computing nodes in the candidate computing nodes are not sensitive to the target sensitive resources corresponding to the computing instance to be deployed, the business feature weigher will return the weight 0.5 corresponding to the business feature weigher. When there is at least one deployed computing node in the candidate computing nodes that is sensitive to the target sensitive resources corresponding to the computing instance to be deployed, the business feature weigher will return 0. It should be understood that the business feature weigher in Table 4 is explained by taking the business feature as a sensitive resource as an example. When the business feature is other information, the soft constraint condition corresponding to the business feature weigher may also be different. For example, when the business feature is a business identifier, the soft constraint condition corresponding to the business feature weigher may be whether there are computing instances corresponding to the same business identifier deployed in the candidate computing nodes.

[0116] Location scale, the soft constraint condition is the location relationship between the geographical location of the candidate computing node and the geographical location of the tenant (or other geographical locations set by the tenant). The location scale can correspond to multiple weights (such as 0.3, 0.2, 0.1 and 0.05 as shown in Table 4), and each weight can correspond to a location relationship. When the geographical location of the candidate computing node and the geographical location of the tenant meet one of the location relationships, the location scale will return the weight corresponding to the location relationship. For example, when the candidate computing node and the tenant are deployed in different counties in the same city, the location scale will return 0.2.

[0117] Compute instance weigher, the soft constraint is the number of compute instances deployed in the candidate compute node. The compute instance weigher can also correspond to multiple weights (such as 0.2, 0.1, and 0.05 as shown in Table 4), and each weight can correspond to a quantity. When the number of compute instances deployed in the candidate compute node matches one of the quantities, the compute instance weigher returns the weight corresponding to the quantity. For example, when 2 compute instances have been deployed in the candidate compute node, the location weigher returns 0.1.

[0118] It should be understood that Table 4 is only an exemplary explanation, and the present application does not limit the number of weights corresponding to each weighing device, the weight value corresponding to each weighing device, and the soft constraint conditions corresponding to each weight. For example, the business feature weighing device may also include more than one weight. For example, in one case, the business feature weighing device includes at least two discrete weights, and each of the at least two weights may correspond to a weighing condition. When the computing node satisfies a certain weighing condition, the business feature weighing device will return the weight corresponding to the weighing condition. For example, in another case, the business feature weighing device may also have a continuous weighing relationship (such as a linear weighing relationship, or a continuous weighing relationship corresponding to any other algorithm), and the continuous weighing relationship corresponds to a certain range of continuous weights. The business feature weighing device will calculate a score value according to the business features corresponding to all computing instances deployed on the computing node according to the continuous weighing relationship, and then determine a corresponding weight from the continuous weight range according to the score value and return it.

[0119] In the embodiment of the present application, in order to comprehensively consider the target business characteristics corresponding to the computing instance to be deployed in the process of determining the target computing node, at least the business characteristic weigher needs to be included in the M weighers, and each candidate computing node must be weighted by the business characteristic weigher to try to select the target computing node of the computing instance that has not deployed the same business characteristics to deploy the computing instance to be deployed. The position weigher and the computing instance weigher are weighers automatically generated by the cloud server according to the soft constraints customized by the tenant. For example, when the tenant wants to rent a computing node close to his geographical location to deploy the computing instance, the tenant can customize the soft constraints containing his geographical location and notify the cloud server so that the cloud server generates the position weigher according to the soft constraints. It should be understood that the soft constraints customized by the tenant can be configured by the tenant to the cloud server in advance (for example, agreed by the tenant and the cloud server in the signed SLA), or can be carried in the request message of the tenant to rent the computing instance, or can be obtained by the cloud server after receiving the request message and actively consulting the tenant, without specific limitation.

[0120] In a possible design of the above step 307, the cloud server can obtain the weight value corresponding to each candidate computing node in turn. When the weight value corresponding to a candidate computing node is greater than or equal to the preset weight value, the cloud server can no longer weigh other candidate computing nodes, but directly use the candidate computing node as the target computing node. This method can more quickly determine the target computing node that matches the computing instance to be deployed, and there is no need to weigh all the candidate computing nodes, so it helps to save the resources of the cloud server. In another possible design of the above step 307, the cloud server can first obtain the weight values ​​corresponding to each candidate computing node, and then sort the candidate computing nodes in order from high to low according to the weight value, and select the candidate computing node with the highest weight value as the target computing node. This method can use the candidate computing node that best matches the computing instance to be deployed as the target computing node, which can ensure the best business experience and service quality for tenants.

[0121] The following is a specific example of determining the target computing node based on the computing instance shown in Table 2, the filter shown in Table 3, and the weigher shown in Table 4. In this example, it is assumed that the tenant is located in Fenghuang County, Hunan Province, and the computing instance to be deployed is computing instance B. 11 , calculation example B 11 The corresponding sensitive resource is network bandwidth, calculation example B 11 There is an anti-affinity filter and an affinity filter. The hard constraint of the anti-affinity filter is to calculate instance B. 11 Cannot be compared with Calculation Instance B 14 Set together, the hard constraints of the affinity filter are calculated as instance B 11 Need and calculation instance B 12 Or calculation example B 13 Assume that there are the following computing nodes, and the available resources of these computing nodes are greater than those of computing instance B. 11 Resources Required:

[0122] Compute node 20, located in Fenghuang County, Hunan Province, is deployed with compute instance B 13 , the corresponding sensitive resource is network bandwidth;

[0123] Compute node 21, located in Fenghuang County, Hunan Province, is deployed with compute instance B 15 , the corresponding sensitive resources are CPU and memory;

[0124] Compute node 22, located in Fenghuang County, Hunan Province, is deployed with compute instance B 14 , the corresponding sensitive resources are network bandwidth and CPU;

[0125] Compute node 23, located in Changsha County, Hunan Province, is deployed with compute instance B 12 , the corresponding sensitive resources are storage resources;

[0126] Compute node 24, located in Fenghuang County, Hunan Province, is deployed with compute instance B 12 , the corresponding sensitive resource is storage resource.

[0127] Then: Since computing node 22 is deployed with a 11 Deployed together computing instance B 14 Therefore, computing node 22 will be filtered out by the anti-affinity filter, because computing node 21 does not have any nodes that need to be connected to computing instance B. 11 Deployed together computing instance B 12 And calculation example B 13 , so node B 11 At this point, after computing nodes 20 to 24 are filtered by the filters shown in Table 3, only computing nodes 20, 23, and 24 remain. Computing node 20 has nodes that need to be connected to computing instance B. 11 Deployed together computing instance B 13 , computing nodes 23 and 24 are deployed with computing instance B 11 Deployed together computing instance B 12 , and none of these three computing nodes is deployed with a node that cannot be used with computing instance B 11 Deployed together computing instance B 14 Furthermore, after weighing by the weighing device shown in Table 3, the weight value corresponding to the computing node 20 is: 0 (deployed with computing instance B that is sensitive to network bandwidth) 13 )+0.3(with calculation example B 11 The weight value of computing node 23 is: 0.5 (no computing instance sensitive to network bandwidth is deployed) + 0.1 (with computing instance B 11 The weight value of computing node 24 is: 0.5 (no computing instance sensitive to network bandwidth is deployed) + 0.3 (with computing instance B 11 located in the same county)+0.2(the number of deployed computing instances is 1, which is less than 2)=1. Therefore, the cloud server can use the computing node 24 with the highest weight value as the target computing node.

[0128] In the above steps 304 to 307, the N filters belong to hard screening conditions. As long as the computing node does not meet one of the filters, the computing node will be directly filtered out. Only when the computing node meets all the filters will the computing node be determined as an alternative computing node. Correspondingly, the M weighers belong to soft screening conditions. Even if the computing node does not match one or some weighers, the computing node will not be filtered out, but will only get a smaller weight. It can be seen that the implementation method in the above steps 304 to 307 adds a business feature weigher to the scheduler, which actually takes the business feature as an influencing factor. The business feature and other influencing factors jointly determine the target computing node.

[0129] It should be noted that the present application does not limit in which stage of scheduling the target service feature is used. Figure 6As shown in the internal unit structure diagram of the scheduler, the cloud server can also add a business feature filter instead of a new business feature weigher in the scheduler. Each computing node will also be filtered through the business feature filter. When the computing node does not meet the filtering conditions corresponding to the business feature filter, the computing node is directly filtered out by the business feature filter. When the computing node meets the filtering conditions corresponding to the business feature filter, the computing node can pass through the business feature filter and enter the next filter. This implementation method actually uses business features as a determining factor to screen computing nodes. As long as the computing node has a computing instance with the same target business features as the computing instance to be deployed, the computing node will not be used as a target computing node. In this way, when the target computing node can be screened out, the target computing node can better meet the business needs of the tenant. Alternatively, in another optional implementation, the cloud server may also execute the weigher first and then execute the filter, for example, first according to the business characteristics of the computing instance already deployed in the computing node, calculate the score (or weight, sensitivity, etc., not limited) of the computing instance to be deployed if it is deployed on the computing node, when the score of the computing node is not less than the preset score threshold, the computing node is used as an alternative computing node, when the score of the computing node is less than the preset score threshold, the computing node is not used as an alternative computing node, and then each alternative computing node is filtered through the filter, and the target computing node is selected from the filtered alternative computing nodes. Alternatively, in another optional implementation, the cloud server may not set a scheduler and a filter, but directly set a preset selection algorithm or calculation formula, which includes multiple independent variables. When in use, the cloud server can use the business characteristics as a newly added independent variable to rewrite the selection algorithm or calculation formula, so that the rewritten selection algorithm or calculation formula can take into account the influence of the business characteristics. As for the rewriting method, it can be set by those skilled in the art based on experience, and this application does not make specific limitations on this.

[0130] When selecting the target computing node, the scheme in the above steps 304 to 307 not only takes into account the available resources of the computing node and the target business characteristics corresponding to the computing instance to be deployed, but also supports the tenant to set hard constraints and soft constraints according to their own needs. This method can select the target computing node that is more suitable for the computing instance to be deployed from a finer granularity, and the selected target computing node is more in line with the needs of the tenant, which is more helpful to improve the tenant's experience.

[0131] It should be understood that the scheme in the above steps 304 to 307 is only an optional implementation method, and the present application is not limited to selecting the target computing node in this way. As long as the scheme of selecting the target computing node is comprehensively considered to consider the business characteristics, it is within the protection scope of the present application. For example, in a simpler selection method, the cloud server can sequentially compare the target business characteristics corresponding to the computing node to be deployed and the business characteristics corresponding to the computing instance deployed on each computing node. If there are one or more business characteristics corresponding to the deployed computing instances on a computing node that are the same as the target business characteristics corresponding to the computing node to be deployed, then ignore the computing node and start comparing the next computing node until a computing node whose business characteristics corresponding to all deployed computing instances are different from the target business characteristics corresponding to the computing node to be deployed is found, and the computing node is used as the target computing node. This method does not require the cloud server to compare all computing nodes, which helps to save the resources of the cloud server and improve deployment efficiency, but the target computing node selected in this way may not be the best. Alternatively, in another simpler selection method, the cloud server finds all computing nodes from each computing node whose business characteristics corresponding to all deployed computing instances are different from the target business characteristics corresponding to the computing nodes to be deployed, and then selects a computing node with a better cost-effectiveness (for example, the most available resources, the closest geographical location, or the least deployed computing instances, and the lowest required cost) from all these computing nodes as the target computing node. Although this method requires the cloud server to compare all computing nodes, the target computing nodes selected in this way are of higher quality. Of course, in these two selection methods, considering that only when the available resources of the computing node meet the resources required by the computing instance to be deployed, the computing node can be used to execute the computing instance to be deployed. Therefore, before comparing each computing node according to the business characteristics, the cloud server can also first determine whether the available resources of the computing node are sufficient for the computing instance to be deployed. If not, there is no need to compare the computing node but to exclude it directly.

[0132] When the above two simpler selection methods are adopted, if the business characteristics corresponding to the deployed computing instances in all computing nodes are the same as the target business characteristics corresponding to the computing instances to be deployed, it means that no computing node is suitable for the service quality desired by the tenant. Therefore, the cloud server can directly return a notification message of "business characteristics are not applicable" to the tenant, so that the user can decide whether to end the deployment or continue the deployment in the next step. Alternatively, the cloud server can also select a computing node with the least sensitivity as the target sensitive node according to the sensitivity of each computing node to the target business characteristics corresponding to the computing instance to be deployed. Taking the target business characteristics as the target sensitive resources as an example, when the deployed computing instances occupy more target sensitive resources, the sensitivity of the computing node to the target business characteristics corresponding to the computing instance to be deployed is higher. When the deployed computing instances occupy fewer target sensitive resources, the sensitivity of the computing node to the target business characteristics corresponding to the computing instance to be deployed is lower. In this case, the cloud server can select a computing node whose deployed computing instances occupy the least target sensitive resources as the target computing node. This method can find a computing node that is more suitable for the computing instance among all computing nodes. Alternatively, the cloud server can no longer consider business characteristics, but directly select a more suitable computing node as the target computing node based on factors such as available resources, geographical location, or the number of deployed computing instances. This approach helps tenants to successfully rent computing instances, but the service quality that the computing instance can provide may not be as good as the tenant expects.

[0133] In the embodiment of the present application, the scheduler can perform filtering and / or weighing in parallel in a multithreaded manner, or can perform filtering and weighing in a serial manner in a single threaded manner. Since parallel execution will take a shorter time than serial execution, and the target computing node will be selected faster, the embodiment of the present application can perform filtering and weighing in parallel. For example, in an optional implementation, assuming that the scheduler manages 50 computing nodes, the scheduler can first set 50 threads, and use these 50 threads to execute N filters to 50 computing nodes respectively, to filter out K candidate computing nodes from 50 computing nodes. Assuming that 20 candidate computing nodes are filtered out, the scheduler can set 20 threads (for example, 30 threads corresponding to the computing nodes that are not selected as candidate computing nodes in 50 threads) and use these 20 threads to execute M filters to 20 candidate computing nodes respectively, to obtain 20 weight values. Then, the scheduler can release 19 of the threads and retain 1 thread to select the candidate computing node corresponding to the highest weight value from the 20 weight values ​​as the target computing node. With this implementation, the scheduler can not only call multiple threads to quickly determine the target computing node, but also release the threads that have completed the task in time to save the internal resources of the scheduler. In another optional implementation, a special thread can be set for each computing instance for management, and the thread will execute the entire process of the computing instance from filtering to weighing. Considering that multiple threads may determine multiple target computing nodes for the computing instance to be deployed by analyzing multiple computing instances separately, this method can also set an arbitration main thread, or another component, or some mechanism to coordinate and resolve this conflict problem. In this implementation, as long as there is no change in the computing instance, multiple threads may remain alive without the need to frequently perform the release and online operation, which is more convenient in control.

[0134] Step 308: The cloud server deploys the computing instance to be deployed on the target computing node.

[0135] In an embodiment of the present application, the cloud server deploys the computing instance to be deployed on the target computing node, which may specifically refer to sending the computing instance to be deployed to the target computing node to call the target computing node to provide computing services for the tenant.

[0136] In the first embodiment, by considering the business characteristics corresponding to the computing instance when selecting the target computing node, it helps the server not to deploy computing instances with the same business characteristics on the same computing node as much as possible. This method can not only reduce the probability of mutual interference between computing instances on a computing node, and try to ensure the service quality of these computing instances when performing computing services, but also enrich the business executed on the same computing node and make full use of various resources of the same computing node. Obviously, this method can select computing nodes suitable for computing instances to deploy computing instances, which helps to improve the service quality of computing nodes when providing computing resources to tenants, and thus improve the business experience of tenants when renting computing instances to perform business.

[0137] It should be understood that the present application does not limit the execution order of the above steps 301 to 308. For example, in the above embodiment, step 302 is executed before step 303, but in fact step 302 can also be executed before or after any step between steps 301 to 307.

[0138] The solution in Example 1 is described in detail below based on Example 2 and Example 3.

[0139] Embodiment 2

[0140] Figure 7 The following is a flow chart showing a method for deploying a computing instance provided in an embodiment of the present application, which is applicable to a cloud server, such as Figure 7 As shown, the method includes:

[0141] Step 701: The API in the cloud server receives a first request message triggered by a tenant, where the first request message is used to indicate a computing instance 3 to be deployed and target business features corresponding to a business to be run on the computing instance 3.

[0142] For example, the cloud server can directly classify several common business features through feature learning for tenants to choose from. This process can be Figure 7 The feature learning module shown in FIG. Figure 8 A schematic diagram of the internal unit structure of a feature learning module is shown as an example. Figure 8As shown, the feature learning module may include a data platform, a business feature modeling unit, and a business feature generation unit. Among them, the data platform is used to store a large amount of business data required for training the prediction model. The business feature modeling unit is used to call these business data in the data platform to execute big data analysis algorithms, classification algorithms, and ML algorithms to extract common business features and form a business feature model library. The business feature generation unit is used to annotate the business features of each computing instance stored in the database of the cloud server according to the business features in the business feature model library, and attach the business features corresponding to each computing instance to the instance information of the scheduler.

[0143] Step 702: The API in the cloud server sends a first request message to the scheduler in the cloud server.

[0144] Step 703: The scheduler in the cloud server obtains relevant information of computing instance 3 from the database.

[0145] Step 704: the scheduler in the cloud server selects a target computing node 2 suitable for computing instance 3 from computing node 1 and computing node 2 based on the relevant information of computing instance 3 and the target business characteristics corresponding to the business to be run on computing instance 3, as well as the business characteristics corresponding to the computing instances deployed in computing node 1 and computing node 2, and deploys computing instance 3 in the target computing node 2.

[0146] For example, in the case where the business feature is sensitive resources, if the sensitive resources corresponding to the business running on the deployed computing instance 1 in computing node 1 are memory and cache, and the sensitive resources corresponding to the business running on the deployed computing instance 2 on computing node 2 are network bandwidth, then when the target sensitive resources corresponding to the business to be run on computing instance 3 are memory and cache, the cloud server will select computing node 2 that is not deployed with memory and cache sensitive resources as the target computing node. After computing instance 3 is deployed on target computing node 2, the network bandwidth in target computing node 2 is mainly provided to computing instance 2, and the memory and cache in target computing node 2 are mainly provided to computing instance 3, so that both the memory and cache resources in target computing node 2 and the network bandwidth resources can be fully utilized.

[0147] The solution in the above-mentioned second embodiment is that the tenant directly indicates the target business characteristics corresponding to the computing instance to be deployed. The target business characteristics indicated in this way can directly reflect the tenant's needs and are relatively more accurate.

[0148] Embodiment 3

[0149] Fig. 9The flowchart corresponding to another method for deploying a computing instance provided in an embodiment of the present application is exemplarily shown, and the method is applicable to a cloud server, such as Fig. 9 As shown, the method includes:

[0150] Step 901: The API in the cloud server receives a second request message triggered by a tenant, where the second request message is used to indicate a computing instance 3 to be deployed.

[0151] Step 902: The API in the cloud server sends a second request message to the scheduler in the cloud server.

[0152] In step 903, the scheduler in the cloud server obtains the relevant information of computing instance 3 and the target business features corresponding to computing instance 3 from the database. If the target business features corresponding to computing instance 3 do not exist in the database, the cloud server can also call the feature learning component to analyze computing instance 3 to predict the target business features corresponding to computing instance 3.

[0153] For example, continue to refer to Figure 8 As shown, the feature learning component may also include a business feature prediction unit, which is used to train a prediction model based on the correspondence between existing business features and computing instances. When the target business feature corresponding to the computing instance provided by the tenant (such as a new computing instance assembled by the tenant) does not exist in the database, the prediction model is called to analyze the computing instance to predict the target business feature corresponding to the computing instance. The business feature prediction unit can also attach the predicted target business feature to the instance information of the scheduler, and map the correspondence between the computing instance and the target business feature to the database.

[0154] Step 904: The scheduler in the cloud server selects a target computing node 2 suitable for computing instance 3 from computing node 1 and computing node 2 based on the relevant information of computing instance 3, the target business characteristics corresponding to computing instance 3, and the business characteristics corresponding to the computing instances deployed in computing node 1 and computing node 2, and deploys computing instance 3 in the target computing node 2.

[0155] The solution in the above-mentioned embodiment 3 is to predict the target business features corresponding to the computing instance to be deployed through feature learning. Although the target business features obtained by this prediction method may have certain deviations compared with the method specified by the tenant and cannot perfectly meet the tenant's needs, it can automatically determine the target business features when the tenant does not have the specified ability or other reasons cause the tenant to be unable to provide the target business features, so as to smoothly execute the computing instance deployment plan based on the target business features.

[0156] Fig.10A schematic diagram of the internal unit structure of a component library provided in an embodiment of the present application is shown as an example. Fig.10 As shown, the component library can include the following units:

[0157] Interface / API, the interface can specifically refer to the web page corresponding to the cloud rental website, which not only includes the page space for selecting computing instances, but also adds page controls for selecting business features, so that tenants can select target business features and trigger them to the cloud server. Correspondingly, new fields corresponding to the operation of selecting business features can also be added to the API. When the interface exists, these newly added fields are used to display the page controls for selecting business features on the interface. When the interface does not exist, these newly added fields are equivalent to the selection class functions of the business features, which are used to receive the software program code input by the tenant and provide program support for the selection class functions of the business features in the software program code.

[0158] The database adds a table or field to record the business features corresponding to the computing instance, so that the subsequent scheduler can query the target business features from the database.

[0159] Scheduler, a new scheduling algorithm based on business characteristics has been added. This scheduling algorithm can be Figure 5 The present invention is in the form of adding a weighing device, or it can be Figure 6 The indicated one exists in the form of a newly added filter.

[0160] The feature learning module is a newly added module. The input end of the feature learning module is connected to each computing node and API respectively, and the output end of the feature learning module is connected to the database. The feature learning module is used to obtain business data from each computing node, perform big data analysis and classification algorithms on the business data to obtain common business features, and then annotate the corresponding common business features of each computing node existing in the database, and train to obtain a prediction model to facilitate subsequent prediction of computing instances where no business features can be found. The various units in this feature learning module can refer to Figure 8 , I will not go into details here.

[0161] It should be noted that the names of the above-mentioned information are only examples. With the evolution of communication technology, the names of any of the above-mentioned information may change. However, no matter how the names change, as long as their meanings are the same as those of the above-mentioned information in this application, they fall within the scope of protection of this application.

[0162] The above mainly introduces the solution provided by the present application from the perspective of the interaction between various network elements. It can be understood that in order to realize the above functions, the above-mentioned network elements include hardware structures and / or software modules corresponding to the execution of various functions. Those skilled in the art should easily realize that, in combination with the units and algorithm steps of each example described in the embodiments disclosed in this document, the present invention can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present invention.

[0163] According to the above method, Fig.11 A schematic diagram of a structure of an apparatus for deploying a computing instance provided in an embodiment of the present application, such as Fig.11 As shown, the device for deploying the computing instance may be a cloud server, or may be a chip or circuit, such as a chip or circuit that may be disposed in a cloud server.

[0164] Furthermore, the device 1101 for deploying a computing instance may further include a bus system, wherein the processor 1102 , the memory 1104 , and the communication interface 1103 may be connected via the bus system.

[0165] It should be understood that the processor 1102 may be a chip. For example, the processor 1102 may be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on chip (SoC), a central processor unit (CPU), a network processor (NP), a digital signal processor (DSP), a micro controller unit (MCU), a programmable logic device (PLD), or other integrated chips.

[0166] In the implementation process, each step of the above method can be completed by an integrated logic circuit of hardware in the processor 1102 or an instruction in the form of software. The steps of the method disclosed in conjunction with the embodiment of the present application can be directly embodied as a hardware processor for execution, or a combination of hardware and software modules in the processor 1102 for execution. The software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory 1104, and the processor 1102 reads the information in the memory 1104 and completes the steps of the above method in conjunction with its hardware.

[0167] It should be noted that the processor 1102 in the embodiment of the present application can be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method embodiment can be completed by an integrated logic circuit of hardware in the processor or an instruction in the form of software. The above processor can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components. The methods, steps and logic block diagrams disclosed in the embodiments of the present application can be implemented or executed. The general-purpose processor can be a microprocessor or the processor can also be any conventional processor, etc. The steps of the method disclosed in the embodiment of the present application can be directly embodied as a hardware decoding processor to perform, or the hardware and software modules in the decoding processor can be combined and performed. The software module can be located in a mature storage medium in the field such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in a memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.

[0168] It can be understood that the memory 1104 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and direct rambus RAM (DRRAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0169] When the device 1101 for deploying computing instances corresponds to the cloud server in the above method, the device for deploying computing instances may include a processor 1102, a communication interface 1103, and a memory 1104. The communication interface 1103 is used to input and / or output information. In a specific implementation, the communication interface 1103 may also refer to an interface with a function of receiving or sending data, such as a transceiver in a wireless device, an Ethernet port in a wired device, etc. The memory 1104 is used to store instructions, and the processor 1102 is used to execute the instructions stored in the memory 1104 to implement the above Figures 1 to 10 A related scheme of the cloud server in any one or more of the corresponding methods shown in .

[0170] When the device 1101 for deploying a computing instance is the above-mentioned cloud server, the device 1101 for deploying a computing instance can be used to execute the method executed by the cloud server in any one of the above-mentioned embodiments 1 to 3.

[0171] The device 1101 for deploying a computing instance is the above-mentioned cloud server, and when executing Example 1, the communication interface 1103 receives a request message for renting a computing instance to be deployed, and the processor 1102 determines the target business characteristics corresponding to the computing instance to be deployed, selects a target computing node from each computing node based on the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node, and deploys the computing instance to be deployed on the target computing node.

[0172] For the concepts, explanations, detailed descriptions and other steps involved in the device 1101 for deploying the computing instance and related to the technical solution provided in the embodiment of the present application, please refer to the description of these contents in the aforementioned method or other embodiments, which will not be repeated here.

[0173] Based on the above embodiments and the same concept, Fig.12 A schematic diagram of a device for deploying a computing instance provided in an embodiment of the present application, such as Fig.12 As shown, the device 1201 for deploying a computing instance may be a cloud server, or may be a chip or circuit, such as a chip or circuit that may be disposed in a cloud server.

[0174] The device 1201 for deploying computing instances may correspond to the cloud server in the above method. Figures 1 to 10 The steps performed by the cloud server in the method corresponding to any one or more of the items shown in . The apparatus for deploying a computing instance may include a determining unit 1202 , a selecting unit 1203 , and a deploying unit 1204 .

[0175] When the device 1201 for deploying computing instances is the above-mentioned cloud server, the device 1201 for deploying computing instances can be used to execute the method executed by the cloud server in any one of the above-mentioned embodiments 1 to 3.

[0176] The device 1201 for deploying the computing instance is the above-mentioned cloud server, and when executing Example 1, the determination unit 1202 can determine the target business characteristics corresponding to the computing instance to be deployed, the selection unit 1203 can select the target computing node from each computing node based on the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node, and the deployment unit 1204 can deploy the computing instance to be deployed on the target computing node.

[0177] Exemplarily, the apparatus 1201 for deploying computing instances may further include a communication interface, which may receive a request message for renting a computing instance to be deployed, so that the determination unit 1202 determines the target business characteristics corresponding to the computing instance to be deployed according to the request message.

[0178] For the concepts, explanations, detailed descriptions and other steps involved in the device 1201 for deploying the computing instance and related to the technical solution provided in the embodiment of the present application, please refer to the description of these contents in the aforementioned method or other embodiments, which will not be repeated here.

[0179] It can be understood that the functions of each unit in the above-mentioned device 1201 for deploying computing instances can refer to the implementation of the corresponding method embodiment, and will not be repeated here.

[0180] It should be understood that the division of the units of the above-mentioned device 1201 for deploying computing instances is only a division of logical functions, and in actual implementation, all or part of them can be integrated into one physical entity, or they can be physically separated. Fig.11 The communication interface 1103 is implemented, and the determination unit 1202, the selection unit 1203 and the deployment unit 1204 can be implemented by the above Fig.11 The processor 1102 is implemented.

[0181] According to the method provided in the embodiment of the present application, the present application also provides a computer program product, which includes: a computer program code, when the computer program code is run on a computer, the computer executes Figures 1 to 10 A method according to any one of the embodiments shown.

[0182] According to the method provided in the embodiment of the present application, the present application also provides a computer-readable storage medium, which stores a program code, and when the program code is run on a computer, the computer executes Figures 1 to 10 A method according to any one of the embodiments shown.

[0183] According to the method provided in the embodiment of the present application, the present application also provides a system, which includes the aforementioned one or more tenants and one or more cloud servers.

[0184] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a high-density digital video disc (DVD)), or a semiconductor medium (eg, a solid state disc (SSD)).

[0185] The apparatus for deploying computing instances in the above-mentioned various apparatus embodiments corresponds to the cloud server in the method embodiment, and the corresponding modules or units perform the corresponding steps. For example, the communication unit (communication interface) performs the steps of receiving or sending in the method embodiment, and other steps except sending and receiving can be performed by the processing unit (processor). The functions of the specific units can refer to the corresponding method embodiments. Among them, there can be one or more processors.

[0186] The terms "component", "module", "system", etc. used in this specification are used to represent computer-related entities, hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable file, an execution thread, a program and / or a computer. By way of illustration, both applications running on a computing device and a computing device can be components. One or more components may reside in a process and / or an execution thread, and a component may be located on a computer and / or distributed between two or more computers. In addition, these components may be executed from various computer-readable media having various data structures stored thereon. Components may, for example, communicate through local and / or remote processes based on signals having one or more data packets (e.g., data from two components interacting with another component between a local system, a distributed system and / or a network, such as the Internet interacting with other systems through signals).

[0187] Those of ordinary skill in the art will appreciate that the various illustrative logical blocks and steps described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0188] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0189] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0190] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0191] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0192] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application can be essentially or partly embodied in the form of a software product that contributes to the prior art. The computer software product is stored in a storage medium and includes several instructions for a computer device (which can be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of the methods described in the various embodiments of the present application. The aforementioned storage media include: various media that can store program codes, such as USB flash drives, mobile hard disks, read-only memories (ROM), random access memories (RAM), magnetic disks or optical disks.

[0193] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A method for deploying a computing instance, characterized in that: include: Determine the target business characteristics corresponding to the computing instance to be deployed; Selecting a target computing node from among the computing nodes according to the target business characteristics and business characteristics corresponding to the computing instances deployed in each computing node; Deploy the computing instance to be deployed on the target computing node; The determining of the target business characteristics corresponding to the computing instance to be deployed includes: Receive a second request message sent by the tenant, where the second request message is used to indicate the computing instance to be deployed; The target business feature corresponding to the computing instance to be deployed is obtained by querying from the preset correspondence relationship between the computing instance and the business feature; or, If the target business feature corresponding to the computing instance to be deployed does not exist in the correspondence relationship between the preset computing instances and business features, inputting the computing instance to be deployed into the prediction model to predict the target business feature; The business feature corresponding to the preset computing instance is predicted by the prediction model, and the prediction model is trained based on multiple computing instances with labeled business feature labels; The step of selecting a target computing node from each computing node according to the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node includes: A computing node on which the first computing instance is not deployed is selected from the computing nodes as the target computing node; and a service feature corresponding to the first computing instance is the target service feature.

2. The method according to claim 1, characterized in that The determining of target business characteristics corresponding to the computing instance to be deployed includes: A first request message sent by a tenant is received, where the first request message is used to indicate the computing instance to be deployed and the corresponding target business feature.

3. The method according to claim 1, characterized in that After inputting the computing instance to be deployed into the prediction model to predict the target service feature, the method further includes: The computing instance to be deployed and the predicted target service feature are mapped and stored in the corresponding relationship.

4. The method according to any one of claims 1 to 3, characterized in that The selecting a target computing node from each computing node according to the target business characteristics and the business characteristics corresponding to the computing instances deployed in each computing node includes: Select K candidate computing nodes from among the computing nodes; Each of the selected K candidate computing nodes is passed through M weighing machines to obtain a weight value corresponding to each candidate computing node; the weight value corresponding to each candidate computing node is determined according to the M weights obtained when each candidate computing node passes through the M weighing machines; the M weighing machines include a business feature weighing machine, and the business feature weighing machine includes at least one weighing condition and a weight corresponding to the at least one weighing condition. When a computing node meets a first weighing condition, the computing node obtains the weight corresponding to the first weighing condition; the first weighing condition is any one of the at least one weighing condition; Determine the target computing node from the K candidate computing nodes according to the weight values ​​corresponding to the K candidate computing nodes; Wherein, K and M are positive integers.

5. The method according to claim 4, characterized in that The selecting K candidate computing nodes from among the computing nodes comprises: Each computing node in the computing nodes is passed through N filters to obtain K candidate computing nodes; each filter in the N filters corresponds to a filtering condition, and when a computing node does not satisfy any of the N filtering conditions corresponding to the N filters, the computing node is filtered out by the filter corresponding to the unsatisfied filtering condition; N is a positive integer.

6. The method according to any one of claims 1 to 3 and 5, characterized in that: The target business characteristics corresponding to the computing instance to be deployed include one or more of the following: The business identifier of the business to be run on the computing instance to be deployed, the business type of the business to be run on the computing instance to be deployed, and the sensitive resources corresponding to the business to be run on the computing instance to be deployed.

7. A device for deploying a computing instance, characterized in that: include: A determination unit, used to determine target business characteristics corresponding to the computing instance to be deployed; A selection unit, configured to select a target computing node from each computing node according to the target business characteristics and business characteristics corresponding to the computing instances deployed in each computing node; A deployment unit, configured to deploy the computing instance to be deployed on the target computing node; The device further includes a communication interface for receiving a second request message sent by the tenant, wherein the second request message is used to indicate the computing instance to be deployed; The determination unit is specifically used to: query and obtain the target business feature corresponding to the computing instance to be deployed from the correspondence between the preset computing instance and the business feature; or, if the target business feature corresponding to the computing instance to be deployed does not exist in the correspondence between the preset computing instance and the business feature, input the computing instance to be deployed into the prediction model to predict the target business feature; wherein the business feature corresponding to the preset computing instance is predicted by the prediction model, and the prediction model is trained according to multiple computing instances with labeled business feature labels; The selection unit is specifically configured to: select a computing node on which the first computing instance is not deployed from the computing nodes as the target computing node; and the service feature corresponding to the first computing instance is the target service feature.

8. The device according to claim 7, characterized in that The device also includes a communication interface, which is used to receive a first request message sent by a tenant, where the first request message is used to indicate the computing instance to be deployed and the corresponding target business feature; The determining unit is specifically configured to determine, according to the first request message, a target service feature corresponding to the computing instance to be deployed.

9. The device according to claim 7, characterized in that The determining unit is further configured to map and store the computing instance to be deployed and the predicted target business feature in the corresponding relationship after inputting the computing instance to be deployed into the prediction model to predict the target business feature.

10. The device according to any one of claims 7 to 9, characterized in that The selection unit is specifically used for: Select K candidate computing nodes from among the computing nodes; Pass each of the K candidate computing nodes through M weighing devices to obtain a weight value corresponding to each candidate computing node; The weight value corresponding to each candidate computing node is determined according to the M weights obtained when each candidate computing node passes through the M weighing devices; the M weighing devices include a business feature weighing device, the business feature weighing device includes at least one weighing condition and a weight corresponding to the at least one weighing condition, and when a computing node meets a first weighing condition, the computing node obtains the weight corresponding to the first weighing condition; The first weighing condition is any one of the at least one weighing condition; Determine the target computing node from the K candidate computing nodes according to the weight values ​​corresponding to the K candidate computing nodes; Wherein, K and M are positive integers.

11. The device according to claim 10, characterized in that The selection unit is specifically used for: Pass each computing node among the computing nodes through N filters to obtain K candidate computing nodes; each filter in the N filters corresponds to a filtering condition, and when a computing node does not satisfy any one of the N filtering conditions corresponding to the N filters, the computing node is filtered out by the filter corresponding to the filtering condition that is not satisfied; Said N is a positive integer.

12. The device according to any one of claims 7 to 9 and 11, characterized in that The target business characteristics corresponding to the computing instance to be deployed include one or more of the following: The business identifier of the business to be run on the computing instance to be deployed, the business type of the business to be run on the computing instance to be deployed, and the sensitive resources corresponding to the business to be run on the computing instance to be deployed.

13. A device for deploying a computing instance, characterized in that: It includes a processor and a communication interface, wherein the communication interface is used to receive signals from other communication devices outside the device for deploying the computing instance and transmit them to the processor or send signals from the processor to other communication devices outside the device for deploying the computing instance, and the processor is used to implement the method as described in any one of claims 1 to 6 through logic circuits or executing code instructions.

14. A device for deploying a computing instance, characterized in that: The device comprises a processor connected to a memory, wherein the processor is configured to execute a computer program stored in the memory, so that the device executes the method according to any one of claims 1 to 6.

15. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed, the method according to any one of claims 1 to 6 is implemented.

Citation Information

Patent Citations

  • Application scheduling method and device

    CN107818013A

  • Multi-dimensional resource scheduling method under Kubernetes cluster architecture system

    CN111522639A