# US 12,192,273 B1 · Systems and methods for automated application deployment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,192,273 B1
- Document ID: US12192273B1
- Status: Granted
- Kind: B1
- Application number: 16/594,265
- Filed: 2019-10-07
- Granted: 2025-01-07
- Earliest claimed: 2019-10-07
- Assignees: Allstate Insurance Company
- Applicants: Allstate Insurance Company
- Inventors: Anil Kumar Pandurangarao; Kannan Saravanan; Jotom Chiramel
- Web page: https://patentgrep.com/patent/US12192273B1

## CPC

- H04L 67/1021: based on client or server locations
- G06F 8/60: Software deployment
- G06F 8/61: Installation
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods in accordance with embodiments of the invention can analyze a variety of software applications, modify the software applications, and/or automatically deploy the software applications to a distributed computing system. Distributed computing systems can provide software applications in a scalable, low cost manner that can be dynamically scaled to demand. Software deployment systems in accordance with embodiments of the invention can automatically process software applications to determine the suitability of the software application to be deployed to a distributed computing system and/or modify the software application for deployment. A variety of machine classifiers can be used to score various aspects of a software application to identify portions of the application for modification and/or suitability for deployment.

## Claims

### Claim 1

A method, comprising:
obtaining, by a software deployment server system, source code for a software application;
determining, by the software deployment server system, at least one feature in the source code;
calculating, by the software deployment server system, at least one source code deployment score based on the at least one feature;
determining, by the software deployment server system, a deployment strategy based on the at least one source code deployment score, wherein:
the deployment strategy comprises replatforming when the at least one source code deployment score is above a scoring threshold for the source code,
the deployment strategy comprises rehosting when the at least one source code deployment score is above the scoring threshold for the source code,
the deployment strategy comprises rearchitechting when the at least one source code deployment score is below the scoring threshold for the source code, and
the deployment strategy comprises a set of recommended modifications to the source code of the software application;
deploying, by the software deployment server system, to a distributed computing system, the software application based on the deployment strategy, wherein the distributed computing system provides a computing environment capable of executing the software application generated based on the source code of the software application; and
automatically initializing, by the software deployment server system, the computing environment, wherein initializing comprises dynamically managing an allocated set of resources of the computing environment with load balancers or scalers.

### Claim 2 (depends on 1)

The method of claim 1, wherein deploying the software application based on the deployment strategy comprises:
selecting, by the software deployment server system, a feature in the at least one feature based on the source code deployment score associated with the feature; and
modifying, by the software deployment server system, the feature based, at least in part, on the set of recommended modifications.

### Claim 3 (depends on 2)

The method of claim 2, wherein modifying the feature based, at least in part, on the set of recommended modifications comprises:
transmitting, by the software deployment server system and to a client device, the set of recommended modifications to facilitate the modification of the source code by the client device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the distributed computing system comprises a set of geographically distributed processing nodes.

### Claim 5 (depends on 4)

The method of claim 4, wherein the computing environment is created on at least two processing nodes in distinct geographic regions.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining, by the software deployment server system, strategy data by analyzing the source code, wherein the strategy data indicates at least one function present in the at least one feature;
obtaining, by the software deployment server system, deployment strategy factors, wherein the deployment strategy factors comprise at least one requirement for the at least one function present in the at least one feature; and
calculating, by the software deployment server system, the source code deployment score based on the strategy data and the deployment strategy factors.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
calculating, by the software deployment server system, the at least one source code deployment score based on the at least one feature by utilizing at least one machine classifier including at least one neural network.

### Claim 8

