TECHNICAL FIELD

Aspects of the present disclosure are directed to systems and methods for automatically updating compute resources in a cluster/compute group.

BACKGROUND

In general, software programs and applications may be adapted to run on a variety of platforms that require compute resources. As described herein, the compute resources may be updated over time, which may result in a combination of new and outdated or redundant compute resources. The systems and techniques described herein may be used to automatically update compute resources in order to achieve improved computer efficiency and performance.

SUMMARY

Example embodiments are generally directed to a computer-implemented method for automatically cycling outdated compute nodes in a compute group maintained by an orchestration system in communication with a resource provider. The method may include detecting a new cycle node request (CNR) object in the compute group, the CNR object including identifiers of one or more outdated compute nodes and an identifier of a method for deleting the one or more outdated compute nodes. The method may also include causing the resource provider to add one or more new compute resources to a resource group maintained by the resource provider that corresponds to the compute group maintained by the orchestration system. The method may also include causing the orchestration system to cordon the one or more outdated compute nodes and generating a cycle node status (CNS) object for each of the one or more outdated compute nodes, each CNS object including an identifier of a corresponding outdated compute node and the identifier of the method for deleting the outdated compute node. the method may also include, for each CNS object: deleting the corresponding outdated compute node based on the method for deleting the outdated compute node specified in the CNS object, causing the resource provider to terminate a corresponding compute resource in the corresponding resource group; and updating a state of the CNS object to successful upon successfully causing the resource provider to terminate the corresponding compute resource. The method may also include: monitoring the state of the CNS objects, and ending the method for automatically cycling the outdated compute nodes upon determining that the state of each of the CNS objects is successful.

Some example embodiments are directed to a system for automatically cycling outdated compute nodes in a compute group maintained by an orchestration system in communication with a resource provider. The system may include a cycling manager configured to: detect a new cycle node request (CNR) object in the compute group, the CNR object including identifiers of one or more outdated compute nodes and an identifier of a method for deleting the one or more outdated compute nodes, and initialize a state machine based on the CNR object. The state machine may be configured to: cause the resource provider to add one or more new compute resources to a resource group maintained by the resource provider that corresponds to the compute group maintained by the orchestration system; cause the orchestration system to cordon the one or more outdated compute nodes; generate a cycle node status (CNS) object for each of the one or more outdated compute nodes, each CNS object including an identifier of a corresponding outdated compute node and an identifier of a method for deleting the outdated compute node; and initialize a child state machine for each of the CNS objects. Each child state machine may be configured to: perform the method for deleting the outdated compute node specified in the CNS object, and cause the resource provider to terminate a corresponding compute resource in the corresponding resource group. The system may also be configured to update a state of the CNS object to successful; monitor the state of the CNS objects; and upon determining that the state of each of the CNS objects is successful, ending the state machine.

