IP Library › Granted Patent US 12,189,514
Granted Patent B2
US 12,189,514 · App. 17/714,577 · Granted Jan 7, 2025

System and method for cloud infrastructure test automation

Inventors: Bachu Mohan (Hyderabad, IN); Mahesh Venkataraman (Bangalore, IN); Mallika Fernandes (Bangalore, IN); Murali Krishna Rao Koppaka (Bangalore, IN); Pandiaraj Balaravisekar (Chennai, IN)
Assignee: Accenture Global Solutions Limited
G06F11/3612G06F11/2273
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,189,514
App. No.
17/714,577
Granted
Jan 7, 2025
Kind
B2
Abstract

An automated, dynamic system and method of testing infrastructure-as-code (IaC). The system is configured to validate infrastructure provisioned in multi-cloud environments and is able to accommodate any cloud provider. Implementation of such as system can eliminate manual errors, as well as enable early detection of errors (i.e., before production deployment), thus empowering early ‘go live’. Furthermore, the proposed embodiments are configured to integrate with already existing devOps pipelines for rapid test execution and can run as many times as needed with minimal configuration, allowing for creation and execution of complex scenarios to test low-level validation upon cloud infrastructure setup.

Claims (44)

1. A computer-implemented method of validating infrastructure as code (IaC), the method comprising:

receiving, at a scripting layer of a cloud infrastructure test automation system, a first resource requirement, wherein the first resource requirement includes unstructured data;

responsive to receiving the first resource requirement, via the scripting layer, automatically applying a machine learning algorithm to convert the first resource requirement to structured data;

automatically producing, via the scripting layer and based on the structured data, a first infrastructure test script and a first corresponding test dataset;

receiving, at a scanning agent of a decision layer of the system, the first infrastructure test script and the first corresponding test dataset;

using natural language processing to generate, via the scanning agent of the decision layer, a first set of logical blocks based on the first infrastructure test script and the first corresponding test dataset, wherein generating the first set of logical blocks includes using an association algorithm to select a cloud provider for each logical block of the first set of logical blocks, wherein the first set of logical blocks represents a configuration of resources verified against the first resource requirements that support the IaC;

responsive to the scanning agent generating the verified set of logical blocks, automatically executing the first infrastructure test script to perform a first series of test runs of the IaC in a sandbox environment, each test run validating a scenario based on the cloud provider specified by one of the logical blocks of the first set; and

responsive to the scenarios being validated for the first series of test runs, deploying the IaC.

2. The method of claim 1 , further comprising:

receiving, at the scripting layer, a second resource requirement;

producing, via the scripting layer and based on the second resource requirement, a second infrastructure test script and a second corresponding test dataset;

receiving, at the scanning agent, the second infrastructure test script and the second corresponding test dataset; and

generating, via the scanning agent, a second set of logical blocks based on the second infrastructure test script and the second corresponding test dataset, the logical blocks of the second set being different than the logical blocks of the first set.

3. The method of claim 1 , wherein each logical block of the first set of logical blocks represents a group of resources associated with a specific cloud platform.

4. The method of claim 1 , wherein producing the first corresponding test dataset includes converting the structured data, via the scripting layer, by parsing the structured data to a templatized test dataset.

5. The method of claim 1 , wherein generating the first set of logical blocks further includes using the association algorithm to select a cloud service of the cloud provider for each logical block of the first set of logical blocks.

6. The method of claim 5 , further comprising:

receiving, at an analyzer of the decision layer, the first set of logical blocks; and verifying, at the analyzer, each logical block of the first set of logical blocks against the first resource requirement.

7. The method of claim 6 , further comprising receiving cloud access credentials at a request router of the decision layer from a cloud credentials manager and wherein executing the first infrastructure test script to perform the first series of test runs of the IaC further includes using the cloud access credentials to authenticate the selected cloud provider.

8. The method of claim 1 , wherein the first infrastructure test script includes reusing functions from a reusable library.

9. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to:

receive, at a scripting layer of a cloud infrastructure test automation system, a first resource requirement for an infrastructure as code (IaC), wherein the first resource requirement includes unstructured data;

responsive to receiving the first resource requirement, via the scripting layer, automatically apply a machine learning algorithm to convert the first resource requirement to structured data;

automatically produce, via the scripting layer and based on the structured, a first infrastructure test script and a first corresponding test dataset;

receive, at a scanning agent of a decision layer of the system, the first infrastructure test script and the first corresponding test dataset;

