IP Library Granted Patent US 11,036,483
Granted Patent B2
US 11,036,483 · App. 16/709,846 · Granted Jun 15, 2021

Method for predicting the successfulness of the execution of a DevOps release pipeline

Inventors: Jovan Veljanoski (Utrecht, NL); Bulat Yaminov (Utrecht, NL)
Assignee: Digital.ai Software, Inc.
G06F8/60G06F8/70G06F17/18G06N20/00
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,036,483
App. No.
16/709,846
Filed
Dec 10, 2019
Granted
Jun 15, 2021
Kind
B2
Examiner
CHEN, QING
Art Unit
2191
USPC
717/174
Abstract

The release/delivery of software applications in a corporate setting is often a complex process chaining dozens of steps handled by a myriad of so-called DevOps tools. This process is known as a release or delivery pipeline. Embodiments of the invention provide a method and system of predicting the risk, status, and duration associated with the execution of such a release/delivery pipeline. Embodiments also provide an engine that predicts the probability of failure, as well as the status and duration of each individual pipeline step. One embodiment begins by obtaining all necessary data from a release orchestration tool, which contains the information of the structure, content, and any other custom specifications of a release/delivery pipeline. The data is transformed and encoded. The predictions are then calculated by comparing this data to a historic record of already executed release/delivery pipelines which were archived by the release orchestration tool. Finally, the predictions obtained are presented in a user interface to the user of the release orchestration tool.

Claims (104)

1. A computer implemented method of orchestrating software releases, the computer implemented method comprising:

obtaining metadata from a subject DevOps release/delivery pipeline through a DevOps tool interface;

using the obtained metadata as input to train one or more machine learning prediction models in a manner resulting in model generated predictions of any combination of:

a risk associated with an execution of the subject DevOps release/delivery pipeline;

a probability that the execution of the subject DevOps release/delivery pipeline will fail to finish successfully; and

a likely duration of the execution of the subject DevOps release/delivery pipeline; and

outputting the model generated predictions in a user interface,

wherein the steps of obtaining, using, and outputting are automatically implemented by a processor in response to user commands,

wherein a first machine learning prediction model predicts the risk associated with the execution of the subject DevOps release/delivery pipeline, the probability that the execution of the subject DevOps release/delivery pipeline failing to finish successfully, and the likely duration of the execution of the subject DevOps release/delivery pipeline,

wherein the first machine learning prediction model considers any combination of skipped, failed, retried, and delayed steps or tasks in predicting the risk associated with the execution of the subject DevOps release/delivery pipeline,

wherein the one or more machine learning prediction models assign different weights to different data types of the obtained metadata used as input, wherein the different weights are determined based on an importance of each data type of the different data types,

wherein the one or more machine learning prediction models employ a k-nearest neighbor algorithm with a weighted median statistic to determine the model generated predictions, and

wherein the DevOps tool interface comprises a plug-in to a release orchestration tool.

2. The computer implemented method of claim 1 , wherein a second machine learning prediction model, different from the first machine learning prediction model, predicts:

a status of each step in the subject DevOps release/delivery pipeline;

a probability of failure for each step in the subject DevOps release/delivery pipeline; and

a likely duration of each step in the subject DevOps release/delivery pipeline.

3. The computer implemented method of claim 2 , wherein the second machine learning prediction model predicting the status of each step in the subject DevOps release/delivery pipeline includes predicting a probability of each step in the subject DevOps release/delivery pipeline as being completed, aborted, or skipped.

4. The computer implemented method of claim 2 , wherein the obtained metadata used as input includes any combination of:

a task type;

a description of a task;

a flag marking whether a task is manual or automatic;

a flag marking whether a task is custom made by a user;

a flag marking whether a task is locked or not;

a flag marking whether a task has preconditions;

a flag marking whether a task is set to be delayed during a blackout;

a flag marking whether a task has to wait for a scheduled starting date;

a number of conditions in a task;

a number of tasks in a phase in which a task resides;

a number of input variables in the subject DevOps release/delivery pipeline;

a number of phases in the subject DevOps release/delivery pipeline;

a number of tasks in the subject DevOps release/delivery pipeline;

an identifier of a pipeline template of which a task is part of; and

an identifier of a folder in which the pipeline template resides that a task is part of.

5. The computer implemented method of claim 1 , wherein the obtained metadata used as input includes any two or more of:

titles of tasks composing the subject DevOps release/delivery pipeline;

a description of the tasks composing the subject DevOps release/delivery pipeline;

a number of tasks composing the subject DevOps release/delivery pipeline;

a number of phases composing the subject DevOps release/delivery pipeline;

a number of each task type composing the subject DevOps release/delivery pipeline;

a number of manual tasks;

a number of tags;

a number of sub tasks;

a number of gate tasks;

a number of gate conditions;

a number of gate dependencies;

a number of input variables associated with the subject DevOps release/delivery pipeline;

input variables associated with the subject DevOps release/delivery pipeline;

an identifier of a template from which the subject DevOps release/delivery pipeline has been created;

an identifier of a folder in which the subject DevOps release/delivery pipeline resides;

a date when the execution of the subject DevOps release/delivery pipeline started;

a flag marking whether the subject DevOps release/delivery pipeline was executed automatically or manually; and

a flag marking whether the subject DevOps release/delivery pipeline has been created from an external trigger.

6. The computer implemented method of claim 1 , wherein the one or more machine learning prediction models encode non-numerical data types of the obtained metadata used as input, and wherein the encoding is performed by at least one of:

a MinHash algorithm;

a hashing algorithm; and

a frequency encoder.

