IP Library Granted Patent US 11,829,259
Granted Patent B2
US 11,829,259 · App. 16/891,332 · Granted Nov 28, 2023

Automated creation of variable data storage environments for application testing

Inventors: Upanshu Singhal (Bangalore, IN); Laharicharan Bejjanke (Warangal, IN); Sanjeev Kumar Lohchab (Bangalore, IN); Syed Razi Rasool (Bangalore, IN); Sowmya Devarahalli Nanjappa (Karnataka, IN)
Assignee: EMC IP Holding Company LLC
G06F11/1469G06F9/45558G06F11/1451G06F11/1461G06F11/1464G06F2009/45595G06F2201/80
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,829,259
App. No.
16/891,332
Granted
Nov 28, 2023
Kind
B2
Abstract

Described is a system for automated creation of various data storage environments for application testing. The system may provide an efficient mechanism for creating various computing environments employed by clients of a data protection and recovery service. For example, different clients may utilize different data storage infrastructure (e.g. servers, storage arrays, databases, etc.) on which common backup-related components are overlaid. The system may build different combinations of computing environments and perform application testing across such environments simultaneously (or in parallel) within a virtual environment. Accordingly, the system may verify the operational consistency of backup-related applications across a large sample of client computing environments in an efficient manner.

Claims (71)

1. A system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

receive a configuration file, the configuration file specifying components of a plurality of computing environments, the plurality of computing environments including at least a first computing environment using a first operating system and a second computing environment using a second operating system;

determine, for each of the first and second computing environments, one of a first and second combination of components specified in the configuration file that are potentially used by the first and second computing environments to implement first and second backup applications;

create, for each of the computing environments, a corresponding virtual machine (VM) within a testing environment, the created VMs including at least a first VM for the first operating system in the first computing environment, and a second VM for the second operating system in the second computing environment;

perform, for each of the created VMs, an initialization including:

configuring a network for one of the first and second VMs;

creating one or more storage resources within the one of the first and second VMs that are accessible by other components within the one of the first and second VMs via the network for the one of the first and second VMs;

installing a database application to store data received over the network for the one of the first and second VMs within the storage resources; and

installing the first and second backup applications to back up the data stored within the storage resources, wherein each of the network, the storage resources, the database application, and the first and second backup applications being initialized using a determined combination of components from the configuration file corresponding to the first and second computing environments associated with the first and second VMs; and

execute at least one testing operation associated with the first and second backup applications installed on the created VMs.

2. The system of claim 1 , wherein the initialization of the second VM occurs substantially in parallel with the initialization of the first VM.

3. The system of claim 1 , wherein: each of the created storage resources comprises a logical unit number (LUN); and performing the initialization further includes:

performing a masking that authorizes at least one of the first and second VMs to access the created LUNs; and

performing a raw disk mapping (RDM) that presents each of the created LUNs directly to at least one of the first and second VMs from the network.

4. The system of claim 1 , wherein the plurality of instructions, when executed, further cause the one or more processors to: select, amongst the determined combinations, a first combination of components for the first VM, and a second combination of components for the second VM to perform initializations of the first VM and the second VM.

5. The system of claim 1 , wherein creating at least one of the first and second virtual machines (VM) includes accessing, from the testing environment, a first service endpoint that initiates the creation of at least one of the first and second VMs.

6. The system of claim 1 , wherein performing the initialization includes accessing, from the testing environment, a set of independent service endpoints including:

a second service endpoint that configures the network; and

a third service endpoint that initiates the creation of the one or more storage resources.

7. The system of claim 6 , wherein accessing the set of independent service endpoints further includes:

a fourth service endpoint that installs the database application; and

a fifth service endpoint that installs at least one of the first and second backup applications.

8. The system of claim 1 , wherein performing the initialization further includes creating a file system on at least one of the first and second VMs.

9. A method comprising:

receiving a configuration file, the configuration file specifying components of a plurality of computing environments for implementing a first backup application and a second backup application, the plurality of computing environments including at least a first computing environment using a first operating system and a second computing environment using a second operating system;

determining, for each of the first and second computing environments, at least one combination of components specified in the configuration file that are potentially used by the first and second computing environments to implement the first and second backup applications;

creating, for each of the computing environments, first and second virtual machines (VM) within a testing environment, the created VMs including the first VM for the first operating system, and the second VM for the second operating system;

