Migrating a function between virtual machines
The technologies described herein are generally directed toward migrating a function between virtual machines. In an embodiment, a method can include identifying a cluster for scaling, deployed using a first node device of a set of node devices supporting the cluster, wherein the first node device has a first virtual machine deployed thereon to support a function of functions of the cluster. The method can further include, based on a scaling specification, deploying, by the system, a second virtual machine on a second node device. Finally, the method can include, based on the scaling specification, migrating, by the system, the function, from the first virtual machine to the second virtual machine.
1 . A method comprising:
identifying, by an orchestration system comprising at least one processor, a cluster for scaling, wherein the cluster comprises a first node device of a set of node devices supporting the cluster and is hosted by cloud computing equipment associated with a cloud provider, wherein the first node device comprises a first virtual machine deployed thereon to support a function of the cluster;
in response to the identifying, facilitating, by the orchestration system, a shutdown of the first node device, wherein the shutdown of the first node device initiates a flushing of at least one of data or volumes associated with the first node device to a journal of the first virtual machine;
in response to confirming, by the orchestration system, that the journal of the first virtual machine has been saved via the cloud computing equipment at the first node device, communicating, by the orchestration system to the cloud computing equipment, a scaling specification applicable to a second virtual machine deployed on a second node device of the set of node devices, also managed by the cloud computing equipment, wherein, based on the scaling specification, the cloud computing equipment:
scales the second virtual machine,
stores the journal on the second node device, and
migrates the function from the first virtual machine to the second virtual machine;
facilitating, by the orchestration system, starting the second virtual machine with access to the journal; and
employing, by the orchestration system, the function supported by the second virtual machine.
2 . The method of claim 1 , wherein the second node device was not included in the set of node devices supporting the cluster, and wherein migrating the function comprises integrating the second node device into the set of node devices resulting in the second node device being included in the set of node devices supporting the cluster.
3 . The method of claim 1 , wherein the identifying of the cluster for scaling comprises:
based on a scaling condition, monitoring the function;
based on the monitoring and the scaling condition, identifying the function for migrating, resulting in an identified function; and
based on the identified function, the scaling condition, and the second node device, generating the scaling specification.
4 . The method of claim 3 , wherein the scaling condition comprises a threshold level of performance for a characteristic of the cluster, wherein identifying the function for the migrating comprises identifying that the function requires additional capacity than what is available for operation of the function with the characteristic of the cluster according to a performance level defined with respect to the threshold level of performance, and wherein the second node device was selected based on the additional capacity being available.
5 . The method of claim 4 , wherein the operation of the cluster with the characteristic of the cluster according to the performance level comprises the operation of the cluster according to a relation whereby the performance for the characteristic exceeds the threshold level of performance, and wherein the different capacity comprises an additional capacity beyond the currently available capacity allocated to operation of the function and exceeds the currently available capacity allocated to operation of the function.
6 . The method of claim 4 , wherein the characteristic of the cluster comprises a level of throughput for the function, and wherein the different capacity comprises a different throughput capacity to facilitate a change in the level of throughput for the function.
7 . The method of claim 4 , wherein the operation of the cluster with the characteristic of the cluster according to the performance level comprises the operation of the cluster according to a relation whereby the performance for the characteristic is lower than the threshold level of performance, and wherein the different capacity comprises less capacity than the currently available capacity allocated to operation of the function.
8 . The method of claim 3 , wherein the migrating of the function comprises:
based on the identified function and the scaling specification, identifying the first node device for replacement.
9 . The method of claim 1 , wherein the scaling specification comprises a first scaling specification, and wherein the second node device was selected in accordance with a second scaling specification:
different from the first scaling specification, and
generated by the cloud computing equipment in accordance with the first scaling specification.
10 . The method of claim 1 , wherein the migrating of the function resulted from the orchestration system instructing the cloud computing equipment to:
suspend operation of the first node device; and
migrate the journal to be accessed by the second virtual machine.
11 . A non-transitory machine-readable medium, comprising executable instructions that, when executed by at least one processor of orchestration equipment, facilitate performance of operations, comprising:
identifying a cluster deployed using first component equipment of a group of component equipment hosted by cloud provider equipment and supporting the cluster, wherein a first virtual machine is deployed via the first component equipment to support a function of the cluster;
based on a scaling specification communicated to the cloud provider equipment, orchestrating:
a shutdown of the first component equipment,
a flushing of data associated with the first component equipment to a journal,
a scaling of a second virtual machine, different from the first virtual machine,
a deployment of the second virtual machine via second component equipment of the group of component equipment,
a storing of the journal on the second computing equipment, and
a migration of the function from the first virtual machine to the second virtual machine; and
employing the function supported by the second virtual machine.
12 . The non-transitory machine-readable medium of claim 11 , wherein, prior to the migration, the second component equipment was not included in the group of component equipment supporting the cluster, and wherein the migration of the function comprises including the second component equipment in the group of component equipment supporting the cluster.
13 . The non-transitory machine-readable medium of claim 11 ,
wherein the cluster was identified based on:
a scaling condition used to monitor throughput of the function, and wherein the operations further comprise:
based on the monitoring and the scaling condition, identifying the function for the migration, resulting in an identified function; and
based on the identified function, the scaling condition, and the second component equipment, generating the scaling specification to increase the throughput of the function.
14 . The non-transitory machine-readable medium of claim 11 , wherein the cluster was identified based on a request to migrate the function received from a client device that utilizes the function.
15 . The non-transitory machine-readable medium of claim 14 , wherein the request to migrate the function comprises an instruction that the first component equipment be replaced with the second component equipment.
16 . An orchestration system, comprising:
at least one processor; and
at least one memory that stores executable instructions that, when executed by the at least one processor, facilitate performance of operations, comprising:
identifying a cluster for scaling, wherein the cluster comprises a first node device of node devices supporting the cluster, and is hosted by cloud computing equipment associated with a cloud provider, wherein the first node device comprises a first virtual machine deployed thereon to support a function of the cluster;
in response to the identifying, shutting down the first node device, wherein the shutting down of the first node device initiates a flushing of at least one of data or volumes associated with the first node device to a journal of the first virtual machine;
in response to confirming that the journal of the first virtual machine has been saved via the cloud computing equipment at the first node device, communicating, to the cloud computing equipment, a scaling specification applicable to a second virtual machine deployed via a second node device of the node devices, also managed by the cloud computing equipment, wherein, based on the scaling specification, the cloud computing equipment:
scales the second virtual machine,
stores the journal via the second node device, and
migrates the function from the first virtual machine to the second virtual machine;
starting the second virtual machine with access to the journal; and
executing the function supported by the second virtual machine.
17 . The orchestration system of claim 16 , wherein the scaling specification was received based on a determination that the first virtual machine was performing the function subject to a performance condition.
18 . The orchestration system of claim 17 , wherein the performance condition comprises throughput of data associated with the function being in a state that implicates a change in the throughput of data, and wherein the scaling specification was generated to achieve the change in the throughput of data based on the resources to be allocated to support the second virtual machine being determined to be different than other resources that were allocated to support the first virtual machine.
19 . The orchestration system of claim 16 , wherein the journal comprises a journal of transaction activity of the first virtual machine.
20 . The orchestration system of claim 16 , wherein the first virtual machine was integrated into a group of virtual machines to perform the function, and wherein the operations further comprise:
integrating the second virtual machine into the group of virtual machines, as a result of which the second virtual machine replaces the first virtual machine.