7. The computer implemented method of claim 1 , wherein the one or more machine learning prediction models generate predictions both prior to and while the subject DevOps release/delivery pipeline is being executed.

8. A computer implemented method of software release orchestration that releases/delivers software to a production environment or any other environment, the computer implemented method comprising:

obtaining metadata from a subject DevOps release/delivery pipeline through a DevOps tool interface;

using the obtained metadata as input to train one or more machine learning prediction models in a manner resulting in model generated predictions of any combination of:

a status of each step in the subject DevOps release/delivery pipeline;

a probability of failure for each step in the subject DevOps release/delivery pipeline; and

a likely duration of each step in the subject DevOps release/delivery pipeline; and

outputting the model generated predictions in a user interface,

wherein the steps of obtaining, using, and outputting are automatically implemented by a processor in response to user commands,

wherein a machine learning prediction model predicts the status of each step in the subject DevOps release/delivery pipeline, the probability of failure for each step in the subject DevOps release/delivery pipeline, and the likely duration of each step in the subject DevOps release/delivery pipeline,

wherein the one or more machine learning prediction models assign different weights to different data types of the obtained metadata used as input, wherein the different weights are determined based on an importance of each data type of the different data types,

wherein at least one of the one or more machine learning prediction models employs a k-nearest neighbor algorithm with a weighted median statistic to determine the model generated predictions, and

wherein the DevOps tool interface comprises a plug-in to a release orchestration tool.

9. The computer implemented method of claim 8 , wherein the one or more machine learning prediction models predicting the status of each step in the subject DevOps release/delivery pipeline includes predicting a probability of each step in the subject DevOps release/delivery pipeline as being completed, aborted, or skipped.

10. The computer implemented method of claim 8 , wherein the one or more machine learning prediction models generate predictions both prior to and while the subject DevOps release/delivery pipeline is being executed.

11. The computer implemented method of claim 8 , wherein the obtained metadata used as input includes any combination of:

a task type;

a description of a task;

a flag marking whether a task is manual or automatic;

a flag marking whether a task is custom made by a user;

a flag marking whether a task is locked or not;

a flag marking whether a task has preconditions;

a flag marking whether a task is set to be delayed during a blackout;

a flag marking whether a task has to wait for a scheduled starting date;

a number of conditions in a task;

a number of tasks in a phase in which a task resides;

a number of input variables in the subject DevOps release/delivery pipeline;

a number of phases in the subject DevOps release/delivery pipeline;

a number of tasks in the subject DevOps release/delivery pipeline;

an identifier of a pipeline template of which a task is part of; and

an identifier of a folder in which the pipeline template resides that a task is part of.

12. The computer implemented method of claim 11 , wherein the one or more machine learning prediction models encode non-numerical data types of the obtained metadata used as input, and wherein the encoding is performed by at least one of:

a MinHash algorithm;

a hashing algorithm; and

a frequency encoder.

13. A computer-based system applicable to any software release orchestrator, the computer-based system comprising:

a processor to execute multiple machine learning prediction models;

a user interface display operatively connected to the processor;

a prediction engine executable by the processor and formed of the multiple machine learning prediction models; and

a DevOps tool interface coupled to the prediction engine in a manner providing metadata from a subject DevOps release/delivery pipeline as input to train the multiple machine learning prediction models, and in response the multiple machine learning prediction models generating model generated predictions of any combination of: a risk associated with an execution of the subject DevOps release/delivery pipeline, and a status of each step in the subject DevOps release/delivery pipeline, wherein the status of each step in the subject DevOps release/delivery pipeline is any of completed, aborted, and skipped, and wherein the DevOps tool interface supports an output of the model generated predictions in the user interface display,

wherein a first machine learning prediction model generates the model generated predictions of the risk associated with the execution of the subject DevOps release/delivery pipeline by considering any combination of: skipped, failed, retried, and delayed steps or tasks,

wherein the first machine learning prediction model further predicts: a probability that the execution of the subject DevOps release/delivery pipeline will fail to finish successfully, and a likely duration of the execution of the subject DevOps release/delivery pipeline,

wherein the multiple machine learning prediction models assign different weights to different data types of the provided metadata used as input, wherein the different weights are determined based on an importance of each data type of the different data types,

wherein at least some of the multiple machine learning prediction models are formed by machine learning and employ a k-nearest neighbor algorithm with a weighted median statistic to determine the model generated predictions, and

wherein the DevOps tool interface comprises a plug-in to a release orchestration tool.

14. The computer-based system of claim 13 , wherein a second machine learning prediction model, different from the first machine learning prediction model, predicts a status of each step in the subject DevOps release/delivery pipeline, a probability of failure for each step in the subject DevOps release/delivery pipeline, and a likely duration of each step in the subject DevOps release/delivery pipeline.

15. The computer-based system of claim 13 , wherein the multiple machine learning prediction models generate predictions both prior to and while the subject DevOps release/delivery pipeline is being executed.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2021
From: XEBIALABS, INC.
To: DIGITAL.AI SOFTWARE, INC.
Reel/Frame 055675/0947 →
SECURITY INTEREST Recorded Feb 10, 2021
From: VERSIONONE, INC.; DIGITAL.AI SOFTWARE, INC.; ARXAN TECHNOLOGIES, INC.; NUMERIFY, INC.; XEBIALABS, INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 055277/0043 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2019
From: VELJANOSKI, JOVAN; YAMINOV, BULAT
To: XEBIALABS, INC.
Reel/Frame 051249/0392 →
Continuity (2)
Provisional Application 62824208 · Mar 26, 2019
Related Publication 20200310769A1 · Oct 1, 2020
Cited By (3)
US 12,260,207 US 12,407,700 US 12,675,734