IP Library Granted Patent US 11,637,896
Granted Patent B1
US 11,637,896 · App. 16/801,124 · Granted Apr 25, 2023

Migrating applications to a cloud-computing environment

Inventors: Virendra Prakashaiah (Sunnyvale, CA); Taher Vohra (Sunnyvale, CA)
Assignee: PURE STORAGE, INC.
H04L67/1095G06F11/1492G06F16/178H04L67/1097G06F2201/865
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 11,637,896
App. No.
16/801,124
Granted
Apr 25, 2023
Kind
B1
Abstract

A system and methods for migrating applications to a cloud-computing environment. In some examples, the method includes determining an application configuration for an application executed in a storage system generating, for one or more volumes associated with the application, one or more volume tags indicating the application configuration; replicating the one or more volumes to a cloud-computing environment, and generating, in the cloud-computing environment, based on the one or more volume tags, the application configuration for the application.

Claims (40)

1. A method comprising:

determining resource requirements that define one or more resources required for an execution of an application executed in a container that accesses a storage system, the storage system having one or more volumes storing data associated with the application;

in response to determining the resource requirements, generating, at the storage system, one or more volume tags for a volume that stores data used by the application storing, in the generated one or more volume tags of the volume, an application configuration that includes the resource requirements required for execution of the application; and

replicating the one or more volumes storing data associated with the application and including the one or more volume tags storing the application configuration that includes the resource requirements of the application to a cloud-computing environment.

2. The method of claim 1 , wherein the storage system comprises an on-premises storage system.

3. The method of claim 1 , wherein the storage system comprises a cloud-based storage system executed in another cloud-computing environment.

4. The method of claim 1 further comprising executing, based on a container configuration, an instance of the application in the cloud-computing environment using information associated with the resource requirements of the application included in the volume tags that were generated at the storage system and replicated to the cloud-computing environment during a replication of the volume.

5. The method of claim 4 , wherein executing the instance of the application comprises:

providing the container configuration to an application container orchestration system in the cloud-computing environment; and

executing, via the application container orchestration system, the application.

6. The method of claim 4 further comprising determining to execute the instance of the application in response to a user input.

7. The method of claim 4 further comprising determining to execute the instance of the application in response to detecting that another instance of the application executed in the storage system has reached a failure state.

8. The method of claim 7 , wherein the failure state comprises a failure to respond to a heartbeat message.

9. The method of claim 4 further comprising determining to execute the application in response to one or more conditions in a migration policy being satisfied.

10. The method of claim 1 further comprising selecting, based on a migration policy, the cloud-computing environment from a plurality of cloud-computing environments.

11. An apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within the computer memory computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

determining resource requirements that define one or more resources required for an execution of an application executed in a container that accesses a storage system, the storage system having one or more volumes storing data associated with the application;

in response to determining the resource requirements, generating, at the storage system, one or more volume tags for a volume that stores data used by the application storing, in the generated one or more volume tags of the volume, an application configuration that includes the resource requirements required for execution of the application; and

replicating the one or more volumes storing data associated with the application and including the one or more volume tags storing the application configuration that includes the resource requirements of the application to a cloud-computing environment.

12. The apparatus of claim 11 , wherein the storage system comprises an on-premises storage system.

13. The apparatus of claim 11 , wherein the storage system comprises a cloud-based storage system executed in another cloud-computing environment.

14. The apparatus of claim 11 wherein the steps further comprise executing, based on a container configuration, an instance of the application in the cloud-computing environment using information associated with the resource requirements of the application included in the volume tags that were generated at the storage system and replicated to the cloud-computing environment during a replication of the volume.

15. The apparatus of claim 14 , wherein executing the instance of the application comprises:

providing the container configuration to an application container orchestration system in the cloud-computing environment; and

executing, via the application container orchestration system, the application.

16. The apparatus of claim 14 wherein the steps further comprise determining to execute the instance of the application in response to a user input.

17. The apparatus of claim 14 wherein the steps further comprise determining to execute the instance of the application in response to detecting that another instance of the application executed in the storage system has reached a failure state.

18. The apparatus of claim 17 , wherein the application is an artificial intelligence application.

19. The apparatus of claim 14 , wherein the steps further comprise determining to execute the application in response to one or more conditions in a migration policy being satisfied.

20. A computer program product disposed upon a non-transitory computer readable medium, the computer program product comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

determining resource requirements that define one or more resources required for an execution of an application executed in a container that accesses a storage system, the storage system having one or more volumes storing data associated with the application;

in response to determining the resource requirements, generating, at the storage system, one or more volume tags for a volume that stores data used by the application storing, in the generated one or more volume tags of the volume, an application configuration that includes the resource requirements required for execution of the application; and

replicating the one or more volumes storing data associated with the application and including the one or more volume tags storing the application configuration that includes the resource requirements of the application to a cloud-computing environment.

21. The method of claim 1 , further comprising:

training a machine learning model to determine the resource requirements, the training comprising:

obtaining training data sets, each training data set of historical data comprising:

one or more application identifiers;

values of resource requirements for each application associated with the one or more application identifiers;

training the machine learning model based on the training data sets; and

applying the machine learning model to determine the resource requirements required for execution of the application.

Assignments (3)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2020
From: PRAKASHAIAH, VIRENDRA; VOHRA, TAHER
To: PURE STORAGE, INC.
Reel/Frame 051927/0324 →
Cited By (2)
US 12,367,320 US 12,493,695