IP Library › Granted Patent US 10,671,368
Granted Patent B2
US 10,671,368 · App. 15/802,516 · Granted Jun 2, 2020

Automatic creation of delivery pipelines

Inventors: Christopher L. Brealey (Markham, CA); Simon Helsen (Komoka, CA); Thomas C. Schmidt (North York, CA); Christopher N. Taylor (Newmarket, CA)
Assignee: International Business Machines Corporation
G06F8/65G06F8/71G06F8/77G06F11/3688G06F8/60G06F11/3664H04L41/5054
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,671,368
App. No.
15/802,516
Filed
Nov 3, 2017
Granted
Jun 2, 2020
Kind
B2
Art Unit
2191
USPC
717/124
Abstract

A method, computer program product, and system includes a processor(s) identifying one or more resources of a shared computing environment utilized in delivery of an application, to users of the shared computing environment. The processor(s) monitors communications to the one or more resources, to identify and intercept operations related to delivery of the application. The processor(s) analyze the intercepted operations, to determine when the operations comprise a pattern occurring with a frequency indicative of a predetermined level of confidence, where the pattern comprises one or more delivery operations. Based on determining the pattern occurs with the frequency, the processor(s) generates an automated delivery pipeline for the application, where the automated delivery pipeline automates at least one of the one or more delivery operations comprising the pattern. The processor(s) utilizes the automated delivery pipeline to deliver a new version of the application.

Claims (41)

1. A computer-implemented method, comprising:

identifying, by one or more processors, one or more resources of a shared computing environment utilized in delivery of an application, to users of the shared computing environment, wherein the one or more resources comprise a source code repository;

monitoring, by the one or more processors, communications to the one or more resources, to identify and intercept operations related to delivery of the application;

analyzing, by the one or more processors, the intercepted operations, to determine when the operations comprise a pattern occurring with a frequency indicative of a predetermined level of confidence, wherein the pattern comprises one or more manual tasks performed by a user of the source code repository comprising source code for the application, wherein the repetitive manual tasks are selected from the group consisting of: building the application, testing the application, and deploying the application, wherein a final repetitive manual task of the repetitive manual tasks comprising the pattern is a command to deploy a version of the application, wherein the version of the application comprises updates to the source code made based on the user performing a group of repetitive manual tasks comprising all the repetitive manual tasks before the final repetitive manual task, on the source code repository;

based on determining the pattern occurs with the frequency, generating, by the one or more processors, an automated delivery pipeline for the application, wherein the automated delivery pipeline automates the pattern, a final command of the automated delivery pipeline comprising a command to automatically deploy the application, wherein a version of the application deployed utilizing the automated delivery pipeline comprises updates to the source code automatically applied to the source code repository based on initiating the automated delivery pipeline; and

utilizing, by the one or more processors, the automated delivery pipeline to deliver a new version of the application.

2. The computer-implemented method of claim 1 , wherein deploying the new version of the application comprises making the new version of the application available, as a service, to one or more users of the shared computing environment.

3. The computer-implemented method of claim 1 , wherein the one or more resources of the shared computing environment are selected from a group consisting of: physical machines, virtual machines, and containers.

4. The computer-implemented method of claim 1 , wherein identifying the one or more resources of the shared computing environment utilized in delivery of the application comprises:

obtaining, by the one or more processors, a request for an allocation of at least one resource for delivery of the application; and

based on the request, allocating, by the one or more processors, the one or more resources to the requestor.

5. The computer-implemented method of claim 1 , wherein generating the automated delivery pipeline comprises:

generating, by the one or more processors, a configuration file; and

utilizing, by the one or more processors, the configuration file to generate the automated delivery pipeline.

6. The computer-implemented method of claim 1 , wherein the delivery operations comprising the pattern comprise operations triggered by manual commands.

7. The computer-implemented method of claim 1 , wherein the pattern comprises a predetermined number of updates to source code of the application.

8. A computer program product comprising:

a computer readable storage medium readable by one or more processors and storing instructions for execution by the one or more processors for performing a method comprising:

