Cross-runtime instance hybrid deployment method and device based on cloud computing technology
By deploying different types of runtime instances on hybrid nodes and utilizing resource scheduling systems, the problem of fragmented node resources in the existing technology cannot be effectively allocated, and efficient resource utilization and service quality assurance is achieved.
Patent Information
- Application Number
- CN202311288295.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-31
- Filing Date
- 2023-09-28
- Publication Date
- 2025-02-14
AI Technical Summary
The specification parameters of runtime instances created by existing cloud management platforms in nodes are similar, resulting in the inability to effectively allocate the node's fragmented resources, resulting in low resource utilization.
By deploying different types of runtime instances, such as containers, virtual machines and serverless functions on hybrid nodes, the resource scheduling system is used to manage the resources of multiple hybrid nodes, and resource scheduling across runtime instances is achieved.
It realizes the full utilization of mixed node fragmented resources, improves resource utilization, and meets the service quality requirements of different types of runtime instances.
Smart Images

Figure CN119440795A_ABST
Abstract
Description
[0001] This application claims priority to Chinese patent application No. 202310952215.2 filed on July 31, 2023, with invention name “Task scheduling system, method and computing device cluster for providing cloud services”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of cloud technology, and in particular to a hybrid deployment method and device across runtime instances based on cloud computing technology. Background Art
[0003] With the rapid rise of the fifth generation mobile communication technology (5G) network and edge computing, enterprises have put forward higher requirements in terms of multi-cloud management platform access, full-stack resource management, intelligent monitoring and operation and maintenance, etc. There are many types of cloud management platforms on the market. Different types of cloud management platforms are responsible for creating different types of runtime instances. For example, each cloud management platform creates a runtime instance in its own node. The runtime instances created in the same node have the same runtime type, which makes the specification parameters of the runtime instances in the same node similar, making it impossible to allocate the fragmented resources of the node to more runtime instances, resulting in low resource utilization of the node. Summary of the invention
[0004] The embodiment of the present application provides a hybrid deployment method and device across runtime instances based on cloud computing technology, which can make full use of the fragmented resources of nodes. The technical solution is as follows:
[0005] In a first aspect, a hybrid deployment method across runtime instances based on cloud computing technology is provided, the method being executed by a resource scheduling system based on cloud computing technology, the resource scheduling system being used to manage resources of a plurality of hybrid nodes, a hybrid node being a node supporting at least two types of runtime instances, wherein the types of runtime instances include containers, virtual machines, and serverless functions, the method comprising the following steps: first receiving an instance configuration request sent by a tenant through a client, the instance configuration request being used to indicate that a target instance is deployed on a hybrid node, wherein the runtime type of the target instance is a type of runtime instance; then determining a first hybrid node from a plurality of hybrid nodes according to the instance configuration request; then creating a target instance for the tenant at the first hybrid node; then sending running status information of the target instance to the client, the running status information including an identifier of the runtime type of the target instance and node information, the node information being used to indicate that the running environment of the target instance is the first hybrid node.
[0006] This method manages the resources of multiple hybrid nodes through a resource scheduling system. Since hybrid nodes support the deployment of multiple types of runtime instances, the resource scheduling system can deploy different types of runtime instances in the hybrid nodes. The specifications of different types of runtime instances are quite different. The fragmented resources of the hybrid nodes can be allocated to runtime instances with smaller specifications, so that the fragmented resources of the hybrid nodes can be fully utilized.
[0007] In one possible implementation, after the first hybrid node creates a target instance for the tenant, the method further includes the following steps: obtaining instance priority information input by the tenant, and adjusting the resources occupied by the target instance in the first hybrid node according to the instance priority information to meet the service quality requirements of the target instance, wherein the instance priority information is used to determine the service quality required by the target instance in the first hybrid node.
[0008] Based on the above possible implementation methods, the resources occupied by the target instance in the hybrid node are adjusted according to the instance priority information input by the tenant, so that the resources occupied by the adjusted target instance can meet the service quality requirements of the target instance, thereby providing a guarantee for the service quality of the business running in the target instance.
[0009] In a possible implementation, the resource scheduling system supports tenants to update instance priority information according to operating status information after resource adjustment. The method further includes the following steps: adjusting resources occupied by the target business instance according to the updated instance priority information.
[0010] Based on the above possible implementation methods, it is convenient for tenants to update instance priority information so that the resource adjustment system can make secondary adjustments to the resources occupied by the target instance according to the updated instance priority information to meet the business needs of the target instance in different time periods.
[0011] In a possible implementation, the method also includes the following steps: in the process of the target instance running the target business of the tenant, obtaining the node status of multiple hybrid nodes and the service quality degradation parameters of each business instance running in each hybrid node; determining the resource adjustment strategy of the target instance based on the node status of multiple hybrid nodes, the service quality degradation parameters of each business instance and the actual resource consumption of each business instance; based on the resource adjustment strategy, adjusting the resources occupied by the target instance among the resources provided by the multiple hybrid nodes, wherein the resource adjustment strategy can meet the service quality requirements of the target instance, the service quality degradation parameters are used to indicate the degree of degradation of the service quality of the business instance during operation, and the runtime type of the business instance is a type of runtime instance.
[0012] Based on the above possible implementation methods, the resources occupied by the target instance in the hybrid node are adjusted according to the resource adjustment strategy, so that the resources occupied by the adjusted target instance can meet the service quality requirements of the target instance, thereby providing a guarantee for the service quality of the business running in the target instance.
[0013] In one possible implementation, the node status includes a resource status and a service status of the hybrid node, the resource status is used to indicate at least one of the resource allocation and resource utilization of the hybrid node, and the service status is used to indicate at least one of the busyness of the hybrid node and the affinity between the hybrid node and the local business instance.
[0014] In a possible implementation, the resource adjustment strategy includes any of the following:
[0015] Release a first amount of resources from resources occupied by the target instance;
[0016] allocating a second amount of resources to the target instance from unoccupied resources of the first hybrid node;
[0017] A third amount of resources is allocated to the target instance from unoccupied resources of a second hybrid node among the plurality of hybrid nodes.
[0018] Based on the possible implementation manners described above, by adjusting the resources occupied by the target instance through different resource adjustment strategies, the idle fragmented resources in the hybrid node can be integrated, so that the fragmented resources of the hybrid node are fully utilized.
[0019] In one possible implementation, the above-mentioned resource adjustment strategy includes recommended specification information, which is runtime specification information recommended for tenants that can meet the service quality requirements of the target business. Based on this, the method also includes the following steps: updating the operating status information based on the service quality degradation parameters and / or recommended specification information of the target business; and sending the updated operating status information to the client.
[0020] Based on the above possible implementation methods, it is convenient for tenants to view the latest running status of the target instance.
[0021] In a possible implementation, the process of obtaining the service quality degradation parameter of each service instance running in each hybrid node includes: determining the service quality degradation parameter of the service instance based on the core indicator data of the processor core bound to the service instance.
[0022] Based on the above possible implementation methods, the kernel indicator data can accurately reflect the kernel-level resources consumed by the instance when running on the CPU, so that the degradation of the service quality of the target instance can be accurately predicted based on the kernel indicator data. In the case of serious degradation of the service quality, the resources of the target instance can be scheduled in time to alleviate the degradation of the service quality of the target instance as soon as possible.
[0023] In a second aspect, a hybrid deployment device across runtime instances based on cloud computing technology is provided, which is used to execute the method provided by the first aspect or any optional manner of the first aspect.
[0024] In a third aspect, a computing device cluster is provided, the computing device cluster comprising at least one computing device, each computing device comprising a processor and a memory, the processor of the at least one computing device being used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster performs the method provided in the first aspect or any optional manner of the first aspect.
[0025] In a fourth aspect, a computer-readable storage medium is provided, in which computer program instructions are stored. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method provided in the first aspect or any optional manner of the first aspect.
[0026] In a fifth aspect, a computer program product or a computer program is provided, which includes instructions. When the instructions are executed by a computing cluster, the computing cluster executes the method provided in the first aspect or various optional implementations of the first aspect.
[0027] Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] Figure 1 This is an architecture diagram of a resource scheduling system based on cloud computing technology provided by an embodiment of the present application;
[0029] Figure 2 This is a schematic diagram of the interaction between a resource scheduling system and OpenStack provided in an embodiment of the present application;
[0030] Figure 3 This is a schematic diagram of the interaction between a resource scheduling system and Kubernetes provided in an embodiment of the present application;
[0031] Figure 4 is a global resource schematic diagram of a resource scheduling system provided in an embodiment of the present application;
[0032] Figure 5 It is a flow chart of a hybrid deployment method across runtime instances based on cloud computing technology provided by an embodiment of the present application;
[0033] Figure 6 It is a flow chart of a resource scheduling system hybrid deployment runtime instance provided by an embodiment of the present application;
[0034] Figure 7 This is a flow chart of a resource scheduling method based on cloud computing technology provided by an embodiment of the present application;
[0035] Figure 8 This is a schematic diagram of a resource scheduling strategy provided by an embodiment of the present application;
[0036] Fig. 9 is a schematic diagram of a task display interface provided in an embodiment of the present application;
[0037] Fig.10 It is a structural schematic diagram of a hybrid deployment device across runtime instances based on cloud computing technology provided in an embodiment of the present application;
[0038] Fig.11 is a structural schematic diagram of a computer device provided in an embodiment of the present application;
[0039] Fig.12 It is an architecture diagram of a computer cluster provided in an embodiment of the present application;
[0040] Fig.13 This is an architecture diagram of another computer cluster provided in an embodiment of the present application. DETAILED DESCRIPTION
[0041] In order to facilitate understanding of the implementation methods of the present application, some of the terms involved in the present application are introduced as follows:
[0042] Node: A device that has at least one of the two functions of processing data and storing data. An operating system runs on the node, and the nodes can be distinguished by the operating system, that is, different nodes run different operating systems. In other words, the hardware and software used to run an operating system can be visually attributed to the same node. A node may be a complete physical machine, such as a terminal, network equipment, server, server agent, etc. A node may also be a device in a physical machine, such as a processor, memory, or storage. When a physical machine includes two nodes, the two nodes run different operating systems. For example, the physical machine includes a central processing unit (CPU) running operating system 1 and a graphics processing unit (GPU) running operating system 2, then the central processing unit and the graphics processing unit can be considered to belong to different nodes. When a node is a device, it is a relatively independent individual in hardware. "Independent individual" can be understood as a circuit or module with a special function, and the device is packaged or assembled on a physical machine. A physical machine refers to a computer packaged into a product, such as a server, desktop computer, all-in-one computer, laptop computer or smart phone.
[0043] Runtime environment: refers to the environment provided for running computer programs. In other words, the runtime environment includes the supporting libraries, data structures, functions and other components required during the operation of the computer program. They provide the necessary infrastructure to enable the computer program to run on a specific operating system and hardware. Types of runtime environments include virtual machines (VM), containers, serverless functions, bare metal servers, Linux processes, etc. Virtual machines include kernel-based virtual machines (KVM), containers include Linux containers, Docker containers or Wasm containers. In some embodiments, a runtime environment is also called a runtime instance.
[0044] Unified scheduling: refers to transparently integrating different types of runtime instances and the resources of different types of runtime instances, providing unified task scheduling and resource management functions to achieve task scheduling across runtime instances.
[0045] Runtime instance resources: refers to the resources allocated to the runtime instance using virtualization technology from at least one of the node's computing resources and network resources, such as CPU resources and memory resources, network resources such as bandwidth, and memory resources such as memory space. The amount of resources allocated to the runtime instance represents the specifications of the runtime instance, and the specifications of different runtime instances may be the same or different.
[0046] Task: refers to a computer program (such as an application) running in a runtime instance. At least one task can run in the same runtime instance. The tasks running in the same runtime instance constitute the task set of the runtime instance.
[0047] Service scheduling: refers to scheduling services between different runtime instances of the same runtime type.
[0048] Instance scheduling: Scheduling runtime instances between different nodes. The runtime types of the runtime instances in different nodes may be the same or different.
[0049] Flexible computing: is a resource allocation method based on dynamic load matching, which aims to achieve efficient use of the underlying resources of runtime instances. Flexible computing maximizes runtime resource utilization and optimizes resource allocation by changing the basis of resource allocation from static fixed specifications to dynamically changeable task load instances. Specifically, while ensuring that the quality of service (QoS) of the task is not degraded, flexible computing uses the load of the business as the key factor in resource allocation, and dynamically adjusts the resources required for business runtime according to the real-time resource demand of the business, so as to improve the flexibility and response speed of the system, while reducing resource waste and energy consumption. Flexible computing can not only improve resource utilization, but also reduce costs for tenants, improve business efficiency and competitiveness.
[0050] The core load performance of the CPU is a core-level performance indicator of the CPU, which is used to indicate the load of the CPU. The core load performance includes at least one of the CPU's task clock, context switches, CPU migrations, page faults, cycles, instructions per cycle (IPC), stalled cycles per instruction, branches, branches-misses, L1-dcache-loads, L1-dcache-load-misses, last level cache loads (LLC-loads), and last level cache-loads-missed (LLC-load-misses).
[0051] Task-clock: refers to the CPU time that the processor uses to execute tasks, measured in milliseconds (ms).
[0052] context-switches: refers to the number of context switches that occur during the operation of the service.
[0053] cpu-migrations: refers to the number of CPU migrations that occur during the operation of a service. A CPU migration means that the service is transferred from one CPU to another.
[0054] Page-faults: refers to the number of page faults that occur when the CPU accesses memory during the operation of the business. A page fault occurs when the CPU cannot query the mapping relationship between the virtual address to be accessed in the virtual space through the memory management unit (memory management unit) and the physical memory. In the event of a page fault, the CPU interrupt can be used to call a processing function to access the physical memory.
[0055] IPC: refers to the number of instructions that the CPU can complete in one clock cycle. The IPC value is positively correlated with the performance of the CPU. The higher the IPC value, the better the CPU performance.
[0056] Stalled cycles per instruction: refers to the number of clock cycles in which the CPU is stalled to complete each instruction. The value of stalled cycles per instruction is negatively correlated with CPU performance. The smaller the value of stalled cycles per instruction, the better the CPU performance.
[0057] Branches: refers to the number of times the CPU predicts branches within a period of time.
[0058] branches-misses: refers to the number of CPU branch prediction failures within a period of time. The value of branches-misses is negatively correlated with CPU performance. The smaller the value of branches-misses, the better the CPU performance.
[0059] L1-dcache-loads: refers to the number of times the CPU reads data from the first-level cache within a period of time.
[0060] L1-dcache-load-missed: refers to the number of times the CPU fails to read data from the first-level cache within a period of time.
[0061] LLC-loads: refers to the number of times the CPU reads data from the last-level cache within a period of time.
[0062] LLC-load-misses: The number of times the CPU fails to read data from the last-level cache within a period of time.
[0063] Next, the implementation methods of the present application will be described in further detail with reference to the accompanying drawings.
[0064] Figure 1 This is an architecture diagram of a resource scheduling system based on cloud computing technology provided by an embodiment of the present application, see Figure 1 The resource scheduling system 100 includes a platform access device 11, a control device 12, a scheduling device 13 and a storage control device 14, wherein the platform access device 11 is connected to other devices in the resource scheduling system 100. The platform access device 11 is a device in the resource scheduling system 100 that connects to the cloud management platform 21 of the runtime instance. Other devices in the resource scheduling system 100 can exchange information with the cloud management platform 21 of the runtime instance through the platform access device 11.
[0065] Next, the functions of the cloud management platform 21 of the runtime instance and each device in the resource scheduling system 100 are introduced through the following (1)-(5).
[0066] (1) Cloud management platform for runtime instances 21
[0067] There are multiple types of cloud management platforms 21 in the resource scheduling system 100, such as Figure 1 As shown, these multiple types of cloud management platforms 21 are all cloud management platforms that provide infrastructure as a service (IaaS). There is at least one cloud management platform 21 of each type. The types of runtime instances managed by cloud management platforms 21 of the same type are the same, while the types of runtime instances managed by cloud management platforms 21 of different types are different. Figure 1 As shown, three types of cloud management platforms 21 are shown, namely OpenStack, Kubernetes and Serverless. The runtime instances corresponding to OpenStack, Kubernetes and Serverless are virtual machine instances, container instances and serverless function instances, respectively. Among them, a virtual machine instance is a virtual machine, a container instance is a container, and a serverless function instance is a serverless function.
[0068] Any cloud management platform 21 has management functions for runtime instances of the same type, such as creating and deleting runtime instances, scheduling services between multiple runtime instances of the same type, and obtaining relevant information of the runtime instances.
[0069] like Figure 1 As shown, each cloud management platform 21 is connected to multiple nodes 22, and the cloud management platform 21 can establish a runtime instance in the node 22 to which it is connected to configure the runtime instance. Taking the virtual machine instance as an example, OpenStack establishes virtual machines in nodes 0 and 3 respectively, and OpenStack can schedule the business running by the virtual machine in node 0 to the virtual machine in node 1. Taking the container instance as an example, Kubernetes establishes containers in nodes 1 and 4 respectively, and Kubernets can schedule the business running by the container in node 1 to the container in node 4. Taking the function instance as an example, Serverless establishes serverless functions in nodes 2 and 5 respectively, and Serverless can schedule the business running by the serverless function in node 2 to the serverless function in node 5. Of course, business scheduling can also be performed between multiple runtime instances in the same node 22.
[0070] The cloud management platform 21 can manage each runtime instance of the cloud management platform 21 and schedule tasks between each runtime instance according to the needs of users (such as the administrator of the cloud management platform 21 or the tenant of the runtime instance). Figure 2 A schematic diagram of the interaction between a resource scheduling system and OpenStack provided in an embodiment of the present application is shown, user 1 issues an instruction to create a virtual machine (VM) through an application programming interface (API) combination in the management plane of OpenStack, and the API combination calls the nova API based on the instruction to create the VM. After receiving the call request for creating the VM, the nova API issues a command to create the VM to the nova conductor, and the nova conductor sends a command to create the VM to the node 22 through the nova compute on the host side based on the command to create the VM on the node 22, wherein the API combination is a unified calling interface composed of multiple APIs, and the nova API and nova conductor are used to create and manage VMs respectively, and the nova compute is used to send commands to the VM or the node 22 where the VM is located to obtain the status information of the VM.
[0071] Take the cloud management platform 21 as Kubernetes and Kubernetes as an example to create a container. Figure 3 In the diagram of the interaction between a resource scheduling system and Kubernetes provided by an embodiment of the present application, user 2 issues an instruction to create a container to the application programming interface service (API Server) in the management plane of Kubernetes. The API Server calls the Pod API to create a container based on the instruction. After receiving the call request for creating a container, the Pod API sends a command to create a container to the ReplicationController API. The ReplicationController API creates a container on node 22 through kubelet based on the command. Among them, the API Server is one of the most important components in Kubernetes and is responsible for managing all API resources in Kubernetes. The Pod API is used to create and manage containers. The ReplicationController API is an API interface for creating and managing ReplicaSet and Deployment resources. By creating and managing ReplicaSet resources and Deployment resources, Pod sets can be created, expanded, reduced, and updated. Kubelet is an agent running on each node 22 in Kubernetes and is responsible for interacting with the API Server and managing containers.
[0072] (2) Platform access device 11
[0073] The platform access device 11 is a device for connecting to the cloud management platform 21 in the resource scheduling system 100. The platform access device 11 supports access to multiple cloud management platforms 21. Figure 1 For example, the platform access device 11 is connected to three cloud management platforms 21, namely OpenStack, Kubernetes and Serverless. It should be understood that Figure 1 The example of the platform access device 11 accessing the three cloud management platforms 21 is used only. In other embodiments, the platform access device 11 may be connected to any two of the three cloud management platforms 21, or may be connected to at least four cloud management platforms 21. The at least four cloud management platforms 21 may include Figure 1 The three cloud management platforms 21 shown and other cloud management platforms 21 (such as cloud management platforms for runtime instances such as bare metal servers) may not include Figure 1 There are three cloud management platforms 21 shown in the figure. Here, the embodiment of the present application does not limit the number of cloud management platforms 21 that the platform access device 11 supports access to.
[0074] In a possible implementation, the platform access device 11 is connected to the cloud management platform 21 through a platform access interface. For example, the platform access device 11 is configured with multiple platform access interfaces, and the multiple platform access interfaces support access to different cloud management platforms 21, such as Figure 1 As shown, the platform access device 11 deploys these multiple platform access interfaces to different cloud management platforms 21 to achieve access (i.e., connection) to multiple cloud management platforms 21. Any platform access interface satisfies the service protocol supported by the accessed cloud management platform, such as the platform access interface deployed on OpenStack supports the virtual machine as a service (VaaS) protocol, the platform access interface deployed on Kubernetes supports the container as a service (CaaS) protocol, and the platform access interface deployed on Serverless supports the container as a service (FaS) protocol. The platform access device 11 or other devices other than the platform access device 11 can interact with the cloud management platform 21 connected to the platform access interface by calling the platform access interface, such as sending instructions to the cloud management platform 21, or obtaining relevant information of the runtime instance from the cloud management platform 21, so that each device can effectively manage and schedule the resources of the cloud management platform 21, thereby effectively and uniformly scheduling business operations and improving the overall efficiency and stability of the system.
[0075] In one possible implementation, the platform access interface provided by the platform access device 11 for the same cloud management platform 21 includes a management layer interface and a host layer interface. The management layer interface is used to connect to the management plane interface of the cloud management platform 21 (the interface for managing and creating runtime instances), and the host layer interface is used to connect to the host side interface of the cloud management platform 21 (such as the interface on the host side for collecting relevant information of runtime instances).
[0076] Take the platform access device 11 connecting to OpenStack as an example. Figure 2 As shown, the management layer interface and host layer interface provided by the platform access device 11 for OpenStack are respectively the management layer VaaS interface and the host layer VaaS interface. The management layer VaaS interface is connected to the API combination and nova conductor in the management plane of OpenStack, so as to create and delete VMs through the API combination, and to perform service scheduling on VMs through the nova conductor interface to achieve management of virtual machines. The host layer VaaS interface is connected to libvirt in the host side of OpenStack, so as to obtain relevant information of VMs from libvirt, wherein libvirt is a general virtualization interface, and libvirt is used to obtain detailed information of VMs. The novacompute interface can send the status information of each VM to libvirt, so that libvirt can collect the status information of VMs. It should be understood that libvirt can also collect other information of VMs in addition to the status information to obtain detailed information of VMs.
[0077] Take the platform access device 11 connected to Kubernetes as an example. Figure 3 As shown, the management layer interface and host layer interface provided by the platform access device 11 for Kubernetes are respectively the management layer CaaS interface and the host layer CaaS interface. The management layer CaaS interface is connected to the API Server and the Pod API in the management plane of Kubernetes, so as to create containers through the API Server, and to schedule or delete containers through the Pod API to manage containers. The host layer CaaS interface is connected to the metrics on the host side of Kubernetes, so as to obtain relevant information about the container from the metrics. Among them, metrics is a monitoring system used to obtain the status information and performance indicator data of each container. Kubelet can send the status information of each container to metrics, so that metrics can collect the status information and performance indicator data of the container.
[0078] All devices in the resource scheduling system 100 except the platform access device 11 can call these multiple platform access interfaces. At the same time, the platform access device 11 may receive call requests for multiple platform access interfaces from multiple other devices. The platform access device 11 can process the call requests for multiple platform access interfaces in parallel, thereby being able to efficiently process the call requests in a multi-threaded manner.
[0079] In a possible implementation, the platform access device 11 also complies with constraints such as security and scalability to ensure that the entire system can run safely and support large-scale business processing. For example, the platform access device 11 is also configured with a configuration interface, which is used to load and disassemble the platform access interface in the platform access device 11, so that the platform access device 11 supports dynamic loading and unloading of plug-in services, and can easily expand and replace the functions of the platform access interface to meet the needs of different business scenarios.
[0080] The multiple platform access interfaces and configuration interfaces configured by the platform access device 11 are all APIs, so that the resource scheduling system 100 provides a rich API through the platform access device 11, so that devices / modules outside the resource scheduling system 100, devices within the resource scheduling system 100, or users can easily manage and schedule resources of different cloud management platforms 21. In a possible implementation, the multiple platform access interfaces and configuration interfaces configured by the platform access device 11 are all plug-in interfaces, so that devices / modules outside the resource scheduling system 100, devices within the resource scheduling system 100, or users can manage and schedule resources of different cloud management platforms 21 by using plug-ins.
[0081] In a possible implementation, the platform access device 11 also supports business process configuration, and customizes the business process according to the needs of the user. For example, a set of business processes is customized for each of the multiple cloud management platforms 21, so that the devices inside and outside the resource scheduling system 100 can interact with the cloud management platform according to the corresponding business process.
[0082] In one possible implementation, the platform access device 11 is also responsible for managing resources and services on each cloud management platform 21. The platform access device 11 also has management functions for various types of runtime instances, such as container orchestration, virtual machine management, etc., to meet the needs of different users.
[0083] It should be understood that the platform access device 11 provides a set of standard interfaces so that different services of various types of runtime instances can be seamlessly integrated into the resource scheduling system 100, which is a business automation scheduling system.
[0084] The above-mentioned various possible implementations for the platform access device 11 can be further combined to provide more implementations. It should be understood that the platform access device 11 can access the cloud management platform 21 of various types of runtime instances, thereby achieving management and scheduling across various runtime instances.
[0085] (3) Control device 12
[0086] The control device 12 is the control center of the resource scheduling system 100, and is used to manage the operating status of the resource scheduling system 100. For example, it has multiple functions such as providing an API interface, recording logs, and monitoring system operation status. Of course, in addition to these functions, the control device 12 may also have other management functions for the resource scheduling system 100.
[0087] The control device 12 has a management function for the runtime instances of all cloud management platforms 21 connected to the platform access device 11. Exemplarily, the control device 12 interacts with each underlying cloud management platform 21 through the platform access device 11, and performs lifecycle management on the runtime instances of each cloud management platform 21 by interacting with each cloud management platform 21, and collects relevant information of each runtime instance of each cloud management platform 21. The relevant information of any runtime instance includes the Internet protocol (IP) address of the operating environment, the label of the operating environment, the image / runtime instance used in the operating environment, the name of each business running in the operating environment, the operating status of each business, and the consumption of various resources of the runtime instance.
[0088] Take OpenStack as an example, see Figure 2 The control device 12 sends an instruction for instructing to create or delete a VM to the API combination in OpenStack by calling the management layer VaaS interface in the platform access device 11, and the API combination calls the nova API based on the instruction to create or delete a VM in the node 22. The control device 12 sends an instruction to libvirt by calling the host layer VaaS interface in the platform access device 11 to obtain relevant information of each VM from the information collected by libvirt.
[0089] Taking Kubernetes as an example, see Figure 3The control device 12 sends an instruction for instructing to create or delete a container to the API Server in Kubernetes by calling the management layer CaaS interface in the platform access device 11. The API Server calls the Pod API based on the instruction to create a container in the node 22. The control device 12 sends an instruction to the metrics in Kubernetes by calling the host layer CaaS interface in the platform access device 11 to obtain relevant information of each container from the information collected by the metrics.
[0090] The control device 12 and each cloud management platform 21 provide an access interface (such as an interface or API). The tenant can operate the client to remotely access the access interface and purchase a runtime instance in the resource purchase interface. After the payment is successfully made, the control device 12 (or cloud management platform 21) allocates the purchased runtime instance to the tenant at node 22, and provides the remote login account and password of the purchased runtime instance. The client can remotely log in to the runtime instance and install and run the tenant's business in the runtime instance.
[0091] The resource purchase interface provides an elastic billing method option and a flexible billing method option, or the resource purchase interface provides a flexible billing method option but does not provide an elastic billing method, and the elastic billing method and the flexible billing method correspond to the two resource adjustment modes, the elastic adjustment mode and the flexible scheduling mode, respectively. Tenants can select the elastic billing method option or the flexible billing method option in the purchase interface to purchase runtime instances.
[0092] In the elastic billing method, the tenant specifies the specifications of the purchased runtime instance, the control device 12 (or the cloud management platform 21) establishes a runtime instance of the specified specification for the tenant, and runs the tenant's business in the runtime instance of the specified specification. In the elastic adjustment mode, the scheduling device 13 schedules the tenant's business to other runtime instances of the specified specification when scheduling the runtime instance for the tenant's business. In the elastic billing method, billing is performed according to the specified specifications. If the amount of resources required by the group's business during operation reaches the unspecified specifications, part of the resources of the runtime instance where the business is located will be wasted, but the fee is calculated according to the specified specifications. Therefore, unnecessary expenses for the tenant will be increased.
[0093] In the flexible billing method, the tenant specifies the maximum specification of the runtime instance purchased. In the flexible adjustment mode, the scheduling device 13 first establishes a runtime instance of the maximum specification for the tenant. When the tenant's business runs in the runtime instance, if the QOS of the application deteriorates, the control device 12 determines the amount of resources required to run the business, and determines the new amount of resources to be allocated for the business according to the flexible calculation method and the amount of resources required to run the business, allocates the resources of the new amount of resources of other runtime instances to the business, and runs the business in other runtime instances, or terminates other businesses in the runtime instance where the business is located, releases the amount of resources occupied by other businesses, and allocates resources to the business from the released amount of resources, so that the business has the new amount of resources. In the flexible billing method, billing is performed according to the actual amount of resources used by the business, and the actual amount of resources used is lower than the maximum amount of resources specified by the tenant. Therefore, the flexible billing method can avoid unnecessary expenses for tenants, avoid waste of resources of runtime instances, and increase the resource utilization of runtime instances. It is a win-win strategy for cloud providers and tenants.
[0094] If a tenant purchases a runtime instance from any cloud management platform 21, the cloud management platform 21 reports the tenant's purchase information to the control device 12 through the platform access device 11. If the tenant purchases the runtime instance from the purchase interface provided by the control device 12, the control device 12 can obtain the purchase information without obtaining the purchase information from the cloud management platform 21. The purchase information includes the tenant's identifier, the identifier of the billing method selected by the tenant when purchasing the runtime instance, and the specifications of the purchased runtime instance, which include the resource quantity of at least one resource.
[0095] After obtaining the purchase information, the control device 12 allocates a runtime instance to the tenant based on the purchase information. Exemplarily, the control device 12 sends a runtime instance allocation request to the scheduling device 13 based on the purchase information, and the runtime instance allocation request includes the purchase information to indicate that a runtime instance that meets the specification information is allocated to the tenant. After receiving the runtime instance allocation request, the scheduling device 13 allocates a runtime instance to the tenant based on the specifications in the runtime instance allocation request. For example, a resource pool is configured in the scheduling device 13, and the resource pool includes identifiers of multiple idle runtime instances and specifications of each idle runtime instance. The multiple idle runtime instances are runtime instances that have not been used in each cloud management platform 21 accessed by the resource scheduling system 100. The scheduling device 13 can allocate a runtime instance of a specified specification (i.e., the specification in the purchase information) to the tenant in the idle resource pool. Alternatively, the scheduling device 13 does not allocate a runtime instance to the tenant from the resource pool, and the scheduling device 13 establishes a runtime instance that can meet the tenant's specified specifications on the cloud management platform 21, and allocates the established runtime instance to the tenant. After the runtime instance is allocated to the tenant, an allocation completion response is sent to the control device 12, and the allocation completion response includes the remote login account and password of the runtime instance allocated to the tenant. Then, the control device 12 returns the remote login account and password to the tenant.
[0096] The runtime instance allocation request also indicates that the tenant's business is scheduled according to the resource adjustment mode corresponding to the payment method selected by the tenant. During the running of the tenant's business in the runtime instance, the control device 12 detects whether the business meets the scheduling conditions. If the scheduling conditions are met, the business is scheduled in the runtime instances of multiple cloud management platforms 21.
[0097] The control device 12 can also perform task scheduling and management of runtime instances of each cloud management platform 21 according to user needs. For example, the user can issue an instruction to the control device 12 to instruct the creation or deletion of a runtime instance on a certain cloud management platform 21. Then, based on the instruction, the control device 12 notifies a certain cloud management platform 21 through the platform access device 11 to create or delete a runtime instance. For another example, instance scheduling is performed between different nodes 22, such as scheduling a container instance in node 1 to node 0, so that there are two types of runtime instances of virtual machines and containers in node 0. For another example, the control device 12 sends the resource adjustment mode of the running business in each runtime instance to the scheduling device 13, and the scheduling device 13 performs business scheduling between different runtime instances and / or instance scheduling between different nodes 22 according to the resource adjustment mode of the business.
[0098] The resource scheduling system 100 supports multiple tenants, and the control device 12 also supports security management of the services of multiple tenants. For example, the control device 12 provides isolation protection measures for the services of each tenant to isolate and protect the services of different tenants.
[0099] (4) Scheduling device 13
[0100] The scheduling device 13 is a device in the resource scheduling system 100 responsible for service scheduling and instance scheduling. It can perform service scheduling between multiple runtime instances of the same type and can also perform instance scheduling between different nodes, thereby realizing resource scheduling across runtime instances.
[0101] The scheduling device 13 can communicate directly with the control device 12, or can communicate indirectly through the platform access device 11. The scheduling device 13 can obtain the resource adjustment mode of each service from the control device 12, and can also monitor the resource usage of each runtime instance, so that different nodes 2 can perform service scheduling between multiple types of runtime instances according to the resource usage of each runtime instance and the resource adjustment mode of the service run by each runtime instance. The scheduling device 13 has multiple resource adjustment modes and an efficient design, which ensures the confidentiality and integrity of data and services.
[0102] In a possible implementation, after any service scheduling is completed, during the operation of the service, the scheduling device 13 also monitors the operation of the service in the scheduled runtime instance. In the event of an abnormality in the operation of the service, the scheduling device 13 performs an abnormality process on the service, such as scheduling the service to a newly obtained runtime instance. Of course, the scheduling device 13 may not monitor the operation of the service and perform an abnormality process on the service, and the control device 12 may monitor the operation of the service and perform an abnormality process on the service.
[0103] Figure 1 The control device 12 and the scheduling device 13 are different devices as an example. In other embodiments, the control device 12 and the scheduling device 13 can be integrated into the same device. In this case, the control device 12 and the scheduling device 13 are both a module of the device.
[0104] (5) Storage control device 14
[0105] The storage control device 14 is a device in the resource scheduling system 100 that is responsible for data reading and writing, and is used to provide data storage services for other devices in the resource scheduling system 100 and various cloud management platforms 21 connected to the resource scheduling system 100 .
[0106] The storage systems supported by different cloud management platforms 21 may be the same or different. The same cloud management platform 21 supports the configuration of at least one storage system. For example, OpenStack supports the configuration of a block storage system or an object storage system. When OpenStack is configured with a block storage system, OpenStack can access the block storage subsystem through Cinder. When OpenStack is configured with an object storage system, OpenStack can access the object storage system through Swift. Cinder introduces a layer of "logical storage volume" abstraction between virtual machines and storage nodes. Cinder provides a plug-in mechanism integrated with multiple storage backends, such as logical volume manager (LVM), network file system (NFS), scalable network file system (Gluster filesystem, GlusterFS), etc., so that Cinder supports different types of storage nodes. Cinder manages the corresponding backend storage by calling the driver interface of different storage backend types, and provides users with a unified storage interface for volume-related operations. Swift provides a hypertext transfer protocol (HTTP) API and an object storage protocol. Swift can store data in a distributed storage system through an API or a direct object storage protocol. For another example, Kubernetes supports the configuration of a persistent storage system. Kubernetes can use persistent volumes (PV) and persistent volume claims (PVC) to implement persistent storage. PV represents a storage resource, which can be a local storage device on a host or a storage volume on a remote storage server. PVC represents a request for storage resources by an application (such as a running business).
[0107] In order to be able to connect to the storage systems supported and configured by each cloud management platform 21, the storage control device 14 includes multiple storage access interfaces, which correspond to different cloud management platforms 21 respectively, and the storage access interface supports access to the storage system configured by the corresponding cloud management platform 21. In the case where the same cloud management platform 21 supports the configuration of multiple storage systems, the cloud management platform 21 may also correspond to multiple storage access interfaces so that the configured storage system can be accessed through the corresponding storage access interface. The storage access interface and the storage system it supports access to use the same storage protocol so that the storage access interface can interact with the storage system it supports access to. For example, when a device inside or outside the resource scheduling system 100 or a cloud management platform 21 needs to access a storage system, it can access the storage system by calling the storage access interface to which the storage system is connected, so as to read and write data in the storage system.
[0108] In one possible implementation, the resource scheduling system 100 also provides a distributed storage system, which includes multiple storage subsystems, each storage subsystem includes multiple storage nodes, and the storage nodes are used to store data. The types of the multiple storage subsystems are different, and the storage protocols supported by the multiple storage subsystems are different. The data stored by each storage node in the same storage subsystem has the same type or format. The data stored by the storage nodes in different storage subsystems have different types or formats. The multiple storage subsystems include at least two of a block storage system, an object storage system, a file storage system, and a persistent storage system. Of course, there may also be other types of storage subsystems. Here, the embodiment of the present application does not limit the system type of each storage subsystem in the distributed storage system.
[0109] These multiple storage subsystems support the configuration of different cloud management platforms 21. The storage subsystem is used to store the relevant information of the runtime instance of the configured cloud management platform 21 and the business data of each business run by the runtime instance of the cloud management platform 21 (such as data generated during the business operation). The storage control device 14 is the control core in the distributed storage system. The various storage access interfaces of the storage control device 14 are respectively connected to these multiple storage subsystems. When any cloud management platform 21 is connected to the resource scheduling system 100, the control device 12 configures the storage subsystem for the cloud management platform 21 from these multiple storage subsystems. Of course, the cloud management platform 21 may also have its own storage system. The control device 12 (or cloud management platform 21) controls the storage system to be connected to the corresponding storage access interface in the storage control device 14, so that the subsequent devices inside and outside the resource scheduling system 100 can access the storage system through the storage access interface.
[0110] Each cloud management platform 21 can access the storage system (such as a sub-storage system or a self-contained storage system) configured for the cloud management platform 21 through the platform access device 11 and the storage control device 14. For example, the cloud management platform 21 sends a data read and write request to the platform access device 11 through the platform access interface to which it is connected, to indicate to read and write data to the storage configured for the cloud management platform 21. After receiving the data read and write request, the platform access device 11 sends a data read and write request to the storage control device 14. After receiving the data read and write request from the platform access device 11, the storage control device 14 reads and writes data in the storage system configured for the cloud management platform 21 based on the data read and write request, such as sending a read and write instruction to the storage access interface corresponding to the cloud management platform 21 based on the data read and write request. The storage access interface reads and writes data in the storage system configured for the cloud management platform 21 based on the read and write instruction, so that the cloud management platform 21 can also access the storage system configured for itself based on the resource scheduling system 100.
[0111] In another possible implementation, the resource scheduling system 100 does not provide a distributed storage system, and each cloud management platform 21 connected to the resource scheduling system 100 has its own storage system. The cloud management platform 21 / control device 12 controls the storage system to access the corresponding storage access interface in the storage control device 14, so that subsequent devices inside and outside the resource scheduling system 100 can access the storage system through the storage access interface.
[0112] When scheduling a certain service from one runtime instance to another runtime instance, the storage control device 14 can also convert the format of the service data generated when the original runtime instance of the service was running, so that the data format of the converted business data meets the requirements of the runtime instance to be scheduled, thereby enabling data sharing and collaboration between different types of runtime instances.
[0113] When storing data in the storage system configured on the cloud management platform 21, the storage control device 14 can also use distributed storage technology to copy and back up data to multiple storage nodes 22 of the storage system to ensure data reliability and fault tolerance, improve data availability and security, and cope with unforeseen failure situations. The storage control device 14 can also adopt a load balancing strategy so that the load between each storage node 22 in the storage system can be dispersed, thereby improving the scalability and concurrency of the system. The storage control device 14 can adopt a multi-level identity authentication and authority management strategy to ensure system security and manageability. The storage control device 14 can also provide monitoring and logging functions to facilitate users to manage and maintain the distributed storage system.
[0114] The storage control device 14 is also connected to the target storage system, which may be a storage system configured separately for the resource scheduling system 100, or a storage system configured for a certain cloud management platform. The target storage system is used to provide data storage services for each device in the resource scheduling system 100. The information collected by the control device 12 in the resource scheduling system 100, the information required by the scheduling device 13 during the scheduling process, the configuration information of the platform access device 11, the configuration information of the control device 12, the configuration information of the scheduling device 13, the configuration information of the storage control device 14, the consumption of storage resources of each storage system connected to the storage control device 14 and the remaining information can all be stored in the target storage system. Among them, the information collected by the control device 12 includes relevant information of each runtime resource of each cloud management platform, the purchase information of each tenant, the resource adjustment mode and billing mode of each tenant's business, the resource consumption and resource remaining situation of each node configured by each cloud management platform, etc. The information required by the scheduling device 13 during the scheduling process, such as the resource adjustment mode to which the business belongs, the purchase information of the tenant to which the business belongs, all or part of the relevant information of the runtime instance to which the business belongs, etc.
[0115] Based on the above introduction to each device in the resource scheduling system 100, the resources of all cloud management platforms 11 accessed by the resource scheduling system 100 can constitute the global resources of the resource scheduling system 100, such as Figure 4 The global resource diagram of a resource scheduling system provided by the embodiment of the present application shown in the figure, global resources include runtime instance resources and host-side resources, runtime instance resources include runtime instances (such as virtual machines, containers, Linux processes, serverless functions, etc.) in each node 22 of all cloud management platforms 11, and host-side resources refer to the hardware resources and software resources of all nodes 22 of all cloud management platforms, hardware resources such as CPU, memory, input and output (IO) external devices, and software resources such as file systems. The host-side resources of each node 22 can be managed by the operating system (OS) of each node 22, respectively, and the operating system of node 22 is also called cloud OS.
[0116] Each device in the resource scheduling system 100 can manage the runtime instance resources of each cloud management platform 21 by calling the plug-in on the host side of each cloud management platform 21. For example, by calling novacompute in Openstack, the status information of each virtual machine managed by Openstack can be obtained. For another example, by calling kubelet in Kubernetes, the service scheduling of the container managed by Kubernetes can be performed. For another example, by calling the high performance computing (HPC) agent / Hadoop agent (angent) of the cloud management platform of the Linux process, the Linux process can be managed. Thus, the resource scheduling system 100 can globally manage multiple types of runtime instances.
[0117] The control device 12 and / or the scheduling device 13 can interact with the OS of each node 22 by calling the plug-in connected to the host side in each cloud management platform 21 to determine the hardware resources and software resources of each node 22 and collect the consumption of the hardware resources and the usage of the software resources of each node, so as to monitor the global hardware resources, global software resources, resource consumption of global hardware resources and the usage of global software resources of the resource scheduling system 100 in real time, so as to create and manage runtime instances in each node 22 according to the global hardware resources, global software resources, resource consumption of global hardware resources and the usage of global software resources. In some embodiments, the same type of runtime instance can be established in the nodes 22 of the same cloud management platform 21, or multiple types of runtime instances can be established in the nodes 22 of the same cloud management platform 21, so as to realize the sharing of hardware resources and software resources on the host side of multiple cloud management platforms 12, and to globally manage the hardware resources and software resources on the host side of multiple cloud management platforms 12.
[0118] The resource scheduling system 100 globally manages the runtime instance resources, host-side hardware resources, and software resources of all connected cloud management platforms 12 to integrate the relevant information of runtime instances of various types of cloud management platforms 12. It can solve the information isolation problem between different types of cloud management platforms, and can also solve the information isolation problem between multiple cloud management platforms of the same type. The information in the information isolation can be information about runtime instances, hardware resources, and soft resources, etc.
[0119] Since the platform access device 11 supports access to multiple cloud management platforms 21, other devices in the resource scheduling system 100 can interact with different cloud management platforms 21, so that the control device 12 can uniformly manage the runtime instances of multiple cloud management platforms 21, so that the scheduling device 13 can uniformly schedule services between the runtime instances of multiple cloud management platforms 21, so that the storage control device 14 can provide storage services for multiple cloud management platforms 21, so that the resource scheduling system 100 can provide consistent business scheduling services for tenants' applications, simplify the business management process, improve management efficiency, and reduce operation and maintenance costs. Based on the architecture of the resource scheduling system 100, it is possible to realize the automatic deployment and scheduling of distributed applications, thereby improving business processing efficiency and resource utilization. Since the platform access device 11 and the control device 13 are configured to support flexible configuration interfaces, the resource scheduling system 100 has good scalability and flexibility, and can adapt to various business scenarios and needs. In summary, the resource scheduling system 100 is a unified business scheduling system architecture that can realize scheduling across multiple runtime instances, and the architecture has efficient resource utilization and business benefits.
[0120] In another possible implementation, the resource management system 100 is used to manage resources of multiple nodes 22, where the multiple nodes 22 are divided into hybrid nodes and non-hybrid nodes, where there are multiple hybrid nodes, and a hybrid node refers to a node that supports at least two types of runtime instances, where the types of runtime instances include containers, virtual machines, serverless functions, or other runtime types. A non-hybrid node supports one type of runtime instance, for example, a node that only supports the deployment of virtual machines is a non-hybrid node (referred to as a virtual node), and a node that only supports the deployment of containers is a non-hybrid node (referred to as a container node), for example Figure 6 The resource scheduling system manages K (K>2) hosts, each of which is a node, where host 1 is a virtual machine node, host 2 is a container node, and host K is a hybrid node. For any node 22, the control device 12 can also configure the node 22 as a hybrid node or a non-hybrid node, so as to create different types of runtime instances in the hybrid node and create a runtime instance that supports one runtime type in the non-hybrid node. Since the hybrid node supports at least two types of runtime instances, hybrid deployment across runtime instances can be achieved. Next, in combination with the attached Figure 5 The following describes how to deploy hybrid runtime instances.
[0121] Figure 5This is a flow chart of a hybrid deployment method across runtime instances based on cloud computing technology provided by an embodiment of the present application. The method is completed by interacting with a client and a resource scheduling system, wherein the resource scheduling system is used to manage the resources of multiple hybrid nodes. Based on this, the process of deploying runtime instances is executed by the resource scheduling system, which is the resource scheduling system based on cloud computing technology introduced above. The method includes the following steps:
[0122] 501. The client sends the instance configuration request to the resource scheduling system. The instance configuration request is used to instruct to deploy a target instance on a hybrid node. The runtime type of the target instance is a type of runtime instance.
[0123] Among them, the target instance is any runtime instance purchased by any tenant, and the runtime type of the target instance is a container, a virtual machine, a serverless function or other runtime type. The target instance is used to run the tenant's business (referred to as the target business). Among them, the instance configuration request includes at least one of the identifier of the target runtime type, the identifier of the target node type, the identifier of the target adjustment mode, the target specification information and the instance priority information, wherein the target runtime type is the runtime type of the target instance, the target node type is the type of node used to deploy the target instance, and the node type is divided into a hybrid node type and a non-hybrid node type. The target adjustment mode is the resource adjustment mode (elastic adjustment mode or flexible adjustment mode) supported by the target instance, and the target specification information is the specification of the target instance under the target adjustment mode. The instance priority information is used to determine the service quality of the target instance at the node.
[0124] by Figure 6 Taking the hybrid deployment process shown in the figure as an example, after the tenant purchases the target instance or purchases the target instance, the tenant configures the instance parameters of the target instance in the instance configuration interface provided by the client to apply for creating the instance. Figure 6 As shown, the instance configuration interface includes runtime type configuration options, hybrid deployment configuration options, priority configuration options, and scheduling mode configuration options. Among them, the runtime type configuration option is used to configure the target runtime type. The runtime type configuration option provides multiple runtime types. The tenant selects any runtime type from the multiple runtime types, and the client determines the any runtime type as the target runtime type in response to the selection operation.
[0125] The hybrid deployment option is used to confirm whether the tenant accepts the deployment of the target instance on the hybrid node. If the tenant confirms the acceptance of the hybrid deployment option, the client determines the hybrid node type as the target node type in response to the confirmation acceptance operation. If the tenant confirms the rejection of the hybrid deployment option, the client determines the non-hybrid node type as the target node type in response to the confirmation rejection operation. In a possible implementation, based on the business requirements of the target business, the tenant can select the target runtime type and the target node type for the target instance, such as Figure 6 As shown in the figure, if the target business requires secure operation, the tenant can use virtual machine as the target runtime type and non-hybrid node as the target node type, and then choose to establish the target instance on the virtual machine node. If the target business requires high-performance operation, the tenant can use container as the target runtime type and non-hybrid node as the target node type, and then choose to establish the target instance on the container node. If the target business does not have such high requirements for secure operation and performance, such as requiring near-end access, the tenant can use hybrid node as the target node type, and the target runtime type can be selected according to other business requirements.
[0126] The priority configuration option is used to configure the instance priority information of the target instance. The priority configuration option provides multiple service priorities. Different service priorities correspond to different service quality levels, such as Figure 6 As shown, there are three business priorities, namely high business priority, medium business priority and low business priority, and the service quality levels corresponding to these three business priorities decrease in sequence. In another possible implementation, there may be more than three or less than three business priorities, and the number of business priorities is not limited here. Different business priorities are set to meet the service quality requirements of different businesses. The tenant selects any one of the multiple business priorities, and the client responds to the selection operation and determines the identifier of any one of the business priorities as the instance priority information of the target instance.
[0127] The scheduling mode configuration option is used to configure the target adjustment mode and target specification information. The adjustment mode configuration option includes an elastic adjustment mode sub-option and a flexible mode sub-option. For any sub-option in the elastic adjustment mode sub-option and the flexible mode sub-option, the tenant configures the specification of the target instance in the sub-option and performs a confirmation selection operation on the sub-option. In response to the confirmation selection operation, the client determines the resource adjustment mode represented by the sub-option as the target adjustment mode and determines the specification information configured in the sub-option as the target specification information.
[0128] Afterwards, the client generates the instance configuration request based on the determined target runtime type, target node type, target adjustment mode, target specification information, and instance priority information, and sends the instance configuration request to the resource scheduling system. Wherein, when the target node type is a hybrid node type, the instance configuration request is used to indicate that the target instance is deployed on a hybrid node, and when the target node type is a non-hybrid node type, the instance configuration request is used to indicate that the target instance is deployed on a non-hybrid node. The information carried in the instance configuration request is the instance parameters of the target instance.
[0129] 502. The resource scheduling system receives the instance configuration request.
[0130] The instance configuration request is an instance configuration request sent by the tenant through the client. If the instance configuration request is used to indicate that the target instance is deployed on the hybrid node, the following steps 503 and 504 are executed.
[0131] 503. The resource scheduling system determines a first hybrid node from multiple hybrid nodes according to the instance configuration request.
[0132] The first hybrid node is a hybrid node of the target instance to be deployed, the first hybrid node is the target node of the target instance, and the first hybrid node meets the resource quantity required by the target specification information of the target instance.
[0133] In a possible implementation, after receiving the instance configuration request, the resource scheduling system parses the target runtime type identifier, the target node type identifier, the target adjustment mode identifier, the target specification information, and the instance priority information from the instance configuration request. If the target node type is a hybrid node type, the resource scheduling system determines a first hybrid node from multiple hybrid nodes based on the target specification information, wherein the target specification information includes a target resource amount of at least one resource, and the at least one resource includes at least one of a computing resource and a network resource. The target resource amount of any resource is the resource amount required by the target instance for such resource.
[0134] For example, the resource scheduling system monitors the idle resource amount of the at least one resource of each hybrid node and the idle resource amount of at least one resource of each non-hybrid node, and the idle resource amount of any resource of any node refers to the amount of the resource that is not allocated or occupied in the node. For any hybrid node among the multiple hybrid nodes, if the idle resource amount of the at least one resource of the hybrid node is lower than the target resource amount of the corresponding resource, the hybrid node meets the resource amount required by the target specification information, and the resource scheduling system determines the hybrid node as the first hybrid node.
[0135] If the resources in each of the multiple hybrid nodes do not meet the resource quantity required by the target specification information of the target instance, the resource scheduling system can configure a new hybrid node, the new hybrid node meets the resource quantity required by the target specification information, and the new hybrid node is determined as the first hybrid node. Alternatively, by scheduling (or migrating) the created runtime instances between the multiple hybrid nodes, so that a certain hybrid node can meet the resource quantity required by the target specification information, the hybrid node is determined as the first hybrid node. Among them, the method of scheduling business instances, for example, if the sum of the amount of resources occupied by at least one runtime instance in a hybrid node and the amount of idle resources of the hybrid node is equal to or higher than the target amount of resources, the at least one runtime instance is scheduled to a third hybrid node to release the amount of resources occupied by the at least one runtime instance in the hybrid node, and the hybrid node is determined as the first hybrid node, wherein the third hybrid node is any hybrid node among multiple hybrid nodes except the hybrid node, and there are one or more third hybrid nodes, for example, the at least one runtime instance is scheduled to a third hybrid node, and the amount of idle resources of the third hybrid node meets the amount of resources required by at least one runtime instance, for another example, there are multiple runtime instances to be scheduled in the hybrid node, and each business instance to be scheduled is scheduled to a different third hybrid node, and the amount of idle resources of each third hybrid node meets the amount of resources required by the transferred business instance.
[0136] The first hybrid node is determined by scheduling the created runtime instances among multiple hybrid nodes, so that the fragmented resources in the hybrid nodes are fully utilized.
[0137] 504. The resource scheduling system creates a target instance for the tenant at the first hybrid node.
[0138] For example, the resource scheduling system creates a runtime instance of the target runtime type in the first hybrid node, allocates the target resource amount of the first hybrid node to the runtime instance, and the created runtime instance is also the target instance, and the specifications of the target instance are the specifications required by the target specification information.
[0139] 505. The resource scheduling system sends the running status information of the target instance to the client, where the running status information includes the identifier of the running type of the target instance and the node information, where the node information is used to indicate that the running environment of the target instance is the first hybrid node.
[0140] The node information includes an identifier of the first hybrid node and an identifier of the hybrid node type.
[0141] For example, after creating the target instance, the resource scheduling system runs the target instance on the first hybrid node, generates the running status information based on the runtime type of the target instance (ie, the target runtime type), the first hybrid node, and the hybrid node type, and returns the running status information to the client.
[0142] 506. The client receives and displays the running status information.
[0143] Based on the running status information, the tenant can know that the target instance has been established and is running on the first hybrid node. The resource scheduling system can also send the remote login account and password of the target instance together with the running status information to the client, and the client will display the remote login account and password of the target instance so that the tenant can log in to the target instance according to the remote login account and password of the target instance and run the tenant's target business on the target instance.
[0144] In another possible implementation, if the instance configuration request is used to indicate that the target instance is deployed on a non-hybrid node, the resource scheduling system determines a first non-hybrid node from multiple non-hybrid nodes that support the target runtime type, and creates a target instance at the first non-hybrid node, wherein the first non-hybrid node meets the resource quantity required by the target specification information. In this implementation, the first non-hybrid node is the target node of the target instance, the method for determining the first non-hybrid node is the same as the method for determining the first hybrid node, the process of creating the target instance at the first non-hybrid node is the same as the process of creating the target instance at the first hybrid node, and after creating the target instance, the resource scheduling system will also send the running status information of the target instance to the client, but at this time, the node information in the running status information is used to indicate that the running environment of the target instance is the first non-hybrid node, and accordingly, at this time, the node information includes the identifier of the first non-hybrid node and the identifier of the non-hybrid node type.
[0145] The runtime instance created for the tenant in each node (such as a non-hybrid node or a hybrid node) managed by the resource scheduling system is called a business instance. In another possible implementation, the process of creating a business instance in the node can be executed by an intelligent scheduling system in the resource scheduling system, wherein the intelligent scheduling system is equivalent to a control device in the resource scheduling system. Figure 6 As shown in the figure, the intelligent scheduling system creates new business instances on nodes of specific node types according to the instance configuration requests of each tenant for each business instance, and manages the life cycle of the business instance through the native API supported by the runtime type of the business instance. The native API refers to the cloud management platform that manages a certain runtime instance. For example, if the business instance is a VM, the native API is Open Stack. If the business instance is a container, the native API is Kubernetes. Based on this, Figure 6As shown, Open Stack can perform lifecycle management on virtual machine nodes and VMs in hybrid nodes, and Kubernetes can perform lifecycle management on container nodes and containers in hybrid nodes.
[0146] In another possible implementation, each step from step 503 to step 505 may be performed by a control device or a scheduling device in a resource scheduling system, or may be performed in cooperation with the control device and the scheduling device. For example, the control device performs steps 502 and 503 to determine the first hybrid node, and notifies the scheduling device to create a target instance at the first hybrid node. The scheduling device performs steps 504 and 505 based on the notification. Alternatively, the scheduling device performs step 504 based on the notification, and the control device performs step 506.
[0147] The method provided in the embodiment of the present application manages the resources of multiple hybrid nodes through a resource scheduling system. Since hybrid nodes support the deployment of multiple types of runtime instances, the resource scheduling system can deploy different types of runtime instances in the hybrid nodes. The specifications of different types of runtime instances are quite different. The fragmented resources of the hybrid nodes can be allocated to runtime instances with smaller specifications, thereby making full use of the fragmented resources of the hybrid nodes.
[0148] For each non-hybrid node managed by the resource scheduling system and the runtime instances created in each hybrid node, the service quality requirements of different runtime instances may be the same or different. For any created runtime instance, the resource scheduling system can also adjust the resources currently occupied by the runtime instance according to the instance priority information of the runtime instance, so that the adjusted resources can meet the service quality requirements of the runtime instance to ensure the service quality of the runtime instance. Next, taking the target instance established in the first hybrid node as an example, through Figure 7 The process of adjusting the resources occupied by the target instance by the resource scheduling method flow based on cloud computing technology is introduced as follows, wherein the method is executed by the above-mentioned resource scheduling system, such as by the scheduling device in the resource scheduling system, and the method includes the following steps.
[0149] 701. The resource scheduling system obtains instance priority information input by the tenant, where the instance priority information is used to determine the quality of service required by the target instance at the first hybrid node.
[0150] The instance priority information includes the business priority of the target instance (referred to as the target priority). The instance priority information of the target instance input by the tenant refers to the instance priority information input by the tenant through the client, and the instance priority information is included in the instance configuration request of the target instance. Based on this, the resource scheduling system obtains the instance priority information from the instance configuration request of the target instance.
[0151] 702. The resource scheduling system adjusts the resources occupied by the target instance in the first hybrid node according to the instance priority information to meet the service quality requirement of the target instance.
[0152] In one possible implementation, the resource scheduling system detects the service quality of the target instance, and determines a resource adjustment strategy for the resources occupied by the target instance based on the detection result and instance priority information, such as the process shown in steps 7021 to 7024 below.
[0153] Step 7021: The resource scheduling system determines the service quality degradation parameter of the target instance based on the core indicator data of the processor core bound to the target instance.
[0154] Among them, the service quality degradation parameter of any runtime instance is used to indicate the degree of degradation of the service quality of the runtime instance during operation. The processor core bound to any runtime instance is the processor core that provides computing services for the runtime instance, in other words, the processing core that runs the runtime instance. The core indicator data of any processor core includes at least one of the business clock of the processor core, the number of context switches, the number of processor core migrations, the number of page faults, the clock cycle, the number of instructions per clock cycle, the number of instruction stall cycles, the number of branch predictions, the number of branch prediction failures, the number of first-level cache reads, the number of first-level cache read failures, the number of last-level cache reads, and the number of last-level cache read failures.
[0155] In a possible implementation, step 7021 is performed by a scheduling strategy generation module of the resource scheduling system, wherein the scheduling strategy generation module is equivalent to a scheduling device in the resource scheduling system. Figure 6As shown, the scheduling strategy generation module collects information such as resource utilization, busyness, affinity, etc. of each node managed by the resource scheduling system, wherein busyness is used to indicate the busyness of the node, and affinity refers to the affinity between the node and the local business instance. Based on the collected information such as resource utilization, busyness, affinity of each node, and the kernel indicator data of each processing core in each node, the scheduling strategy generation module constructs a unified resource view of the resource scheduling system. For example, the scheduling strategy generation module determines the service quality degradation parameters of each business instance based on the kernel indicator data of each processing core, and constructs a unified resource view of the resource scheduling system based on the service quality degradation parameters of each business instance and the resource utilization, busyness, affinity, etc. of each node.
[0156] Exemplarily, each cloud management platform will actively collect the core load performance of the CPU of each node when running business, and report the resource utilization, busyness, affinity, core indicator data of each processing core in each node and other information to the scheduling strategy generation module through the host layer interface accessed by the platform access device. Alternatively, each cloud management platform does not actively report this information, and the scheduling strategy generation module actively obtains this information from each cloud management platform through the platform access device.
[0157] The processing core bound to the target instance is called the first CPU. Taking determining the service quality degradation parameters of the target instance as an example, during the process of the target instance running the target business, the scheduling strategy generation module collects the kernel indicator data of the first CPU in real time, and determines the service quality degradation parameters of the target instance based on the kernel indicator data of the first CPU at the current moment and the kernel indicator data of the first CPU at the historical moment. The larger the service quality degradation parameter, the more serious the service quality degradation of the target instance, and the smaller the service quality degradation parameter, the lighter the service quality degradation of the target instance.
[0158] Since the kernel indicator data is a kernel-level indicator of the CPU, it can accurately reflect the kernel-level resources consumed by the instance when running on the CPU. Therefore, according to the kernel indicator data of the first CPU, the degradation of the service quality of the target instance can be accurately predicted. In the case of serious degradation of the service quality, the target instance can be timely scheduled for resources to alleviate the degradation of the service quality of the target instance as soon as possible. In the process of running the business, the consumption of each kernel-level resource of the bound processing core is different. For example, some businesses have a large number of context switches during the operation process, and some businesses have a large number of first-level cache reads during the operation process. Based on this, according to the processor's business clock, context switch times, processor migration times, page fault times, clock cycles, number of instructions per clock cycle, number of instruction stall cycles, branch prediction times, branch prediction failure times, first-level cache read times, first-level cache read failure times, last-level cache read times, and last-level cache read failure times, the method of determining the degradation of the service quality of the business instance can be applied to various businesses to meet the needs of different businesses.
[0159] Step 7022: The resource scheduling system determines the service quality required by the target instance at the first hybrid node based on the correspondence between multiple priorities and service quality levels and according to the target priority in the instance priority information.
[0160] The quality of service required by the target instance is the quality of service required by the target business running in the target instance, and the target business is the business run by the tenant in the target instance. For example, the target quality of service level corresponding to the target priority is determined as the quality of service required by the target instance.
[0161] Step 7023: The resource scheduling system determines a resource adjustment strategy for the target instance based on the target service quality level, the service quality degradation parameter of the target instance, and the resource demand of the target business. The resource adjustment strategy can meet the service quality requirements of the target instance.
[0162] The node status of any node includes at least one of the resource status and service status of the node. The resource status is used to indicate at least one of the resource allocation and resource utilization of the node. The resource allocation includes the amount of idle resources of the node and the amount of resources occupied by each service instance in the node. The resource utilization includes the resource utilization rate of various resources in the node. The service status is used to indicate at least one of the busyness of the node and the affinity between the node and the local service instance. For example, the service status includes the busyness of the node and the affinity between the node and each local service instance.
[0163] The resource adjustment strategy includes any one of the following first adjustment strategy to third adjustment strategy, wherein the first adjustment strategy is to release a first amount of resources from the resources occupied by the target instance. The second adjustment strategy is to allocate a second amount of resources to the target instance from the unoccupied resources of the first hybrid node. The third adjustment strategy is to allocate a third amount of resources to the target instance from the unoccupied resources of the second hybrid node among the multiple hybrid nodes.
[0164] In one possible implementation, if the current quality of service level of the target instance is lower than the target service level, and the quality of service degradation parameter of the target instance is greater than or equal to the parameter threshold, the resource scheduling system determines that the target instance does not meet the quality of service requirements of the target business. The current quality of service level of the target instance is determined by the kernel indicator data of the first CPU currently collected. In another possible implementation, the quality of service provided by the target instance is always higher than or equal to the target service level during the process of the target instance running the target business. During this period, if the quality of service degradation parameter of the target instance is greater than the parameter threshold, the resource scheduling system determines that the target instance does not meet the quality of service requirements of the target business. The parameter threshold may be different in different implementation scenarios. Here, this application does not limit the parameter threshold.
[0165] In the case where the target instance cannot meet the service quality requirements of the target business, if the target instance also supports the flexible adjustment mode, the target instance meets the resource adjustment conditions, and the resource scheduling system determines the resource adjustment strategy of the target instance based on the node status of the first node and the resource demand of the target business. Next, the process of determining the resource adjustment strategy is introduced as follows:
[0166] Among them, there is at least one resource demand of the target business, and any resource demand is the resource amount of a resource that is predicted to be consumed by the target instance when running the target business. Taking the determination of the resource demand of the target business in any resource as an example, the resource scheduling system collects the resource consumption of the target instance at each moment during the operation of the target business from the first hybrid node, and periodically counts the changes in the resource consumption of the target instance during the operation of the target business according to the time window. Based on the changes in the resource consumption of the target instance counted in the current time window, the resource demand of the target business in the next time window is determined, and the resource demand of the target business in the next time window is used as the resource demand of the target business for the resource.
[0167] Take the target business as business i, and denote any resource of the target instance as X. The resource scheduling system obtains the average value Mean(X) of the resource consumption of the target instance in the current time window and the standard deviation Std(X) of the resource consumption of the target instance in the current time window according to the following formula (1). The sum of the average value Mean(X) and the standard deviation Std(X) is used as the resource demand U of business i for resource X in the next time window. sage (i, X). Wherein, formula (1) is as follows:
[0168] Usage(i, X) = Mean(X) + Std(X)
[0169]
[0170]
[0171] Wherein, t1 and t2 are the start time and end time of the current time window respectively, and X(i) is the resource consumption of resource X of the target instance at a certain moment during the operation of business i.
[0172] After obtaining the resource demand of the target business, if the resource demand of the target business is lower than the resource demand of the target instance, it means that there are some idle resources in the resources occupied by the target instance. Then the resource scheduling system determines the first quantity based on the resource demand of the target instance and the resource demand of the target business, wherein the first quantity is the resource quantity to be released, the first quantity is less than or equal to the difference between the resource quantity occupied by the target instance and the resource demand of the target business, and the resource quantity occupied by the target instance is the resource quantity in the current specification information of the target instance. For example, if the target instance has not been adjusted for resources after creation, the target resource quantity in the target specification information of the target instance is the resource quantity occupied by the target instance. If the target instance has been adjusted for resources after creation, the target specification information of the target instance is updated, and the target resource quantity of the target instance is updated accordingly. The updated target resource quantity is the resource quantity occupied by the target instance. Alternatively, if the resource demand of the target business is lower than the resource quantity occupied by the target instance, the resource scheduling system uses the idle resource quantity of the target instance as the first quantity. After the first quantity is determined, the resource adjustment policy of the target instance of the resource scheduling system is determined to be the first resource adjustment policy.
[0173] If the resource demand of the target business is higher than the resource occupied by the target instance, it means that the resources occupied by the target instance cannot meet the resource demand of the target business. In this case, a resource adjustment strategy needs to be determined to increase the resource occupied by the target instance so as to increase the specifications of the target instance and meet the resource demand of the target business.
[0174] Exemplarily, if the resource demand of the target business is higher than the resource quantity occupied by the target instance, the resource scheduling system determines a second quantity based on the resource demand of the target business and the resource quantity occupied by the target instance, wherein the second quantity is the amount of resources additionally required by the target business on the basis of the resource quantity occupied by the target instance, and the second quantity is greater than or equal to the difference between the resource quantity occupied by the target instance and the resource demand of the target business. Taking memory resources as an example, the resource demand of the target business for memory is 100M, the resource quantity occupied by the target instance for memory is 80M, and the second quantity is at least 20M.
[0175] The resource scheduling system determines whether a second amount of resources can be scheduled for the target instance from the resources of the first hybrid node. If the second amount of resources can be scheduled for the target instance from the resources of the first hybrid node, the resource adjustment policy of the target instance is determined as the second resource adjustment policy. For example, the resource scheduling system obtains the amount of idle resources of the first hybrid node. If the amount of idle resources of the first hybrid node is higher than or equal to the second amount, the second amount of resources can be scheduled for the target instance from the resources of the first hybrid node, and the resource scheduling system determines the second resource adjustment policy from the resource adjustment policy of the target instance. If the amount of idle resources of the first hybrid node is lower than the second amount, the resource scheduling system inquires whether there is a business instance (referred to as the first business instance) with idle resources in the first hybrid node. If there is a first business instance, the idle resources of the first business instance are released, so that the idle resources of the first hybrid node are increased. Alternatively, the resource scheduling system schedules the second business instance in the first hybrid node to the third hybrid node, releases the resources occupied by the second business instance in the first hybrid node, so that the idle resources of the first hybrid node are increased. The second business instance is any business instance other than the target instance in the first hybrid node, and the third hybrid node is any hybrid node other than the first hybrid node among the multiple hybrid nodes. Alternatively, the resource scheduling system releases the idle resources of the first business instance, and schedules the second business instance in the first hybrid node to the third hybrid node, releasing the resources occupied by the second business instance in the first hybrid node, so that the idle resources of the first hybrid node increase. After the idle resources of the first hybrid node increase, the amount of idle resources of the first hybrid node is updated. If the updated amount of idle resources of the first hybrid node is higher than or equal to the second amount, and the second amount of resources can be scheduled for the target instance from the resources of the first hybrid node, the resource scheduling system determines the second resource adjustment policy from the resource adjustment policy of the target instance.
[0176] In another possible implementation, if a second amount of resources can be scheduled for the target instance from the resources of the first hybrid node, the resource scheduling system can also determine whether to determine the resource adjustment policy of the target instance to be a second resource adjustment policy based on the node state of the first hybrid node. For example, if the resource utilization of the first hybrid node is less than or equal to the utilization threshold, and / or the busyness of the first hybrid node is less than or equal to the first busyness threshold, it means that the resource utilization of the first hybrid node is low and / or the first hybrid node is not busy, and the resources of the first hybrid node are sufficient, then the resource adjustment policy of the target instance is determined to be a second resource adjustment policy. If the resource utilization of the first hybrid node is greater than the utilization threshold, and / or the busyness of the first hybrid node is greater than the first busyness threshold, it means that the resource utilization of the first hybrid node is high and / or the first hybrid node is busy, and the resources of the first hybrid node are tight. In order not to affect the operation of other business instances on the first hybrid node, the resource adjustment policy of the target instance is determined to be a third resource adjustment policy.
[0177] In another possible implementation, if the second number of resources cannot be scheduled for the target instance from the resources of the first hybrid node, the resource scheduling system determines the third resource adjustment policy based on the resource adjustment policy of the target instance. Taking the following steps A1 and A2 as an example, the process of determining the third resource policy is introduced as follows.
[0178] Step A1: During the process of the target instance running the tenant's target business, the resource scheduling system obtains the node status of multiple hybrid nodes and the service quality degradation parameters of each business instance running in each hybrid node. The service quality degradation parameters are used to indicate the degree of degradation of the service quality of the business instance during the operation process.
[0179] Among them, for any hybrid node, the process of the resource scheduling system obtaining the node status of the hybrid node is the same as the process of obtaining the status of the first hybrid node, and the process of the resource scheduling system obtaining the service quality degradation parameters of each business instance running the hybrid node is the same as the process of obtaining the service quality degradation parameters of the target instance. Step A1 will not be repeated here.
[0180] Step A2: The resource scheduling system determines a third resource adjustment strategy for the target instance based on the node status of multiple hybrid nodes, the service quality degradation parameters of each business instance, and the actual resource consumption of each business instance. The third resource adjustment strategy includes allocating a third amount of resources to the target instance from the unoccupied resources of the second hybrid node among the multiple hybrid nodes.
[0181] The third amount is the resource demand of the target service. The second hybrid node is one of the multiple hybrid nodes with sufficient resources and can allocate the third amount of resources to the target instance.
[0182] Taking any hybrid node other than the first hybrid node among multiple hybrid nodes as an example, the resource scheduling system determines whether the resources of the hybrid node are sufficient based on the node status of the hybrid node, wherein the determination method is the same as that of determining whether the resources of the first hybrid node are sufficient, and will not be repeated. If the resources of the hybrid node are sufficient and the amount of idle resources is greater than the third number, the resource scheduling system determines the hybrid node as a second hybrid node to avoid affecting the operation of other business instances in the second hybrid node after the resources are subsequently allocated from the second hybrid node to the target instance. Alternatively, if the resources of the hybrid node are sufficient, the service quality degradation parameters of each business instance in the hybrid node are less than or equal to the second parameter threshold, and the amount of idle resources of the hybrid node is greater than the third number, the resource scheduling system determines the hybrid node as a second hybrid node to avoid affecting the service quality of other business instances in the second hybrid node after the resources are subsequently allocated from the second hybrid node to the target instance.
[0183] If the hybrid node has sufficient resources, but the idle resource amount of the hybrid node is less than the third amount, the resource scheduling system can also determine the idle resource amount of each business instance based on the actual resource consumption of each business instance in the hybrid node and the resource amount occupied by each business instance, or obtain the idle resource amount of each business instance from the hybrid node. The actual resource consumption of any business instance is the amount of resources consumed by the business instance during the business instance running the business, and the idle consumption of the business instance is the amount of resources that have not been used among the resources occupied by the business instance, for example, the idle consumption of the business instance is equal to the difference between the amount of resources occupied by the business instance and the actual resource consumption of the business instance. Based on the idle resource amount of each service instance in the hybrid node, the idle resources of at least one service instance in the hybrid node are released, and the resource release amount of the at least one service instance is less than the idle resource amount of the service instance, so as to increase the idle resources of the hybrid node, or, at least one service instance is scheduled to a fourth hybrid node, and the resources occupied by at least one service instance in the hybrid node are released, so as to increase the idle resources of the hybrid node, or, the idle resources of at least one service instance in the hybrid node are released, and at least one other service instance in the hybrid node is scheduled to a fourth hybrid node, so as to increase the idle resources of the hybrid node. The fourth hybrid node is any hybrid node among the multiple hybrid nodes except the first hybrid node. The idle resources of the hybrid node are increased, so that the idle resource amount of the hybrid node is updated. If the idle resource amount of the updated hybrid node is greater than or equal to the third amount, the resource scheduling system determines the hybrid node as a second hybrid node.
[0184] In another possible implementation, the resource scheduling system first determines whether the amount of idle resources of each hybrid node is greater than or equal to a third number. If there is a hybrid node with an amount of idle resources greater than or equal to the third number, then the resource scheduling system determines whether the resources of the hybrid node are sufficient based on the node status of the hybrid node. If the resources are sufficient, then the hybrid node is determined as a second hybrid node; or, if there is a hybrid node with an amount of idle resources greater than the third number, the hybrid node is determined as a second hybrid node. At this time, the node status of the hybrid node is not concerned. If there is no hybrid node among the multiple hybrid nodes with an amount of idle resources greater than the third number, the idle resources of a service instance in a hybrid node are released and / or some service instances in the hybrid node are scheduled to other hybrid nodes, so that the amount of idle resources of the hybrid node can be greater than or equal to the third number, and the hybrid node is determined as a second hybrid node.
[0185] The above-mentioned methods for determining the second hybrid node can be arbitrarily combined to expand other methods for determining the second hybrid node, and it is sufficient to find a second hybrid node among multiple hybrid nodes whose idle resources are greater than or equal to the third number, and whose idle resources of the third number do not affect the service quality of the local business instance after being occupied. Here, the embodiment of the present application does not limit the method for determining the second hybrid node.
[0186] After determining the second hybrid node, the resource scheduling system generates a second resource scheduling policy for the target instance based on the second hybrid node and the third quantity.
[0187] The above is an example of determining a second resource scheduling strategy for a target instance by using the node status of other hybrid nodes, the service quality degradation parameters of the business instances in other hybrid nodes, and the actual resource consumption when sufficient resources cannot be allocated to the target instance in the first hybrid node. In another possible implementation, the resource scheduling system determines a target hybrid node from multiple hybrid nodes based on the node status of multiple hybrid nodes, the service quality degradation parameters of each business instance, and the actual resource consumption of each business instance. The idle resource amount of the target hybrid node is sufficient to allocate a target number of resources to the target instance, and the resource adjustment strategy of the target instance is generated based on the target hybrid node and the target number, so as to achieve the resource adjustment strategy of the target instance based on the node status of multiple hybrid nodes, the service quality degradation parameters of each business instance, and the actual resource consumption of each business instance. In this possible implementation, if the target hybrid node is a first hybrid node, the target number is the first number or the second number, and if the target hybrid node is a second hybrid node, the target number is the third number. The process of determining the target hybrid node is similar to the process of determining the second hybrid node, and will not be repeated here.
[0188] To facilitate understanding of the principle of determining the resource adjustment strategy, the above is explained by taking the example of increasing the idle resources of the target hybrid node by releasing the idle resources of the business instance in the target hybrid node (the first hybrid node or the second hybrid node) and / or scheduling the business instance to other nodes before the resource adjustment strategy is determined. In other embodiments, in the process of determining the resource adjustment strategy, the idle resources of the target hybrid node are not adjusted, but an idle resource adjustment sub-strategy is generated based on the business instance of the target hybrid node whose idle resources are to be released and / or the business instance to be scheduled out of the target hybrid node. Based on the idle resource adjustment sub-strategy, the target hybrid node and the target number, a resource adjustment policy for the target instance is generated. At this time, the resource adjustment strategy also includes an idle resource adjustment sub-strategy, and the idle resource adjustment sub-strategy is used to indicate the release of idle resources of at least one business instance in the target hybrid node and / or the scheduling of at least one business instance out of the target hybrid node.
[0189] by Figure 8 Taking the resource scheduling strategy diagram shown in FIG. 1 as an example, the process of determining the adjustment strategy is described as an example. Assume that host A is a VM node that only supports the deployment of VMs (i.e., a non-hybrid node), host B only supports the deployment of containers (i.e., a non-hybrid node), and host C is a hybrid node. Assume that the service instances in host A, host B, and host C run services in two different time periods t1 and t2, respectively. The specification information of host A, host B, and host C, the specification information of each service instance in the specification information of hosts A to C, and the resource requirements of each service instance in the time periods t1 and t2 are shown in the following Table 1. Among them, the resource utilization rate of host A is high and the busyness is low. Specifically, host A is relatively busy in the time period t1 and relatively idle in the time period t2; the resource utilization rate of host B is high and the busyness is low. Specifically, host B is relatively idle in the time period t1 and relatively busy in the time period t2; the resource utilization rate of host C is low and the busyness is high. Specifically, host C is relatively idle in the time period t1 and relatively busy in the time period t2.
[0190] Table 1
[0191]
[0192] Assuming that container 3 is the target container, in time period t1, the resource demand of container 3 reaches the resource amount recorded in the specification information of container 3. If the service quality of container 3 is seriously degraded, the resource scheduling system can formulate a resource scheduling strategy for container 3 based on parameters such as the resource utilization and busyness of each hybrid node and the resource demand of other business instances in host C in time period t1. For example, the resource scheduling strategy is to release the resources occupied but unused by VM3 in time period t1 (i.e., the idle resources of VM3).
[0193] Step 7024: The resource scheduling system adjusts the resources occupied by the target instance among the resources provided by the multiple hybrid nodes based on the resource adjustment policy.
[0194] Among them, when the resource adjustment strategy is the first resource adjustment strategy, the resource scheduling system releases a first number of resources from the resources occupied by the target instance in the first hybrid node, so that the released resources become idle resources of the first hybrid node to increase the amount of idle resources of the first hybrid node.
[0195] In the case where the resource adjustment policy is the second resource adjustment policy, if the second resource adjustment policy includes an idle resource adjustment sub-policy, the resource scheduling system releases idle resources of business instances other than the target instance in the first hybrid node and / or schedules the business instance to other hybrid nodes based on the idle resource adjustment sub-policy to increase the amount of idle resources of the first hybrid node; allocates a second amount of resources to the target business instance from unoccupied resources of the first hybrid node to increase the amount of resources occupied by the target instance. If the second resource adjustment policy does not include an idle resource adjustment policy, the resource scheduling system allocates a second amount of resources to the target business instance from unoccupied resources of the first hybrid node.
[0196] In the case where the resource adjustment policy is the third resource adjustment policy, if the third resource adjustment policy includes an idle resource adjustment sub-policy, the resource scheduling system releases the idle resources of at least one business instance in the third hybrid node and / or schedules at least one business instance to other hybrid nodes based on the idle resource adjustment sub-policy to increase the amount of idle resources of the second hybrid node; schedules the target instance from the first hybrid node to the second hybrid node, and allocates a third amount of resources to the target instance from the unoccupied resources of the second hybrid node to increase the amount of resources occupied by the target instance. If the third resource adjustment policy does not include an idle resource adjustment sub-policy, the resource scheduling system schedules the target instance from the first hybrid node to the second hybrid node, and allocates a third amount of resources to the target instance from the unoccupied resources of the second hybrid node.
[0197] For any business instance, if the resources occupied by the business instance are released or new resources are allocated to the business instance, the amount of resources occupied by the business instance will be updated, and the resource scheduling system will update the amount of resources in the specification information of the business instance to the amount of resources occupied by the business instance, that is, the specification of the business instance is updated. For any business instance, if the business instance is scheduled from one node (called the source node) to another node (called the target node), the resource scheduling system will release the resources occupied by the business instance in the source node to increase the amount of free resources of the source node, and allocate resources to the business instance from the unused resources (that is, free resources) of the target node to reduce the amount of free resources of the target node. When the business instance is scheduled from the source node to the target node, sufficient resources are allocated to the business instance from the resources of the target node to ensure the service quality of the business instance, such as Figure 6 If some business instances in host 1 and host 2 are scheduled to host K, instance scheduling with service quality assurance is required.
[0198] In another possible implementation, the process shown in the above steps 7021 to 7024 can be interactively implemented by multiple modules in the resource scheduling system, such as Figure 6 As shown, the scheduling strategy generation module executes the above steps 7021-7023 to determine the resource adjustment strategy of the target instance, and sends the resource adjustment strategy to the intelligent scheduling system. The intelligent scheduling system executes step 704 based on the resource adjustment strategy to adjust the resources occupied by the target instance. For example, the intelligent scheduling system sends the resource adjustment strategy to the native API supported by the runtime type of the target instance, and the native API adjusts the resources occupied by the target instance based on the resource adjustment strategy.
[0199] After the target instance has been resource-adjusted, the target instance's running status information will be updated accordingly, such as Figure 6 As shown, the updated running status information includes an identifier of the node where the target instance is located, an identifier of the node type of the node, recommended specification information, and degradation information, wherein the recommended specification information is runtime specification information recommended by the tenant that can meet the service quality requirements of the target business, and the recommended specification information can be specification information of the target instance after resource adjustment. The degradation information is used to indicate whether the quality of service (QoS) degradation parameter of the target instance exceeds the first parameter threshold. The degradation information is divided into first degradation information and second degradation information. The first degradation information is used to indicate that the service quality degradation parameter of the target instance exceeds the first parameter threshold, and the second degradation information is used to indicate that the service quality degradation parameter of the target instance does not exceed the first parameter threshold.
[0200] At least one of the recommended specification information and the degradation information is an optional item of the running status information. Based on this, the resource scheduling system updates the running status information of the target instance based on the degradation information and / or the recommended specification information of the target business. For example, after the target instance undergoes resource adjustment, the resource scheduling system uses the latest specification information of the target instance after the resource adjustment as the recommended specification information, obtains the service quality degradation parameter when the current target instance runs the target business, and if the service quality degradation parameter is greater than or equal to the first parameter threshold, generates the running status information based on the first degradation information and / or the recommended specification information; if the service quality degradation parameter is less than the first parameter threshold, generates the running status information based on the second degradation information and / or the recommended specification information. After the running status information is generated, the resource scheduling system provides the client with the running status information of the target instance after resource scheduling by executing the following step 703.
[0201] 703. The resource scheduling system sends the running status information of the target instance after resource scheduling to the client.
[0202] like Figure 6 As shown, the resource scheduling system sends the running status information of the target instance after resource scheduling to the client to update the running status of the target instance on the client. The client receives and displays the updated running status information so that the tenant can obtain the current running status of the target instance.
[0203] The above is an example of the target instance supporting the flexible adjustment mode to explain the process of adjusting the resources occupied by the target instance. In another possible implementation, the target instance supports the elastic adjustment mode but does not support the flexible adjustment mode. The resource scheduling system can determine the resource adjustment strategy for the target instance based on the above method, predict the amount of resources after the resources occupied by the target instance are adjusted by the resource adjustment strategy, use the predicted amount of resources as the recommended specification information of the target instance, generate the running status information of the target instance based on the recommended specification information of the target instance, send the running status information to the client, and the client receives and displays the running status information, so that the tenant can update (i.e. adjust) at least one of the specification information, supported resource adjustment mode and instance priority information of the target instance according to the recommended specification information. Of course, in the case where the target instance supports the flexible adjustment mode, the tenant can also update the at least one item according to the current running status information of the target instance. If the tenant updates the at least one item through the client, during the operation of the target instance, the resource scheduling system makes a secondary adjustment to the resources occupied by the target business instance according to the at least one item after the update, such as re-executing the target instance based on the at least one item after the update. Figure 7 The process shown in the figure can meet the needs of the target instance in different time periods. The adjustment method is, for example, Figure 6The instance configuration interface shown is used to adjust the at least one item to trigger secondary configuration of the target instance.
[0204] Figure 7 The illustrated embodiment adjusts the resources occupied by the target instance in the hybrid node according to the instance priority information input by the tenant, so that the resources occupied by the target instance after adjustment can meet the service quality requirements of the target instance, thereby providing a guarantee for the service quality of the business running in the target instance. Moreover, by adjusting the resources occupied by the target instance through different resource adjustment strategies, the idle fragmented resources in the hybrid node can be integrated, so that the fragmented resources of the hybrid node are fully utilized.
[0205] Figure 7 The process of adjusting the resources occupied by the business instances in the hybrid node is described by taking the target instance as a business instance in the hybrid node. In another possible implementation method, for multiple non-hybrid nodes that deploy the same runtime instance, the resources provided by the multiple non-hybrid nodes are used as a resource pool. The resource scheduling system can also adjust the resources occupied by the business instances in the multiple non-hybrid nodes among the resources provided by the multiple non-hybrid nodes in accordance with the resource adjustment method described above, which will not be repeated here.
[0206] In another possible implementation, for any business instance in each node (including hybrid nodes or non-hybrid nodes) managed by the resource adjustment system, according to the affinity between the business instance and the node, between nodes of different node types or between nodes of the same node type, the resources occupied by the business instance are adjusted. Still taking the target instance as an example, if the affinity between the target instance and the first hybrid node is greater than the first affinity threshold, the target instance does not support scheduling out of the first hybrid node, and the resource scheduling system customizes the first resource adjustment strategy or the second resource adjustment strategy for the target instance to ensure that the target instance is not scheduled out of the first hybrid node. If the affinity between the target instance and the first hybrid node is greater than or equal to the second affinity threshold and less than or equal to the first affinity threshold, the target instance supports adjusting the resources occupied by the target business instance with resources provided by nodes of the same node type as the node, such as supporting adjusting the resources occupied by the target business instance among the resources provided by multiple hybrid nodes. If the affinity between the target instance and the first hybrid node is less than the second affinity threshold, the target instance supports scheduling to a node that supports the deployment of the target instance type, which node is a non-hybrid node or a hybrid node. In this way, the resource scheduling system can adjust the resources occupied by the target business instance among the resources provided by multiple nodes that support the deployment of the target instance type.
[0207] Still Figure 8Container 3 in is the target instance. If the affinity between container 3 and host C is greater than the first affinity threshold, the resources occupied by container 3 can only be adjusted in the resources provided by host C. If the affinity between container 3 and host C is greater than or equal to the second affinity threshold and less than or equal to the first affinity threshold, the resources occupied by container 3 can be adjusted in the resources provided by host C and other hybrid nodes. If the affinity between container 3 and host C is less than the second affinity threshold, the resources occupied by container 3 can be adjusted in the resources provided by host C and host B. The affinity of the target instance can be configured by the tenant through the client, or determined by the resource scheduling system based on the priority information of the target instance.
[0208] The affinity between business instances on the same node is higher than the affinity between business instances on different nodes, e.g. Figure 8 As shown, the affinity between VM2 and VM3 is low, VM2 and VM3 are not affinity, and container 1 and container 2 are affinity.
[0209] For any business instance in each node (including hybrid nodes or non-hybrid nodes) managed by the resource adjustment system, the resource scheduling system provides the client with the operation status information of the business instance in different time periods, so that the tenant can update (i.e. adjust) at least one of the specification information, supported resource adjustment modes and instance priority information of the business instance according to the current operation status information of the business instance. Subsequently, during the operation of the business instance, the resource scheduling system makes a secondary adjustment to the resources occupied by the business instance according to the updated at least one item. The process of the secondary adjustment can be referred to in Figure 7 The embodiments shown will not be described in detail here.
[0210] In other embodiments, the resource scheduling system described above is also used to provide a business display interface, such as Fig. 9 A schematic diagram of a business display interface provided in an embodiment of the present application is shown. The business display interface is used to display the relevant information of all businesses managed by the resource scheduling system and the relevant information of all runtime instances. The business display interface can also be understood as the global resource display interface of the resource scheduling system. The resource scheduling system also provides an external interface for accessing the business display interface. The user (tenant user or administrator) calls the interface through the client to display the business display interface on the client.
[0211] like Fig. 9 As shown, the business display interface 900 is used to display the operating status of each business in the runtime instances of multiple cloud management platforms, the service quality degradation of the business, the image / runtime instance used by the runtime instance where the business is located, the IP address of the runtime instance where the business is located, the label of the runtime instance where the business is located, and at least one of the billing modes corresponding to the resource adjustment mode of the business.
[0212] Exemplarily, for any business, the business display interface is also used to display the name of the business to indicate the business. The running status of the business includes running, suspended or terminated, where suspended means that the runtime instance of the business is temporarily not running, suspended is called a suspended state, and terminated means that the runtime instance of the business has terminated the business. The running status is also the service status of the runtime instance of the business to the business.
[0213] The service quality degradation of any business is normal or abnormal. The normal situation indicates that the degree of service quality degradation is still within the business tolerance range, and the abnormal situation means that the degree of service quality degradation has exceeded the business tolerance range. Exemplarily, the business display interface displays service quality degradation parameters to indicate the degree of service quality degradation. When the degree of service quality degradation has exceeded the business tolerance range, the control device can also display the service quality degradation parameters through the business display interface and issue an alarm prompt so that the user can handle it as soon as possible. In a possible implementation method, the business display interface is also used to display the service quality evaluation indicators of the degradation parameters that determine the service quality of the business. Since the service quality evaluation indicators include kernel-level indicators such as IPC and SC, the service quality degradation situation can be more comprehensively displayed, so that the performance status of the system can be more accurately reflected, helping users to discover and solve problems in a timely manner, and ensuring the stability and reliability of the resource scheduling system.
[0214] The tag of the runtime instance is used to record the location information and / or other information of the runtime instance, wherein the location information is used to indicate the node where the runtime instance is located and the cloud management platform to which the node belongs. By displaying the tag of the runtime instance, users can more conveniently classify and manage the runtime instance. By displaying the image / runtime instance used by the runtime instance, users can understand the software version running in the resource scheduling system. By displaying the IP address of the runtime instance, users can directly access the runtime instance. By displaying the billing mode, users can understand the resource usage and billing of the resource scheduling system. By displaying the tag of the runtime instance running the business, users can more conveniently classify and manage the runtime instance. By displaying the relevant information of the runtime instance in detail, users or administrators can more conveniently manage and optimize the system, improve work efficiency and optimization capabilities.
[0215] Exemplarily, the service display interface also displays operation options for the runtime instance where the service is located, such as a start option, a stop option, a restart option, etc., so that the runtime instance can be remotely operated.
[0216] Through the information displayed on the business display interface, users can clearly understand the status and operation of the entire resource scheduling system, and make necessary adjustments in a timely manner to enable the resource scheduling system to work more efficiently and meet the business needs in different application scenarios.
[0217] The above describes the method of the embodiment of the present application, and the following describes the device of the embodiment of the present application. It should be understood that the device described below has any function of any device in the task scheduling system in the above method. Based on the same inventive concept as the above-mentioned task scheduling method for providing cloud services, the following will be combined with Figures 10 to 13 The apparatus and devices in the resource scheduling system are described. It should be understood that the technical features described in the method embodiment are also applicable to the following apparatus embodiment.
[0218] Fig.10 is a schematic diagram of a hybrid deployment device across runtime instances based on cloud computing technology provided by an embodiment of the present application. Fig.10 The device 1000 shown comprises:
[0219] The access module 1001 is used to receive an instance configuration request sent by a tenant through a client, where the instance configuration request is used to instruct to deploy a target instance on the hybrid node, wherein the runtime type of the target instance is a class of the runtime instance;
[0220] A control module 1002 is configured to determine a first hybrid node from the plurality of hybrid nodes according to the instance configuration request;
[0221] A scheduling module 1003 is configured to create the target instance for the tenant at the first hybrid node;
[0222] The access module 1001 is used to send the running status information of the target instance to the client, wherein the running status information includes the identifier of the runtime type of the target instance and node information, and the node information is used to indicate that the running environment of the target instance is the first hybrid node.
[0223] In a possible implementation, the access module 1001 is further used to obtain instance priority information input by the tenant, where the instance priority information is used to determine the quality of service required by the target instance at the first hybrid node;
[0224] The scheduling module 1003 is further configured to adjust the resources occupied by the target instance in the first hybrid node according to the instance priority information to meet the quality of service requirement of the target instance.
[0225] In a possible implementation, the device 1000 supports the tenant to update the instance priority information according to the running status information after the resource adjustment, and the scheduling module 1003 is further used to:
[0226] The resources occupied by the target service instance are adjusted according to the updated instance priority information.
[0227] In a possible implementation, the device scheduling module 1003 is further configured to:
[0228] In the process of the target instance running the target service of the tenant, obtaining the node status of the multiple hybrid nodes and the service quality degradation parameter of each service instance running in each hybrid node, wherein the service quality degradation parameter is used to indicate the degree of degradation of the service quality of the service instance during the running process, and the runtime type of the service instance is a class of the runtime instance;
[0229] Determine a resource adjustment strategy for the target instance based on the node states of the multiple hybrid nodes, the service quality degradation parameters of the respective service instances, and the actual resource consumption of the respective service instances, wherein the resource adjustment strategy can meet the service quality requirements of the target instance;
[0230] Based on the resource adjustment policy, the resources occupied by the target instance are adjusted among the resources provided by the multiple hybrid nodes.
[0231] In one possible implementation, the node status includes a resource status and a service status of the hybrid node, the resource status is used to indicate at least one of a resource allocation status and a resource utilization status of the hybrid node, and the service status is used to indicate at least one of a busyness of the hybrid node and a degree of affinity between the hybrid node and a local business instance.
[0232] In a possible implementation, the resource adjustment strategy includes any one of the following:
[0233] Releasing a first amount of resources from resources occupied by the target instance;
[0234] allocating a second amount of resources to the target instance from unoccupied resources of the first hybrid node;
[0235] A third amount of resources is allocated to the target instance from unoccupied resources of a second hybrid node among the plurality of hybrid nodes.
[0236] In a possible implementation, the resource adjustment strategy includes recommended specification information, where the recommended specification information is runtime specification information recommended for the tenant that can meet the service quality requirement of the target business, and the device 1000 further includes:
[0237] The control module 1002 is further configured to update the operation status information based on the service quality degradation parameter of the target service and / or the recommended specification information;
[0238] The access module 1001 is further configured to send the updated operation status information to the client.
[0239] In a possible implementation, the scheduling module 1003 is further configured to:
[0240] Based on the core indicator data of the processor core bound to the service instance, a service quality degradation parameter of the service instance is determined.
[0241] Among them, the access module 1001 is equivalent to Figure 1 The platform access device 11, the control module 1002 is equivalent to Figure 1 The control device 12 in the scheduling module 1003 is equivalent to Figure 1 In some other embodiments, the control module 1002 and the scheduling module 1003 can be integrated into one module for implementing Figure 1 In other embodiments, the access module 1001 and the control module 1033 may also be integrated into one module for implementing Figure 1 The functions of the middle platform access device 11 and the control device 12.
[0242] Each module in the device 1000 can be implemented by software or hardware. For example, the implementation of the scheduling module 1003 is described below by taking the scheduling module 1003 as an example. The implementation of the scheduling module 1003 can be referred to for each module in a similar device 1000.
[0243] As an example of a software functional unit, the scheduling module 1003 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above-mentioned computing instance may be one or more. For example, the scheduling module 1003 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code can be distributed in the same region (region) or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code can be distributed in the same availability zone (AZ) or in different AZs, each AZ including a data center or multiple data centers with similar geographical locations. Among them, usually a region can include multiple AZs.
[0244] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway needs to be set up in each VPC to achieve interconnection between VPCs through the communication gateway.
[0245] As an example of a hardware functional unit, the scheduling module 1003 may include at least one computing device, such as a server, etc. Alternatively, the scheduling module 1003 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof.
[0246] The multiple computing devices included in the scheduling module 1003 can be distributed in the same region or in different regions. The multiple computing devices included in the scheduling module 1003 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the scheduling module 1003 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0247] It should be noted that, in other embodiments, the scheduling module 1003 can be used to execute any step in the hybrid deployment method across runtime instances based on cloud computing technology, and the control module 1002 can be used to execute any step in the hybrid deployment method across runtime instances based on cloud computing technology. The steps that the access module 1001, the control module 1002 and the scheduling module 1003 are responsible for implementing can be specified as needed. The access module 1001, the control module 1002 and the scheduling module 1003 respectively implement different steps in the hybrid deployment method across runtime instances based on cloud computing technology to realize all the functions of the resource scheduling system based on cloud computing technology.
[0248] The present application also provides a computing device, such as Fig.11 The schematic diagram of the structure of a computer device provided by an embodiment of the present application is shown, and the computing device 1100 includes: a bus 1102, a processor 1104, a memory 1106, and a communication interface 1108. The processor 1104, the memory 1106, and the communication interface 1108 communicate with each other through the bus 1102. The computing device 1100 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 1100.
[0249] The bus 1102 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.11 The bus 1102 may include a path for transmitting information between various components of the computing device 1100 (eg, the memory 1106, the processor 1104, and the communication interface 1108).
[0250] The processor 1104 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0251] The memory 1106 may include a volatile memory, such as a random access memory (RAM). The processor 1104 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
[0252] The memory 1106 stores executable program codes, and the processor 1104 executes the executable program codes to respectively implement the functions of the hybrid deployment method across runtime instances based on cloud computing technology provided above, thereby implementing the hybrid deployment method across runtime instances based on cloud computing technology provided above. That is, the memory 1106 stores instructions for executing the hybrid deployment method across runtime instances based on cloud computing technology.
[0253] Alternatively, the memory 1106 stores executable codes, and the processor 1104 executes the executable codes to respectively implement the aforementioned hybrid deployment device across runtime instances based on cloud computing technology, thereby implementing the aforementioned hybrid deployment method and device method across runtime instances based on cloud computing technology. That is, the memory 1106 stores instructions for executing the hybrid deployment method across runtime instances based on cloud computing technology.
[0254] The communication interface 1108 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 1100 and other devices or a communication network.
[0255] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0256] like Fig.12The illustrated embodiment of the present application provides an architecture diagram of a computer cluster, where the computing device cluster includes at least one computing device 1100. The memory 1106 in one or more computing devices 1100 in the computing device cluster may store the same instructions for executing a hybrid deployment method across runtime instances based on cloud computing technology.
[0257] In some possible implementations, the memory 1106 of one or more computing devices 1100 in the computing device cluster may also respectively store partial instructions for executing the hybrid deployment method across runtime instances based on cloud computing technology. In other words, the combination of one or more computing devices 1100 may jointly execute instructions for executing the hybrid deployment method across runtime instances based on cloud computing technology.
[0258] It should be noted that the memory 1106 in different computing devices 1100 in the computing device cluster can store different instructions, which are respectively used to implement part of the functions of the access module 1001, the control module 1002 and the scheduling module 1003. That is, the instructions stored in the memory 1106 in different computing devices 1100 can implement the functions of one or more modules of the access module 1001, the control module 1002 and the scheduling module 1003.
[0259] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network. The network may be a wide area network or a local area network, etc. For example Fig.13 The embodiment of the present application shown in the figure provides another architecture diagram of a computing cluster. Fig.13 As shown, two computing devices 11A and 11B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 1106 in the computing device 11A stores instructions for executing the functions of the access module 1001. At the same time, the memory 1106 in the computing device 11B stores instructions for executing the functions of the scheduling module 1003 and the control module 1002.
[0260] Fig.13 The connection method between the computing device clusters shown can be based on the needs of the hybrid deployment method across runtime instances based on cloud computing technology provided in this application (for example, scheduling multiple tasks at the same time), so it is considered to entrust the functions implemented by the scheduling module 1003 and the control module 1002 to the computing device 11B for execution.
[0261] It should be understood that Fig.13 The functions of the computing device 11A shown in FIG. 1 may also be completed by multiple computing devices 1100. Similarly, the functions of the computing device 11B may also be completed by multiple computing devices 1100.
[0262] The present application embodiment also provides another computing device cluster. The connection relationship between the computing devices in the computing device cluster can be similar to that of Fig.12 and Fig.13 The connection mode of the computing device cluster is different in that the memory 1106 in one or more computing devices 1100 in the computing device cluster may store the same instructions for executing the methods of the access module 1001 and the control module 1002 .
[0263] In some possible implementations, the memory 1106 of one or more computing devices 1100 in the computing device cluster may also respectively store partial instructions for executing the hybrid deployment method across runtime instances based on cloud computing technology. In other words, the combination of one or more computing devices 1100 may jointly execute instructions for executing the hybrid deployment method across runtime instances based on cloud computing technology.
[0264] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be a software or program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device executes a hybrid deployment method across runtime instances based on cloud computing technology.
[0265] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device to execute a hybrid deployment method across runtime instances based on cloud computing technology.
[0266] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions. For example, the SMS sending requests involved in this application are all obtained with full authorization.
[0267] The above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A hybrid deployment method across runtime instances based on cloud computing technology, characterized in that: The method is performed by a resource scheduling system based on cloud computing technology, the resource scheduling system is used to manage resources of multiple hybrid nodes, the hybrid nodes refer to nodes that support at least two types of runtime instances, wherein the types of the runtime instances include containers, virtual machines, and serverless functions, and the method includes: receiving an instance configuration request sent by a tenant through a client, wherein the instance configuration request is used to instruct to deploy a target instance on the hybrid node, wherein a runtime type of the target instance is a class of the runtime instance; determining a first hybrid node from the plurality of hybrid nodes according to the instance configuration request; Creating the target instance for the tenant at the first hybrid node; Sending the running status information of the target instance to the client, the running status information including the identifier of the running type of the target instance and node information, the node information being used to indicate that the running environment of the target instance is the first hybrid node.
2. The method according to claim 1, characterized in that After the first hybrid node creates the target instance for the tenant, the method further includes: Acquire instance priority information input by the tenant, where the instance priority information is used to determine the quality of service required by the target instance on the first hybrid node; According to the instance priority information, resources occupied by the target instance in the first hybrid node are adjusted to meet a quality of service requirement of the target instance.
3. The method according to claim 2, characterized in that The resource scheduling system supports the tenant to update the instance priority information according to the running status information after the resource adjustment, and the method further includes: The resources occupied by the target service instance are adjusted according to the updated instance priority information.
4. The method according to claim 2 or 3, characterized in that: The method further comprises: In the process of the target instance running the target service of the tenant, obtaining the node status of the multiple hybrid nodes and the service quality degradation parameter of each service instance running in each hybrid node, wherein the service quality degradation parameter is used to indicate the degree of degradation of the service quality of the service instance during the running process, and the runtime type of the service instance is a class of the runtime instance; Determine a resource adjustment strategy for the target instance based on the node states of the multiple hybrid nodes, the service quality degradation parameters of the respective service instances, and the actual resource consumption of the respective service instances, wherein the resource adjustment strategy can meet the service quality requirements of the target instance; Based on the resource adjustment policy, the resources occupied by the target instance are adjusted among the resources provided by the multiple hybrid nodes.
5. The method according to claim 4, characterized in that The node status includes a resource status and a service status of the hybrid node, wherein the resource status is used to indicate at least one of a resource allocation status and a resource utilization status of the hybrid node, and the service status is used to indicate at least one of a busyness of the hybrid node and a degree of affinity between the hybrid node and a local business instance.
6. The method according to claim 4 or 5, characterized in that: The resource adjustment strategy includes any of the following: Releasing a first amount of resources from resources occupied by the target instance; allocating a second amount of resources to the target instance from unoccupied resources of the first hybrid node; A third amount of resources is allocated to the target instance from unoccupied resources of a second hybrid node among the plurality of hybrid nodes.
7. The method according to any one of claims 4 to 6, characterized in that: The resource adjustment strategy includes recommended specification information, where the recommended specification information is runtime specification information recommended for the tenant that can meet the service quality requirements of the target business. The method further includes: updating the operation status information based on the service quality degradation parameter of the target service and / or the recommended specification information; Send the updated running status information to the client.
8. The method according to any one of claims 4 to 7, characterized in that: Obtaining the service quality degradation parameters of each service instance running in each hybrid node includes: Based on the core indicator data of the processor core bound to the service instance, a service quality degradation parameter of the service instance is determined.
9. A hybrid deployment device across runtime instances based on cloud computing technology, characterized in that: The device is used to manage resources of multiple hybrid nodes, wherein the hybrid node refers to a node that supports at least two types of runtime instances, wherein the types of the runtime instances include containers, virtual machines, and serverless functions, and the device includes: An access module, configured to receive an instance configuration request sent by a tenant through a client, wherein the instance configuration request is used to instruct to deploy a target instance on the hybrid node, wherein a runtime type of the target instance is a class of the runtime instance; A control module, configured to determine a first hybrid node from the plurality of hybrid nodes according to the instance configuration request; A scheduling module, configured to create the target instance for the tenant at the first hybrid node; The access module is also used to send the running status information of the target instance to the client, the running status information includes the identifier of the runtime type of the target instance and node information, and the node information is used to indicate that the running environment of the target instance is the first hybrid node.
10. The device according to claim 8, characterized in that The access module is further used to obtain instance priority information input by the tenant, where the instance priority information is used to determine the quality of service required by the target instance at the first hybrid node; The scheduling module is further configured to adjust the resources occupied by the target instance in the first hybrid node according to the instance priority information to meet the quality of service requirement of the target instance.
11. The device according to claim 9, characterized in that The device supports the tenant to update the instance priority information according to the running status information after resource adjustment, and the scheduling module is further used to: The resources occupied by the target service instance are adjusted according to the updated instance priority information.
12. The device according to claim 9 or 11, characterized in that The scheduling module is also used for: In the process of the target instance running the target service of the tenant, obtaining the node status of the multiple hybrid nodes and the service quality degradation parameter of each service instance running in each hybrid node, wherein the service quality degradation parameter is used to indicate the degree of degradation of the service quality of the service instance during the running process, and the runtime type of the service instance is a class of the runtime instance; Determine a resource adjustment strategy for the target instance based on the node states of the multiple hybrid nodes, the service quality degradation parameters of the respective service instances, and the actual resource consumption of the respective service instances, wherein the resource adjustment strategy can meet the service quality requirements of the target instance; Based on the resource adjustment policy, the resources occupied by the target instance are adjusted among the resources provided by the multiple hybrid nodes.
13. The device according to claim 12, characterized in that The node status includes a resource status and a service status of the hybrid node, wherein the resource status is used to indicate at least one of a resource allocation status and a resource utilization status of the hybrid node, and the service status is used to indicate at least one of a busyness of the hybrid node and a degree of affinity between the hybrid node and a local business instance.
14. The device according to claim 12 or 13, characterized in that The resource adjustment strategy includes any of the following: Releasing a first amount of resources from resources occupied by the target instance; allocating a second amount of resources to the target instance from unoccupied resources of the first hybrid node; A third amount of resources is allocated to the target instance from unoccupied resources of a second hybrid node among the plurality of hybrid nodes.
15. The device according to any one of claims 12-13, characterized in that The resource adjustment strategy includes recommended specification information, where the recommended specification information is runtime specification information recommended for the tenant that can meet the service quality requirement of the target business; The control module is further configured to update the operation status information based on the service quality degradation parameter of the target service and / or the recommended specification information; The access module is further used to send the updated operation status information to the client.
16. The device according to any one of claims 12 to 15, characterized in that The scheduling module is also used for: Based on the core indicator data of the processor core bound to the service instance, a service quality degradation parameter of the service instance is determined.
17. A computing device cluster, characterized in that: It includes at least one computing device, each computing device includes a processor and a memory; the processor of the at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method as described in any one of claims 1-8.
18. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster is caused to perform the method according to any one of claims 1 to 8.
19. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs the method according to any one of claims 1 to 8.
Citation Information
Cited By
Instance scheduling method and device, hybrid scheduling component, storage medium and product
CN121996360A
Cross-runtime instance hybrid deployment method and apparatus based on cloud computing technology
EP4745771A1
Cross-runtime instance hybrid deployment method and apparatus based on cloud computing technology
WO2025025589A1