IP Library Granted Patent US 12,197,897
Granted Patent B2
US 12,197,897 · App. 17/869,807 · Granted Jan 14, 2025

Image-based infrastructure-as-code processing based on predicted context

Inventors: Yee Shian Lee (Singapore, SG); Julia Gusakova (Singapore, SG); Brain Vito Chin (Singapore, SG)
Assignee: Microsoft Technology Licensing, LLC
G06F8/34G06T1/20H04L41/0806
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,197,897
App. No.
17/869,807
Granted
Jan 14, 2025
Kind
B2
Abstract

A process automatically generates configuration information used to build a target computing environment based on an image that depicts an architecture of the target computing environment. First, the process generates an original graph data structure having nodes and edges that respectively represent services and connectors detected in the image. The system then determines attributes of the target computing environment based on the original graph data structure. At least in part, the attributes describe a context in which the target computing environment is used, such as the type of industry associated with the target computing environment. The process then modifies the original graph data structure based on the attributes that have been determined, to produce a modified graph data structure. Finally, the process provides the configuration information to a deployment system, which uses the configuration information to deploy the target computing environment on a computing platform.

Claims (51)

1. A method for creating configuration information used to build a target computing environment using one or more machine-trained models, comprising:

receiving an image that depicts an architecture of the target computing environment;

detecting a set of services in the architecture based on the image;

detecting a set of connectors in the architecture based on the image;

generating an original graph data structure that includes nodes that represent the set of services and edges that represent the set of connectors;

determining a first subset of attributes of the target computing environment by mapping, using the one or more machine-trained models, the original graph data structure and accompanying text into the first subset of attributes, the first subset of attributes describing a context in which the target computing environment is to be used, the first subset of attributes being associated with a particular class selected from among a plurality of classes, each of the plurality of classes being associated with a particular industry, a particular type of organization, and a particular stage of deployment;

modifying the original graph data structure based on the first subset of attributes that have been determined, to produce a modified graph data structure; and

automatically creating the configuration information based on the modified graph data structure;

providing the configuration information to a deployment system; and

using, by the deployment system, the configuration information to deploy code that implements the target computing environment on a computing platform.

2. The method of claim 1 , wherein said detecting a set of services includes using the one or more machine-trained models to automatically detect text in the image and to automatically detect types of icons that appear in the image.

3. The method of claim 1 , wherein said detecting a set of connectors in the image uses the one or more machine-trained models to detect a type of a particular connector of the set of connectors and a direction of the particular connector.

4. The method of claim 1 , further including determining a set of relations among the set of services, and validating the set of relations using a data store that defines permissible relations.

5. The method of claim 4 , wherein said determining a set of relations automatically modifies a particular relation in the set of relations in response to determining that the particular relation is not present in the data store of permissible relations.

6. The method of claim 1 , wherein said mapping is performed, at least in part, by using text that appears in the image to determine one or more attributes that describe the context in which the target computing environment is used, by matching the text that appears in the image with text associated with the particular class.

7. The method of claim 1 , wherein said mapping is performed, at least in part, by matching the original graph data structure with other graph data structures associated with other architectures.

8. The method of claim 1 , further comprising extracting additional attributes from a particular class-specific dataset associated with the particular class, the particular class-specific dataset being selected from among a plurality of class-specific datasets.

9. The method of claim 8 , wherein the additional attributes include at least one attribute that specifies a size of the target computing environment.

10. The method of claim 8 , wherein the additional attributes include a particular attribute that is determined based on a distribution of attributes over plural target computing environments associated with the particular class.

11. The method of claim 1 , wherein said modifying adds at least one node and/or edge to the original graph data structure.

12. The method of claim 1 , wherein said modifying adds at least one architectural feature and/or operating characteristic to the target computing environment to improve security and/or reliability and/or monitoring capability of the target computing environment.

13. A computing system for creating configuration information used to build a target computing environment, the computing system comprising:

a storage device storing machine-readable instructions;

a processing system having one or more hardware processors for executing the machine-readable instructions to perform operations including:

receiving an image that depicts an architecture of the target computing environment;

detecting, using machine-trained logic, a set of services in the architecture based on the image;

detecting, using the machine-trained logic, a set of connectors in the architecture based on the image;

generating an original graph data structure that includes nodes that represent the set of services and edges that represent the set of connectors;

determining a first subset of attributes of the target computing environment by mapping, using the machine-trained logic, the original graph data structure and accompanying text into the first subset of attributes, the first subset of attributes describing a context in which the target computing environment is to be used, the first subset of attributes being associated with a particular class selected from among a plurality of classes, the plurality of classes being associated with different respective contexts of use;

extracting additional attributes from a particular class-specific dataset associated with the particular class, the particular class-specific dataset being selected from among a plurality of class-specific datasets;

modifying the graph data structure based on the first subset of attributes and the additional attributes that have been determined, to produce a modified graph data structure;

automatically creating configuration information based on the modified graph data structure;

providing the configuration information to a deployment system; and

using, by the deployment system, the configuration information to deploy code that implements the target computing environment on a computing platform.

14. The computing system of claim 13 , wherein said mapping is performed, at least in part, by using text that appears in the image to determine one or more attributes that describe the context in which the target computing environment is used, by matching the text that appears in the image with text associated with the particular class.

15. The computing system of claim 13 , wherein said mapping is performed, at least in part, by matching the original graph data structure with other graph data structures associated with other network architectures.

16. The computing system of claim 13 , wherein the particular class is associated with:

a type industry in which the target computing environment is used;

a type of organizational entity in which the target computing environment is used; and

a stage of development in which the target computing environment is used.

17. The computing system of claim 13 , wherein the additional attributes include a particular attribute that is determined based on a distribution of the particular attribute over plural target computing environments in a class of target computing environments.

