# US 10,872,029 B1 · System, apparatus and method for deploying infrastructure to the cloud

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

- Number: US 10,872,029 B1
- Document ID: US10872029B1
- Status: Granted
- Kind: B1
- Application number: 16/198,004
- Filed: 2018-11-21
- Granted: 2020-12-22
- Earliest claimed: 2018-11-21
- Assignees: Candid Partners, LLC
- Applicants: Candid Partners
- Inventors: Aaron Bawcom
- Web page: https://patentgrep.com/patent/US10872029B1

## CPC

- G06F 11/3616: {using software metrics}
- G06F 8/60: Software deployment
- G06F 11/3668: Testing of software
- G06F 11/3698: Environments for analysis, debugging or testing of software
- G06F 21/57: Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F 21/577: {Assessing vulnerabilities and evaluating computer system security}
- G06F 21/6218: {to a system of files or objects, e.g. local or distributed file system or database}
- H04L 41/0886: {Fully automatic configuration}
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/5048: {Automatic or semi-automatic definitions, e.g. definition templates}
- H04L 43/55: Testing of service level quality, e.g. simulating service usage
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- 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]
- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 2221/033: Test or assess software
- H04L 41/5096: {wherein the managed service relates to distributed or central networked applications}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

System, apparatus and method are provided to provision and deploy a software application for operation as a resource operating on a cloud computing network accessible to a plurality of users. The system includes a processing pipeline and a compliance module included in the processing pipeline. The processing pipeline is configured to receive application code and at least one compliance library for the software application and infrastructure-as-code to be deployed in a live-environment operating on the cloud computing network, the infrastructure-as-code operational to provide access to the software application to the plurality of users. The compliance module is configured to process the infrastructure-as-code, prior to deployment of the infrastructure as code to the live-environment, to determine whether the infrastructure-as-code complies with a plurality of standards selected from standards to meet regulatory requirements, standards to meet operational requirements or standards to meet security requirements.

## Claims

### Claim 1

A system to provision and deploy a software application for operation as a resource operating on a cloud computing network accessible to a plurality of users, the system comprising:
a processing pipeline operative at a processor in the system and configured to receive application code and at least one compliance library for the software application and infrastructure-as-code to be deployed in a live-environment operating on the cloud computing network, the infrastructure-as-code operational to provide access to the software application to the plurality of users;
a compliance module operative at the processor and included in the processing pipeline and configured to process the infrastructure-as-code, prior to deployment of the infrastructure-as-code to the live-environment, via automatic static testing of the infrastructure-as-code in a pre-deployment environment, to determine whether the infrastructure-as-code complies with a plurality of standards selected from standards to meet regulatory requirements, standards to meet operational requirements and standards to meet security requirements,
wherein, if the compliance module determines that the infrastructure-as-code complies with the plurality of standards during the automatic static testing in the pre-deployment environment, deploying the infrastructure-as-code to the live environment for access by the plurality of users, and
wherein, if the compliance module determines that the infrastructure-as-code fails to comply with the plurality of standards during the automatic static testing in the pre-deployment environment, preventing the infrastructure-as-code from being released to the live environment.

### Claim 2 (depends on 1)

The system of claim 1, wherein the compliance module includes a plurality of standards including standards to meet regulatory requirements, standards to meet operational requirements or standards to meet security requirements, and
wherein the infrastructure-as-code is periodically checked for compliance using the compliance module and the same plurality of standards once the infrastructure-as-code is deployed in the live environment.

### Claim 3 (depends on 2)

The system of claim 2, wherein the processing pipeline is configured to automatically determine whether the infrastructure-as-code complies with the plurality of standards using the compliance module, and
wherein the infrastructure-as-code is automatically checked for compliance using the compliance module and the same plurality of standards once the infrastructure-as-code is deployed in the live environment.

### Claim 4 (depends on 1)

The system of claim 1, wherein the compliance module includes a rules-base including a plurality of rules to check whether the infrastructure-as-code meets: a) regulatory requirements applicable to the software application, b) operational requirements applicable to the software application and c) security requirements applicable to the software application, and
wherein the rules-base including the plurality of rules is applied to the infrastructure-as-code during the automatic static testing in the pre-deployment environment, and
wherein the rules-base including the plurality of rules is periodically applied to the infrastructure-as-code in dynamic testing with the infrastructure-as-code deployed in the live environment.

### Claim 5 (depends on 4)

The system of claim 4, wherein the infrastructure-as-code includes a plurality of resource-types,
wherein each of the plurality of resource-types includes associated configuration information, respectively, and
wherein the rules-base includes individual rules each configured to perform compliance checks using configuration information from the plurality of resource-types when the respective individual rule is applied.

### Claim 6 (depends on 4)

The system of claim 4, wherein the compliance module is configured to perform the automatic static testing of the infrastructure-as-code defined in any of a plurality of configuration languages.

### Claim 7 (depends on 4)

The system of claim 4, wherein the plurality of configuration languages includes at least a YAML Ain't Markup Language (YAML) configuration language and a HashiCorp Configuration Language (HCL) configuration language.

