GUI-Assisted Infrastructure as Code Configuration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Writing infrastructure configuration in text files is more difficult and time-consuming compared to using a graphical user interface (GUI), as it lacks features like validation and guidance, making it hard for users accustomed to GUI workflows to adopt new standards or changes.

Innovation Solution

A GUI-assisted system for infrastructure as code that allows users to select and configure hardware and software components, record changes, and export them in a human-readable format compatible with tools like Terraform, using JSON objects and parameterization to facilitate scalability and usability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If infrastructure configuration is written in text files under version control, then the infrastructure can be instantiated and replicated, but it is much more difficult to edit and maintain compared to GUI-based approaches

Engineering Contradiction:
Improveinfrastructure replication capabilityVSAvoidconfiguration editing difficulty
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

A GUI-based configuration system serves as an intermediary between users and the infrastructure as code text files. The GUI captures user-friendly configuration inputs and automatically generates, edits, and manages the underlying text file configurations, allowing users to benefit from both the reliability of code-based infrastructure management and the ease of graphical interfaces without needing to directly edit text files

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If a custom built GUI is used to direct users through configuration steps, then ease of use is improved, but the ability to replicate the process is lost

Engineering Contradiction:
Improveuser guidance capabilityVSAvoidprocess replication capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The system generates reusable configuration templates and code snippets from GUI-based configuration sessions. These templates capture the infrastructure setup patterns and can be copied, stored in version control, and applied to replicate infrastructure across different environments, preserving the replication capability while maintaining the ease of use of GUI-driven configuration

Inventive Principle:
Principle #26Copying

3Reliability

If infrastructure configuration is done manually in text files, then version control and replication are enabled, but validation and guidance features are missing

Engineering Contradiction:
Improveversion control capabilityVSAvoidvalidation and guidance feedback
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The GUI-based configuration system incorporates real-time validation and guidance feedback mechanisms that provide users with immediate feedback on configuration correctness, required fields, and best practices. This feedback loop ensures configuration accuracy while the system simultaneously generates proper text file outputs for version control, combining the benefits of both approaches

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11212191B2GUI assisted infrastructure as code
Publication Date: 2021.12.28 FORCEPOINT LLC
  • US11212191B2 patent drawing
  • US11212191B2 patent drawing

AI summary

A system for network configuration, comprising a graphic user interface system operating on a first processor and configured to allow a user to select one or more hardware infrastructure components and one or more software infrastructure components for use with a first infrastructure. A configuration recording system operating on a second processor and configured to receive two or more objects associated with each of the one or more hardware infrastructure components and each of the one or more software infrastructure components and to store the two or more objects in a template.