System and method for workload portability in cloud environments
A system for facilitating workload portability is provided. The system includes a target server instantiated at a target platform and configured to store, at the target platform, one or more snapshots of a workload executing at a source platform. The snapshots are captured at each defined time-interval and correspond to an incremental change in the workload in raw state. The stored snapshots include boot files and data files. The target server updates, based on a trigger pertaining to workload portability of the workload, the boot files and the data files with configuration supported by the target platform. The target server executes the updated boot files and data files at the target platform. The execution of the workload at the target platform is identical to the execution thereof at the source platform.
1 . A system for facilitating workload portability, the system comprising:
a target server instantiated at a target platform, wherein the target server is configured to:
store, in one or more snapshot storages associated with the target platform, a snapshot of a workload associated with a virtual machine of a source platform, wherein
the snapshot is captured at each defined time-interval and corresponds to an incremental change in the workload,
the stored snapshot of the workload includes one or more boot files associated with the virtual machine of the source platform and one or more data files associated with the virtual machine of the source platform, and
the target platform supports a configuration different from a configuration of the source platform;
move, based on a trigger associated with workload portability of the workload, the one or more boot files and the one or more data files from the one or more snapshot storages to one or more block storages associated with the target platform;
establish, based on the movement of the one or more boot files and the one or more data files, a connection between the one or more block storages and a first virtual machine of the target platform, wherein the first virtual machine of the target platform is compatible with the virtual machine of the source platform;
update, based on the establishment of the connection between the one or more block storages and the first virtual machine of the target platform, the one or more boot files and the one or more data files with the configuration supported by the target platform;
terminate, based on the update of the one or more boot files and the one or more data files, the connection between the one or more block storages and the first virtual machine of the target platform; and
execute, based on a second virtual machine of the target platform, the updated one or more boot files and the updated one or more data files, wherein
the second virtual machine of the target platform replicates the virtual machine of the source platform, and
the execution of the workload at the target platform is identical to execution of the workload at the source platform.
2 . The system of claim 1 , further comprising a source server instantiated at the source platform, wherein the source server is configured to capture the snapshot of the workload and communicate the captured snapshot to the target server at the each defined time-interval.
3 . The system of claim 2 , wherein
the source server is further configured to encrypt the captured snapshot prior to the communication of the captured snapshot to the target server, and
the target server is further configured to decrypt the communicated snapshot prior to the storage at the target platform.
4 . The system of claim 1 , wherein the target server is further configured to execute a pull operation to retrieve the snapshot of the workload from the source platform at the each defined time-interval.
5 . The system of claim 1 , wherein the snapshot includes raw data associated with a boot file of the one or more boot files of the workload and raw data associated with a data file of the one or more data files of the workload.
6 . The system of claim 1 , wherein the update of the one or more boot files and the one or more data files is performed in an offline manner.
7 . The system of claim 6 , wherein the target server is further configured to:
store the snapshot at the each defined time-interval in one of one or more object storages associated with the target platform or one or more file storages associated with the target platform; and
move, based on the trigger, the one or more boot files and the one or more data files from the one of the one or more object storages or the one or more file storages to the one or more block storages.
8 . The system of claim 1 , wherein the one or more boot files are stored separately from the one or more data files.
9 . The system of claim 1 , wherein
the one or more boot files are updated with at least one of one or more system files, one or more service files, one or more drivers, boot configuration, network configuration, or display configuration supported by the target platform, and
the one or more data files are updated with at least one of a file system configuration or an operating system configuration supported by the target platform.
10 . The system of claim 1 , wherein the trigger is associated with at least one of a migration event associated with the workload or a recovery event associated with the workload.
11 . The system of claim 1 , wherein to execute the workload at the target platform, the target server is further configured to attach the updated one or more boot files and the updated one or more data files to the second virtual machine of the target platform and boot the second virtual machine.
12 . The system of claim 11 , wherein the target server is further configured to replicate, on the second virtual machine, security and access control configuration associated with the workload.
13 . The system of claim 1 , wherein the target server is further configured to determine authenticity of the snapshot based on reception of the snapshot at the target platform.
14 . The system of claim 1 , wherein the workload is at least one of operating systems, containers, one or more applications running on the at least one of operating systems, or data associated with the one or more applications.
15 . A method for facilitating workload portability, the method comprising:
storing, by a target server instantiated at a target platform, a snapshot of a workload associated with a virtual machine of a source platform in one or more snapshot storages associated with the target platform, wherein
the snapshot is captured at each defined time-interval and corresponds to an incremental change in the workload, and
the stored snapshot of the workload includes one or more boot files associated with the virtual machine of the source platform and one or more data files associated with the virtual machine of the source platform, and
the target platform supports a configuration different from a configuration of the source platform;
moving, by the target server, the one or more boot files and the one or more data files from the one or more snapshot storages to one or more block storages associated with the target platform, wherein the movement of the one or more boot files and the one or more data files is based on a trigger associated with workload portability of the workload;
establishing, by the target server, a connection between the one or more block storages and a first virtual machine of the target platform, wherein
the establishment of the connection between the one or more block storages and the first virtual machine is based on the movement of the one or more boot files and the one or more data files, and
the first virtual machine of the target platform is compatible with the virtual machine of the source platform;
updating, by the target server, the one or more boot files and the one or more data files with the configuration supported by the target platform based on the establishment of the connection between the one or more block storages and the first virtual machine of the target platform;
terminating, by the target server, the connection between the one or more block storages and the first virtual machine of the target platform based on the update of the one or more boot files and the one or more data files; and
executing, by the target server, the updated one or more boot files and the updated one or more data files based on a second virtual machine of the target platform, wherein
the second virtual machine of the target platform replicates the virtual machine of the source platform, and
the execution of the workload at the target platform is identical to execution of the workload at the source platform.
16 . A non-transitory computer-readable storage medium comprising instruction stored therein, which when executed by one or more processors, cause the one or more processors to perform operations comprising:
storing a snapshot of a workload associated with a virtual machine of a source platform in one or more snapshot storages associated with a target platform, wherein
the snapshot is captured at each defined time-interval and corresponds to an incremental change in the workload,
the stored snapshot of the workload-stored at the target platform includes one or more boot files associated with the virtual machine of the source platform and one or more data files associated with the virtual machine of the source platform, and
the target platform supports a configuration different from a configuration of the source platform:
moving, based on a trigger associated with workload portability of the workload, the one or more boot files and the one or more data files from the one or more snapshot storages to one or more block storages associated with the target platform;
establishing, based on the movement of the one or more boot files and the one or more data files, a connection between the one or more block storages and a first virtual machine of the target platform, wherein the first virtual machine of the target platform is compatible with the virtual machine of the source platform;
updating the one or more boot files and the one or more data files with the configuration supported by the target platform based on the establishment of the connection between the one or more block storages and the first virtual machine of the target platform;
terminating, based on the update of the one or more boot files and the one or more data files, the connection between the one or more block storages and the first virtual machine of the target platform; and
executing, based on a second virtual machine of the target platform, the updated one or more boot files and the updated one or more data files, wherein
the second virtual machine of the target platform replicates the virtual machine of the source platform, and
the execution of the workload at the target platform is identical to execution of the workload at the source platform.
17 . The system of claim 2 , wherein the source server is further configured to:
determine, at the each defined time-interval, modified data in at least one of the one or more boot files or the one or more data files; and
communicate, to the target server, a snapshot of the modified data as the snapshot of the workload.
18 . The system of claim 2 , wherein
the source platform includes a source hypervisor that supports one or more snapshot-capturing techniques, and
the source server is further configured to capture the snapshot of the workload based on the one or more snapshot-capturing techniques.
19 . The system of claim 1 , wherein
the one or more boot files and the one or more data files are associated with an application, and
the target server is further configured to recover, based on a failover event of the application, the application within a specific time associated with the update of the one or more boot files and the one or more data files.
20 . The system of claim 1 , wherein the source platform and the target platform correspond to different virtual environments.