IP Library Granted Patent US 12,182,440
Granted Patent B2
US 12,182,440 · App. 17/200,205 · Granted Dec 31, 2024

Cloud-native cross-environment restoration

Inventors: Aaron H. Alpar (Redwood City, CA); Thomas Manville (Mountain View, CA); Eric William Hamilton (Mountain View, CA); Vaibhav Kamra (Sunnyvale, CA); Niraj Tolia (Los Altos, CA)
Assignee: Kasten, Inc.
G06F3/0653G06F3/0604G06F3/067G06F11/1469G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,182,440
App. No.
17/200,205
Granted
Dec 31, 2024
Kind
B2
Abstract

Disclosed herein are system, method, and computer program product embodiments for transforming backups of applications. An embodiment operates by extracting a resource snapshot into memory. The resource snapshot is formatted in a first configuration. An embodiment performs a transformation on the resource snapshot, thereby transforming the resource snapshot from the first configuration to a second configuration for an environment into which the resource snapshot is being restored. The transformation is made up of a set of operations. One of the operations includes a regular expression. Once the transformation is complete, the resource snapshot is restored to the environment based on the second configuration.

Claims (62)

1. A method for restoring an application, comprising:

extracting, by a processor, a resource snapshot into a memory, wherein the resource snapshot is a hierarchical structure in textual form that specifies a first resource configuration indicating where portions of the application are accessed in a first cloud environment;

performing, by the processor, a transformation, comprising a set of Modified JavaScript Object Notation (JSON) Patch operations, on the resource snapshot, thereby transforming the resource snapshot from the first resource configuration to a second resource configuration indicating where portions of the application are accessed in a second cloud environment, wherein performing the transformation comprises performing each Modified JSON Patch operation from the set of Modified JSON Patch operations in sequence, and wherein performing a Modified JSON Patch operation from the set of Modified JSON Patch operations comprises:

selecting, using a regular expression, a plurality of strings in a path in the resource snapshot or a plurality of values in the path in the resource snapshot as a capture group; and

applying the Modified JSON Patch operation to the resource snapshot using the capture group; and

restoring, by the processor, the application to the second cloud environment based on the transformed resource snapshot specifying the second resource configuration.

2. The method of claim 1 , further comprising:

determining, by the processor, that performance of the transformation succeeded; and

wherein restoring the application to the second cloud environment comprises restoring the application to the second cloud environment in response to determining that the performance of the transformation succeeded.

3. The method of claim 2 , wherein determining that the performance of the transformation succeeded comprises determining, using at least one test operation, that the resource snapshot is formatted in the second resource configuration.

4. The method of claim 1 , wherein another Modified JSON Patch operation from the set of Modified JSON Patch operations in the transformation includes a path reference or a value reference with a wildcard character.

5. The method of claim 1 , further comprising:

receiving, by the processor, a selection of the second cloud environment;

detecting, by the processor, the second resource configuration for the second cloud environment; and

outputting, by the processor, a description of the second resource configuration to a user.

6. The method of claim 5 , wherein detecting the second resource configuration comprises detecting, using at least one test operation, one or more paths of the second resource configuration in the second cloud environment.

7. The method of claim 1 , further comprising:

receiving, by the processor, a selection of the second cloud environment;

detecting, by the processor, the second resource configuration for the second cloud environment; and

selecting, by the processor, the transformation based on the second resource configuration.

8. The method of claim 7 , wherein detecting the second resource configuration comprises detecting, using at least one test operation, one or more paths of the second resource configuration in the second cloud environment.

9. A system, comprising:

a processor; and

a memory communicatively coupled to the processor, wherein the memory stores instructions configured to, when executed, cause the processor to:

extract a resource snapshot into the memory, wherein the resource snapshot is a hierarchical structure in textual form that specifies a first resource configuration indicating where portions of the application are accessed in a first cloud environment;

perform a transformation comprising a set of Modified JavaScript Object Notation (JSON) Patch operations on the resource snapshot, thereby transforming the resource snapshot from the first resource configuration to a second resource configuration indicating where portions of the application are accessed in a second cloud environment, wherein performing the transformation comprises performing each Modified JSON Patch operation from the set of Modified JSON Patch operations in sequence, and wherein performing a Modified JSON Patch operation from the set of Modified JSON Patch operations comprises:

selecting, using a regular expression, a plurality of strings in a path in the resource snapshot or a plurality of values in the path in the resource snapshot as a capture group; and

applying the Modified JSON Patch operation to the resource snapshot using the capture group; and