A computing device, comprising:
a processor; and
memory storing instructions that, when executed by the one or more processors, cause the computing device to:
obtain application data comprising source code;
determine at least one feature in the source code of the application data;
calculate at least one source code deployment score based on the at least one feature, wherein the at least one source code deployment score indicates a probabilistic likelihood that modifying the at least one feature would improve suitability of the application data for deployment in a distributed computing system;
determine a deployment strategy based on the at least one source code deployment score, wherein the deployment strategy comprises replatforming when the at least one source code deployment score is above a scoring threshold for the source code and comprises rearchitechting when the at least one source code deployment score is below the scoring threshold for the source code;
deploy, to the distributed computing system, by a software deployment server system, the application data comprising the source code based on the deployment strategy, wherein the distributed computing system provides a computing environment capable of executing a software application generated based on the source code of the application data; and
automatically initializing, by the software deployment server system, the computing environment, wherein initializing comprises dynamically managing an allocated set of resources of the computing environment with load balancers and scalers.

### Claim 9 (depends on 8)

The computing device of claim 8, wherein the instructions that, when executed by the one or more processors, further cause the computing device to:
select a feature in the at least one feature based on the source code deployment score associated with the feature; and
modify the feature.

### Claim 10 (depends on 9)

The computing device of claim 9, wherein modifying the feature comprises:
transmitting, to a client device, a set of recommended modifications to facilitate the modification of the source code by the client device.

### Claim 11 (depends on 9)

The computing device of claim 9, wherein the instructions that, when executed by the one or more processors, further cause the computing device to:
generate, based on the modified feature, a software application; and
include the software application in the application data deployed to the distributed computing system.

### Claim 12 (depends on 8)

The computing device of claim 8, wherein the distributed computing system comprises a set of geographically distributed processing nodes.

### Claim 13 (depends on 12)

The computing device of claim 12, wherein the computing environment is created on at least two processing nodes in distinct geographic regions.

### Claim 14 (depends on 8)

The computing device of claim 8, wherein the instructions that, when executed by the one or more processors, further cause the computing device to:
determine strategy data by analyzing the application data, wherein the strategy data indicates at least one function present in the at least one feature;
obtain deployment strategy factors, wherein the deployment strategy factors comprise at least one requirement for the at least one function present in the at least one feature; and
calculate the source code deployment score based on the strategy data and the deployment strategy factors.

### Claim 15

A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform steps comprising:
obtaining source code for a software application;
determining at least one feature in the source code;
calculating at least one deployment score for the source code based on the at least one feature;
determining a deployment strategy based on the at least one deployment score, wherein:
the deployment strategy comprises deployment when the at least one deployment score is above a threshold,
the deployment strategy comprises rearchitechting when the at least one source code deployment score is below the scoring threshold for the source code, and
the deployment strategy comprises a set of recommended modifications to the source code of the software application;
deploying, to a distributed computing system, by a software deployment server system, the software application based on the deployment strategy when the at least one deployment score is above the threshold, wherein the distributed computing system provides a computing environment capable of executing the software application generated based on the source code of the software application;
retiring the software application when the at least one deployment score is below the threshold; and
automatically initializing, by the software deployment server system, the computing environment, wherein initializing comprises dynamically managing an allocated set of resources of the computing environment with load balancers or scalers.

### Claim 16 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein deploying the software application based on the deployment strategy comprises:
selecting a feature in the at least one feature based on the deployment score associated with the feature; and
modifying the feature based, at least in part, on the set of recommended modifications.

### Claim 17 (depends on 16)

The non-transitory machine-readable medium of claim 16, wherein modifying the feature based, at least in part, on the set of recommended modifications comprises:
transmitting, to a client device, the set of recommended modifications to facilitate the modification of the source code by the client device.

### Claim 18 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein:
the distributed computing system comprises a set of geographically distributed processing nodes; and
the computing environment is provided by at least one processing node in the set of geographically distributed processing nodes.

### Claim 19 (depends on 15)

The non-transitory machine-readable medium of claim 15, wherein the instructions, when executed by the one or more processors, further cause the one or more processors to perform steps comprising:
determining strategy data by analyzing the source code, wherein the strategy data indicates at least one function present in the at least one feature;
obtaining deployment strategy factors, wherein the deployment strategy factors comprise at least one requirement for the at least one function present in the at least one feature; and
calculating the deployment score.