### Claim 8

A method of checking compliance of infrastructure-as-code for a software application to be deployed as a resource in a live-environment operating on a cloud computing network accessible to a plurality of users, the method comprising:
receiving application code and at least one compliance library for the software application and infrastructure-as-code to be deployed in the live-environment, the infrastructure-as-code operational to provide access to the software application to the plurality of users;
processing the infrastructure-as-code, prior to deployment of the infrastructure-as-code to the live-environment, via automatic static testing of the infrastructure-as-code in a pre-deployment environment, to determine whether the infrastructure-as-code complies with a plurality of standards including standards to meet regulatory requirements, standards to meet operational requirements and standards to meet security requirements;
if the infrastructure-as-code complies with the plurality of standards during the automatic static testing in the pre-deployment environment, deploying the infrastructure-as-code to the live environment for access by the plurality of users, and
if the infrastructure-as-code fails to comply with the plurality of standards during the automatic static testing in the pre-deployment environment, preventing the infrastructure-as-code from being released to the live environment.

### Claim 9 (depends on 8)

The method of claim 8, further comprising periodically checking the infrastructure-as-code for compliance with the plurality of standards once the infrastructure-as-code deployed in the live environment.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
automatically checking whether the infrastructure-as-code complies with the plurality of standards in static testing prior to deployment of the infrastructure-as-code to the live-environment, and
periodically checking whether the infrastructure-as-code complies with the plurality of standards in dynamic testing automatically performed once the infrastructure-as-code is deployed in the live environment.

### Claim 11 (depends on 8)

The method of claim 8, further comprising defining a server infrastructure for the software application with the infrastructure-as-code.

### Claim 12 (depends on 8)

The method of claim 8, wherein if the infrastructure-as-code fails to comply with any one of the plurality of standards, preventing the infrastructure-as-code from being released to the live environment.

### Claim 13 (depends on 12)

The method of claim 12, further comprising employing a rules-base including a plurality of rules to check whether the infrastructure-as-code meets: a) regulatory requirements applicable to the software application, b) operational requirements applicable to the software application and c) security requirements applicable to the software application.

### Claim 14 (depends on 13)

The method of claim 13, further comprising employing the rules-base including the plurality of rules to the infrastructure-as-code during the automatic static testing in the pre-deployment environment, and periodically applying the rules-base including the plurality of rules to the infrastructure-as-code in dynamic testing with the infrastructure-as-code deployed in the live environment.

### Claim 15 (depends on 14)

The method of claim 14, further comprising performing the automatic static testing of the infrastructure-as-code defined in any of a plurality of configuration languages.

### Claim 16

A non-transitory computer-readable medium whose contents cause a processing device including a processor and a memory coupled to the processor to perform a method of checking compliance of infrastructure-as-code for a software application to be deployed as a resource in a live-environment operating on a cloud computing network accessible to a plurality of users, the method comprising:
receiving application code and at least one compliance library for the software application and infrastructure-as-code to be deployed in the live-environment, the infrastructure-as-code operational to provide access to the software application to the plurality of users;
processing the infrastructure-as-code, prior to deployment of the infrastructure-as-code to the live-environment, via automatic static testing of the infrastructure-as-code in a pre-deployment environment, to determine whether the infrastructure-as-code complies with a plurality including standards to meet regulatory requirements, standards to meet operational requirements and standards to meet security requirements;
if the infrastructure-as-code complies with the plurality of standards during the automatic static testing in the pre-deployment environment, deploying the infrastructure-as-code to the live environment for access by the plurality of users, and
if the infrastructure-as-code fails to comply with the plurality of standards during the automatic static testing in the pre-deployment environment, preventing the infrastructure-as-code from being released to the live environment.

### Claim 17 (depends on 16)

The non-transitory computer readable medium of claim 16, further comprising periodically checking the infrastructure-as-code for compliance with the plurality of standards once the infrastructure-as-code is deployed in the live environment.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, further comprising:
automatically checking whether the infrastructure-as-code complies with the plurality of standards in static testing prior to deployment of the infrastructure-as-code to the live-environment, and
periodically checking whether the infrastructure-as-code complies with the plurality of standards in dynamic testing automatically performed once the infrastructure-as-code is deployed in the live environment.

### Claim 19 (depends on 16)

The non-transitory computer readable medium of claim 16, wherein if the infrastructure-as-code fails to comply with any one of the plurality of standards, preventing the infrastructure-as-code from being released to the live environment.

### Claim 20 (depends on 19)

The non-transitory computer readable medium of claim 19, further comprising: employing a rules-base including a plurality of rules to check whether the infrastructure-as-code meets: a) regulatory requirements applicable to the software application, b) operational requirements applicable to the software application and c) security requirements applicable to the software application.

### Claim 21 (depends on 20)

The system of claim 20, wherein the infrastructure-as-code includes a plurality of resource-types,
wherein each of the plurality of resource-types includes associated configuration information, respectively, and
wherein the rules-base includes individual rules each configured to perform compliance checks using configuration information from the plurality of resource-types when the respective individual rule is applied.