performing, for each of the created VMs, an initialization including:

configuring a network for one of the first and second VMs;

creating one or more storage resources within the one of the first and second VMs that are accessible by other components within the one of the first and second VMs via the network for the one of the first and second VMs;

installing a database application to store data received over the network for the one of the first and second VMs within the storage resources; and

installing the first and second backup applications to back up the data stored within the storage resources, wherein each of the network, the storage resources, the database application, and the first and second backup applications being initialized using a determined combination of components from the configuration file corresponding to the first and second computing environments associated with the first and second VMs; and

executing at least one testing operation associated with the first and second backup applications installed on the created VMs.

10. The method of claim 9 , wherein the initialization of the second VM occurs substantially in parallel with the initialization of the first VM.

11. The method of claim 9 , wherein:

each of the created storage resources comprises a logical unit number (LUN); and

performing the initialization further includes:

performing a masking that authorizes at least one of the first and second VMs to access the created LUNs; and

performing a raw disk mapping (RDM) that presents each of the created LUNs directly to at least one of the first and second VMs from the network.

12. The method of claim 9 , further comprising: selecting, amongst the determined combinations, a first combination of components for the first VM, and a second combination of components for the second VM to perform initializations of the first VM and the second VM.

13. The method of claim 9 , wherein creating at least one of the first and second virtual machines (VM) includes accessing, from the testing environment, a first service endpoint that initiates the creation of at least one of the first and second VMs.

14. The method of claim 9 , wherein performing the initialization includes accessing, from the testing environment, a set of independent service endpoints including:

a second service endpoint that configures the network;

a third service endpoint that initiates the creation of the one or more storage resources;

a fourth service endpoint that installs the database application; and

a fifth service endpoint that installs at least one of the first and second backup applications.

15. A computer program product comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein to be executed by one or more processors, the program code including instructions to:

receive a configuration file, the configuration file specifying components of a plurality of computing environments for implementing first and second backup applications, the plurality of computing environments including at least a first computing environment using a first operating system and a second computing environment using a second operating system;

determine, for each of the first and second computing environments, at least one combination of components specified in the configuration file that are potentially used by the first and second computing environments to implement the first and second backup applications;

create, for each of the computing environments, one of first and second virtual machines (VM) within a testing environment, the created VMs including the first VM for the first operating system, and the second VM for the second operating system;

perform, for each of the created VMs, an initialization including:

configuring a network for one of the first and second VMs;

creating one or more storage resources within the one of the first and second VMs that are accessible by other components within the one of the first and second VMs via the network for the one of the first and second VMs;

installing a database application to store data received over the network for the one of the first and second VMs within the storage resources; and

installing the first and second backup applications to back up the data stored within the storage resources, wherein each of the network, the storage resources, the database application, and the first and second backup applications being initialized using a determined combination of components from the configuration file corresponding to the computing environments associated with the first and second VMs; and

execute at least one testing operation associated with the first and second backup applications installed on the created VMs.

16. The computer program product of claim 15 , wherein the initialization of the second VM occurs substantially in parallel with the initialization of the first VM.

17. The computer program product of claim 15 , wherein:

each of the created storage resources comprises a logical unit number (LUN); and

performing the initialization further includes:

performing a masking that authorizes at least one of the first and second VMs to access the created LUNs; and

performing a raw disk mapping (RDM) that presents each of the created LUNs directly to at least one of the first and second VMs from the network.

18. The computer program product of claim 15 , wherein the program code includes further instructions to: select, amongst the determined combinations, a first combination of components for the first VM, and a second combination of components for the second VM to perform initializations of the first VM and the second VM.

19. The computer program product of claim 15 , wherein creating at least one of the first and second virtual machines (VM) includes accessing, from the testing environment, a first service endpoint that initiates the creation of at least one of the first and second VMs.

20. The computer program product of claim 15 , wherein performing the initialization includes accessing, from the testing environment, a set of independent service endpoints including:

a second service endpoint that configures the network;

a third service endpoint that initiates the creation of the one or more storage resources;

a fourth service endpoint that installs the database application; and

a fifth service endpoint that installs at least one of the first and second backup applications.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2020
From: SINGHAL, UPANSHU; BEJJANKE, LAHARICHARAN; LOHCHAB, SANJEEV KUMAR; SYED, RAZI; NANJAPPA, SOWMYA DEVARAHALLI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052822/0365 →