IP Library Granted Patent US 10,146,675
Granted Patent B1
US 10,146,675 · App. 15/393,621 · Granted Dec 4, 2018

Automated code upgrade testing utilizing a copy data manager

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,146,675
App. No.
15/393,621
Granted
Dec 4, 2018
Kind
B1
Abstract

An apparatus in one embodiment comprises at least one processing platform including a plurality of processing devices. The processing platform implements compute services for users and further comprises a copy data manager and an upgrade controller. A data version repository stores data versions for each of one or more of the compute services implemented by the processing platform. One or more of the data versions are stored in association with respective sets of recorded incoming traffic of the corresponding compute service. The upgrade controller is configured to upgrade at least a portion of an application from a first code version to a second code version. In conjunction with the upgrade of the application, automated testing of the upgraded application is carried out by an automated code testing system using the given data version and its associated set of recorded incoming traffic.

Claims (57)

1. An apparatus comprising:

at least one processing platform comprising a plurality of processing devices and implementing compute services for users;

at least one of the processing devices comprising a physical processor coupled to a memory;

said at least one processing platform further comprising:

a copy data manager configured to maintain a data version repository; and

an upgrade controller;

wherein the data version repository is configured to store under the control of the copy data manager a plurality of data versions for each of one or more of the compute services implemented by the processing platform;

wherein one or more of the data versions are stored in association with respective sets of recorded incoming traffic of the corresponding compute service;

the association between the one or more data versions and the respective sets of recorded incoming traffic being implemented utilizing a data structure comprising a first set of elements in which identifiers of different data versions are stored and a second set of elements in which identifiers of corresponding ones of the respective sets of recorded incoming traffic are stored;

the different data versions being associated with respective application identifiers and respective time identifiers;

the corresponding ones of the respective sets of recorded incoming traffic also being associated with respective application identifiers and respective time identifiers;

a given one of the one or more data versions providing a point-in-time copy of application data utilized by an application of the corresponding compute service;

the set of recorded incoming traffic stored in association with the given data version characterizing a traffic workload processed by the application of the corresponding compute service utilizing the application data;

the upgrade controller being configured to upgrade at least a portion of the application from a first code version to a second code version;

wherein in conjunction with the upgrade of at least a portion of the application from the first code version to the second code version, automated testing of the upgraded application is carried out by an automated code testing system using the given data version and its associated set of recorded incoming traffic.

2. The apparatus of claim 1 wherein said at least one processing platform comprises at least a first processing platform implementing the compute services, the copy data manager and the upgrade controller and at least a second processing platform separate from the first processing platform and implementing the automated code testing system.

3. The apparatus of claim 1 wherein the recorded incoming traffic stored in association with the given data version comprises HTTP data traffic.

4. The apparatus of claim 1 wherein the data versions stored for a particular one of the compute services include data versions associated with respective distinct database schema of one or more databases utilized by that compute service.

5. The apparatus of claim 1 wherein the upgrade of at least a portion of the application from the first code version to the second code version comprises a live upgrade.

6. The apparatus of claim 5 wherein the set of recorded incoming traffic stored in association with the given data version comprises incoming traffic recorded for a period of time that is determined based at least in part on an expected amount of time required to perform the live upgrade of at least a portion of the application from the first code version to the second code version.

7. The apparatus of claim 1 wherein the automated testing of the upgraded application using the given data version and its associated set of recorded incoming traffic comprises executing the upgraded application utilizing the point-in-time copy of the application data and in conjunction with executing the upgraded application, replaying the associated set of recorded incoming traffic for processing by the upgraded application.

8. The apparatus of claim 7 wherein the automated testing of the upgraded application further comprises repeating the execution and replay for each of one or more additional data versions and respective associated sets of recorded incoming traffic of the corresponding compute service.

9. The apparatus of claim 1 wherein a code version repository is configured to store a plurality of code versions for each of one or more of the compute services implemented by the processing platform.