restore the application to the second cloud environment based on the transformed resource snapshot specifying the second resource configuration.

10. The system of claim 9 , wherein the instructions are further configured to:

determine that performance of the transformation succeeded; and

wherein restoring the application to the second cloud environment comprises restoring the application to the second cloud environment in response to determining that the performance of the transformation succeeded.

11. The system of claim 10 , wherein the instructions being further configured to determine that the performance of the transformation succeeded comprises determining, using at least one test operation, that the resource snapshot is formatted in the second resource configuration.

12. The system of claim 9 , wherein another Modified JSON Patch operation from the set of Modified JSON Patch operations in the transformation includes a path reference or a value reference with a wildcard character.

13. The system of claim 9 , wherein the instructions are further configured to:

receive a selection of the second cloud environment;

detect the second resource configuration for the second cloud environment; and

output a description of the second resource configuration to a user.

14. The system of claim 13 , wherein the instructions are further configured to detect, using at least one test operation, one or more paths of the second resource configuration in the second cloud environment.

15. The system of claim 9 , wherein the instructions are further configured to:

receive a selection of the second cloud environment;

detect the second resource configuration for the second cloud environment; and

select the transformation based on the second resource configuration.

16. The system of claim 15 , wherein the instructions are further configured to detect, using at least one test operation, one or more paths of the second resource configuration in the second cloud environment.

17. A non-transitory computer readable storage medium having computer readable code thereon, the non-transitory computer readable storage medium including instructions configured to cause a computer system to perform operations, comprising:

extracting a resource snapshot into a memory, wherein the resource snapshot is a hierarchical structure in textual form that specifies a first resource configuration indicating where portions of the application are accessed in a first cloud environment;

performing a transformation comprising a set of Modified JavaScript Object Notation (JSON) Patch operations on the resource snapshot, thereby transforming the resource snapshot from the first resource configuration to a second resource configuration indicating where portions of the application are accessed in a second cloud environment, wherein performing the transformation comprises performing each Modified JSON Patch operation from the set of Modified JSON Patch operations in sequence, and wherein performing a Modified JSON Patch operation from the set of Modified JSON Patch operations comprises:

selecting, using a regular expression, a plurality of strings in a path in the resource snapshot or a plurality of values in the path in the resource snapshot as a capture group; and

applying the Modified JSON Patch operation to the resource snapshot using the capture group; and

restoring the application to the second cloud environment based on the transformed resource snapshot specifying the second resource configuration.

18. The non-transitory computer-readable storage medium of claim 17 , the operations further comprising:

determining, using at least one test operation, that performance of the transformation succeeded, wherein the at least one test operation detects that the resource snapshot is formatted in the second resource configuration; and

wherein restoring the application to the second cloud environment comprises restoring the application to the second cloud environment in response to determining that the performance of the transformation succeeded.

19. The non-transitory computer-readable storage medium of claim 17 wherein another Modified JSON Patch operation from the set of Modified JSON Patch operations in the transformation includes a path reference or a value reference with a wildcard character.

20. The non-transitory computer-readable storage medium of claim 17 the operations further comprising:

receiving a selection of the second cloud environment;

detecting, using at least one test operation, the second resource configuration for the second cloud environment, wherein the at least one test operation detects one or more paths of the second resource configuration in the second cloud environment; and

outputting a description of the second resource configuration to a user.

21. The method of claim 1 , further comprising:

selecting the transformation from a transformation library based on the first cloud environment and the second cloud environment.

22. The method of claim 1 , wherein the extracting comprises:

decompressing the resource snapshot into the memory.

Assignments (3)
SECURITY INTEREST Recorded May 22, 2026
From: KASTEN, INC.; SECURITI, LLC; VEEAM SOFTWARE GROUP GMBH; VEEAM VAAS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 074738/0015 →
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY DATA PREVIOUSLY RECORDED ON REEL 056744 FRAME 0121. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jul 6, 2021
From: ALPAR, AARON H.; MANVILLE, THOMAS; HAMILTON, ERIC WILLIAM; KAMRA, VAIBHAV; TOLIA, NIRAJ
To: KASTEN, INC.
Reel/Frame 056768/0947 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2021
From: ALPAR, AARON H.; MANVILLE, THOMAS; HAMILTON, ERIC WILLIAM; KAMRA, VAIBHAV; TOLIA, NIRAJ
To: VEEAM SOFTWARE AG
Reel/Frame 056744/0121 →
Continuity (1)
Related Publication 20220291859A1 · Sep 15, 2022