IP Library › Granted Patent US 9,916,133
Granted Patent B2
US 9,916,133 · App. 13/828,842 · Granted Mar 13, 2018

Software release workflow management

Inventors: Marwan E. Jubran (Redmond, WA); Aleksandr Gershaft (Redmond, WA); Maksim Libenson (Issaquah, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F8/00G06F8/71G06F8/77
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 9,916,133
App. No.
13/828,842
Granted
Mar 13, 2018
Kind
B2
Abstract

A computer-implemented method for managing a release of a software product includes obtaining a request for the release, the request including workflow action parameter data to define a release pipeline involving a plurality of software engineering systems configured to process data indicative of the software product, and executing, with a processor, a workflow to implement the release pipeline in accordance with the workflow action parameter data. Executing the workflow includes sending a series of instructions to the plurality of software engineering systems. A successive instruction in the series of instructions is sent based on whether a gating rule for the release is met.

Claims (46)

1. A computer-implemented method for managing a release of a software product, the method comprising:

obtaining a request for the release, the request comprising workflow action parameter data to define a release pipeline involving a plurality of software engineering systems, each software engineering system being configured to provide a respective software release service that processes data indicative of the software product; and

executing, with one or more processors, a workflow to implement the release pipeline in accordance with the workflow action parameter data;

wherein executing the workflow comprises:

providing release management services in a parallel processing arrangement via a scalable plurality of instances of an orchestrator implemented in a cloud-based framework; and

wherein providing the release management services comprises sending, by one or more of the instances of the orchestrator, a series of instructions to the plurality of software engineering systems, each instruction directing a respective one of the plurality of software engineering systems to implement the respective software release service; and

wherein a successive instruction in the series of instructions is sent based on whether a gating rule for the release is met.

2. The computer-implemented method of claim 1 , further comprising accessing a configuration file that comprises data indicative of the gating rule.

3. The computer-implemented method of claim 1 , wherein the gating rule specifies a quality assurance rule for entering or exiting a step in the workflow.

4. The computer-implemented method of claim 1 , wherein executing the workflow comprises resuming the workflow if the gating rule is no longer applicable.

5. The computer-implemented method of claim 1 , wherein executing the workflow comprises accessing a policy schema to determine the gating rule and to configure an instruction in the series of instructions.

6. The computer-implemented method of claim 1 , wherein the gating rule specifies a user role to approve implementation of a successive instruction in the series of instructions.

7. The computer-implemented method of claim 1 , wherein executing the workflow comprises:

determining whether a workflow incident occurs due to failure to meet the gating rule;

sending an alert to a user authorized via a policy schema to respond to the workflow incident; and

resuming the workflow based on a response to the alert from the user.

8. The computer-implemented method of claim 1 , wherein executing the workflow comprises recording, in a data store, data indicative of an action implemented during the workflow and a user who approved the action, the user being assigned to a user role having a permission via a policy schema to approve the action.

9. The computer-implemented method of claim 1 , wherein:

executing the workflow comprises monitoring a system health parameter of a computer;

sending an alert to a user authorized via a policy schema to respond if the system health parameter does not meet a threshold; and

resuming the workflow based on a response to the alert from the user.

10. The computer-implemented method of claim 1 , wherein the workflow action parameter data specifies a metric to be displayed via a dashboard during execution of the workflow.

11. The computer-implemented method of claim 1 , further comprising validating a state of a production environment before releasing a build of the software product to the production environment based on a validation criterion specified in a policy schema.

12. The computer-implemented method of claim 11 , wherein the validation criterion relates to a dependency of the software product, and wherein validating the state of the production environment comprises:

determining a state of the dependency; and

validating the state of the dependency before implementing the release.

13. The computer-implemented method of claim 12 , further comprising scheduling an event for the release with a constraint based on the state of the dependency.

14. A system for managing a release of a software product, the system comprising:

a front end server to receive a request for the release, the request comprising workflow action parameter data to define a release pipeline involving a plurality of software engineering systems, each software engineering system being configured to provide a respective software release service that processes data indicative of the software product;

a scalable plurality of workflow engines in a cloud-based framework to provide release management services in a parallel processing arrangement, each workflow engine being configured to manage communications with the plurality of software engineering systems and to process the workflow action parameter data to provide a workflow to implement the release pipeline in accordance with the workflow action parameter data, and further configured to execute the workflow such that the communications comprise a series of instructions sent to the plurality of software engineering systems; and

a policy engine configured to direct a respective workflow engine of the scalable plurality of workflow engines to send a successive instruction in the series of instructions based on whether a gating rule of a policy schema for the software product is met.

15. The system of claim 14 , wherein the policy engine is configured to determine whether a workflow incident occurs due to failure to meet the gating rule, send an alert to a user authorized via the policy schema to respond to the workflow incident, and resume the workflow based on a response to the alert from the user.

16. The system of claim 14 , further comprising a data store in communication with each workflow engine and in which data indicative of an action implemented during the workflow is stored and a user who approved the action, the user being assigned to a user role having a permission to approve the action.

17. The system of claim 14 , wherein the policy engine is configured to monitor a system health parameter of the workflow engine to send an alert to a user authorized via the policy specification to respond if the system health parameter does not meet a threshold, and to resume the workflow based on a response to the alert from the user.

18. The system of claim 14 , wherein:

the front end server is configured to generate a dashboard to display data regarding implementation of the workflow; and

the workflow action parameter data specifies a metric to be displayed via the dashboard.

19. The system of claim 14 , wherein the policy engine is configured to validate a state of a production environment before releasing a build of the software product to the production environment based on a validation criterion specified in the policy schema.

20. A computer program product for implementing a method of managing a release of a software product, the computer program product comprising one or more computer-readable storage media having stored thereon computer-executable instructions that, when executed by one or more processors of a computing system, cause the computing system to perform the method, the method comprising:

receiving a request for the release, the request comprising workflow action parameter data to define a release pipeline involving a plurality of software engineering systems, each software engineering system being configured to provide a respective software release service that processes data indicative of the software product;

executing a workflow to implement the release pipeline in accordance with the workflow action parameter data and the policy schema;

wherein executing the workflow comprises providing release management services in a parallel processing arrangement via a scalable plurality of instances of an orchestrator implemented in a cloud-based framework; and

wherein providing the release management services comprises:

sending, by one or more of the instances of the orchestrator, a series of instructions to the plurality of software engineering systems, each instruction directing a respective one of the plurality of software engineering systems to implement the respective software release service;

accessing a configuration file that comprises data indicative of a policy schema; and

applying a gating rule of the policy schema to determine whether a successive instruction in the series of instructions is sent.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2013
From: JUBRAN, MARWAN E.; GERSHAFT, ALEKSANDR; LIBENSON, MAKSIM
To: MICROSOFT CORPORATION
Reel/Frame 030010/0414 →
Continuity (1)
Related Publication 20140282353A1 · Sep 18, 2014