IP Library Granted Patent US 10,963,349
Granted Patent B2
US 10,963,349 · App. 16/047,970 · Granted Mar 30, 2021

Containerized application snapshots

Inventors: Prashant Dhamdhere (Milpitas, CA); Prashima Sharma (Sunnyvale, CA); Mark Sterin (Mountain View, CA); Sandeep Srinivasa Rao Pissay (Sunnyvale, CA)
Assignee: VMware, Inc.
G06F11/1451G06F9/455G06F11/3065G06F11/3452G06F11/3476G06F2201/815G06F2201/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 10,963,349
App. No.
16/047,970
Granted
Mar 30, 2021
Kind
B2
Abstract

Techniques are disclosed that permit storage and availability operations, such as backup and restore, snapshot and cloning, application disaster recovery, and reporting and analytics, to be performed for stateful containerized applications. In one embodiment, a container cluster service is configured to create application instance objects that capture metadata associated with containerized applications and that (optionally) specify scripts to be run before and/or after taking an application consistent snapshot and/or an order in which to take snapshots. Application instances having the configurations specified in the application instance object may then be deployed. In addition, the container cluster service may use an application instance object to create a snapshot of a deployed application instance that includes a point-in-time copy of configuration information specified by the application instance object and reference(s) to snapshot volume(s) created from volume(s) associated with the application instance as part of the snapshot operation.

Claims (48)

1. A computer-implemented method for copying a containerized application deployed in a first container cluster to a second container cluster, the method comprising:

receiving a request to take a snapshot of a containerized application;

responsive to receiving the request, generating a snapshot object that includes a point-in-time copy of configuration information associated with a state of the containerized application as deployed in the first container cluster;

taking snapshots of one or more data volumes associated with the containerized application, the one or data volumes stored in a first storage resource;

adding, to the snapshot object, a respective reference to each of the one or more snapshot data volumes;

copying the snapshot object to the second container cluster; and

copying the snapshots of one or more data volumes to a second storage resource associated with the second container cluster.

2. The method of claim 1 , wherein the configuration information is copied from an application instance object specifying the configuration information and configuration files used to deploy the containerized application.

3. The method of claim 2 , wherein the application instance object specifies at least one of services of the containerized application, the one or more data volumes associated with the containerized application, or a deployment location of the containerized application.

4. The method of claim 2 , wherein the application instance object further specifies at least one of a pre-snapshot script that is run prior to copying the one or more data volumes or a post-snapshot scripts that is run after adding, to the snapshot object, the respective reference to each of the one or more snapshot data volumes.

5. The method of claim 2 , wherein the application instance object further specifies a snapshot order indicating one or more services of the containerized application to process prior in time to another service while generating the snapshot object.

6. The method of claim 1 , further comprising, instantiating a new instance of the containerized application in the second container cluster using the snapshot object and the one or more snapshot data volumes.

7. The method of claim 6 , wherein instantiating the new instance of the containerized application includes:

determining the point-in-time copy of the configuration information and the one or more snapshot data volumes using the snapshot object;

creating at least one of a linked clone or a full clone of each of the one or more snapshot data volumes; and

deploying the new instance of the containerized application using the determined point-in-time copy of the configuration information and the linked clones or the full clones of the one or more snapshot data volumes.

8. The method of claim 1 , further comprising validating the received request by:

identifying a user who made the request; and

attempting to access the containerized application as the identified user.

9. The method of claim 1 , wherein the generated snapshot object and the one or more snapshot data volumes are used in at least one of a backup and restore, cloning, disaster recovery, reporting, or analytics operation.

10. A non-transitory computer-readable storage medium storing instructions, which when executed by a computer system, cause the computer system to perform operations for copying a containerized application deployed in a first container cluster to a second container cluster, the operations comprising:

receiving a request to take a snapshot of a containerized application;

responsive to receiving the request, generating a snapshot object that includes a point-in-time copy of configuration information associated with a state of the containerized application as deployed in the first container cluster;

taking snapshots of one or more data volumes associated with the containerized application, the one or data volumes stored in a first storage resource;

adding, to the snapshot object, a respective reference to each of the one or more snapshot data volumes;

copying the snapshot object to the second container cluster; and

copying the snapshots of one or more data volumes to a second storage resource associated with the second container cluster.

11. The computer-readable storage medium of claim 10 , wherein the configuration information is copied from an application instance object specifying the configuration information and configuration files used to deploy the containerized application.

12. The computer-readable storage medium of claim 11 , wherein the application instance object specifies at least one of services of the containerized application, the one or more data volumes associated with the containerized application, or a deployment location of the containerized application.

13. The computer-readable storage medium of claim 11 , wherein the application instance object further specifies at least one of a pre-snapshot script that is run prior to copying the one or more data volumes or a post-snapshot scripts that is run after adding, to the snapshot object, the respective reference to each of the one or more snapshot data volumes.

14. The computer-readable storage medium of claim 11 , wherein the application instance object further specifies a snapshot order indicating one or more services of the containerized application to process prior in time to another service while generating the snapshot object.

15. The computer-readable storage medium of claim 10 , the operations further comprising, instantiating a new instance of the containerized application in the second container cluster using the snapshot object and the one or more snapshot data volumes.

16. The computer-readable storage medium of claim 15 , wherein instantiating the new instance of the containerized application includes:

determining the point-in-time copy of the configuration information and the one or more snapshot data volumes using the snapshot object;

creating at least one of a linked clone or a full clone of each of the one or more snapshot data volumes; and

deploying the new instance of the containerized application using the determined point-in-time copy of the configuration information and the linked clones or the full clones of the one or more snapshot data volumes.

17. The computer-readable storage medium of claim 10 , the operations further comprising validating the received request by:

identifying a user who made the request; and

attempting to access the containerized application as the identified user.

18. The computer-readable storage medium of claim 10 , wherein the generated snapshot object and the one or more snapshot data volumes are used in at least one of a backup and restore, cloning, disaster recovery, reporting, or analytics operation.

19. A system, comprising:

a processor; and

a memory, wherein the memory includes an application program configured to perform operations for copying a containerized application deployed in a first container cluster to a second container cluster, the operations comprising:

receiving a request to take a snapshot of a containerized application responsive to receiving the request, generating a snapshot object that includes a point-in-time copy of configuration information associated with a state of the containerized application as deployed in the first container cluster;

taking snapshots of one or more data volumes associated with the containerized application, the one or data volumes stored in a first storage resource;

adding, to the snapshot object, a respective reference to each of the one or more snapshot data volumes;

copying the snapshot object to the second container cluster; and

copying the snapshots of one or more data volumes to a second storage resource associated with the second container cluster.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 15, 2021
From: DHAMDHERE, PRASHANT; STERIN, MARK; PISSAY, SANDEEP SRINIVASA RAO
To: VMWARE, INC.
Reel/Frame 055262/0378 →
Continuity (2)
Provisional Application 62550357 · Aug 25, 2017
Related Publication 20190065323A1 · Feb 28, 2019
Cited By (17)
US 12,222,801 US 12,229,023 US 12,235,736 US 12,255,802 US 12,282,788 US 12,339,750 US 12,401,654 US 12,407,527 US 12,413,466 US 12,561,125 US 12,608,280 US 12,608,487 US 12,639,172 US 12,675,368 US 12,681,708 US 12,701,070 US 12,704,989