10. The apparatus of claim 9 wherein the code version repository comprises a code version control repository associated with a code development system.

11. The apparatus of claim 9 wherein the upgrade controller is configured to retrieve code versions from the code version repository.

12. The apparatus of claim 1 wherein the copy data manager is configured to control storage of at least a subset of the data versions for a given one of the compute services in the data version repository as respective point-in-time backup or replication copies of application data utilized by that compute service.

13. The apparatus of claim 1 wherein the copy data manager is configured to control storage of at least a subset of the data versions for a given one of the compute services in the data version repository as respective instances of live application data utilized by that compute service.

14. The apparatus of claim 1 wherein the copy data manager is configured to transfer the given data version and its associated set of recorded incoming traffic to the automated testing system.

15. A method comprising:

implementing compute services for users;

storing a plurality of data versions for each of one or more of the compute services;

wherein one or more of the data versions are stored in association with respective sets of recorded incoming traffic of the corresponding compute service;

the association between the one or more data versions and the respective sets of recorded incoming traffic being implemented utilizing a data structure comprising a first set of elements in which identifiers of different data versions are stored and a second set of elements in which identifiers of corresponding ones of the respective sets of recorded incoming traffic are stored;

the different data versions being associated with respective application identifiers and respective time identifiers;

the corresponding ones of the respective sets of recorded incoming traffic also being associated with respective application identifiers and respective time identifiers;

a given one of the one or more data versions providing a point-in-time copy of application data utilized by an application of the corresponding compute service;

the set of recorded incoming traffic stored in association with the given data version characterizing a traffic workload processed by the application of the corresponding compute service utilizing the application data;

upgrading at least a portion of the application from a first code version to a second code version; and

automatically testing the upgraded application using the given data version and its associated set of recorded incoming traffic;

wherein the method is performed by at least one processing platform comprising a plurality of processing devices.

16. The method of claim 15 wherein automatically testing comprises:

executing the upgraded application utilizing the point-in-time copy of the application data; and

in conjunction with executing the upgraded application, replaying the associated set of recorded incoming traffic for processing by the upgraded application.

17. The method of claim 16 further comprising repeating the executing and replaying for each of one or more additional data versions and respective associated sets of recorded incoming traffic of the corresponding compute service.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing platform causes said at least one processing platform:

to implement compute services for users;

to store a plurality of data versions for each of one or more of the compute services;

wherein one or more of the data versions are stored in association with respective sets of recorded incoming traffic of the corresponding compute service;

the association between the one or more data versions and the respective sets of recorded incoming traffic being implemented utilizing a data structure comprising a first set of elements in which identifiers of different data versions are stored and a second set of elements in which identifiers of corresponding ones of the respective sets of recorded incoming traffic are stored;

the different data versions being associated with respective application identifiers and respective time identifiers;

the corresponding ones of the respective sets of recorded incoming traffic also being associated with respective application identifiers and respective time identifiers;

a given one of the one or more data versions providing a point-in-time copy of application data utilized by an application of the corresponding compute service;

the set of recorded incoming traffic stored in association with the given data version characterizing a traffic workload processed by the application of the corresponding compute service utilizing the application data;

to upgrade at least a portion of the application from a first code version to a second code version; and

to automatically test the upgraded application using the given data version and its associated set of recorded incoming traffic.

19. The computer program product of claim 18 wherein automatically testing comprises executing the upgraded application utilizing the point-in-time copy of the application data, and in conjunction with executing the upgraded application, replaying the associated set of recorded incoming traffic for processing by the upgraded application.

20. The computer program product of claim 19 wherein the executing and replaying are repeated for each of one or more additional data versions and respective associated sets of recorded incoming traffic of the corresponding compute service.

Assignments (6)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AT REEL 048825 FRAME 0489 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058000/0916 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Apr 8, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 048825/0489 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: SHEMER, JEHUDA; LIEBERMAN, AMIT; NATANZON, ASSAF; WOLFSON, KFIR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 041064/0824 →