18. The computing system of claim 13 , wherein said modifying adds at least one node and/or edge to the original graph structure to improve security and/or reliability and/or monitoring capability of the target computing environment.

19. A computer-readable storage medium storing computer-readable instructions, one or more hardware processors executing the computer-readable instructions to perform operations that comprise:

receiving an image that depicts an architecture of a target computing environment;

detecting a set of services in the architecture based on the image;

detecting a set of connectors in the architecture based on the image;

generating an original graph data structure that includes nodes that represent the set of services and edges that represent the set of connectors;

determining a first subset of attributes of the target computing environment by mapping, using one or more machine-trained models, the original graph data structure and accompanying text into the first subset of attributes, the first subset of attributes describing a context in which the target computing environment is to be used, the first subset of attributes being associated with a particular class selected from among a plurality of classes, each of the plurality of classes being associated with a particular industry, a particular type of organization, and a particular stage of deployment;

modifying the original graph data structure based on the first subset of attributes that have been determined, to produce a modified graph data structure;

creating system configuration information based on the modified graph data structure; and

using the configuration information to deploy code that implements the target computing environment on a computing platform.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 21, 2022
From: LEE, YEE SHIAN; GUSAKOVA, JULIA, DR.; CHIN, BRAIN VITO
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 060575/0420 →
Continuity (1)
Related Publication 20240028308A1 · Jan 25, 2024
References Cited (31)
US 8572612B2 · Kern · 2013 [cited by applicant]
US 8595693B2 · Berg · 2013 [cited by examiner]
US 8762937B2 · Berg · 2014 [cited by examiner]
US 8819672B2 · Joukov et al. · 2014 [cited by applicant]
US 9182952B2 · Qi · 2015 [cited by examiner]
US 10574588B2 · Grabarnik et al. · 2020 [cited by applicant]
US 10579344B2 · Krishnan · 2020 [cited by examiner]
US 10997409B1 · Krishnamurthy et al. · 2021 [cited by applicant]
US 11025500B2 · Chandran et al. · 2021 [cited by applicant]
US 11030548B1 · Ding et al. · 2021 [cited by applicant]
US 11216265B1 · Hornbeck · 2022 [cited by applicant]
US 20180329690A1 · Krishnan et al. · 2018 [cited by applicant]
US 20200012480A1 · Rizo et al. · 2020 [cited by applicant]
US 20210279062A1 · Shah et al. · 2021 [cited by applicant]
US 20220043800A1 · Barnett et al. · 2022 [cited by applicant]
US 20220317981A1 · Yu · 2022 [cited by examiner]
US 20230236816A1 · Bhutani · 2023 [cited by examiner]
WO 2020072872A1 · 2020 [cited by applicant]
Search Report and Written Opinion for PCT/US2023/024661, listed date of mailing: Sep. 18, 2023, 17 pages. [cited by applicant]
“Infrastructure as code,” available at https://en.wikipedia.org/wiki/Infrastructure_as_code, Wikpedia article, accessed on Jun. 7, 2022, 5 pages. [cited by applicant]
Sarkar, Prasenjit, “Working with Oracle Cloud Infrastructure custom compute images,” available at https://blogs.oracle.com/developers/post/working-with-oracle-cloud-infrastructure-custom-compute-images, Developer's Blog… [cited by applicant]
“Migrate custom software to Azure App Service using a custom container,” available at https://docs.microsoft.com/en-us/azure/app-service/tutorial-custom-container?pivots=container-linux, Microsoft Docs, Microsoft Corpor… [cited by applicant]
“Security posture for Microsoft Defender for Cloud,” available at https://docs.microsoft.com/en-us/azure/defender-for-cloud/secure-score-security-controls, Microsoft Docs, Microsoft Corporation, Redmond, WA, Jun. 2, 202… [cited by applicant]
“Browse Azure Architectures,” available at https://docs.microsoft.com/en-us/azure/architecture/browse/, Microsoft Docs, Microsoft Corporation, Redmond, WA, accessed on Jun. 7, 2022, 4 pages. [cited by applicant]
Redmon, et al., “You Only Look Once: Unified, Real-Time Object Detection,” Cornell University arXiv reference library, arXiv:1506.02640v5 [cs.CV], May 9, 2016, 10 pages. [cited by applicant]
Liu, et al., “SSD: Single Shot MultiBox Detector,” Cornell University arXiv reference library, arXiv:1512.02325v5 [cs.CV], Dec. 29, 2016, 17 pages. [cited by applicant]
Ren, et al., “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,” Cornell University arXiv reference library, arXiv:1506.01497v3 [cs.CV], Jan. 6, 2016, 14 pages. [cited by applicant]
“What is an Azure landing zone?,” available at https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/landing-zone/, Microsoft Docs, Microsoft Corporation, Redmond, WA, accessed on Jun. 14, 2022, 6 pages. [cited by applicant]
“Microsoft Azure Well-Architected Framework,” available at 01/03/2022https://docs.microsoft.com/en-us/azure/architecture/framework/, Microsoft Docs, Microsoft Corporation, Redmond, WA, Jun. 15, 2022, 10 pages. [cited by applicant]
“Microsoft Secure Score,” https://docs.microsoft.com/en-us/microsoft-365/security/defender/microsoft-secure-score?view=o365-worldwide, Microsoft Docs, Microsoft Corporation, Redmond, WA, Mar. 28, 2022, 7 pages. [cited by applicant]
“What are ARM templates?”, available at https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/overview, Microsoft Docs, Microsoft Corporation, Redmond, WA, May 26, 2022, 10 pages. [cited by applicant]
Cited By (1)
US 12,639,971