WO2018049873A1 - 一种应用调度方法及装置 - Google Patents

一种应用调度方法及装置 Download PDF

Info

Publication number
WO2018049873A1
WO2018049873A1 PCT/CN2017/091275 CN2017091275W WO2018049873A1 WO 2018049873 A1 WO2018049873 A1 WO 2018049873A1 CN 2017091275 W CN2017091275 W CN 2017091275W WO 2018049873 A1 WO2018049873 A1 WO 2018049873A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
deployed
resource
deployment
resource node
Prior art date
Application number
PCT/CN2017/091275
Other languages
English (en)
French (fr)
Inventor
周锦荣
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2018049873A1 publication Critical patent/WO2018049873A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to an application scheduling method and apparatus.
  • Containerization technology is a lightweight resource virtualization technology at the operating system level that enables the isolation of processes and resources on a single host, enabling the host to provide thousands of high-density isolations with minimal performance loss.
  • the running container application (that is, the application running in the container) maximizes system resource utilization.
  • Container cluster management is a key technology to complete the scheduling and scheduling of containers.
  • the k8s system supports a "hard" selector that guarantees that the selected host must satisfy the affinity relationship between all container applications to be deployed. For example, container application A and container application B have affinity (understandable) For binding relationships, container application A and container application B must be deployed on the same host.
  • Container application A and container application C have anti-affinity (can be understood as resource competition), then container application A and container application C must be deployed on a different host.
  • the host resources in the system are insufficient to satisfy the affinity relationship between some of the container applications to be deployed, for example, the amount of no idle resources in the system can simultaneously deploy the host of the container application A and the container application B, or the system There are not enough hosts in the container application A and container application B to be deployed separately, and the "hard" selector will not be able to complete the deployment of these container applications, resulting in these container applications not running.
  • Embodiments of the present invention provide an application scheduling method and apparatus, which can improve the success rate of application deployment.
  • an embodiment of the present invention provides an application scheduling method, where the method includes:
  • the scheduling device receives an application set from the deployment management device, where the application set includes a correspondence between each application to be deployed in the application set and a resource requirement of the application to be deployed; the scheduling device acquires each resource of the plurality of resource nodes The idle resource amount of the node and the preset deployment condition, the deployment condition includes a preset SLA condition of each resource node; for each application to be deployed, the scheduling device deploys the application to be deployed according to the deployment condition The service level agreement SLA parameter of the resource node after the deployment of the to-be-deployed application meets the preset SLA condition of the resource node.
  • the embodiment of the present invention provides an application scheduling method, and the scheduling device can deploy the application to be deployed on the resource node that meets the resource requirement of the application to be deployed, so that the deployment of the application is no longer limited by the fixed The affinity relationship, so that the scheduling device can more efficiently deploy more applications while satisfying the SLA condition, and improve the success rate of application deployment.
  • the scheduling device acquires the amount of idle resources of each of the plurality of resource nodes, including: the scheduling device receives the amount of idle resources of each resource node from the detecting device.
  • the application set further includes an affinity relationship between the applications to be deployed in the application set, where the affinity relationship includes a binding relationship or resource competition between the applications to be deployed in the application set.
  • the relationship between the application to be deployed in the application set is a set of applications to be deployed. For each application to be deployed, the scheduling device deploys the to-be-deployed application to the resource of the application to be deployed according to the deployment condition.
  • the SLA parameter of the resource node after the application to be deployed meets the preset SLA condition of the resource node, including: for each group of applications to be deployed in the application set, the scheduling device is configured according to The deployment condition is that the set of the to-be-deployed application is deployed on the resource node that meets the total resource requirement of the set of the to-be-deployed application, and the SLA parameter of the resource node after the deployment of the set of the application to be deployed satisfies the resource node.
  • the scheduling device deploys the set of to-be-deployed applications on the resource nodes whose idle resources meet the total resource requirements of the set of applications to be deployed according to the deployment condition
  • the multiple resources are The node has a deployed application
  • the scheduling device deploys the set of the to-be-deployed application on the resource node whose idle resource quantity meets the total resource requirement of the set of the to-be-deployed application, according to the deployment condition
  • the deployment condition is that the set of the to-be-deployed application is configured to meet the total resource requirement of the set of the to-be-deployed application, and the deployed application is on the resource node that does not have the resource competition relationship with the set of the to-be-deployed application.
  • the application set further includes an affinity relationship of the application to be deployed in the application set, where the affinity relationship includes a resource competition relationship between the applications to be deployed in the application set, if the scheduling device is configured according to The deployment condition is: before the deployment of the application to be deployed on the resource node that meets the resource requirement of the application to be deployed, the multiple resource nodes have the deployed application, and the scheduling device according to the deployment condition
  • the to-be-deployed application is deployed on the resource node that meets the resource requirement of the to-be-deployed application, and the scheduling device deploys the to-be-deployed application to meet the resource requirement of the to-be-deployed application according to the deployment condition.
  • the deployed application is applied to the resource node that the application to be deployed does not have the resource competition relationship.
  • the scheduling device can deploy the application to be deployed according to the affinity relationship between the resource requirements of the application to be deployed and the application to be deployed, if the SLA condition of the resource node is met. Therefore, the service quality of the application to be deployed after the deployment is completed is further ensured.
  • the scheduling device deploys the to-be-deployed application on the resource node that meets the resource requirement of the to-be-deployed application according to the deployment condition
  • the method further includes: the scheduling device determines the multiple resources. The resource node that satisfies the corresponding preset SLA condition after the application to be deployed is deployed in the node; the scheduling device redeploys the deployed part of the multiple resource nodes to make the multiple resource nodes The amount of the idle resource of the resource node is increased.
  • the scheduling device deploys the to-be-deployed application on the resource node that meets the resource requirement of the application to be deployed according to the deployment condition, and includes: the scheduling device according to the The deployment condition is that the application to be deployed is deployed on the resource node in the part of the resource node that meets the resource requirement of the application to be deployed.
  • multiple resources may be increased by redeploying some of the deployed applications on the multiple resource nodes.
  • the amount of idle resources of the resource nodes in the node, so that the part of the resource nodes can deploy the to-be-deployed application, and the deployment success rate of the application to be deployed is further improved.
  • the method further includes: the scheduling device receiving, by the detecting device, a scheduling decision message, where the scheduling decision message includes an adjustment instruction and an identifier of the at least one application to be adjusted, where the adjustment instruction is used to indicate the Dispatching, by the scheduling device, the at least one to-be-adjusted application indicated by the identifier of the at least one application to be adjusted; and for each to-be-adjusted application of the at least one to-be-adjusted application, the scheduling device, according to the adjustment instruction and the deployment condition, The application to be adjusted is redeployed on another resource node whose idle resource amount meets the resource requirement of the application to be adjusted, where the The SLA parameter of the other resource node after the application is adjusted satisfies the preset SLA condition of the other resource node.
  • the scheduling device can redeploy the application to be adjusted whose performance data does not meet the corresponding SLA condition according to the indication of the detecting device, improve the reliability of the application in the running process, and optimize the performance of the system.
  • an embodiment of the present invention provides an application scheduling method, where the method includes: the detecting device acquires monitoring data corresponding to each of the plurality of resource nodes, where the monitoring data includes the deployed application on the resource node. Performance data; the detecting device calculates an idle resource amount of the resource node according to the monitoring data; the detecting device sends the calculated idle resource amount of each resource node to the scheduling device, and the idle resource amount of each resource node is used for The scheduling device deploys an application to be deployed.
  • the detecting device can monitor the monitoring data of each resource node in real time, calculate the current idle resource amount of each resource node, and send the current idle resource amount of each resource node to the scheduling.
  • the device is configured to enable the scheduling device to deploy the application to be deployed according to the effective idle resource amount of each resource node, thereby improving resource utilization efficiency of the resource node.
  • the method further includes: determining, by the detecting device, the plurality of resource nodes according to the monitoring data corresponding to each resource node and the preset SLA condition corresponding to each deployed application. At least one application to be adjusted exists in the deployed application, and the performance data of the application to be adjusted does not meet the SLA condition corresponding to the to-be-adjusted application; the detecting device sends a scheduling decision message to the scheduling device, where the scheduling decision message includes And an adjustment instruction of the at least one application to be adjusted, the adjustment instruction is used to instruct the scheduling device to redeploy the at least one application to be adjusted.
  • the detecting device can monitor the running state of each deployed application in real time, and timely indicate the scheduling device when it is determined that there is an application to be adjusted whose performance data does not satisfy the corresponding SLA condition in the deployed application.
  • the application to be adjusted is redeployed to improve the reliability of the application during operation and optimize the performance of the system.
  • an embodiment of the present invention provides a scheduling apparatus, including: a receiving unit, configured to receive, from a deployment management apparatus, an application set, where the application set includes each to-be-deployed application and a resource of the to-be-deployed application in the application set.
  • the acquiring unit is configured to acquire an idle resource quantity of each resource node of the plurality of resource nodes and a preset deployment condition, where the deployment condition includes a preset SLA condition of each resource node; And for the application to be deployed, the resource to be deployed is deployed on the resource node that meets the resource requirement of the application to be deployed according to the deployment condition, where the resource after the application to be deployed is deployed.
  • the service level agreement SLA parameter of the node satisfies the preset SLA condition of the resource node.
  • the acquiring unit when the acquiring unit acquires the idle resource amount of each of the plurality of resource nodes, the acquiring unit specifically includes: the acquiring unit receives the idle resource amount of each resource node from the detecting device.
  • the application set received by the receiving unit further includes an affinity relationship between the applications to be deployed in the application set, where the affinity relationship includes binding between the applications to be deployed in the application set.
  • the relationship between the to-be-deployed application and the to-be-deployed application in the application set is a set of to-be-deployed applications, and the deployment unit is specifically configured to: The deployment application is deployed on the resource node whose idle resource quantity meets the total resource requirement of the set of applications to be deployed, and the SLA parameter of the resource node after the deployment of the set of the application to be deployed satisfies the preset SLA condition of the resource node.
  • the deployment unit deploys a set of applications to be deployed according to the deployment conditions, the resource nodes have the idle resource amount on the resource node that meets the total resource requirement of the group of applications to be deployed.
  • the deployment unit deploys a set of to-be-deployed applications on the resource nodes whose idle resources meet the total resource requirements of the set of applications to be deployed, and specifically includes: the deployment unit according to the deployment condition And deploying a set of applications to be deployed in an idle resource amount to meet the total resource requirement of the group of applications to be deployed, and the deployed application and the group to be deployed should Use a resource node that does not have a competitive relationship with the resource.
  • the application set received by the receiving unit further includes an affinity relationship of the application to be deployed in the application set, where the affinity relationship includes a resource competition relationship between the applications to be deployed in the application set.
  • the deployment unit deploys the to-be-deployed application on the resource node that meets the resource requirement of the application to be deployed according to the deployment condition, the multiple resource nodes have the deployed application, and the deployment unit is configured according to the The deployment condition is that the to-be-deployed application is deployed on the resource node that meets the resource requirement of the to-be-deployed application, and the deployment unit needs to deploy the to-be-deployed application to the idle resource according to the deployment condition.
  • the resource requirements of the application are deployed, and the deployed application is applied to the resource node where the application to be deployed does not have the resource competition relationship.
  • the deployment unit is further configured to: before the deployment of the application to be deployed on the resource node that meets the resource requirement of the application to be deployed according to the deployment condition, determine that the multiple resource nodes are not After the deployment of the application to be deployed, the SLA parameters meet the corresponding preset SLA condition resource nodes; and the deployed partial applications on the multiple resource nodes are redeployed to make some resource nodes of the multiple resource nodes The amount of the idle resource is increased.
  • the deployment unit deploys the to-be-deployed application to the resource node that meets the resource requirement of the application to be deployed according to the deployment condition, and specifically includes: the deployment unit according to the deployment condition
  • the to-be-deployed application is deployed on the resource node in the part of the resource node that meets the resource requirement of the application to be deployed.
  • the receiving unit is further configured to receive a scheduling decision message sent by the detecting device, where the scheduling decision message includes an adjustment instruction and an identifier of the at least one application to be adjusted, where the adjustment instruction is used to indicate that the deployment unit is re- Deploying the at least one to be adjusted application of the identifier of the at least one application to be adjusted; the deployment unit is further configured to: for each of the at least one to be adjusted application, according to the adjustment instruction and the deployment condition, The to-be-adjusted application is redeployed on another resource node whose idle resource quantity meets the resource requirement of the to-be-adjusted application, wherein the SLA parameter of the another resource node after the application to be adjusted is configured to satisfy the pre-determination of the another resource node Set the SLA condition.
  • an embodiment of the present invention provides a detecting apparatus, including: an acquiring unit, configured to acquire monitoring data corresponding to each of a plurality of resource nodes, where the monitoring data includes an deployed application on the resource node. a performance unit, configured to calculate an idle resource quantity of the resource node according to the monitoring data acquired by the acquiring unit, and a sending unit, configured to send, to the scheduling apparatus, an idle resource quantity of each resource node calculated by the computing unit, where The idle resource amount of the resource nodes is used by the scheduling device to deploy the application to be deployed.
  • the detecting device further includes a determining unit, configured to use the monitoring data corresponding to each resource node acquired by the acquiring unit and the preset service level corresponding to each deployed application.
  • the SLA condition is determined to be that at least one application to be adjusted exists in all the deployed applications of the multiple resource nodes, and the performance data of the application to be adjusted does not meet the SLA condition corresponding to the application to be adjusted;
  • the sending unit is further used for And sending, to the scheduling device, a scheduling decision message, where the scheduling decision message includes an identifier of the at least one application to be adjusted and an adjustment instruction, where the adjustment instruction is used to instruct the scheduling device to redeploy the at least one application to be adjusted.
  • the application to be deployed and the application to be adjusted described in the foregoing first to fourth aspects may be in a container application or an application running in a non-container environment.
  • an embodiment of the present invention provides a scheduling apparatus, where the scheduling apparatus can implement the functions performed by the scheduling apparatus in the method related to the foregoing aspects, where the functions can be implemented by hardware, or the corresponding software can be executed by hardware.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the scheduling apparatus includes a processor and a communication interface configured to support the scheduling apparatus to perform the corresponding functions of the above methods.
  • the communication interface is used to support communication between the scheduling device and other network elements.
  • the scheduling device can also include a memory for coupling with the processor that holds the program instructions and data necessary for the scheduling device.
  • an embodiment of the present invention provides a readable medium, including computer execution instructions, when the processor of the scheduling device executes the computer to execute an instruction, the scheduling device performs any of the foregoing first aspect or the first aspect.
  • the embodiment of the present invention provides a detecting device, which can implement the functions performed by the detecting device in the method embodiment of the foregoing aspect, and the function can be implemented by hardware or by hardware.
  • Software Implementation The hardware or software includes one or more modules corresponding to the above functions.
  • the detection device includes a processor and a communication interface configured to support the detection device to perform the corresponding functions of the above methods.
  • the transceiver is used to support communication between the detection device and other network elements.
  • the detection device can also include a memory for coupling with the processor that holds the program instructions and data necessary for the detection device.
  • an embodiment of the present invention provides a readable medium, including computer-executed instructions, when the processor of the detecting device executes the computer to execute an instruction, the detecting device performs any of the second aspect or the second aspect.
  • an embodiment of the present invention provides a communication system, which includes the scheduling apparatus and the detection apparatus described in the above aspects.
  • the scheduling device can deploy the application to be deployed on the resource node that meets the resource requirement of the application to be deployed, based on the SLA condition of the resource node, so that the application is Deployment is no longer limited by fixed affinity relationships, so that the scheduling device can more efficiently deploy more applications and improve the success rate of application deployment while satisfying SLA conditions.
  • FIG. 1 is a block diagram of a communication system according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of a physical machine according to an embodiment of the present invention.
  • FIG. 3 is an interaction diagram of an application scheduling method according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram 1 of a scenario of an application scheduling method according to an embodiment of the present disclosure
  • FIG. 5 is a second schematic diagram of a scenario of an application scheduling method according to an embodiment of the present disclosure.
  • FIG. 6 is a schematic diagram 3 of a scenario of an application scheduling method according to an embodiment of the present disclosure.
  • FIG. 7 is a schematic diagram 4 of a scenario of an application scheduling method according to an embodiment of the present disclosure.
  • FIG. 8 is a schematic diagram 5 of a scenario of an application scheduling method according to an embodiment of the present disclosure.
  • FIG. 9 is an interaction diagram of a monitoring method according to an embodiment of the present invention.
  • FIG. 10 is an interaction diagram of a dynamic adjustment method according to an embodiment of the present invention.
  • FIG. 11 is a schematic diagram of a network architecture of an Apache container application and a MySQL container application according to an embodiment of the present invention
  • FIG. 12A is a schematic structural diagram 1 of a scheduling apparatus according to an embodiment of the present invention.
  • 12B is a schematic structural diagram 2 of a scheduling apparatus according to an embodiment of the present invention.
  • 12C is a schematic structural diagram 3 of a scheduling apparatus according to an embodiment of the present invention.
  • FIG. 13A is a schematic structural diagram 1 of a detecting apparatus according to an embodiment of the present invention.
  • FIG. 13B is a second schematic structural diagram of a detecting apparatus according to an embodiment of the present invention.
  • FIG. 13C is a third schematic structural diagram of a detecting apparatus according to an embodiment of the present invention.
  • FIG. 14 is a schematic structural diagram 1 of a deployment management apparatus according to an embodiment of the present invention.
  • FIG. 14B is a second schematic structural diagram of a deployment management apparatus according to an embodiment of the present disclosure.
  • FIG. 14C is a third schematic structural diagram of a deployment management apparatus according to an embodiment of the present invention.
  • a communication system includes a deployment management device, a scheduling device, a detection device, a plurality of proxy devices, and a resource node corresponding to each proxy device.
  • the deployment management device is connected to the scheduling device, the scheduling device is connected to the detection device and each proxy device, and the detection device is also connected to each proxy device.
  • the resource node may be a virtual machine or a physical machine, and multiple applications may be deployed on each resource node, for example, application A, application B, and application C.
  • the deployment management device provides a configuration interface for the user, supports user input, modifies the application set to be deployed, the deployment condition, and the affinity relationship between the applications, and sends the user configured information to the scheduling device to trigger the scheduling device to invoke the relevant information.
  • the deployment conditions and affinity relationships are deployed for the deployed application.
  • the affinity relationship between the applications may include affinity and anti-affinity, and the affinity is used to indicate that at least two applications are required to be deployed on the same resource node, for example, at least two applications sharing the storage, sharing High-latency-sensitive applications, such as at least two applications of the network, or at least two applications that need to perform information interaction. In order to meet the delay requirement, these applications are usually bound to the same resource node, that is, implemented in the present invention. In an example, the relationship between applications that need to be deployed on the same resource node can be called a binding relationship.
  • the ordering front-end application (Order Web App) and the ordering back-end service (Order Service) are two bundled applications that require information interaction, so in order to improve the communication efficiency between ordering front-end applications and ordering back-end services, Deploy the front-end application and order back-end services on the same resource node.
  • the anti-affinity is used to indicate that at least two applications are required to be deployed on different resource nodes, for example, at least two applications that have port conflicts, and at least two applications that compete with the CPU, such as applications that compete for resources, in order to ensure each
  • the applied processes have independent high reliability resources, which are usually deployed on different resource nodes.
  • the relationship between applications that need to be deployed on different resource nodes may be referred to as a resource competition relationship.
  • the scheduling device is responsible for storing relevant configuration conditions and affinity relationships between applications, deploying applications to be deployed according to configuration conditions and affinity between applications, and redeploying deployed applications that need to be adjusted .
  • the detecting device analyzes the performance data of the deployed application to analyze whether the deployed application exists in the deployed application.
  • the application needs to be adjusted, and the scheduling device is triggered in time to redeploy the application that needs to be adjusted.
  • the proxy device is responsible for real-time monitoring of applications running on the corresponding resource nodes and transmitting the collected application performance data to the detecting device.
  • each proxy device may be integrated on its corresponding resource node, or may be a virtual machine or a physical machine independent of its corresponding resource node.
  • the deployment management device, the scheduling device, and the detection device may be independent physical machines, or separate processes or independent threads running on the same physical machine.
  • a physical machine provided by an embodiment of the present invention includes: a processor, a memory, a bus, an input/output interface, and a communication interface.
  • the bus is a connection processor, a memory, an input/output interface, and a communication interface, and implements data transfer between the processor, the memory, the input/output interface, and the communication interface.
  • the processor receives a command from the input and output interface via the bus, decrypts the received command, and performs calculations or data processing in accordance with the decrypted command.
  • the memory may include program modules such as a kernel, middleware, application programming interfaces (APs), applications, and the like.
  • the program modules may be composed of software, firmware, hardware, or at least two of them.
  • the input and output interfaces forward commands or data entered by the user through input devices (eg, sensors, keyboards, touch screens).
  • the communication interface connects the physical machine to other physical machines and networks.
  • the communication interface can be connected to the network by wired or wireless to connect to other external physical machines.
  • the physical machine may further include a display device, configured to display configuration information input by the user to the user, display an operation interface to the user, and the like.
  • the application deployment method provided by the embodiment of the present invention is applicable to a container application, and is also applicable to an application running in a non-container environment.
  • At least one container application running in the same container can be regarded as an application whole, and the application deployment method provided by the embodiment of the present invention is also applicable to the application as a whole, that is, The application deployment method provided by the embodiment of the present invention is also applicable to the process of container deployment.
  • the application deployment method provided by the embodiment of the present invention is as shown in FIG. 3 , and the method may include:
  • the deployment management device sends an application set to the scheduling device, where the application set includes a correspondence between each application to be deployed in the application set and a resource requirement of the application to be deployed.
  • the application set is input to the deployment management device by the configuration interface provided by the user through the deployment management device, and then the application management device sends the application set to the scheduling device to indicate that the scheduling device is to be in the application set. Deploy the app for deployment.
  • the application set includes at least one resource to be deployed and each resource to be deployed, and each application to be deployed and its resource requirements correspond to each other, and the scheduling device can deploy each application to be deployed according to the corresponding relationship. It corresponds to the resource requirements of the resource node.
  • the resource requirements of the application to be deployed may include CPU resources and memory resources required by the application to be deployed, and may also include other physical resources or virtual resources required to deploy the application to be deployed.
  • the scheduling apparatus acquires an idle resource quantity of each resource node of the multiple resource nodes and a preset deployment condition, where the deployment condition includes a preset SLA condition of each resource node.
  • the preset SLA condition of each resource node may include an upper limit of the CPU usage of the resource node, an upper limit of the memory usage rate, or other upper limit parameters.
  • the scheduling device may obtain the deployment condition from the deployment management device, or may obtain the pre-stored content locally. Deployment conditions.
  • the deployment condition is input to the deployment management device by the user through an interface provided by the deployment management device.
  • the deployment management device may send the deployment condition to the scheduling device.
  • the deployment management device may directly send the deployment condition to the scheduling device after receiving the deployment condition input by the user, where the scheduling device stores the deployment condition locally, and when the scheduling device deploys the application to be deployed, the scheduling device The device can read the stored deployment conditions directly from the local.
  • the scheduling device may also acquire the idle resource amount of each resource node in multiple manners.
  • the scheduling device may receive the amount of idle resources of each resource node from the detecting device, or may obtain the resource usage database of the plurality of resource nodes that are locally maintained, where the resource usage database includes attributes of each resource node. Information, information about applications deployed on each resource node, and the amount of idle resources per resource node.
  • the detecting device can periodically report the amount of idle resources of each resource node, so that the scheduling device updates the locally maintained resource usage database.
  • the scheduling device deploys the to-be-deployed application on the resource node that meets the resource requirement of the application to be deployed according to the deployment condition, where the SLA of the resource node after the application to be deployed is deployed.
  • the parameter satisfies the preset SLA condition of the resource node.
  • the application A is taken as an example. Assume that the application A is an application to be deployed in the application set.
  • the resource requirement of the application A includes 5% of CPU resources, and 300 M of memory resources, and SLA conditions of each resource node. Both include: the upper limit of memory usage is 75%, and the upper limit of CPU usage is 80%.
  • the scheduling device determines that the amount of idle resources can meet the resource requirement of the application A according to the obtained amount of idle resources of each resource node, and the CPU usage is still less than 80% after the 5% increase, and the usage rate is still less than 300M after the memory usage increases. 75% of resource nodes.
  • the scheduling apparatus determines that the CPU usage of the resource node 1 among the plurality of resource nodes is 20%, and there is 80% of idle CPU resources, and 1.5G of the 2G memory of the resource node 1 is unused, that is, the resource node 1
  • the amount of idle resources can meet the resource requirements of application A, and the CPU usage increases by 5% to 25%, still less than 80%.
  • the memory usage is 40%, still less than 75.
  • the scheduling device may determine that the resource node 1 is a resource node that meets the deployment requirements of the application A, so that the scheduling device may deploy the application A on the resource node 1, and ensure that the SLA parameter of the resource node 1 after the application A is deployed, Including CPU usage and memory usage, meeting the default SLA condition of resource node 1.
  • the scheduling device may randomly select one of the resource nodes to deploy the application A, or may determine that the first one can satisfy the application.
  • the application A is deployed on the resource node required for the deployment of A, and the embodiment of the present invention is not limited.
  • the scheduling device can deploy the application to be deployed on the resource node that meets the resource requirement of the application to be deployed based on the SLA condition of the resource node, so that the application deployment is no longer limited by the fixed The affinity relationship, so that the scheduling device can more efficiently deploy more applications while satisfying the SLA condition, and improve the success rate of application deployment.
  • the scheduling device may also be in the application set according to the deployment condition and the affinity relationship.
  • the application to be deployed is deployed.
  • the application to be deployed with the binding relationship may be determined as a group of applications to be deployed, for example, application A and application B are tied.
  • application A and application B are a set of applications to be deployed. If application A and application B in the application set have 3 instances respectively, With A1, application A2, application A3, and application B1, application B2, and application B3, application A1 and application B1 can be a group of applications to be deployed, and application A2 and application B2 can be a group of applications to be deployed, and application A3 and application B3. Can be a set of applications to be deployed.
  • application A1, the application A2, and the application A3 are the same applications, and both are the application A.
  • the three examples are respectively referred to as the application A1, the application A2, and the application.
  • application B1, application B2, and application B3 are identical applications, both of which are application B.
  • the scheduling device may deploy a group of to-be-deployed applications on the resource nodes whose idle resources meet the total resource requirements of the group of applications to be deployed, according to the deployment conditions, where The SLA parameter of the resource node after deploying the set of applications to be deployed satisfies the preset SLA condition of the resource node.
  • the application to be deployed in the application set A1 and the application B1 are taken as an example.
  • the resource requirement of the application A1 includes 5% of CPU resources and 300 M of memory resources
  • the resource requirements of the application B1 include 8 % CPU resources, and 200M memory resources
  • the total resource requirements of application A1 and application B1 are 500M memory resources and 13% CPU resources.
  • the SLA conditions of each resource node include: the upper limit of memory usage is 75. %, the upper limit of CPU usage is 80%.
  • the scheduling device determines that the amount of idle resources can satisfy the total resource requirement of the application A1 and the application B1 according to the obtained idle resource amount of each resource node, and the CPU usage is still less than 80% after the 13% increase, and the memory usage is increased by 500M. Resource nodes that still use less than 75% of the resource.
  • the scheduling apparatus determines that the amount of idle resources of the resource node 1 in the resource pool can satisfy the total resource requirement of the application A1 and the application B1, and the CPU usage increases by 13% and is 33%, still less than 80%, and the memory of the resource node 1 After the usage increases by 500M, the memory usage rate is 49%, still less than 75%, and the scheduling device can determine that the resource node 1 meets the resource requirements of the deployment requirements of the application A1 and the application B1, so that the scheduling device can deploy the application A1 and the application B1. On resource node 1, and after ensuring that application A1 and application B1 are deployed, the SLA parameters of resource node 1, including 33% CPU usage, 49% memory usage, still satisfy the default SLA condition of resource node 1. .
  • the scheduling device may deploy the two applications to be deployed, the application A2 and the application B2 in the application set, and the application A3 and the application B3 according to the deployment process of the application A1 and the application B1, for example, as shown in FIG. 4 .
  • the scheduling device deploys the application A2 and the application B2 on the resource node 2 capable of deploying the application A2 and the application B2, and the application A3 and the application B3 on the resource node 3 capable of deploying the application A3 and the application B3.
  • the scheduling device may deploy the conditions according to the deployment conditions when deploying each group of applications to be deployed.
  • the set of to-be-deployed applications is deployed on the resource resources that meet the total resource requirements of the set of applications to be deployed, and the deployed applications are not resource-competitive with the set of applications to be deployed.
  • the application instance A1, the application A2, and the application A3 of the application A have a resource competition relationship
  • the three instance applications B1, B2, and B3 of the application B also have a resource competition relationship.
  • the scheduling device can deploy application A2 and application B2 on resource node 2.
  • the scheduling device deploys the application A2 and the application B2 on the resource node 2, the application A3 and the application are deployed.
  • resource nodes other than resource node 1 and resource node 2 need to be selected to deploy application A3 and application B3.
  • the scheduling device may deploy the application to be deployed to the resource requirement of the application to be deployed, and the deployed application does not have the resource competition relationship with the application to be deployed. On the node.
  • the deployed application on the resource node does not have an affinity relationship with the application to be deployed, or has a binding relationship.
  • the scheduling device when the scheduling device deploys the three instance applications C1, C2, and C3 in the application C cluster, the scheduling device needs to deploy the application C1, the application C2, and the application C3 to the deployed application according to the deployment conditions.
  • Application C does not have three different resource nodes for resource competition.
  • the scheduling apparatus deploys the application C1, the application C2, and the application C3 on the resource node 1, the resource node 2, and the resource node 3, respectively, according to the deployment condition and the affinity relationship.
  • the scheduling device may determine, before deploying each application to be deployed, whether there are resource nodes that meet the deployment requirements of the application to be deployed, that is, whether the SLA parameter is deployed after the application to be deployed is deployed. A resource node that satisfies the corresponding preset SLA condition.
  • the scheduling device may apply the deployed part of the multiple resource nodes. Re-deploying, so that the amount of idle resources of the resource nodes of the plurality of resource nodes is increased, and the scheduling device can deploy the to-be-deployed application in the part of the resource nodes to meet the deployment condition. On the resource node of the resource requirement of the application to be deployed.
  • the scheduling device when the scheduling device deploys the application A3, it is determined that the resource node 1, the resource node 2, and the resource node 3 in the resource pool cannot meet the deployment requirements of the application A3.
  • the scheduling device may redeploy the deployed resources of the resource node 1, the resource node 2, and the resource node 3.
  • the scheduling apparatus determines that if the deployed application C3 on the resource node 3 is deleted, so that the amount of idle resources of the resource node 3 increases, the resource node 3 satisfies the deployment requirement of the application A3, and the resource node 2 can meet the deployment requirements of application C3.
  • the scheduling device can redeploy the deployed application C3 on the resource node 3 on the resource node 2.
  • the application C3 deployed on the resource node 3 is an instance of the application C.
  • the scheduling device may stop and delete the deployed application C3 on the resource node 3, and then deploy a new instance of the application C on the resource node 2. Apply C4 and deploy application A3 on resource node 2.
  • the multiple resource nodes may be increased by redeploying the deployed partial applications on the multiple resource nodes.
  • the amount of the idle resource of the resource node is such that the resource node of the resource to be deployed is deployed in the part of the resource node, so that the deployment of the application to be deployed is completed, and the deployment success rate of the application to be deployed is further improved.
  • an embodiment of the present invention provides a preferred application scheduling method, specifically:
  • the scheduling device After receiving the application set, the scheduling device first deploys the to-be-deployed application in the application set according to the affinity relationship between the deployment condition and the application to be deployed in the application set, including: referring to the method shown in FIG.
  • the to-be-deployed application with the binding relationship is deployed on the same resource node.
  • the method to be deployed on the resource-competitive relationship is deployed on different resource nodes and the resource node where each application to be deployed is located.
  • the SLA parameter satisfies the SLA condition of the resource node.
  • the scheduling device can preferentially determine whether the deployment can be completed according to the affinity relationship, if the deployment conditions are met. When the affinity relationship is deployed and the deployment cannot be completed, the affinity relationship can be ignored.
  • the scheduling device when the scheduling device deploys the application A1 and the application B1 having the binding relationship in the application set on the resource node 1 according to the deployment condition and the affinity relationship, the application A2 having the binding relationship is used. After the application B2 is deployed on the resource node 2, for the application to be deployed, that is, the application A3 and the application B3, the scheduling device determines that the A3 and the application B3 are not present in the resource node.
  • the resource node required for the deployment (that is, the amount of idle resources meets the total resource requirements of the application A3 and the application B3, and after the application A3 and the application B3 are deployed, the SLA parameter can satisfy the resource node corresponding to the SLA condition), then the scheduling device
  • the application A3 and the application B3 may be separately deployed according to the deployment conditions. For example, the application A3 is deployed on the resource node 4, the SLA parameter of the resource node 4 where the application A3 is deployed is satisfied with the SLA condition of the resource node 4, and the application B3 is deployed. On the resource node 5, the SLA parameter of the resource node 5 in which the application B3 is deployed satisfies the SLA condition of the resource node 5.
  • the scheduling device After the scheduling device and the affinity relationship, the application C1 in the application C cluster is deployed on the resource node 6, and after the application C2 is deployed on the resource node 7, the C3 is applied to the remaining instance in the application C cluster. If the scheduling device determines that the resource nodes that can meet the deployment requirements of the application C3 are not present in the multiple resource nodes, the scheduling device may deploy the application C3 to meet the resource requirements of the application C3 according to the deployment conditions, and After the application C3 is deployed, the SLA parameters can satisfy the resource node 7 corresponding to the SLA condition.
  • the scheduling device may redeploy a part of the deployed applications on the multiple nodes according to the method as shown in FIG. The amount of the idle resource of the resource node of the plurality of resource nodes is deployed on the part of the resource node for deployment according to the deployment condition.
  • the scheduling device can implement dynamic deployment of the application to be deployed, and flexibly select a deployment solution based on the SLA condition of the resource node, and complete deployment of the application to be deployed, which is no longer limited by a fixed affinity relationship. , thereby increasing the success rate of application deployment.
  • the deployment condition acquired by the scheduling device may further include a tenant space to which each resource node belongs.
  • the application set received by the scheduling device further includes tenant information of each application to be deployed.
  • the scheduling device authenticates the tenant information of each application to be deployed to determine the tenant space that each application to be deployed requests to access.
  • the scheduling device may include a multi-tenant resource selection sub-module, and the multi-tenant resource selection sub-module integrates a multi-tenant management system of the third-party docking system, and can be applied to each application to be deployed under the control of the multi-tenant management system.
  • the tenant information is authenticated, and the tenant space requested by each application to be deployed is determined, and the resource node that the application to be deployed can access is queried in the tenant space that the application to be deployed requests to access.
  • the scheduling device may deploy the application to be deployed in the tenant space that can be accessed by each application to be deployed according to the solution shown in FIG. 3 to FIG. 7 .
  • the scheduling apparatus determines the application A and the application by authenticating the tenant information of the application A, the tenant information of the application B, and the tenant information of the application C in the application set.
  • B requests access to the resource node in the tenant space 1
  • the application C access request accesses the resource node in the tenant space 2.
  • the application A and the application B have a binding relationship, and the scheduling device may deploy multiple instances of the application A and the application B on the resource nodes in the tenant space 1 according to the method shown in FIG. 4 .
  • the application C is an application cluster, and the scheduling device may separately deploy multiple instances of the application C on different resource nodes in the tenant space 2 according to the method shown in FIG. 5 .
  • different tenant information indicates that the corresponding application to be deployed requests access to funds in different tenant spaces.
  • the source node that is, the tenant information is different, and the resource nodes that can be deployed by the application are the same, so that the isolation between the applications to be deployed can be effectively performed, and the security control in the deployment process of the application is realized.
  • the deployment condition provided by the embodiment of the present invention may further include other conditions set according to deployment requirements, for example, allowing an upper limit of the number of applications having resource competition relationships to be deployed on the same resource node, and allowing deployment on different resource nodes.
  • the embodiment of the present invention further provides a monitoring method, which can monitor the resource usage of each resource node.
  • the method may include:
  • Each proxy device collects monitoring data of a corresponding resource node.
  • the monitoring data includes performance data of the deployed application on the corresponding resource node, for example, actual CPU usage and actual memory usage of the deployed application on the resource node at runtime.
  • Each proxy device sends the collected monitoring data to the detecting device.
  • the detecting device calculates, according to the received monitoring data, an amount of idle resources of the resource node corresponding to each monitoring data.
  • the application node A1, the application B1, the application C1, the application C2, and the application D1 are run on the resource node 1, and the actual CPU usage of the application A1 during the running process is 20%, and the actual memory usage is used.
  • the amount is 300M
  • the actual CPU usage of the application B1 during operation is 30%
  • the actual memory usage is 180M
  • the application C1 and the actual CPU usage during the running process is 10%
  • the actual memory usage is 160M
  • the application The actual CPU usage of C2 during operation is 10%
  • the actual memory usage is 160M
  • the actual CPU usage of application D2 during operation is 15%
  • the actual memory usage is 350M.
  • the detecting device calculates the performance data of the application A1, the application B1, the application C1, the application C2, and the application D1, and can determine that the resource node 1 currently has 15% of free CPU resources and 800M of memory resources.
  • the detecting device sends the calculated idle resource amount of each resource node to the scheduling device.
  • the estimated resource requirements of each application during the deployment process and the resources actually used by the application during the operation may not be exactly equal.
  • the resources actually used by the application during the run may be larger than the estimated resource requirements during the deployment process, or may be less than the estimated resource requirements during the deployment process.
  • the detecting device calculates the current idle resource amount of each resource node by monitoring the monitoring data of each resource node in real time, and sends the data to the scheduling device, so that the scheduling device can be based on the effective idle resource of each resource node. Deploy the applications to be deployed to improve the resource usage efficiency of resource nodes.
  • the present invention further provides a dynamic adjustment method.
  • the dynamic adjustment method may include:
  • the detecting device determines that at least one application to be adjusted exists in all applications deployed on the multiple resource nodes according to the monitoring data corresponding to each resource node and the preset SLA condition corresponding to each deployed application.
  • the performance data of the adjusted application does not satisfy the SLA condition corresponding to the application to be adjusted.
  • the detected application may be monitored according to the monitoring data.
  • the monitoring data includes performance data of each deployed application on the corresponding resource node, where the performance data includes actual CPU usage and actual memory usage of the deployed application at runtime, and the deployed application service.
  • the SLA condition corresponding to the deployed application may include an SLA condition of the deployed application itself, such as an upper limit of the error rate of the service data receiving, an upper limit of the CAPS, and the like, and the SLA condition may further include the resource node where the deployed application is located.
  • the SLA condition for example, the upper limit of the CPU usage of each application on the resource node, the upper limit of the memory usage of each application, and the like.
  • the SLA condition corresponding to the application A1 includes: the upper limit of the error rate of the service data reception of the application A1 is 5%, and the upper limit of the total CPU usage of the application A1 and the application B1 is 20%.
  • the performance data of the application A1 includes: the error rate of the service data receiving is 10%, and the actual CPU usage rate of the application A1 during the running process is 20%, that is, the performance data of the application A1 does not satisfy the SLA condition corresponding to the application A1, then the detecting device is It can be determined that the application A1 is an application to be adjusted.
  • the detecting device sends a scheduling decision message to the scheduling device, where the scheduling decision message includes at least one identifier of the application to be adjusted and an adjustment instruction, where the adjustment instruction is used to instruct the scheduling device to redeploy the at least one application to be adjusted.
  • the scheduling apparatus redeploys the to-be-adjusted application to another resource node whose idle resource quantity meets the resource requirement of the to-be-adjusted application according to the adjustment instruction and the deployment condition.
  • the SLA parameter of another resource node after the application to be adjusted is configured to satisfy a preset SLA condition of the resource node.
  • the scheduling device re-deploying each application to be adjusted may include: the scheduling device stops running and deleting the application to be adjusted from the resource node where the application to be adjusted is originally located, and then, according to the deployment condition, A new instance of the application to be adjusted is deployed on another resource node whose amount of idle resources meets the resource requirements of the application to be adjusted.
  • the detecting device determines that the performance data of the application A1 does not satisfy the SLA condition corresponding to the application A1, so that the detecting device sends the identification and adjustment instruction of the application A1 to the scheduling device through the scheduling decision message, and the scheduling device determines according to the adjustment instruction indication.
  • the application A1 is an instance of the application A.
  • the scheduling device re-deploys the application A1 to redeploy an instance of the application A, and deletes the deployed instance application A1. Specifically, the scheduling device stops the application A1 deployed on the resource node 1 and deletes the application A1 from the resource node 1.
  • an instance of the application A is redeployed on another resource node other than the resource node 1, for example, a new instance application A4 of the application A is deployed on the resource node 8, and the idle resource of the resource node 8 satisfies the application.
  • the resource requirement of A, and the SLA parameter of resource node 8 after application A4 is deployed, satisfies the SLA condition of the resource node 8.
  • the detecting device can monitor the running state of each deployed application in real time, and when it is determined that there is an application to be adjusted whose performance data does not meet the corresponding SLA condition, The scheduling device is instructed to redeploy the application to be adjusted in time to improve the reliability of the application during operation and optimize the performance of the system.
  • the application is used to complete the development and deployment of web applications.
  • the Apache container application and the MySQL container application can be deployed by using the solution provided by the embodiment of the present invention.
  • the scheduling device can preferentially deploy each group of Apache container application and MySQL container application on the same resource node according to the SLA condition of the resource node, so that the Apache container application can directly be in the present
  • the data of the MySQL container application is accessed on-board to ensure that users can experience high performance and low latency service effects.
  • scheduling devices can be prioritized
  • the SLA condition of the source node deploys different sets of Apache container applications and MySQL containers on different resource nodes, thereby avoiding the failure of one resource node to cause the entire system to fail.
  • the dispatcher when the dispatcher is unable to deploy each set of Apache container applications and MySQL containers in affinity, the dispatcher can prioritize the Apache container application and the parts of the MySQL container cluster.
  • the Apache container application and the MySQL container are deployed in an affinity relationship.
  • the remaining Apache container application and MySQL container can be deployed to meet the SLA conditions of the resource node to ensure the container in the Apache container application and the MySQL container cluster.
  • the deployment success rate of the application when the dispatcher is unable to deploy each set of Apache container applications and MySQL containers in affinity, the dispatcher can prioritize the Apache container application and the parts of the MySQL container cluster.
  • the Apache container application and the MySQL container are deployed in an affinity relationship.
  • the remaining Apache container application and MySQL container can be deployed to meet the SLA conditions of the resource node to ensure the container in the Apache container application and the MySQL container cluster.
  • the deployment success rate of the application when the dispatcher is unable to deploy each set of Apache container applications and MySQL containers in affinity, the dispatcher can prioritize the Apache container application and the parts of the MySQL container cluster.
  • each network element such as a scheduling device, a detecting device, a deployment management device, a proxy device, etc.
  • each network element includes hardware structures and/or software modules corresponding to each function.
  • the present invention can be implemented in a combination of hardware or hardware and computer software in combination with the elements and algorithm steps of the various examples described in the embodiments disclosed herein. Whether a function is implemented in hardware or computer software to drive hardware depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods for implementing the described functions for each particular application, but such implementation should not be considered to be beyond the scope of the present invention.
  • the embodiment of the present invention may divide the function module by using the scheduling method, the detecting device, the deployment management device, the proxy device, and the like according to the foregoing method example.
  • each functional module may be divided according to each function, or two or more of the functional modules may be divided.
  • the functions are integrated in one processing module.
  • the above integrated modules can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of the module in the embodiment of the present invention is schematic, and is only a logical function division, and the actual implementation may have another division manner.
  • FIG. 12A shows a possible structural diagram of the scheduling apparatus involved in the foregoing embodiment, where the scheduling apparatus includes: a receiving unit, an obtaining unit, and a deploying unit.
  • the receiving unit is configured to support the scheduling device to perform the process S101 in FIG. 3, the process S204 in FIG. 9, and the process S302 in FIG. 10;
  • the obtaining unit is configured to support the scheduling device to perform the process S102 in FIG. 3;
  • the unit is for supporting the scheduling device to perform the process S103 in FIG. 3 and the process S303 in FIG. All the related content of the steps involved in the foregoing method embodiments may be referred to the functional descriptions of the corresponding functional modules, and details are not described herein again.
  • FIG. 12B shows a possible structural diagram of the scheduling apparatus involved in the above embodiment.
  • the scheduling device includes a processing module 1200 and a communication module 1201.
  • the processing module 1200 is configured to perform control management on the actions of the scheduling device.
  • the processing module 1200 is configured to support the scheduling device to perform the processes S101-S103 in FIG. 3, the process S204 in FIG. 9, and the processes S302 and S303 in FIG. And/or other processes for the techniques described herein.
  • the communication module 1201 is for supporting communication between the scheduling device and other network entities, such as communication with the functional modules or network entities illustrated in FIG.
  • the scheduling device can also include a storage module 1202 for storing program code and data of the scheduling device.
  • the processing module 1200 can be a processor or a controller, and can be, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), and an application-specific integrated circuit (Application-Specific). Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA) or other programmable logic device, transistor logic device, hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
  • the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
  • the communication module 1201 can be a transceiver, a transceiver circuit or a communication interface Wait.
  • the storage module 1202 can be a memory.
  • the scheduling apparatus may be the scheduling apparatus shown in FIG. 12C.
  • the scheduling apparatus includes a processor 1210, a communication interface 1211, a memory 1212, and a bus 1213.
  • the communication interface 1211, the processor 1210, and the memory 1212 are connected to each other through a bus 1213.
  • the bus 1213 may be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus. Wait.
  • PCI Peripheral Component Interconnect
  • EISA Extended Industry Standard Architecture
  • Wait The bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 12C, but it does not mean that there is only one bus or one type of bus.
  • FIG. 13A is a schematic diagram showing a possible structure of the detecting device involved in the foregoing embodiment, and the detecting device includes: an acquiring unit, a calculating unit, a sending unit, and a determining unit. .
  • the obtaining unit is configured to support the detecting device to perform the process S202 in FIG. 9;
  • the calculating unit is configured to support the detecting device to perform the process S203 in FIG. 9;
  • the transmitting unit is configured to support the detecting device to perform the process S204 in FIG. 9 and in FIG. Process S302;
  • the determining unit is configured to support the detecting device to perform the process S301 in FIG. All the related content of the steps involved in the foregoing method embodiments may be referred to the functional descriptions of the corresponding functional modules, and details are not described herein again.
  • FIG. 13B shows a possible structural diagram of the detecting device involved in the above embodiment.
  • the detecting device includes a processing module 1300 and a communication module 1301.
  • the processing module 1300 is configured to control and manage the actions of the detecting device.
  • the processing module 1300 is configured to support the detecting device to perform the processes S202-S204 in FIG. 9 and the processes S301 and S302 in FIG. 10, and/or for the purposes of this document. Other processes of the described techniques.
  • Communication module 1301 is used to support communication between the detection device and other network entities, such as communication with the functional modules or network entities illustrated in FIG.
  • the detecting device may further include a storage module 1302 for storing program codes and data of the detecting device.
  • the processing module 1300 can be a processor or a controller, such as a CPU, a general purpose processor, a DSP, an ASIC, an FPGA or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
  • the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
  • the communication module 1301 may be a communication interface, a transceiver circuit, a communication interface, or the like.
  • the storage module 1302 can be a memory.
  • the processing module 1300 is a processor
  • the communication module 1301 is a communication interface
  • the storage module 1302 is a memory
  • the detecting device according to the embodiment of the present invention may be the detecting device shown in FIG. 13C.
  • the detecting apparatus includes a processor 1310, a communication interface 1311, a memory 1312, and a bus 1313.
  • the communication interface 1311, the processor 1310, and the memory 1312 are connected to each other through a bus 1313.
  • the bus 1313 may be a PCI bus or an EISA bus.
  • the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 13C, but it does not mean that there is only one bus or one type of bus.
  • FIG. 14A shows a possible structural diagram of the deployment management apparatus involved in the foregoing embodiment, where the deployment management apparatus includes: a receiving unit and a sending unit.
  • the receiving unit is configured to receive a set of applications input by the user and a deployment condition; and the sending unit is configured to support the deployment management apparatus to perform the process S101 in FIG. 3 .
  • All the related content of the steps involved in the foregoing method embodiments may be referred to the functional descriptions of the corresponding functional modules, and details are not described herein again.
  • FIG. 14B shows a possible structural diagram of the deployment management apparatus involved in the above embodiment.
  • the deployment management device includes a processing module 1400 and a communication module 1401.
  • the processing module 1400 is configured to control and manage the actions of the deployment management device.
  • the processing module 1400 is configured to support the deployment management device.
  • the process is as shown in process S101 of FIG. 3 and/or other processes for the techniques described herein.
  • the communication module 1401 is for supporting communication between the deployment management device and other network entities, such as communication with the functional modules or network entities illustrated in FIG.
  • the deployment management device may further include a storage module 1402 for storing program code and data of the deployment management device.
  • the processing module 1400 can be a processor or a controller, such as a CPU, a general purpose processor, a DSP, an ASIC, an FPGA or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
  • the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
  • the communication module 1401 may be a communication interface, a transceiver circuit, a communication interface, or the like.
  • the storage module 1402 can be a memory.
  • the deployment management device may be the deployment management device shown in FIG. 14C.
  • the deployment management apparatus includes a processor 1410, a communication interface 1411, a memory 1412, and a bus 1413.
  • the communication interface 1411, the processor 1410, and the memory 1412 are connected to each other through a bus 1413.
  • the bus 1413 may be a PCI bus or an EISA bus.
  • the bus can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is shown in Figure 14C, but it does not mean that there is only one bus or one type of bus.
  • the steps of a method or algorithm described in connection with the present disclosure may be implemented in a hardware, or may be implemented by a processor executing software instructions.
  • the software instructions may be composed of corresponding software modules, which may be stored in a random access memory (RAM), a flash memory, a read only memory (ROM), an erasable programmable read only memory ( Erasable Programmable ROM (EPROM), electrically erasable programmable read only memory (EEPROM), registers, hard disk, removable hard disk, compact disk read only (CD-ROM) or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor to enable the processor to read information from, and write information to, the storage medium.
  • the storage medium can also be an integral part of the processor.
  • the processor and the storage medium can be located in an ASIC. Additionally, the ASIC can be located in a core network interface device.
  • the processor and the storage medium may also exist as discrete components in the core network interface device.
  • the functions described herein can be implemented in hardware, software, firmware, or any combination thereof.
  • the functions may be stored in a computer readable medium or transmitted as one or more instructions or code on a computer readable medium.
  • Computer readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one location to another.
  • a storage medium may be any available media that can be accessed by a general purpose or special purpose computer.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种应用调度方法及装置,涉及通信技术领域,能够提高应用部署的成功率。该方法包括:调度装置从部署管理装置接收应用集合,该应用集合包括该应用集合中的每个待部署应用与该待部署应用的资源需求之间的对应关系;该调度装置获取多个资源节点中每个资源节点的空闲资源量和预设的部署条件,该部署条件包括该每个资源节点的预设SLA条件;对于该每个待部署应用,该调度装置根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,其中,部署该待部署应用后的该资源节点的服务等级协议SLA参数满足该资源节点的预设SLA条件。该方法应用于应用调度场景中。

Description

一种应用调度方法及装置
本申请要求于2016年9月13日提交中国专利局、申请号为201610822030.X,发明名称为“一种应用调度方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通信技术领域,尤其涉及一种应用调度方法及装置。
背景技术
随着虚拟化技术的飞速发展,虚拟化技术已经从物理机的虚拟化发展到操作系统容器化阶段。容器化技术是一种操作系统层的轻量级的资源虚拟化技术,能够实现在单一主机上支持进程和资源的隔离,使得主机在性能损耗极小的情况下,提供上千个高密度隔离运行的容器应用(即在容器中运行的应用),最大程度提高系统资源利用率。
容器集群管理,是完成容器的编排和调度的关键技术。目前,使用最为广泛的容器集群管理系统是Kubernetes(k8s)系统。k8s系统支持一种是“hard”选择器,它保证所选的主机必须满足所有待部署的容器应用之间的亲和性关系,例如,容器应用A和容器应用B具有亲和性(可以理解为绑定关系),则容器应用A和容器应用B必须部署在同一台主机上,容器应用A和容器应用C具有反亲和性(可以理解为资源竞争关系),则容器应用A和容器应用C必须部署在不同的主机上。
然而,当系统中的主机资源不足以满足某些待部署容器应用之间的亲和性关系时,例如,系统中的没有空闲资源量能够同时部署容器应用A和容器应用B的主机,或者系统中没有足够的主机数量使得容器应用A和容器应用B分开部署,“hard”选择器将无法完成这些容器应用的部署,从而导致这些容器应用无法运行。
发明内容
本发明的实施例提供一种应用调度方法及装置,能够提高应用部署的成功率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种应用调度方法,该方法包括:
调度装置从部署管理装置接收应用集合,该应用集合包括该应用集合中的每个待部署应用与该待部署应用的资源需求之间的对应关系;该调度装置获取多个资源节点中每个资源节点的空闲资源量和预设的部署条件,该部署条件包括该每个资源节点的预设SLA条件;对于该每个待部署应用,该调度装置根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,其中,部署该待部署应用后的该资源节点的服务等级协议SLA参数满足该资源节点的预设SLA条件。
本发明实施例提供一种应用调度方法,调度装置能够基于资源节点的SLA条件,将待部署应用部署在满足该待部署应用的资源需求的资源节点上,使得应用的部署不再受限于固定的亲和性关系,从而调度装置可以在满足SLA条件的情况下,更加高效的部署更多的应用,提高了应用部署的成功率。
在一种可能的设计中,调度装置获取多个资源节点中每个资源节点的空闲资源量,包括:该调度装置从检测装置接收每个资源节点的空闲资源量。
在一种可能的设计中,应用集合还包括该应用集合中待部署应用之间的亲和性关系,该亲和性关系包括该应用集合中的待部署应用之间的绑定关系或资源竞争关系,该应用集合中具有绑定关系的待部署应用为一组待部署应用;对于每个待部署应用,调度装置根据部署条件,将待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,其中,部署该待部署应用后的该资源节点的SLA参数满足该资源节点的预设SLA条件,包括:对于该应用集合中的每一组待部署应用,该调度装置根据该部署条件,将一组待部署应用部署在空闲资源量满足一组待部署应用的总资源需求的资源节点上,其中,部署一组待部署应用后的该资源节点的SLA参数满足该资源节点的预设SLA条件。
在一种可能的设计中,若该调度装置根据该部署条件,将该一组待部署应用部署在空闲资源量满足该一组待部署应用的总资源需求的资源节点上之前,该多个资源节点上具有已部署的应用;该调度装置根据该部署条件,将该一组待部署应用部署在空闲资源量满足该一组待部署应用的总资源需求的资源节点上,包括:该调度装置根据该部署条件,将该一组待部署应用部署在空闲资源量满足该一组待部署应用的总资源需求,且已部署的应用与该一组待部署应用不具备该资源竞争关系的资源节点上。
在一种可能的设计中,应用集合还包括该应用集合中待部署应用的亲和性关系,该亲和性关系包括该应用集合中待部署应用之间的资源竞争关系,若该调度装置根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上之前,该多个资源节点上具有已部署的应用,该调度装置根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,包括:该调度装置根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求,且已部署的应用于该待部署应用不具备该资源竞争关系的资源节点上。
在上述三种可能的设计中,调度装置能够在满足资源节点的SLA条件的情况下,按照待部署应用的资源需求和待部署应用之间的亲和性关系,对该待部署应用进行部署,从而进一步保证了待部署应用在完成部署后,运行过程中的业务质量。
在一种可能的设计中,调度装置根据部署条件,将待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上之前,该方法还包括:该调度装置确定该多个资源节点中不存在部署该待部署应用后,SLA参数满足对应的预设SLA条件的资源节点;该调度装置对该多个资源节点上已部署的部分应用进行重新部署,以使得该多个资源节点中的部分资源节点的空闲资源量增大;该调度装置根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,包括:该调度装置根据该部署条件,将该待部署应用部署在该部分资源节点中空闲资源量满足该待部署应用的资源需求的资源节点上。
在这种可能的设计中,当多个资源节点的空闲资源量不满足待部署应用的部署要求时,可以通过重新部署该多个资源节点上的部分已部署的应用的方式,增大多个资源节点中部分资源节点的空闲资源量,以使得该部分资源节点能够在满足SLA条件的情况下部署该待部署应用,从而进一步提高了待部署应用的部署成功率。
在一种可能的设计中,该方法还包括:该调度装置接收该检测装置发送的调度决策消息,该调度决策消息中包括调整指令和至少一个待调整应用的标识,该调整指令用于指示该调度装置重新部署该至少一个待调整应用的标识指示的该至少一个待调整应用;对于该至少一个待调整应用中的每个待调整应用,该调度装置根据该调整指令和该部署条件,将该待调整应用重新部署在空闲资源量满足该待调整应用的资源需求的另一个资源节点上,其中,部署该 待调整应用后的该另一个资源节点的SLA参数满足该另一个资源节点的预设SLA条件。
在这种可能的设计中,调度装置能够根据检测装置的指示,及时对性能数据不满足对应的SLA条件的待调整应用进行重新部署,提高应用在运行过程中的可靠性,优化系统的性能。
第二方面,本发明实施例提供一种应用调度方法,该方法包括:检测装置获取与多个资源节点中的每个资源节点对应的监测数据,该监测数据包括该资源节点上已部署的应用的性能数据;该检测装置根据该监测数据计算该资源节点的空闲资源量;该检测装置向调度装置发送计算的该每个资源节点的空闲资源量,该每个资源节点的空闲资源量用于该调度装置部署待部署应用。
通过本发明实施例提供的应用调度方法,检测装置能够通过实时监测每个资源节点的监测数据,计算每个资源节点当前的空闲资源量,并将每个资源节点当前的空闲资源量发送至调度装置,以使得调度装置能够根据每个资源节点的有效空闲资源量,部署待部署应用,从而提高资源节点的资源使用效率。
在一种可能的设计中,该方法还包括:该检测装置根据与该每个资源节点对应的监测数据和预设的与每个已部署的应用对应的SLA条件,确定该多个资源节点上已部署的所有应用中存在至少一个待调整应用,该待调整的应用的性能数据不满足该待调整应用对应的SLA条件;该检测装置向该调度装置发送调度决策消息,该调度决策消息中包括该至少一个待调整应用的标识和调整指令,该调整指令用于指示该调度装置重新部署该至少一个待调整应用。
在这种可能的设计中,检测装置能够实时监测每个已部署的应用的运行状态,并在确定已部署的应用中存在性能数据不满足对应的SLA条件的待调整应用时,及时指示调度装置对该待调整应用进行重新部署,提高应用在运行过程中的可靠性,优化系统的性能。
第三方面,本发明实施例提供一种调度装置,包括:接收单元,用于从部署管理装置接收应用集合,该应用集合包括该应用集合中的每个待部署应用与该待部署应用的资源需求之间的对应关系;获取单元,用于获取多个资源节点中每个资源节点的空闲资源量和预设的部署条件,该部署条件包括该每个资源节点的预设SLA条件;部署单元,用于对于该每个待部署应用,根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,其中,部署该待部署应用后的该资源节点的服务等级协议SLA参数满足该资源节点的预设SLA条件。
在一种可能的设计中,获取单元获取多个资源节点中每个资源节点的空闲资源量时,具体包括:该获取单元从检测装置接收每个资源节点的空闲资源量。
在一种可能的设计中,接收单元接收到的应用集合还包括该应用集合中待部署应用之间的亲和性关系,该亲和性关系包括该应用集合中的待部署应用之间的绑定关系或资源竞争关系,该应用集合中具有绑定关系的待部署应用为一组待部署应用,该部署单元,具体用于对于该应用集合中的每一组待部署应用,将一组待部署应用部署在空闲资源量满足这一组待部署应用的总资源需求的资源节点上,其中,部署这一组待部署应用后的资源节点的SLA参数满足该资源节点的预设SLA条件。
在一种可能的设计中,若部署单元根据部署条件,将一组待部署应用部署在空闲资源量满足这一组待部署应用的总资源需求的资源节点上之前,该多个资源节点上具有已部署的应用,该部署单元根据该部署条件,将一组待部署应用部署在空闲资源量满足这一组待部署应用的总资源需求的资源节点上,具体包括:该部署单元根据该部署条件,将一组待部署应用部署在空闲资源量满足这一组待部署应用的总资源需求,且已部署的应用与这一组待部署应 用不具备该资源竞争关系的资源节点上。
在一种可能的设计中,接收单元接收到的应用集合还包括该应用集合中待部署应用的亲和性关系,该亲和性关系包括该应用集合中待部署应用之间的资源竞争关系,若该部署单元根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上之前,该多个资源节点上具有已部署的应用,该部署单元根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,具体包括:该部署单元根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求,且已部署的应用于该待部署应用不具备该资源竞争关系的资源节点上。
在一种可能的设计中,部署单元,还用于在根据部署条件,将待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上之前,确定该多个资源节点中不存在部署该待部署应用后,SLA参数满足对应的预设SLA条件的资源节点;并对该多个资源节点上已部署的部分应用进行重新部署,以使得该多个资源节点中的部分资源节点的空闲资源量增大;该部署单元根据该部署条件,将该待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,具体包括:该部署单元根据该部署条件,将该待部署应用部署在该部分资源节点中空闲资源量满足该待部署应用的资源需求的资源节点上。
在一种可能的设计中,接收单元,还用于接收检测装置发送的调度决策消息,该调度决策消息中包括调整指令和至少一个待调整应用的标识,该调整指令用于指示该部署单元重新部署该至少一个待调整应用的标识指示的该至少一个待调整应用;该部署单元,还用于对于该至少一个待调整应用中的每个待调整应用,根据该调整指令和该部署条件,将该待调整应用重新部署在空闲资源量满足该待调整应用的资源需求的另一个资源节点上,其中,部署该待调整应用后的该另一个资源节点的SLA参数满足该另一个资源节点的预设SLA条件。
本发明实施例提供的调度装置的技术效果可以参见上述第一方面或第一方面的各个可选方式的技术效果,此处不再赘述。
第四方面,本发明实施例提供一种检测装置,包括:获取单元,用于获取与多个资源节点中的每个资源节点对应的监测数据,该监测数据包括该资源节点上已部署的应用的性能数据;计算单元,用于根据该获取单元获取的监测数据计算该资源节点的空闲资源量;发送单元,用于向调度装置发送该计算单元计算的每个资源节点的空闲资源量,每个资源节点的空闲资源量用于该调度装置部署待部署应用。
在一种可能的设计中,检测装置还包括确定单元,该确定单元,用于根据获取单元获取的与每个资源节点对应的监测数据和预设的与每个已部署的应用对应的服务等级协议SLA条件,确定该多个资源节点上已部署的所有应用中存在至少一个待调整应用,该待调整应用的性能数据不满足该待调整的应用对应的SLA条件;该发送单元,还用于向该调度装置发送调度决策消息,该调度决策消息中包括该至少一个待调整的应用的标识和调整指令,该调整指令用于指示该调度装置重新部署该至少一个待调整应用。
本发明实施例提供的检测装置的技术效果可以参见上述第二方面或第二方面的各个可选方式的技术效果,此处不再赘述。
需要说明的是,上述第一方面至第四方面中所述的待部署应用和待调整应用可以是在容器应用,也可以是运行在非容器环境中的应用。
第五方面,本发明实施例提供了一种调度装置,该调度装置可以实现上述方面所涉及方法中调度装置所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件 实现。所述硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该调度装置的结构中包括处理器和通信接口,该处理器被配置为支持该调度装置执行上述方法中相应的功能。该通信接口用于支持该调度装置与其他网元之间的通信。该调度装置还可以包括存储器,该存储器用于与处理器耦合,其保存该调度装置必要的程序指令和数据。
第六方面,本发明实施例提供一种可读介质,包括计算机执行指令,当调度装置的处理器执行所述计算机执行指令时,所述调度装置执行如上述第一方面或第一方面的任意一种实现方式中所述的应用部署方法。
第七方面,本发明实施例提供了一种检测装置,该检测装置可以实现上述方面所涉及方法实施例中检测装置所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
在一种可能的设计中,该检测装置的结构中包括处理器和通信接口,该处理器被配置为支持该检测装置执行上述方法中相应的功能。该收发器用于支持该检测装置与其他网元之间的通信。该检测装置还可以包括存储器,该存储器用于与处理器耦合,其保存该检测装置必要的程序指令和数据。
第八方面,本发明实施例提供一种可读介质,包括计算机执行指令,当检测装置的处理器执行所述计算机执行指令时,所述检测装置执行如上述第二方面或第二方面的任意一种实现方式中所述的应用部署方法。
第九方面,本发明实施例提供了一种通信系统,该系统包括上述方面所述的调度装置和检测装置。
相较于现有技术,在本发明实施例提供的通信系统中,调度装置能够基于资源节点的SLA条件,将待部署应用部署在满足该待部署应用的资源需求的资源节点上,使得应用的部署不再受限于固定的亲和性关系,从而调度装置可以在满足SLA条件的情况下,更加高效的部署更多的应用,提高了应用部署的成功率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,并不是全部的实施例。
图1为本发明实施例提供的一种通信系统框图;
图2为本发明实施例提供的一种物理机的结构示意图;
图3为本发明实施例提供的一种应用调度方法的交互图;
图4为本发明实施例提供的一种应用调度方法的场景示意图一;
图5为本发明实施例提供的一种应用调度方法的场景示意图二;
图6为本发明实施例提供的一种应用调度方法的场景示意图三;
图7为本发明实施例提供的一种应用调度方法的场景示意图四;
图8为本发明实施例提供的一种应用调度方法的场景示意图五;
图9为本发明实施例提供的一种监测方法的交互图;
图10为本发明实施例提供的一种动态调整方法的交互图;
图11为本发明实施提供的一种Apache容器应用和MySQL容器应用的网络架构示意图;
图12A为本发明实施例提供的一种调度装置的结构示意图一;
图12B为本发明实施例提供的一种调度装置的结构示意图二;
图12C为本发明实施例提供的一种调度装置的结构示意图三;
图13A为本发明实施例提供的一种检测装置的结构示意图一;
图13B为本发明实施例提供的一种检测装置的结构示意图二;
图13C为本发明实施例提供的一种检测装置的结构示意图三;
图14A为本发明实施例提供的一种部署管理装置的结构示意图一;
图14B为本发明实施例提供的一种部署管理装置的结构示意图二;
图14C为本发明实施例提供的一种部署管理装置的结构示意图三。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
如图1所示,为本发明实施例提供的一种通信系统,包括部署管理装置、调度装置、检测装置、多个代理装置以及每个代理装置对应的资源节点。部署管理装置与调度装置连接,调度装置与检测装置以及每个代理装置连接,检测装置也与每个代理装置连接。
其中,资源节点可以是虚拟机,也可以是物理机,每个资源节点上可以部署多个应用,例如,应用A、应用B和应用C等。
部署管理装置为用户提供配置界面,支持用户输入、修改待部署应用集合、部署条件以及应用之间的亲和性关系等信息,并将用户配置的信息发送至调度装置,以触发调度装置调用相关的配置条件以及亲和性关系,对待部署应用进行部署。
其中,应用之间的亲和性关系可以包括亲和性和反亲和性,亲和性用于指示至少两个应用要求部署在同一资源节点上,例如,共享存储的至少两个应用,共享网络的至少两个应用,或是需要进行信息交互的至少两个应用等具备高度时延敏感的应用,为了满足时延要求,这些应用通常被绑定在同一资源节点上,即在本发明实施例中,可以将需要部署在同一资源节点上的应用之间关系称为绑定关系。
例如,订购前端应用(Order Web App)和订购后端服务(Order Service)是两个绑定的应用,需要进行信息交互,那么为了提高订购前端应用和订购后端服务之间的通信效率,可以将订购前端应用和订购后端服务部署在同一资源节点上。
反亲和性用于指示至少两个应用要求部署在不同的资源节点上,例如,存在端口冲突的至少两个应用,存在CPU竞争的至少两个应用等存在资源竞争的应用,为了保证每个应用的进程具有独立的高可靠性资源,这些应用通常被部署在不同的资源节点上。在本发明实施例中,可以将需要部署在不同的资源节点上的应用之间关系称为资源竞争关系。
例如,同一个集群中的应用之间具有资源竞争关系,那么为了保证同一集群中每个应用的业务质量,且为了避免一个资源节点出现故障,而导致整个集群中的应用都停止运行,同一集群中的应用要求被部署在不同的资源节点上。
调度装置负责存储相关的配置条件以及应用之间的亲和性关系,并根据配置条件以及应用之间的亲和性关系,对待部署应用进行部署,以及对已部署但需要调整的应用进行重新部署。
检测装置通过对已部署的应用的性能数据进行分析监测,分析已部署的应用中是否存在 需要调整的应用,并及时触发调度装置对需要调整的应用进行重新部署。
代理装置负责实时监控与其对应的资源节点上运行的应用,并将收集的应用的性能数据发送至检测装置。
在本发明实施例中,每一个代理装置可以都可以集成在其对应的资源节点上,也可以为独立于其对应的资源节点的虚拟机或者物理机。
部署管理装置、调度装置和检测装置可以分别为独立的物理机,也可以分别为运行在同一物理机上的独立的进程或者独立的线程等。
如图2所示,为本发明实施例提供的一种物理机,包括:处理器、存储器、总线、输入输出接口和通信接口。总线是连接处理器、存储器、输入输出接口和通信接口,并且在处理器、存储器、输入输出接口和通信接口之间实现数据传输。例如,处理器通过总线从输入输出接口接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器可以包括程序模块,例如内核(kernel),中间件(middleware),应用程序接口(AP)和应用等。程序模块可以由软件、固件、硬件或其中的至少两种组成。输入输出接口转发用户通过输入设备(例如感应器、键盘、触摸屏)输入的命令或数据。通信接口将本物理机与其他的物理机、网络进行连接。例如,通信接口可以通过有线或无线连接到网络以连接到外部其它的物理机。可选的,该物理机上还可以包括显示设备,用于向用户显示由用户输入的配置信息以及向用户显示操作界面等。
值得说明的是,在本发明实施例提供的应用部署方法,适用于容器应用,也适用于运行在非容器环境中的应用。
对于容器应用,在本发明实施例中,可以将运行在同一容器中的至少一个容器应用视为一个应用整体,通过本发明实施例提供的应用部署方法同样适用于该应用整体,也就是说,本发明实施例提供的应用部署方法同样适用于容器部署的过程。
基于如图1所示的通信系统,本发明实施例提供的应用部署方法,如图3所示,该方法可以包括:
S101、部署管理装置向调度装置发送应用集合,该应用集合包括该应用集合中的每个待部署应用与该待部署应用的资源需求之间的对应关系。
其中,应用集合为用户通过该部署管理装置提供的配置界面输入到该部署管理装置中,然后由该部署管理装置将该应用集合发送至调度装置的,用于指示调度装置对应用集合中的待部署应用进行部署。
该应用集合中包括至少一个待部署应用和每个待部署应用的资源需求,每个待部署应用和其资源需求相互对应,调度装置可以根据该对应关系,将每个待部署应用部署在能够满足其对应资源需求的资源节点上。
示例性的,待部署应用的资源需求可以包括该待部署应用所需的CPU资源和内存资源,还可以包括其他部署该待部署应用所需的物理资源或者虚拟资源。
S102、调度装置获取多个资源节点中每个资源节点的空闲资源量和预设的部署条件,该部署条件包括每个资源节点的预设SLA条件。
其中,每个资源节点的预设SLA条件可以包括该资源节点的CPU使用率的上限、内存使用率的上限或者其他上限参数等。
可选的,调度装置可以从部署管理装置中获取部署条件,也可以从本地获取预先存储的 部署条件。
示例性的,该部署条件为用户通过部署管理装置提供的界面输入到部署管理装置中的,当调度装置请求获取该部署条件时,可以由部署管理装置将该部署条件发送至调度装置。或者,部署管理装置也可以在接收到用户输入的部署条件后,直接将该部署条件发送至调度装置,由调度装置将该部署条件存储在本地,当调度装置对待部署应用进行部署时,该调度装置可以直接从本地读取存储的部署条件。
可选的,调度装置也可以通过多种方式获取每个资源节点的空闲资源量。例如,调度装置可以从检测装置接收每个资源节点的空闲资源量,也可以从本地维护的多个资源节点的资源使用情况数据库中获取,其中,资源使用情况数据库中包括每个资源节点的属性信息,每个资源节点上部署的应用的信息,以及每个资源节点的空闲资源量等。检测装置可以周期性的上报每个资源节点的空闲资源量,从而调度装置对本地维护的资源使用情况数据库进行更新。
S103、对于每个待部署应用,调度装置根据部署条件,将待部署应用部署在空闲资源量满足该待部署应用的资源需求的资源节点上,其中,部署该待部署应用后的资源节点的SLA参数满足该资源节点的预设SLA条件。
示例性的,以应用A为例,假设应用A为该应用集合中的一个待部署应用,该应用A的资源需求包括5%的CPU资源,以及300M的内存资源,每个资源节点的SLA条件均包括:内存使用率的上限为75%,CPU使用率的上限为80%。调度装置根据获取的每个资源节点的空闲资源量,确定空闲资源量能够满足应用A的资源需求,且CPU使用率增加5%后仍然小于80%,内存的使用量增加300M之后使用率仍然小于75%的资源节点。
例如,调度装置确定该多个资源节点中的资源节点1的CPU使用率为20%,有80%的空闲CPU资源,资源节点1的2G的内存中还有1.5G未使用,即资源节点1的空闲资源量能够满足应用A的资源需求,且CPU使用率增加5%之后为25%,仍然小于80%,资源节点1的内存使用量增加300M之后,内存使用率为40%,仍然小于75%,调度装置可以确定资源节点1为满足应用A的部署要求的资源节点,从而调度装置可以将应用A部署在资源节点1上,且能够保证部署了应用A之后,资源节点1的SLA参数,包括CPU使用率和内存使用率,满足资源节点1的预设SLA条件。
需要说明的是,该多个资源节点中可能存在多个能够满足应用A的部署要求的资源节点,调度装置可以随机选择其中一个资源节点部署应用A,也可以在确定的第一个能够满足应用A的部署要求的资源节点上部署应用A,对此,本发明实施例不做限制。
通过本发明实施例提供的应用调度方法,调度装置能够基于资源节点的SLA条件,将待部署应用部署在满足该待部署应用的资源需求的资源节点上,使得应用的部署不再受限于固定的亲和性关系,从而调度装置可以在满足SLA条件的情况下,更加高效的部署更多的应用,提高了应用部署的成功率。
在一个示例中,若部署管理装置发送的应用集合中还包括该应用集合中待部署应用之间的亲和性关系,那么调度装置还可以根据部署条件和该亲和性关系对应用集合中的待部署应用进行部署。
在本发明实施例中,若该应用集合中存在具有绑定关系的待部署应用,则可以将具有绑定关系的待部署应用确定为一组待部署应用,例如,应用A和应用B具有绑定关系,则应用A和应用B为一组待部署应用。若该应用集合中的应用A和应用B分别具有3个实例,为应 用A1、应用A2、应用A3和应用B1、应用B2、应用B3,那么应用A1和应用B1可以为一组待部署应用,应用A2和应用B2可以为一组待部署应用,应用A3和应用B3可以为一组待部署应用。
需要说明的是,应用A1、应用A2和应用A3是完全相同的应用,都为应用A,在本发明实施例中,为了便于描述,将这三个实例分别称为应用A1、应用A2和应用A3。同理,应用B1、应用B2、应用B3也是完全相同的应用,都为应用B。
对于该应用集合中的每一组待部署应用,调度装置都可以根据部署条件,将一组待部署应用部署在空闲资源量满足这一组待部署应用的总资源需求的资源节点上,其中,部署这一组待部署应用后的资源节点的SLA参数满足该资源节点的预设SLA条件。
示例性的,以应用集合中的应用A1和应用B1这一组待部署应用为例,假设,应用A1的资源需求包括5%的CPU资源,以及300M的内存资源,应用B1的资源需求包括8%的CPU资源,以及200M的内存资源,那么应用A1和应用B1的总资源需求为500M的内存资源和13%的CPU资源,每个资源节点的SLA条件均包括:内存使用率的上限为75%,CPU使用率的上限为80%。调度装置根据获取的每个资源节点的空闲资源量,确定空闲资源量能够满足应用A1和应用B1的总资源需求,且CPU使用率增加13%后仍然小于80%,内存的使用量增加500M之后使用率仍然小于75%的资源节点。
例如,调度装置确定资源池中的资源节点1的空闲资源量能够满足应用A1和应用B1的总资源需求,且CPU使用率增加13%之后为33%,仍然小于80%,资源节点1的内存使用量增加500M之后,内存使用率为49%,仍然小于75%,调度装置即可确定资源节点1满足应用A1和应用B1的部署要求的资源节点,从而调度装置可以将应用A1和应用B1部署在资源节点1上,且能够保证部署了应用A1和应用B1之后,资源节点1的SLA参数,包括33%的CPU使用率,49%的内存使用率,仍然满足资源节点1的预设SLA条件。
同理,调度装置可以按照对应用A1和应用B1的部署过程,对应用集合中的应用A2和应用B2,以及应用A3和应用B3这两组待部署应用进行部署,示例性的,如图4所示,调度装置将应用A2和应用B2部署在能够部署应用A2和应用B2的资源节点2上,将应用A3和应用B3部署在能够部署应用A3和应用B3的资源节点3上。
在一个示例性,若调度装置在部署每一组待部署应用之前,该多个资源节点上具有已部署的应用,那么调度装置在部署每一组待部署应用时,该调度装置可以根据部署条件,将一组待部署应用部署在空闲资源量满足这一组待部署应用的总资源需求,且已部署的应用与这一组待部署应用不具备资源竞争关系的资源节点上。
例如,应用A的3个实例应用A1、应用A2、应用A3之间具备资源竞争关系,应用B的3个实例应用B1、应用B2、应用B3之间也具备资源竞争关系。那么,如图4所示,当调度装置将应用A1和应用B1部署在资源节点1上之后,在部署应用A2和应用B2时,由于资源节点1上已部署了与应用A2具备资源竞争关系的应用A1,与应用B2具备资源竞争关系的应用B1,因此,调度装置需要选择资源池中的其他资源节点部署应用A2和应用B2。假设资源节点2上未部署与应用A2和/或应用B2之间具备资源竞争关系的应用,且资源节点2的空闲资源量能够满足应用A2和应用B2的总资源需求,以及能够保证在部署了应用A2和应用B2之后,资源节点2的SLA参数仍满足资源节点2的SLA条件,那么调度装置可以将应用A2和应用B2部署在资源节点2上。
同理,当调度装置将应用A2和应用B2部署在资源节点2上后,在部署应用A3和应用 B3时,需要选择除资源节点1和资源节点2以外的资源节点来部署应用A3和应用B3。
进一步的,对于应用集合中除了每一组具有绑定关系的待部署应用之外的每一个待部署应用,或者,对于应用集合中不存在具有绑定关系的待部署应用时,该应用集合中的每一个待部署应用,该调度装置可以根据部署条件,将待部署应用部署在空闲资源量满足该待部署应用的资源需求,且已部署的应用与该待部署应用不具备资源竞争关系的资源节点上。
可以理解的是,该资源节点上已部署的应用与该待部署应用之间不具备亲和性关系,或者具备绑定关系。
示例性的,当调度装置部署应用C集群中的3个实例应用C1、应用C2以及应用C3时,调度装置需要根据部署条件,将应用C1、应用C2以及应用C3分别部署在已部署的应用与应用C不具备资源竞争关系的三个不同的资源节点上。如图5所示,调度装置根据部署条件以及亲和性关系,将应用C1、应用C2以及应用C3分别部署在资源节点1、资源节点2以及资源节点3上。
在一个示例中,调度装置在部署每一个待部署应用之前,可以先判断多个资源节点中是否存在满足待部署应用的部署要求的资源节点,即是否存在部署了该待部署应用后,SLA参数满足对应的预设SLA条件的资源节点。
若调度装置确定该多个资源节点中不存在部署了该待部署应用后,SLA参数满足对应的预设SLA条件的资源节点,该调度装置即可对该多个资源节点上已部署的部分应用进行重新部署,以使得该多个资源节点中的部分资源节点的空闲资源量增大,进而该调度装置即可根据部署条件,将该待部署应用部署在该部分资源节点中空闲资源量满足该待部署应用的资源需求的资源节点上。
示例性的,当调度装置在部署应用A3时,确定资源池中的资源节点1、资源节点2以及资源节点3,均无法满足应用A3的部署要求。调度装置可以对资源节点1、资源节点2以及资源节点3上已部署的部分应用进行重新部署。
具体的,如图6所示,调度装置确定若将资源节点3上已部署的应用C3删除,使得资源节点3的空闲资源量增大,资源节点3则满足应用A3的部署要求,而资源节点2能够满足应用C3的部署要求。从而,调度装置可以将资源节点3上已部署的应用C3重新部署在资源节点2上。其中,资源节点3上已部署的应用C3为应用C的一个实例,调度装置可以将资源节点3上已部署的应用C3停止运行并删除,然后在资源节点2上部署应用C的一个新的实例应用C4,再将应用A3部署在资源节点2上。
在这一示例中,当多个资源节点的空闲资源量不满足待部署应用的部署要求时,可以通过重新部署该多个资源节点上的已部署的部分应用的方式,增大多个资源节点中部分资源节点的空闲资源量,以使得该部分资源节点中存在能够该待部署应用的部署需求的资源节点,从而完成该待部署应用的部署,进一步提高了待部署应用的部署成功率。
基于上述如图3至图6所述的应用调度方法,本发明实施例提供一种优选的应用调度方法,具体为:
调度装置接收到应用集合后,首先根据部署条件和应用集合中的待部署应用之间的亲和性关系,对应用集合中的待部署应用进行部署,包括:参照图4所示的方法,将具有绑定关系的待部署应用部署在同一资源节点上,参照图5所示的方法,将具有资源竞争关系的待部署应用部署在不同的资源节点上,且每个待部署应用所在的资源节点的SLA参数满足该资源节点的SLA条件。
若调度装置无法在同时满足部署条件和亲和性关系的情况下完成对待部署应用的部署,调度装置则可以在保证满足部署条件的情况下,优先确定是否能够按照亲和性关系完成部署,当按照亲和性关系进行部署无法完成部署时,则可以不考虑亲和性关系。
示例性的,如图7所示,当调度装置根据部署条件和亲和性关系,将应用集合中具有绑定关系的应用A1和应用B1部署在资源节点1上,将具有绑定关系的应用A2和应用B2部署在资源节点2上后,对于应用集合中剩余的一组具有绑定关系的待部署应用,即应用A3和应用B3,调度装置确定该个资源节点中不存在能够A3和应用B3的部署要求的资源节点(即空闲资源量满足应用A3和应用B3的总资源需求,且在部署了应用A3和应用B3之后,SLA参数能够满足对应SLA条件的资源节点),那么,调度装置即可根据部署条件,将应用A3和应用B3分开部署,例如,将应用A3部署在资源节点4上,部署了应用A3的资源节点4的SLA参数满足资源节点4的SLA条件,将应用B3部署在资源节点5上,部署了应用B3的资源节点5的SLA参数满足资源节点5的SLA条件。
当调度装置根据部署条件和亲和性关系,将应用C集群中的实例应用C1部署在资源节点6上,将应用C2部署在资源节点7上后,对于应用C集群中剩余的一个实例应用C3,若调度装置确定该多个资源节点中不存在能够满足应用C3的部署要求的资源节点,那么,调度装置即可根据部署条件,将应用C3部署在空闲资源量满足应用C3的资源需求,且在在部署了应用C3之后,SLA参数能够满足对应SLA条件的资源节点7上。
进一步的,若调度装置无法在满足部署条件的情况下完成对待部署应用的部署,调度装置则可以按照如图6所示的方法,对多个节点上部分已部署的应用进行重新部署,以调节该多个资源节点中的部分资源节点的空闲资源量,再根据部署条件,将该待部署应用部署在该部分资源节点上进行部署。
通过该优选的应用调度方法,调度装置能够实现对待部署应用的动态部署,基于资源节点的SLA条件,灵活地选择部署方案,完成对待部署应用的部署,不再受限于固定的亲和性关系,从而提高了应用部署的成功率。
进一步的,调度装置获取的部署条件还可以包括每个资源节点所属的租户空间。
在本发明实施例中,调度装置接收到的应用集合还包括每个待部署应用的租户信息。调度装置通过对每个待部署应用的租户信息进行鉴权,以确定每个待部署应用请求访问的租户空间。
示例性的,该调度装置可以包括多租户资源选择子模块,该多租户资源选择子模块集成对接第三方的多租户管理系统,能够在该多租户管理系统的控制下对每个待部署应用的租户信息进行鉴权,确定每个待部署应用请求访问的租户空间,并在每个待部署应用请求访问的租户空间中查询待部署应用可以访问的资源节点。进而,调度装置即可按照上述图3至图7所示的方案,在每个待部署应用能够访问的租户空间中,对该待部署应用进行部署。
示例性的,如图8所示,调度装置接收到应用集合后,通过对应用集合中的应用A的租户信息、应用B的租户信息以及应用C的租户信息进行鉴权,确定应用A和应用B请求访问租户空间1中的资源节点,应用C访问请求访问租户空间2中的资源节点。其中,应用A和应用B具有绑定关系,调度装置可以根据如图4所示的方法,将应用A和应用B的多个实例部署在租户空间1中的资源节点上。应用C为一个应用集群,调度装置可以根据如图5所示的方法,将应用C的多个实例分别部署在租户空间2中的不同的资源节点上。
可以理解的时,不同的租户信息表征对应的待部署应用请求访问不同的租户空间中的资 源节点,即租户信息不同,应用可以部署的资源节点就同,从而能够有效地进行待部署应用之间的隔离,实现在应用的部署过程中的安全控制。
可选的,本发明实施例提供的部署条件,还可以包括其他根据部署需求设置的条件,例如,允许在同一资源节点部署具有资源竞争关系的应用的个数上限、允许在不同资源节点上部署具有绑定关系的应用的比例上限、用于过滤主机的特定IP地址、标识以及名称等,对此,本发明不做限制。
基于上述图3至图8所示的方法,本发明实施例还提供一种监测方法,可以对每个资源节点的资源使用情况进行监测,如图9所示,该方法可以包括:
S201、每个代理装置采集对应资源节点的监测数据。
其中,监测数据包括对应资源节点上已部署的应用的性能数据,例如,资源节点上已部署的应用在运行时的实际CPU使用率、实际内存使用率等。
S202、每个代理装置将采集的监测数据发送至检测装置。
S203、检测装置根据接收到的监测数据计算每个监测数据所对应的资源节点的空闲资源量。
示例性的,以资源节点1为例,资源节点1上运行了应用A1、应用B1、应用C1、应用C2以及应用D1,应用A1在运行过程中的实际CPU使用率为20%,实际内存使用量为300M,应用B1在运行过程中的实际CPU使用率为30%,实际内存使用量为180M,应用C1和在运行过程中的实际CPU使用率为10%,实际内存使用量为160M,应用C2在运行过程中的实际CPU使用率为10%,实际内存使用量为160M,应用D2在运行过程中的实际CPU使用率为15%,实际内存使用量为350M。检测装置通过计算应用A1、应用B1、应用C1、应用C2以及应用D1的性能数据,可以确定资源节点1当前还剩余15%的空闲CPU资源,800M的内存资源。
S204、检测装置向调度装置发送计算的每个资源节点的空闲资源量。
可以理解的是,每个应用在部署过程中所估计的资源需求和该应用在运行过程中实际使用的资源可能并不完全相等。应用在运行过程中实际使用的资源可能大于在部署过程中估计的资源需求,也可能小于在部署过程中估计的资源需求。在本发明实施例中,检测装置通过实时监测每个资源节点的监测数据,计算每个资源节点当前的空闲资源量,发送至调度装置,以使得调度装置能够根据每个资源节点的有效空闲资源量,部署待部署应用,从而提高资源节点的资源使用效率。
进一步的,基于图9所述的方法,在上述S202之后,本发明还提供一种动态调整方法,如图10所示,该动态调整方法可以包括:
S301、检测装置根据与每个资源节点对应的监测数据和预设的与每个已部署的应用对应的SLA条件,确定多个资源节点上已部署的所有应用中存在至少一个待调整应用,待调整应用的性能数据不满足该待调整应用对应的SLA条件。
在本发明实施例中,当检测装置接收到每个代理装置发送的对应资源节点的监测数据后,可以根据监测数据对对应资源节点上已部署的应用进行监测。
其中,监测数据包括对应资源节点上每个已部署的应用的性能数据,该性能数据包括该已部署的应用在运行时的实际CPU使用率、实际内存使用率,还包括该已部署的应用业务数据接收的出错率,以及每秒建立呼叫数量(Call Attempts Per Second,CAPS)等。
该已部署的应用对应的SLA条件可以包括该已部署的应用本身的SLA条件,例如业务数据接收的出错率的上限,CAPS的上限等,该SLA条件还可以包括已部署的应用所在资源节点 的SLA条件,例如,该资源节点上每种应用的CPU使用率的上限,每种应用的内存使用率的上限等。
示例性的,假设应用A1对应的SLA条件包括:应用A1的业务数据接收的出错率的上限为5%,应用A1和应用B1的总CPU使用率的上限为20%。应用A1的性能数据包括:业务数据接收的出错率10%,应用A1在运行过程中的实际CPU使用率为20%,即应用A1的性能数据不满足应用A1对应的SLA条件,那么检测装置即可确定应用A1为一个待调整应用。
S302、检测装置向调度装置发送调度决策消息,该调度决策消息中包括至少一个待调整应用的标识和调整指令,该调整指令用于指示调度装置重新部署该至少一个待调整应用。
S303、对于至少一个待调整应用中的每个待调整应用,调度装置根据调整指令和部署条件,将该待调整应用重新部署在空闲资源量满足该待调整应用的资源需求的另一个资源节点上,其中,部署该待调整应用后的另一个资源节点的SLA参数满足该资源节点的预设SLA条件。
在发明实施例中,调度装置对每个待调整应用进行重新部署,可以包括:调度装置将待调整应用从该待调整应用原本所在的资源节点上停止运行并删除,然后根据部署条件,将该待调整应用的一个新的实例部署在空闲资源量满足该待调整应用的资源需求的另一个资源节点上。
示例性的,假设检测装置确定应用A1的性能数据不满足应用A1对应的SLA条件,从而检测装置将应用A1的标识和调整指令通过调度决策消息发送至调度装置,调度装置根据调整指令指示,确定对应用A1进行重新部署。应用A1为应用A的一个实例,调度装置对应用A1进行重新部署即为重新部署一个应用A的实例,并删掉已部署的实例应用A1。具体的,调度装置将部署在资源节点1上的应用A1停止运行,并从该资源节点1上删除应用A1。然后在除资源节点1之外的另一个资源节点上重新部署一个应用A的实例,例如,在资源节点8上部署应用A的一个新的实例应用A4,该资源节点8的空闲资源量满足应用A的资源需求,且部署了应用A4之后的资源节点8的SLA参数满足该资源节点8的SLA条件。
可以理解的是,调度装置对每个待调整应用进行重新部署的具体方式,可以参见如图3至图8任一所示的,调度装置对待部署应用进行部署的方法,此处不再赘述。
通过本发明实施例提供的动态调整的方法,检测装置能够实时监测每个已部署的应用的运行状态,并在确定已部署的应用中存在性能数据不满足对应的SLA条件的待调整应用时,及时指示调度装置对该待调整应用进行重新部署,提高应用在运行过程中的可靠性,优化系统的性能。
值得说明的是,本发明实施例提供的方案,可以应用在云计算中的各种大规模的应用集群软件部署场景中。
示例性的,如图11所示,为本发明实施提供的一种Apache(一种Web服务器)容器应用和MySQL(一种关系型数据库管理系统)容器应用的网络架构,Apache容器应用和MySQL容器应用用于完成Web应用的开发和部署。采用本发明实施例提供的方案,可以对Apache容器应用和MySQL容器应用进行部署。
在部署Apache容器应用和MySQL容器应用的过程中,调度装置可以优先根据资源节点的SLA条件将每一组Apache容器应用和MySQL容器应用部署在同一资源节点上,从而使得Apache容器应用可以直接在本机上访问MySQL容器应用的数据,以保证用户能够体验高性能低时延的服务效果。对于Apache容器应用和MySQL容器的集群,调度装置可以优先根据资 源节点的SLA条件,将不同组的Apache容器应用和MySQL容器部署在不同的资源节点上,从而避免由于一个资源节点的故障而导致整个系统无法运行。在Apache容器应用和MySQL容器的集群中,当调度装置无法将每一组Apache容器应用和MySQL容器按照亲和性关系进行部署时,调度装置可以优先将Apache容器应用和MySQL容器的集群中的部分Apache容器应用和MySQL容器按照亲和性关系进行部署,剩余的Apache容器应用和MySQL容器即可在满足资源节点的SLA条件的情况下,完成部署,以保证Apache容器应用和MySQL容器的集群中容器应用的部署成功率。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如调度装置、检测装置、部署管理装置、代理装置等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对调度装置、检测装置、部署管理装置、代理装置等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图12A示出了上述实施例中所涉及的调度装置的一种可能的结构示意图,调度装置包括:接收单元、获取单元和部署单元。接收单元用于支持调度装置执行如图3所示图3中的过程S101、图9中的过程S204以及图10中的过程S302;获取单元用于支持调度装置执行图3中的过程S102;部署单元用于支持调度装置执行图3中的过程S103以及图10中的过程S303。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图12B示出了上述实施例中所涉及的调度装置的一种可能的结构示意图。调度装置包括:处理模块1200和通信模块1201。处理模块1200用于对调度装置的动作进行控制管理,例如,处理模块1200用于支持调度装置执行图3中的过程S101-S103、图9中的过程S204以及图10中的过程S302和S303,和/或用于本文所描述的技术的其它过程。通信模块1201用于支持调度装置与其他网络实体的通信,例如与图1示出的功能模块或网络实体之间的通信。调度装置还可以包括存储模块1202,用于存储调度装置的程序代码和数据。
其中,处理模块1200可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1201可以是收发器、收发电路或通信接口 等。存储模块1202可以是存储器。
当处理模块1200为处理器,通信模块1201为通信接口,存储模块1202为存储器时,本发明实施例所涉及的调度装置可以为图12C所示的调度装置。
参阅图12C所示,该调度装置包括:处理器1210、通信接口1211、存储器1212以及总线1213。其中,通信接口1211、处理器1210以及存储器1212通过总线1213相互连接;总线1213可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12C中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用对应各个功能划分各个功能模块的情况下,图13A示出了上述实施例中所涉及的检测装置的一种可能的结构示意图,检测装置包括:获取单元,计算单元、发送单元以及确定单元。获取单元用于支持检测装置执行如图9中的过程S202;计算单元用于支持检测装置执行如图9中的过程S203;发送单元用于支持检测装置执行图9中的过程S204以及图10中的过程S302;确定单元用于支持检测装置执行如图10中的过程S301。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图13B示出了上述实施例中所涉及的检测装置的一种可能的结构示意图。检测装置包括:处理模块1300和通信模块1301。处理模块1300用于对检测装置的动作进行控制管理,例如,处理模块1300用于支持检测装置执行如图9中的过程S202-S204以及图10中的过程S301和S302,和/或用于本文所描述的技术的其它过程。通信模块1301用于支持检测装置与其他网络实体的通信,例如与图1示出的功能模块或网络实体之间的通信。检测装置还可以包括存储模块1302,用于存储检测装置的程序代码和数据。
其中,处理模块1300可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1301可以是通信接口、收发电路或通信接口等。存储模块1302可以是存储器。
当处理模块1300为处理器,通信模块1301为通信接口,存储模块1302为存储器时,本发明实施例所涉及的检测装置可以为图13C所示的检测装置。
参阅图13C所示,该检测装置包括:处理器1310、通信接口1311、存储器1312以及总线1313。其中,通信接口1311、处理器1310以及存储器1312通过总线1313相互连接;总线1313可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13C中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在采用对应各个功能划分各个功能模块的情况下,图14A示出了上述实施例中所涉及的部署管理装置的一种可能的结构示意图,部署管理装置包括:接收单元和发送单元。接收单元用于接收用户输入的应用集合以及部署条件;发送单元用于支持部署管理装置执行如图3中的过程S101。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图14B示出了上述实施例中所涉及的部署管理装置的一种可能的结构示意图。部署管理装置包括:处理模块1400和通信模块1401。处理模块1400用于对部署管理装置的动作进行控制管理,例如,处理模块1400用于支持部署管理装置执 行如图3中的过程S101和/或用于本文所描述的技术的其它过程。通信模块1401用于支持部署管理装置与其他网络实体的通信,例如与图1示出的功能模块或网络实体之间的通信。部署管理装置还可以包括存储模块1402,用于存储部署管理装置的程序代码和数据。
其中,处理模块1400可以是处理器或控制器,例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1401可以是通信接口、收发电路或通信接口等。存储模块1402可以是存储器。
当处理模块1400为处理器,通信模块1401为通信接口,存储模块1402为存储器时,本发明实施例所涉及的部署管理装置可以为图14C所示的部署管理装置。
参阅图14C所示,该部署管理装置包括:处理器1410、通信接口1411、存储器1412以及总线1413。其中,通信接口1411、处理器1410以及存储器1412通过总线1413相互连接;总线1413可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14C中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (18)

  1. 一种应用调度方法,其特征在于,所述方法包括:
    调度装置从部署管理装置接收应用集合,所述应用集合包括所述应用集合中的每个待部署应用与所述待部署应用的资源需求之间的对应关系;
    所述调度装置获取多个资源节点中每个资源节点的空闲资源量和预设的部署条件,所述部署条件包括所述每个资源节点的预设服务等级协议SLA条件;
    对于所述每个待部署应用,所述调度装置根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上,其中,部署所述待部署应用后的所述资源节点的SLA参数满足所述资源节点的预设SLA条件。
  2. 根据权利要求1所述的方法,其特征在于,所述调度装置获取多个资源节点中每个资源节点的空闲资源量,包括:
    所述调度装置从检测装置接收所述每个资源节点的空闲资源量。
  3. 根据权利要求1或2所述的方法,其特征在于,所述应用集合还包括所述应用集合中待部署应用之间的亲和性关系,所述亲和性关系包括所述应用集合中的待部署应用之间的绑定关系或资源竞争关系,所述应用集合中具有绑定关系的待部署应用为一组待部署应用,
    对于所述每个待部署应用,所述调度装置根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上,其中,部署所述待部署应用后的所述资源节点的SLA参数满足所述资源节点的预设SLA条件,包括:
    对于所述应用集合中的每一组待部署应用,所述调度装置根据所述部署条件,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求的资源节点上,其中,部署所述一组待部署应用后的所述资源节点的SLA参数满足所述资源节点的预设SLA条件。
  4. 根据权利要求3所述的方法,其特征在于,若所述调度装置根据所述部署条件,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求的资源节点上之前,所述多个资源节点上具有已部署的应用,
    所述调度装置根据所述部署条件,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求的资源节点上,包括:
    所述调度装置根据所述部署条件,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求,且已部署的应用与所述一组待部署应用不具备所述资源竞争关系的资源节点上。
  5. 根据权利要求1或2所述的方法,其特征在于,所述应用集合还包括所述应用集合中待部署应用的亲和性关系,所述亲和性关系包括所述应用集合中待部署应用之间的资源竞争关系,
    若所述调度装置根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上之前,所述多个资源节点上具有已部署的应用,
    所述调度装置根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上,包括:
    所述调度装置根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求,且已部署的应用与所述待部署应用不具备所述资源竞争关系的资源节点上。
  6. 根据权利要求1-5任一项所述的方法,其特征在于,所述调度装置根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上之前,所述方法还包括:
    所述调度装置确定所述多个资源节点中不存在部署所述待部署应用后,SLA参数满足对应的预设SLA条件的资源节点;
    所述调度装置对所述多个资源节点上已部署的部分应用进行重新部署,以使得所述多个资源节点中的部分资源节点的空闲资源量增大;
    所述调度装置根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上,包括:
    所述调度装置根据所述部署条件,将所述待部署应用部署在所述部分资源节点中空闲资源量满足所述待部署应用的资源需求的资源节点上。
  7. 根据权利要求2-6任一项所述的方法,其特征在于,所述方法还包括:
    所述调度装置接收所述检测装置发送的调度决策消息,所述调度决策消息中包括调整指令和至少一个待调整应用的标识,所述调整指令用于指示所述调度装置重新部署所述至少一个待调整应用的标识指示的所述至少一个待调整应用;
    对于所述至少一个待调整应用中的每个待调整应用,所述调度装置根据所述调整指令和所述部署条件,将所述待调整应用重新部署在空闲资源量满足所述待调整应用的资源需求的另一个资源节点上,其中,部署所述待调整应用后的所述另一个资源节点的SLA参数满足所述另一个资源节点的预设SLA条件。
  8. 一种应用调度方法,其特征在于,所述方法包括:
    检测装置获取与多个资源节点中的每个资源节点对应的监测数据,所述监测数据包括所述资源节点上已部署的应用的性能数据;
    所述检测装置根据所述监测数据计算所述资源节点的空闲资源量;
    所述检测装置向调度装置发送计算的所述每个资源节点的空闲资源量,所述每个资源节点的空闲资源量用于所述调度装置部署待部署应用。
  9. 根据权利要求8所述的方法,其特征在于,所述方法还包括:
    所述检测装置根据与所述每个资源节点对应的监测数据和预设的与每个已部署的应用对应的服务等级协议SLA条件,确定所述多个资源节点上已部署的所有应用中存在至少一个待调整的应用,所述待调整应用的性能数据不满足所述待调整应用对应的SLA条件;
    所述检测装置向所述调度装置发送调度决策消息,所述调度决策消息中包括所述至少一个待调整应用的标识和调整指令,所述调整指令用于指示所述调度装置重新部署所述至少一个待调整应用。
  10. 一种调度装置,其特征在于,包括:
    接收单元,用于从部署管理装置接收应用集合,所述应用集合包括所述应用集合中的每个待部署应用与所述待部署应用的资源需求之间的对应关系;
    获取单元,用于获取多个资源节点中每个资源节点的空闲资源量和预设的部署条件,所述部署条件包括所述每个资源节点的预设服务等级协议SLA条件;
    部署单元,用于对于所述每个待部署应用,根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上,其中,部署所述待部署应用后的所述资源节点的SLA参数满足所述资源节点的预设SLA条件。
  11. 根据权利要求10所述的调度装置,其特征在于,
    所述获取单元获取多个资源节点中每个资源节点的空闲资源量时,具体包括:所述获取单元从检测装置接收所述每个资源节点的空闲资源量。
  12. 根据权利要求10或11所述的调度装置,其特征在于,所述接收单元接收到的所述应用集合还包括所述应用集合中待部署应用之间的亲和性关系,所述亲和性关系包括所述应用集合中的待部署应用之间的绑定关系或资源竞争关系,所述应用集合中具有绑定关系的待部署应用为一组待部署应用,
    所述部署单元,具体用于对于所述应用集合中的每一组待部署应用,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求的资源节点上,其中,部署所述一组待部署应用后的所述资源节点的SLA参数满足所述资源节点的预设SLA条件。
  13. 根据权利要求12所述的调度装置,其特征在于,若所述部署单元根据所述部署条件,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求的资源节点上之前,所述多个资源节点上具有已部署的应用,
    所述部署单元根据所述部署条件,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求的资源节点上,具体包括:
    所述部署单元根据所述部署条件,将所述一组待部署应用部署在空闲资源量满足所述一组待部署应用的总资源需求,且已部署的应用与所述一组待部署应用不具备所述资源竞争关系的资源节点上。
  14. 根据权利要求10或11所述的调度装置,其特征在于,所述接收单元接收到的所述应用集合还包括所述应用集合中待部署应用的亲和性关系,所述亲和性关系包括所述应用集合中待部署应用之间的资源竞争关系,
    若所述部署单元根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上之前,所述多个资源节点上具有已部署的应用,
    所述部署单元根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上,具体包括:
    所述部署单元根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求,且已部署的应用与所述待部署应用不具备所述资源竞争关系的资源节点上。
  15. 根据权利要求10-14任一项所述的调度装置,其特征在于,
    所述部署单元,还用于在根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上之前,确定所述多个资源节点中不存在部署所述待部署应用后,SLA参数满足对应的预设SLA条件的资源节点;并对所述多个资源节点上已部署的部分应用进行重新部署,以使得所述多个资源节点中的部分资源节点的空闲资源量增大;
    所述部署单元根据所述部署条件,将所述待部署应用部署在空闲资源量满足所述待部署应用的资源需求的资源节点上,具体包括:
    所述部署单元根据所述部署条件,将所述待部署应用部署在所述部分资源节点中空闲资源量满足所述待部署应用的资源需求的资源节点上。
  16. 根据权利要求11-15任一项所述的调度装置,其特征在于,
    所述接收单元,还用于接收所述检测装置发送的调度决策消息,所述调度决策消息中包 括调整指令和至少一个待调整应用的标识,所述调整指令用于指示所述部署单元重新部署所述至少一个待调整应用的标识指示的所述至少一个待调整应用;
    所述部署单元,还用于对于所述至少一个待调整应用中的每个待调整应用,根据所述调整指令和所述部署条件,将所述待调整应用重新部署在空闲资源量满足所述待调整应用的资源需求的另一个资源节点上,其中,部署所述待调整应用后的所述另一个资源节点的SLA参数满足所述另一个资源节点的预设SLA条件。
  17. 一种检测装置,其特征在于,包括:
    获取单元,用于获取与多个资源节点中的每个资源节点对应的监测数据,所述监测数据包括所述资源节点上已部署的应用的性能数据;
    计算单元,用于根据所述获取单元获取的所述监测数据计算所述资源节点的空闲资源量;
    发送单元,用于向调度装置发送所述计算单元计算的所述每个资源节点的空闲资源量,所述每个资源节点的空闲资源量用于所述调度装置部署待部署应用。
  18. 根据权利要求17所述的检测装置,其特征在于,所述检测装置还包括确定单元,
    所述确定单元,用于根据所述获取单元获取的与所述每个资源节点对应的监测数据和预设的与每个已部署的应用对应的服务等级协议SLA条件,确定所述多个资源节点上已部署的所有应用中存在至少一个待调整应用,所述待调整应用的性能数据不满足所述待调整应用对应的SLA条件;
    所述发送单元,还用于向所述调度装置发送调度决策消息,所述调度决策消息中包括所述至少一个待调整的应用的标识和调整指令,所述调整指令用于指示所述调度装置重新部署所述至少一个待调整应用。
PCT/CN2017/091275 2016-09-13 2017-06-30 一种应用调度方法及装置 WO2018049873A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610822030.XA CN107818013A (zh) 2016-09-13 2016-09-13 一种应用调度方法及装置
CN201610822030.X 2016-09-13

Publications (1)

Publication Number Publication Date
WO2018049873A1 true WO2018049873A1 (zh) 2018-03-22

Family

ID=61601051

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/091275 WO2018049873A1 (zh) 2016-09-13 2017-06-30 一种应用调度方法及装置

Country Status (2)

Country Link
CN (1) CN107818013A (zh)
WO (1) WO2018049873A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112202879A (zh) * 2020-09-29 2021-01-08 中移(杭州)信息技术有限公司 中间件管理方法、装置、电子设备和存储介质
CN117331650A (zh) * 2023-10-31 2024-01-02 中科驭数(北京)科技有限公司 容器集的调度方法、装置、设备及存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109375992A (zh) * 2018-08-17 2019-02-22 华为技术有限公司 一种资源调度方法及装置
CN109246232A (zh) * 2018-09-30 2019-01-18 西安万像电子科技有限公司 数据传输方法、系统及装置
CN111625344B (zh) * 2019-02-27 2023-07-04 阿里巴巴集团控股有限公司 应用系统中的资源调度系统、方法及装置
CN110838939B (zh) * 2019-10-11 2022-04-08 许继集团有限公司 一种基于轻量级容器的调度方法及边缘物联管理平台
CN111176697B (zh) * 2020-01-02 2024-02-13 广州虎牙科技有限公司 服务实例部署方法、数据处理方法及集群联邦
CN113220439B (zh) * 2021-06-03 2023-08-18 北京奇艺世纪科技有限公司 设备上线控制方法、装置、电子设备及可读存储介质
CN115756823B (zh) * 2022-10-20 2024-04-16 广州汽车集团股份有限公司 服务发布方法、装置、车辆及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279771A (zh) * 2011-09-02 2011-12-14 北京航空航天大学 一种虚拟化环境中自适应按需资源分配的方法及系统
CN102932279A (zh) * 2012-10-30 2013-02-13 北京邮电大学 一种云环境数据中心多维资源调度系统及方法
CN103491151A (zh) * 2013-09-13 2014-01-01 中安消技术有限公司 一种云计算资源的调度方法、装置及云计算平台
US20140280961A1 (en) * 2013-03-15 2014-09-18 Frank Martinez System and method for a cloud computing abstraction with multi-tier deployment policy
CN104184685A (zh) * 2013-05-27 2014-12-03 华为技术有限公司 数据中心资源分配方法、装置及系统
CN105119952A (zh) * 2015-07-07 2015-12-02 北京京东尚科信息技术有限公司 云平台下自动弹性地分配资源的方法和系统
CN105279008A (zh) * 2014-07-21 2016-01-27 华为技术有限公司 一种用于虚拟机群节能的虚拟机迁移方法及装置
CN105335229A (zh) * 2014-07-25 2016-02-17 杭州华三通信技术有限公司 一种业务资源的调度方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760405B2 (en) * 2009-10-23 2017-09-12 International Business Machines Corporation Defining enforcing and governing performance goals of a distributed caching infrastructure
CN102469126B (zh) * 2010-11-10 2014-08-06 中国移动通信集团公司 一种应用调度系统、方法和相关装置
CN105939290B (zh) * 2012-08-14 2019-07-09 华为技术有限公司 一种分配资源的方法及装置
EP3110106B1 (en) * 2014-04-14 2019-11-06 Huawei Technologies Co., Ltd. Disaster recovery data center configuration method and apparatus in cloud computing architecture
CN105630604A (zh) * 2015-12-18 2016-06-01 国云科技股份有限公司 一种基于sla的多租户虚拟机资源分配方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279771A (zh) * 2011-09-02 2011-12-14 北京航空航天大学 一种虚拟化环境中自适应按需资源分配的方法及系统
CN102932279A (zh) * 2012-10-30 2013-02-13 北京邮电大学 一种云环境数据中心多维资源调度系统及方法
US20140280961A1 (en) * 2013-03-15 2014-09-18 Frank Martinez System and method for a cloud computing abstraction with multi-tier deployment policy
CN104184685A (zh) * 2013-05-27 2014-12-03 华为技术有限公司 数据中心资源分配方法、装置及系统
CN103491151A (zh) * 2013-09-13 2014-01-01 中安消技术有限公司 一种云计算资源的调度方法、装置及云计算平台
CN105279008A (zh) * 2014-07-21 2016-01-27 华为技术有限公司 一种用于虚拟机群节能的虚拟机迁移方法及装置
CN105335229A (zh) * 2014-07-25 2016-02-17 杭州华三通信技术有限公司 一种业务资源的调度方法和装置
CN105119952A (zh) * 2015-07-07 2015-12-02 北京京东尚科信息技术有限公司 云平台下自动弹性地分配资源的方法和系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112202879A (zh) * 2020-09-29 2021-01-08 中移(杭州)信息技术有限公司 中间件管理方法、装置、电子设备和存储介质
CN112202879B (zh) * 2020-09-29 2022-12-27 中移(杭州)信息技术有限公司 中间件管理方法、装置、电子设备和存储介质
CN117331650A (zh) * 2023-10-31 2024-01-02 中科驭数(北京)科技有限公司 容器集的调度方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN107818013A (zh) 2018-03-20

Similar Documents

Publication Publication Date Title
WO2018049873A1 (zh) 一种应用调度方法及装置
JP7197612B2 (ja) オンデマンドネットワークコード実行システム上での補助機能の実行
US20220050713A1 (en) Distributed Job Scheduling System
US10817331B2 (en) Execution of auxiliary functions in an on-demand network code execution system
US10701139B2 (en) Life cycle management method and apparatus
US10768960B2 (en) Method for affinity binding of interrupt of virtual network interface card, and computer device
EP3866441B1 (en) Scheduling method and apparatus, and related device
EP2701074B1 (en) Method, device, and system for performing scheduling in multi-processor core system
US9244817B2 (en) Remote debugging in a cloud computing environment
US10033816B2 (en) Workflow service using state transfer
EP3481007B1 (en) Method, apparatus and management server for processing resource pool
US10848366B2 (en) Network function management method, management unit, and system
JP2015144020A5 (zh)
US10686837B2 (en) Method and device for customizing security service
WO2015101091A1 (zh) 一种分布式资源调度方法及装置
WO2017177806A1 (zh) 一种管理资源的方法和装置
CN108319496B (zh) 资源访问方法、业务服务器、分布式系统及存储介质
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
US9507624B2 (en) Notification conversion program and notification conversion method
US20150370582A1 (en) At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane
JP2018537018A (ja) スケールアウト関連付けの方法および装置、ならびにシステム
US20140068165A1 (en) Splitting a real-time thread between the user and kernel space
US20160345283A1 (en) Method and apparatus for adjacent node registration, and method and system for cross-node registration
US10387195B2 (en) Method, apparatus, and computer-readable medium for performing a data exchange on a data exchange framework
US10360057B1 (en) Network-accessible volume creation and leasing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17850076

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17850076

Country of ref document: EP

Kind code of ref document: A1