Rule Engine for Declarative API Object Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing approaches for managing custom resources in container orchestration systems, such as Kubernetes, require procedural programming languages, making it difficult to express semantically tied custom logic and necessitate rewriting logic upon changes, which is inefficient and labor-intensive.
Innovation Solution
Utilizing a rule engine within an operator framework to define and manage API objects declaratively, allowing for the creation, modification, and evaluation of API rules that specify conditions and actions, thereby automating the management of custom resources without the need for extensive procedural coding.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If procedural programming languages are used to manage custom resources in container orchestration systems, then the system can execute management tasks, but it becomes difficult to express semantically tied custom logic and requires rewriting logic upon changes
Solution Approach 1:
The patent introduces a rule engine as an intermediary component between the operator framework and custom resource management logic. This rule engine uses Domain Specific Language (DSL) to bridge the gap between procedural programming and declarative rule-based management, allowing semantic logic to be expressed in a more natural and maintainable way without requiring changes to the underlying system architecture
Solution Approach 2:
The patent transforms the management approach by changing the parameter of logic expression from procedural code to declarative rules. By using DSL-based rule definitions with patterns, constraints, and actions, the system allows logic to be modified through configuration changes rather than code rewriting, improving adaptability while maintaining system complexity at acceptable levels
2Productivity
If procedural programming is used for managing custom resources, then logic can be implemented, but rewriting logic upon changes is necessary which is inefficient and labor-intensive
Solution Approach 1:
The patent applies preliminary action by pre-compiling DSL rules into executable form during system initialization or deployment. When logic changes are needed, only the rule definitions need to be updated in the DSL configuration, and the rule engine automatically recompiles and applies the changes without requiring manual rewriting of procedural code, significantly reducing the time and effort required for logic modifications
Solution Approach 2:
The rule engine implements self-service by automatically detecting changes in DSL rule definitions and recompiling them into executable logic. This eliminates the need for manual intervention to rewrite and redeploy management logic, allowing the system to adapt to changes autonomously and improving productivity while reducing time loss
3Productivity
If rule engine is used to manage API objects declaratively, then efficiency is improved and computational resource usage is reduced, but the system complexity increases
Solution Approach 1:
The patent applies universality by designing the rule engine to handle multiple types of API objects and management scenarios through a single unified DSL-based framework. The same rule engine infrastructure supports various resource types, management operations, and logic patterns, improving efficiency and reducing resource usage while avoiding the need for separate complex systems for each management task
Data Source
AI summary
A method includes identifying an object by processing, by a processing device implementing a rule engine that utilizes a rule, a data item associated with a service defined by an application programming interface (API), wherein the data item associated with the service defined by the API comprises Custom Resource (CR) data; determining whether the object is an API object of a containerized computing cluster, wherein the containerized computing cluster comprises a plurality of virtualized computing environments running on one or more host computer systems; and responsive to determining that the object is an API object of the containerized computing cluster, adding the object to a definition of the containerized computing cluster.