identifying, by the one or more processors, one or more resources of a shared computing environment utilized in delivery of an application, to users of the shared computing environment, wherein the one or more resources comprise a source code repository;

monitoring, by the one or more processors, communications to the one or more resources, to identify and intercept operations related to delivery of the application;

analyzing, by the one or more processors, the intercepted operations, to determine when the operations comprise a pattern occurring with a frequency indicative of a predetermined level of confidence, wherein the pattern comprises one or more manual tasks performed by a user of the source code repository comprising source code for the application, wherein the repetitive manual tasks are selected from the group consisting of: building the application, testing the application, and deploying the application, wherein a final repetitive manual task of the repetitive manual tasks comprising the pattern is a command to deploy a version of the application, wherein the version of the application comprises updates to the source code made based on the user performing a group of repetitive manual tasks comprising all the repetitive manual tasks before the final repetitive manual task, on the source code repository;

based on determining the pattern occurs with the frequency, generating, by the one or more processors, an automated delivery pipeline for the application, wherein the automated delivery pipeline automates the pattern, a final command of the automated delivery pipeline comprising a command to automatically deploy the application, wherein a version of the application deployed utilizing the automated delivery pipeline comprises updates to the source code automatically applied to the source code repository based on initiating the automated delivery pipeline; and

utilizing, by the one or more processors, the automated delivery pipeline to deliver a new version of the application.

9. The computer program product of claim 8 , wherein deploying the new version of the application comprises making the new version of the application available, to one or more users of the shared computing environment.

10. The computer program product of claim 8 , wherein the one or more resources of the shared computing environment are selected from a group consisting of: physical machines, virtual machines, and containers.

11. The computer program product of claim 8 , wherein identifying the one or more resources of the shared computing environment utilized in delivery of the application comprises:

obtaining, by the one or more processors, a request for an allocation of at least one resource for delivery of the application; and

based on the request, allocating, by the one or more processors, the one or more resources to the requestor.

12. The computer program product of claim 8 , wherein generating the automated delivery pipeline comprises:

generating, by the one or more processors, a configuration file; and

utilizing, by the one or more processors, the configuration file to generate the automated delivery pipeline.

13. The computer program product of claim 8 , wherein the delivery operations comprising the pattern comprise operations triggered by manual commands.

14. A system comprising:

a memory;

one or more processors in communication with the memory; and

program instructions executable by the one or more processors via the memory to perform a method, the method comprising:

identifying, by the one or more processors, one or more resources of a shared computing environment utilized in delivery of an application, to users of the shared computing environment, wherein the one or more resources comprise a source code repository;

monitoring, by the one or more processors, communications to the one or more resources, to identify and intercept operations related to delivery of the application;

analyzing, by the one or more processors, the intercepted operations, to determine when the operations comprise a pattern occurring with a frequency indicative of a predetermined level of confidence, wherein the pattern comprises one or more manual tasks performed by a user of the source code repository comprising source code for the application, wherein the repetitive manual tasks are selected from the group consisting of: building the application, testing the application, and deploying the application, wherein a final repetitive manual task of the repetitive manual tasks comprising the pattern is a command to deploy a version of the application, wherein the version of the application comprises updates to the source code made based on the user performing a group of repetitive manual tasks comprising all the repetitive manual tasks before the final repetitive manual task, on the source code repository;

based on determining the pattern occurs with the frequency, generating, by the one or more processors, an automated delivery pipeline for the application, wherein the automated delivery pipeline automates the pattern, a final command of the automated delivery pipeline comprising a command to automatically deploy the application, wherein a version of the application deployed utilizing the automated delivery pipeline comprises updates to the source code automatically applied to the source code repository based on initiating the automated delivery pipeline; and

utilizing, by the one or more processors, the automated delivery pipeline to deliver a new version of the application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2017
From: BREALEY, CHRISTOPHER L.; HELSEN, SIMON; SCHMIDT, THOMAS C.; TAYLOR, CHRISTOPHER N.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044025/0582 →
Continuity (1)
Related Publication 20190138288A1 · May 9, 2019
Cited By (4)
US 12,260,205 US 12,260,207 US 12,306,957 US 12,554,836