IP Library Granted Patent US 12,061,899
Granted Patent B2
US 12,061,899 · App. 17/513,844 · Granted Aug 13, 2024

Infrastructure as code (IaC) pre-deployment analysis via a machine-learning model

Inventors: Stefan Bunciak (Brno, CZ); Miroslav Jaros (Brno, CZ)
Assignee: Red Hat, Inc.
G06F8/71G06F8/60G06N20/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 12,061,899
App. No.
17/513,844
Granted
Aug 13, 2024
Kind
B2
Abstract

Deployment code that identifies a desired deployment of a computer application onto a computing system comprising one or more compute instances is accessed. The computer application includes a plurality of computing components to be deployed on the one or more compute instances in accordance with the deployment code. Contents of the deployment code are input into a machine learning model (MLM) that has been trained using: a plurality of previously generated deployment codes that identified corresponding desired deployments of corresponding computer applications, and information that identifies successes or failures associated with attempted deployments of the previously generated deployment codes. An output is received from the MLM. Based on the output from the MLM, information indicative of a likelihood of success of deploying the deployment code is sent to a destination.

Claims (43)

1. A method comprising:

accessing, by a computing device comprising a processor device, deployment code that identifies a desired deployment of a computer application onto a computing system comprising one or more compute instances, the computer application comprising a plurality of computing components to be deployed on the one or more compute instances in accordance with the deployment code;

generating transformed deployment code by transforming the deployment code based on an interface of a machine learning model (MLM);

inputting contents of the transformed deployment code into the MLM that has been trained using: a plurality of previously generated deployment codes that identified corresponding desired deployments of corresponding computer applications, and information that identifies successes or failures associated with attempted deployments of the previously generated deployment codes, the information comprising one or more of a log file, monitor data, or a plurality of action results generated by an automation server and associated with the attempted deployments of the previously generated deployment codes;

receiving an output from the MLM; and

based on the output from the MLM, sending, to a destination, information indicative of a likelihood of success of deploying the deployment code and a problem with the deployment code.

2. The method of claim 1 wherein the deployment code identifies changes to an existing deployment code.

3. The method of claim 2 wherein the deployment code is generated via a GitOps pull request.

4. The method of claim 1 wherein the deployment code identifies a change to one or more of: a computing component to be deployed, a type of compute instance on which to deploy a computing component, a characteristic of a compute instance onto which a computing component is to be deployed, and authentication information necessary for access to a computing component.

5. The method of claim 1 wherein the deployment code identifies a compute instance having one or more of a designated amount of processor cores, a designated amount of storage, a designated amount of memory, or a designated type of operating system.

6. The method of claim 1 wherein the deployment code identifies a database service to be deployed onto a compute instance.

7. The method of claim 1 wherein the output from the MLM identifies a deployment attribute of the deployment code that has previously caused a deployment error.

8. The method of claim 1 wherein the output from the MLM identifies no errors in the deployment code.

9. The method of claim 1 further comprising:

detecting, by the computing device, that a deployment code with a modification has been stored on a storage device; and wherein accessing the deployment code further comprises automatically accessing the deployment code in response to detecting that the deployment code with the modification has been stored on the storage device.

10. The method of claim 9 wherein sending, to the destination, the information indicative of the likelihood of success of deploying the deployment code comprises:

generating a file with the information indicative of the likelihood of success of deploying the deployment code; and

storing the file on the storage device.

11. The method of claim 1 further comprising, prior to inputting the contents of the transformed deployment code into the MLM:

obtaining, from an automation server that has attempted to deploy the plurality of previously generated deployment codes, automation server information that identifies a success or failure of attempting to deploy the plurality of previously generated deployment codes;

obtaining information generated by a plurality of compute instances in response to the attempted deployments of the plurality of previously generated deployment codes; and

training the MLM with the corresponding plurality of previously generated deployment codes, the corresponding automation service information that identified the success or failure of attempting to deploy the plurality of previously generated deployment codes and the information generated by the plurality of compute instances in response to the attempted deployments of the plurality of previously generated deployment codes.

12. A computing device, comprising:

a memory; and

a processor device coupled to the memory to:

access deployment code that identifies a desired deployment of a computer application onto a computing system comprising one or more compute instances, the computer application comprising a plurality of computing components to be deployed on the one or more compute instances in accordance with the deployment code;

generating transformed deployment code by transforming the deployment code based on an interface of a machine learning model (MLM);

input contents of the transformed deployment code into the MLM that has been trained using: a plurality of previously generated deployment codes that identified corresponding desired deployments of corresponding computer applications, and information that identifies successes or failures associated with attempted deployments of the previously generated deployment codes, the information comprising one or more of a log file, monitor data, or a plurality of action results generated by an automation server and associated with the attempted deployments of the previously generated deployment codes;

receive an output from the MLM; and

based on the output from the MLM, send, to a destination, information indicative of a likelihood of success of deploying the deployment code.

13. The computing device of claim 12 wherein the deployment code is generated via a GitOps pull request.

14. The computing device of claim 12 wherein the deployment code identifies a change to one or more of: a computing component to be deployed, a type of compute instance on which to deploy a computing component, a characteristic of a compute instance onto which a computing component is to be deployed, and authentication information necessary for access to a computing component.

15. The computing device of claim 12 wherein the deployment code identifies a compute instance having one or more of a designated amount of processor cores, a designated amount of storage, a designated amount of memory, or a designated type of operating system.

16. The computing device of claim 12 wherein the processor device is further to detect that a deployment code with a modification has been stored on a storage device; and wherein accessing the deployment code further comprises automatically accessing the deployment code in response to detecting that the deployment code with the modification has been stored on the storage device.

17. A non-transitory computer-readable storage medium that includes executable instructions configured to cause a processor device to:

access deployment code that identifies a desired deployment of a computer application onto a computing system comprising one or more compute instances, the computer application comprising a plurality of computing components to be deployed on the one or more compute instances in accordance with the deployment code;

generating transformed deployment code by transforming the deployment code based on an interface of a machine learning model (MLM);

input contents of the transformed deployment code into the MLM that has been trained using: a plurality of previously generated deployment codes that identified corresponding desired deployments of corresponding computer applications, and information that identifies successes or failures associated with attempted deployments of the previously generated deployment codes, the information comprising one or more of a log file, monitor data, or a plurality of action results generated by an automation server and associated with the attempted deployments of the previously generated deployment codes;

receive an output from the MLM; and

based on the output from the MLM, send, to a destination, information indicative of a likelihood of success of deploying the deployment code.

18. The non-transitory computer-readable storage medium of claim 17 wherein the deployment code identifies a change to one or more of: a computing component to be deployed, a type of compute instance on which to deploy a computing component, a characteristic of a compute instance onto which a computing component is to be deployed, and authentication information necessary for access to a computing component.

19. The non-transitory computer-readable storage medium of claim 17 wherein the deployment code identifies a compute instance having one or more of a designated amount of processor cores, a designated amount of storage, a designated amount of memory, or a designated type of operating system.

20. The non-transitory computer-readable storage medium of claim 17 wherein the instructions further cause the processor device to detect that a deployment code with a modification has been stored on a storage device; and wherein accessing the deployment code further comprises automatically accessing the deployment code in response to detecting that the deployment code with the modification has been stored on the storage device.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2021
From: BUNCIAK, STEFAN; JAROS, MIROSLAV
To: RED HAT, INC.
Reel/Frame 057955/0987 →