# US 12,008,011 B2 · Computing resource migration across cloud environments

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,008,011 B2
- Document ID: US12008011B2
- Status: Granted
- Kind: B2
- Application number: 17/724,812
- Filed: 2022-04-20
- Published: 2023-10-26
- Granted: 2024-06-11
- Earliest claimed: 2022-04-20
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Jaya Jyothiswaroop Kotni; Shivanshu Agrawal; Kritagya Dabi; Dhananjay Mantri; Ankit Kumar; Ujjwal Sahana; Rimple Malik
- Web page: https://patentgrep.com/patent/US12008011B2

## CPC

- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/0647: {Migration mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/1402: {Saving, restoring, recovering or retrying}
- G06F 11/1438: {Restarting or rejuvenating}
- G06F 11/1464: {for networked environments}
- G06F 11/203: {using migration}
- G06F 16/116: {Details of conversion of file system types or formats}
- G06F 16/258: {Data format conversion from or to a database}
- H04L 67/1095: Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 11/1484: {involving virtual machines}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for migrating a computing resource across cloud environments is described. According to the method, a data management system may interface with a first cloud environment and a second cloud environment. The data management system may receive a request to migrate a first computing resource stored in the first cloud environment to the second cloud environment. The data management system may generate, based on the request, a first compute job in the first cloud environment to cause the first cloud environment to extract data from a backup of the first computing resource and transfer the data to the second cloud environment. The data management system may instruct the second cloud environment to generate a second computing resource. The data management system may generate a second compute job in the second cloud environment to cause the second cloud environment to load the extracted data into the second computing resource.

## Claims

### Claim 1

A method, comprising:
receiving, at a data management system configured to interface with a first cloud environment and a second cloud environment, a request to migrate a first computing resource stored in the first cloud environment to the second cloud environment;
generating, by the data management system, a job in the first cloud environment to acquire one or more backups of the first computing resource;
generating, by the data management system based at least in part on receiving the request, a first compute job in the first cloud environment, wherein the first compute job is operable to cause the first cloud environment to extract data from a backup from among the one or more backups of the first computing resource in the first cloud environment and transfer the data to the second cloud environment, and wherein extracting the data from the backup is based at least in part on the backup being acquired within a threshold time period of a first time at which the request is received;
instructing, by the data management system based at least in part on receiving the request, the second cloud environment to generate a second computing resource in the second cloud environment; and
generating, by the data management system after generating the second computing resource in the second cloud environment, a second compute job in the second cloud environment, wherein the second compute job is operable to cause the second cloud environment to load the data extracted from the backup of the first computing resource in the first cloud environment into the second computing resource generated in the second cloud environment.

### Claim 2 (depends on 1)

The method of claim 1,
wherein the job comprises a background job that is operable to cause the first cloud environment to:
generate a snapshot of the first computing resource stored in the first cloud environment at a first point in time; and
store the snapshot of the first computing resource at the first cloud environment, wherein the snapshot of the first computing resource stored at the first cloud environment comprises the backup of the first computing resource.

### Claim 3 (depends on 2)

The method of claim 2, wherein generating the background job further comprises:
generating the background job to acquire the backup of the first computing resource in response to receiving the request to migrate the first computing resource stored in the first cloud environment to the second cloud environment.

### Claim 4 (depends on 2)

The method of claim 2, wherein generating the background job further comprises:
generating the background job periodically or semi-statically.

### Claim 5 (depends on 1)

The method of claim 1, wherein:
the backup comprises one or more incremental snapshots of the first computing resource; and
the first compute job is further operable to cause the first cloud environment to process the one or more incremental snapshots of the backup to obtain a full backup of the first computing resource, the full backup having a first format supported by the first cloud environment, wherein extracting the data from the backup comprises extracting the data from the full backup of the first computing resource.

### Claim 6 (depends on 1)

The method of claim 1, wherein:
the first compute job is further operable to cause the first cloud environment to generate, after extracting the data from the backup of the first computing resource, a second backup of the first computing resource, the second backup comprising the data and having a second format that is supported by the second cloud environment, wherein transferring the data from the first cloud environment to the second cloud environment as part of the first compute job comprises transferring the second backup of the first computing resource corresponding to the second format.

### Claim 7 (depends on 1)

The method of claim 1, wherein instructing the second cloud environment to generate the second computing resource comprises:
instructing, after the first compute job is executed, the second cloud environment to generate the second computing resource based at least in part on configuration information received by the data management system, the configuration information indicating one or more parameters associated with the second computing resource.

### Claim 8 (depends on 1)

The method of claim 1, wherein instructing the second cloud environment to generate the second computing resource comprises:
instructing the second cloud environment to generate the second computing resource based at least in part on one or more parameters associated with the first computing resource stored in the first cloud environment.

### Claim 9 (depends on 1)

The method of claim 1, wherein the second compute job is operable to cause the second cloud environment to convert the data transferred to the second cloud environment from a second format to a third format that is compatible with the second computing resource before loading the data into the second computing resource generated in the second cloud environment.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
receiving, at the data management system, one or more grants of permission for the data management system to access the first cloud environment and the second cloud environment, wherein generating the first compute job and generating the second compute job is based at least in part on the one or more grants of permission.

### Claim 11

An apparatus, comprising:
a processor;
memory coupled with the processor; and
instructions stored in the memory and executable by the processor to cause the apparatus to:
receive, at a data management system configured to interface with a first cloud environment and a second cloud environment, a request to migrate a first computing resource stored in the first cloud environment to the second cloud environment;
generate, by the data management system, a job in the first cloud environment to acquire one or more backups of the first computing resource;
generate, by the data management system based at least in part on receiving the request, a first compute job in the first cloud environment, wherein the first compute job is operable to cause the first cloud environment to extract data from a backup from among the one or more backups of the first computing resource in the first cloud environment and transfer the data to the second cloud environment, and wherein extracting the data from the backup is based at least in part on the backup being acquired within a threshold time period of a first time at which the request is received:
instruct, by the data management system based at least in part on receiving the request, the second cloud environment to generate a second computing resource in the second cloud environment; and
generate, by the data management system after generating the second computing resource in the second cloud environment, a second compute job in the second cloud environment, wherein the second compute job is operable to cause the second cloud environment to load the data extracted from the backup of the first computing resource in the first cloud environment into the second computing resource generated in the second cloud environment.

### Claim 12 (depends on 11)

The apparatus of claim 11, wherein
wherein the job comprises a background job that is operable to cause the first cloud environment to:
generate a snapshot of the first computing resource stored in the first cloud environment at a first point in time; and
store the snapshot of the first computing resource at the first cloud environment, wherein the snapshot of the first computing resource stored at the first cloud environment comprises the backup of the first computing resource.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein, to generate the background job, the instructions are executable by the processor to cause the apparatus to:
generate the background job to acquire the backup of the first computing resource in response to receiving the request to migrate the first computing resource stored in the first cloud environment to the second cloud environment.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein, to generate the background job, the instructions are executable by the processor to cause the apparatus to:
generate the background job periodically or semi-statically.

### Claim 15 (depends on 11)

The apparatus of claim 11, wherein:
the backup comprises one or more incremental snapshots of the first computing resource; and
the first compute job is further operable to cause the first cloud environment to process the one or more incremental snapshots of the backup to obtain a full backup of the first computing resource, the full backup having a first format supported by the first cloud environment, wherein extracting the data from the backup comprises extracting the data from the full backup of the first computing resource.

### Claim 16 (depends on 11)

The apparatus of claim 11, wherein:
the first compute job is further operable to cause the first cloud environment to generate, after extracting the data from the backup of the first computing resource, a second backup of the first computing resource, the second backup comprising the data and having a second format that is supported by the second cloud environment, wherein transferring the data from the first cloud environment to the second cloud environment as part of the first compute job comprises transferring the second backup of the first computing resource corresponding to the second format.

### Claim 17

A non-transitory computer-readable medium storing code, the code comprising instructions executable by a processor to:
receive, at a data management system configured to interface with a first cloud environment and a second cloud environment, a request to migrate a first computing resource stored in the first cloud environment to the second cloud environment;
generate, by the data management system, a job in the first cloud environment to acquire one or more backups of the first computing resource;
generate, by the data management system based at least in part on receiving the request, a first compute job in the first cloud environment, wherein the first compute job is operable to cause the first cloud environment to extract data from a backup from among the one or more backups of the first computing resource in the first cloud environment and transfer the data to the second cloud environment, and wherein extracting the data from the backup is based at least in part on the backup being acquired within a threshold time period of a first time at which the request is received;
instruct, by the data management system based at least in part on receiving the request, the second cloud environment to generate a second computing resource in the second cloud environment; and
generate, by the data management system after generating the second computing resource in the second cloud environment, a second compute job in the second cloud environment, wherein the second compute job is operable to cause the second cloud environment to load the data extracted from the backup of the first computing resource in the first cloud environment into the second computing resource generated in the second cloud environment.

### Claim 18 (depends on 17)

The non-transitory computer-readable medium of claim 17,
wherein the job comprises a background job that is operable to cause the first cloud environment to:
generate a snapshot of the first computing resource stored in the first cloud environment at a first point in time; and
store the snapshot of the first computing resource at the first cloud environment, wherein the snapshot of the first computing resource stored at the first cloud environment comprises the backup of the first computing resource.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein, to generate the background job, the instructions are executable by the processor to:
generate the background job to acquire the backup of the first computing resource in response to receiving the request to migrate the first computing resource stored in the first cloud environment to the second cloud environment.

### Claim 20 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein, to generate the background job, the instructions are executable by the processor to:
generate the background job periodically or semi-statically.
