Patent ID: 9594601
Date: 2017-03-14
CPC Classifications: G06F,H04L

Claim:
1. A method comprising: receiving a starting cluster layout for a first cluster, wherein the starting cluster layout is a current layout of the first cluster and comprises a first plurality of nodes; receiving a target cluster layout for the first cluster, wherein the first cluster is to be modified to transition from the starting cluster layout to the target cluster layout, and wherein the target cluster layout comprises a second plurality of nodes that is different from the first plurality of nodes, a node of the second plurality of nodes comprising hardware associated with a specified hardware type, an image for a computer or virtual machine associated with a specified image type, and a specified service comprising a service constraint comprising the specified hardware type and the specified image type; receiving a cluster management operation; determining, by a processing device, a plurality of node level tasks to transition the first cluster from the starting cluster layout to the target cluster layout in view of the cluster management operation; determining dependencies between the plurality of node level tasks; determining an order for the plurality of node level tasks based on the cluster management operation and the dependencies, wherein node level tasks that are not dependent on any other node level tasks are ordered before node level tasks that depend on other node level tasks; creating, by the processing device, an execution plan that divides the cluster management operation into the plurality of node level tasks in the determined order, wherein two or more of the plurality of node level tasks are executable in parallel; receiving a second cluster management operation to create or modify a second cluster for a second tenant, wherein the first cluster, a first task queue and a first provisioner are associated with a first tenant and are not viewable by the second tenant, and the second cluster is associated with a second task queue and a second provisioner that are not viewable by the first tenant; and determining an additional plurality of node level tasks to perform the second cluster management operation on the second cluster and creating a second execution plan that divides the second cluster management operation into the additional plurality of node level tasks.