use natural language processing to generate, via the scanning agent of the decision layer, a first set of logical blocks based on the first infrastructure test script and the first corresponding test dataset, wherein generating the first set of logical blocks includes using an association algorithm to select a cloud provider for each logical block of the first set of logical blocks, wherein the first set of logical blocks represent a configuration of resources verified against the first resource requirements that support the IaC;

responsive to the scanning agent generating the verified set of logical blocks, automatically execute the first infrastructure test script to perform a first series of test runs of the IaC in a sandbox environment, each test run validating a scenario based on the cloud provider specified by one of the logical blocks of the first set; and

responsive to the scenarios being validated for the first series of test runs, deploy the IaC.

10. The non-transitory computer-readable medium storing software of claim 9 , wherein the instructions further cause the one or more computers to:

receive, at the scripting layer, a second resource requirement;

produce, via the scripting layer and based on the second resource requirement, a second infrastructure test script and a second corresponding test dataset;

receive, at the scanning agent, the second infrastructure test script and the second corresponding test dataset; and

generate, via the scanning agent, a second set of logical blocks based on the second infrastructure test script and the second corresponding test dataset, the logical blocks of the second set being different than the logical blocks of the first set.

11. The non-transitory computer-readable medium storing software of claim 9 , wherein each logical block of the first set of logical blocks represents a group of resources associated with a specific cloud platform.

12. A system for automatically validating infrastructure as code (IaC), comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to:

receive, at a scripting layer of a cloud infrastructure test automation system, a first resource requirement for an infrastructure as code (IaC), wherein the first resource requirement includes unstructured data;

automatically produce, via the scripting layer and based on structured, a first infrastructure test script and a first corresponding test dataset;

receive, at a scanning agent of a decision layer of the system, the first infrastructure test script and the first corresponding test dataset;

use natural language processing to generate, via the scanning agent of the decision layer, a first set of logical blocks based on the first infrastructure test script and the first corresponding test dataset, wherein generating the first set of logical blocks includes using an association algorithm to select a cloud provider for each logical block of the first set of logical blocks, wherein the first set of logical blocks represents a configuration of resources verified against the first resource requirements that support the IaC;

automatically execute the first infrastructure test script to perform a first series of test runs of the IaC in a sandbox environment, each test run validating a scenario based on the cloud provider specified by one of the logical blocks of the first set; and

responsive to the scenarios being validated for the first series of test runs, deploy the IaC.

13. The system of claim 12 , wherein generating the first set of logical blocks further includes using the association algorithm to select a cloud service of the cloud provider for each logical block of the first set of logical.

14. The system of claim 13 , wherein the instructions further cause the one or more computers to receive cloud access credentials at a request router of the decision layer from a cloud credentials manager and wherein executing the first infrastructure test script to perform a first series of test runs of the IaC further includes using the cloud access credentials to authenticate the selected cloud provider.

15. The system of claim 12 , wherein the first infrastructure test script includes reusing functions from a reusable library.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2022
From: MOHAN, BACHU; VENKATARAMAN, MAHESH; FERNANDES, MALLIKA; KOPPAKA, MURALI KRISHNA RAO; BALARAVISEKAR, PANDIARAJ
To: ACCENTURE GLOBAL SOLUTIONS LIMITED
Reel/Frame 059520/0147 →
Continuity (1)
Related Publication 20230325298A1 · Oct 12, 2023
References Cited (9)
US 10360025B2 · Foskett et al. · 2019 [cited by applicant]
US 11074165B2 · Khakare et al. · 2021 [cited by applicant]
US 11153224B2 · Halimi · 2021 [cited by examiner]
US 20200278920A1 · Khakare · 2020 [cited by examiner]
US 20230048653A1 · Tripathi · 2023 [cited by examiner]
Hassan Mohammad Mehedi et al: “As Code Testing: Characterizing Test Quality in Open Source Ansible Development”, 2022 IEEE Conference On Software Testing, Verification and Validation (ICST), IEEE, Apr. 4, 2022 (Apr. 4, … [cited by applicant]
Hasan Mohammed Mehedi [email protected] et al: “Testing practices for infrastructure as code”, Proceedings of the 36th Annual ACM Symposium On Applied Computing, ACMPUB27, New York, NY, USA, Nov. 8, 2020 (Nov. … [cited by applicant]
“Terratest by Gruntwork.io—Documentation—Learn how to work with Terratest,” Retrieved May 5, 2022 from Internet:. [cited by applicant]
“Progress Chef—An Overview of Chief InSpec”, dated Apr. 8, 2022, 2 pages. Retrieved May 5, 2022 from Internet:. [cited by applicant]
Cited By (1)
US 12,430,237