IP Library Granted Patent US 12,093,676
Granted Patent B2
US 12,093,676 · App. 17/575,765 · Granted Sep 17, 2024

Intelligent management of software deployment based on code change

Inventors: Rangan Basu (Gurugram, IN); Rohit Gosain (Bangalore, IN); Shibi Panikkar (Bangalore, IN); Anup Kumar (Bengaluru, IN)
Assignee: Dell Products L.P.
G06F8/65G06F21/577G06N5/022G06F2221/033
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,093,676
App. No.
17/575,765
Filed
Jan 14, 2022
Granted
Sep 17, 2024
Kind
B2
Art Unit
2193
USPC
717/168
Abstract

Automated management of software code change and deployment in an information processing system is disclosed. In one example, a method comprises the following steps. The method obtains one or more parameters specifying a software deployment following at least one code change to a set of one or more software programs. The method distinguishes first portions of the set of one or more software programs that are affected by the at least one code change from second portions of the set of one or more software programs that are unaffected by the at least one code change. The method generates at least one deployment script for causing deployment of the first portions of the set of one or more software programs without causing deployment of the second portions of the set of one or more software programs.

Claims (36)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory, the at least one processing device, when executing program code, operates as a software deployment management engine configured to:

obtain one or more developer-defined parameters specifying a software deployment following at least one code change to a set of one or more software programs, the one or more developer-defined parameters specifying, for the set of one or more software programs, a target deployment and a type of deployment;

distinguish first portions of the set of one or more software programs that are affected by the at least one code change from second portions of the set of one or more software programs that are unaffected by the at least one code change;

generate one or more configuration files based on the one or more developer-defined parameters;

determine whether one or more dependency relationships associated with the at least one code change exist by detecting dependencies between the one or more configuration files and the set of one or more software programs based on commit data; and

generate at least one deployment script for causing deployment of the first portions of the set of one or more software programs without causing deployment of the second portions of the set of one or more software programs based at least in part on the detected dependencies.

2. The apparatus of claim 1 , wherein the software deployment management engine is further configured to cause performance of a code scanning process for processing the first portions of the set of one or more software programs to detect any vulnerabilities therein.

3. The apparatus of claim 2 , wherein the software deployment management engine is further configured to utilize a machine learning model to decide whether a result of the code scanning process is submitted for approval by an approver or is automatically approved.

4. The apparatus of claim 3 , wherein the software deployment management engine is further configured to train the machine learning model based on historical approval data.

5. The apparatus of claim 4 , wherein the software deployment management engine is further configured to train the machine learning model based on historical approval data using a binary classification algorithm.

6. The apparatus of claim 5 , wherein the software deployment management engine is further configured to utilize the trained machine learning model to pass or fail the at least one deployment script.

7. The apparatus of claim 6 , wherein the software deployment management engine is further configured to pass or fail the at least one deployment script based on a severity of any vulnerability detected.

8. The apparatus of claim 7 , wherein the software deployment management engine is further configured to pass or fail the at least one deployment script based on an error threshold.

9. The apparatus of claim 1 , wherein a current commit is compared to a previous commit to identify which portions of the set of one or more software programs are the first portions and which are the second portions.

10. A method comprising:

obtaining, via a software deployment management engine, one or more developer-defined parameters specifying a software deployment following at least one code change to a set of one or more software programs, the one or more developer-defined parameters specifying, for the set of one or more software programs, a target deployment and a type of deployment;

distinguishing, via the software deployment management engine, first portions of the set of one or more software programs that are affected by the at least one code change from second portions of the set of one or more software programs that are unaffected by the at least one code change;

generating one or more configuration files based on the one or more developer-defined parameters;

determining whether one or more dependency relationships associated with the at least one code change exist by detecting dependencies between the one or more configuration files and the set of one or more software programs based on commit data; and

generating, via the software deployment management engine, at least one deployment script for causing deployment of the first portions of the set of one or more software programs without causing deployment of the second portions of the set of one or more software programs based at least in part on the detected dependencies.

11. The method of claim 10 , further comprising causing performance of a code scanning process for processing the first portions of the set of one or more software programs to detect any vulnerabilities therein.

12. The method of claim 11 , further comprising utilizing a machine learning model to decide whether a result of the code scanning process is submitted for approval by an approver or is automatically approved.

13. The method of claim 12 , further comprising training the machine learning model based on historical approval data.

14. The method of claim 13 , further comprising training the machine learning model based on historical approval data using a binary classification algorithm.

15. The method of claim 14 , further comprising utilizing the trained machine learning model to pass or fail the at least one deployment script.

16. The method of claim 15 , further comprising passing or failing the at least one deployment script based on a severity of any vulnerability detected.

17. The method of claim 16 , further comprising passing or failing the at least one deployment script based on an error threshold.

18. The method of claim 10 , wherein a current commit is compared to a previous commit to identify which portions of the set of one or more software programs are the first portions and which are the second portions.

19. 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 device cause the at least one processing device to operate as a software deployment management engine configured to:

obtain one or more developer-defined parameters specifying a software deployment following at least one code change to a set of one or more software programs, the one or more developer-defined parameters specifying, for the set of one or more software programs, a target deployment and a type of deployment;

distinguish first portions of the set of one or more software programs that are affected by the at least one code change from second portions of the set of one or more software programs that are unaffected by the at least one code change;

generate one or more configuration files based on the one or more developer-defined parameters;

determine whether one or more dependency relationships associated with the at least one code change exist by detecting dependencies between the one or more configuration files and the set of one or more software programs based on commit data; and

generate at least one deployment script for causing deployment of the first portions of the set of one or more software programs without causing deployment of the second portions of the set of one or more software programs based at least in part on the detected dependencies.

20. The computer program product of claim 19 , wherein a current commit is compared to a previous commit to identify which portions of the set of one or more software programs are the first portions and which are the second portions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 14, 2022
From: BASU, RANGAN; GOSAIN, ROHIT; PANIKKAR, SHIBI; KUMAR, ANUP
To: DELL PRODUCTS L.P.
Reel/Frame 058656/0027 →
Continuity (1)
Related Publication 20230229413A1 · Jul 20, 2023
Cited By (1)
US 12,511,401