Overview
Entity relationship modeling is a core feature of UModel. It uses EntitySetLink to connect separate entities into a cohesive business network. In a complete DevOps workflow, relationship modeling connects development data with O&M data. It also provides rich context for AI analysis.
Note: The architecture and implementation described are examples. You can adjust and optimize them to fit your business scenarios.
Example assets
For materials related to this use case, see umodel-full-devops.zip.
Relationship modeling principles
1. Prioritize business semantics
Define clear semantics: Each relationship must have a clear business meaning.
Be intuitive: Relationship names and directions must be intuitive for business users.
Be explainable: AI systems must be able to understand and explain the meaning of relationships.
2. Cross-domain connections
Break down data silos: Connect entities from different business domains.
Trace end-to-end: Support end-to-end tracing from development to O&M.
Associate bidirectionally: Consider the need for bidirectional queries.
3. Hierarchical design
Set priorities: Use `priority` to control the importance of relationships.
Classify relationships: Use different relationship types for different business semantics.
Ensure scalability: Design for scalability by allowing for the addition of new relationship types.
Relationship type system
1. Contains relationship (contains)
Semantics
Indicates that one entity physically or logically contains another. This reflects hierarchy and ownership.
Scenarios
Source entity | Target entity | Business meaning | Value |
|
| A cluster contains a host | Infrastructure hierarchy management |
|
| A cluster contains a server role | Service deployment location tracking |
|
| A server role is deployed on a host | Service-to-host mapping |
|
| A server role contains a service version | Version deployment relationship |
|
| A service template contains multiple versions | Version management |
2. Source relationship (sourced_from)
Semantics
Indicates that one entity originates from another. This reflects data lineage and traceability.
Scenarios
Source entity | Target entity | Business meaning | Value |
|
| A service version comes from a code repository | Trace source code for a version |
|
| A service version comes from a code release | Link deployments to releases |
|
| A code release comes from a code repository | Link releases to source code |
3. Call relationship (calls)
Semantics
Represents call dependencies between services. This reflects the system architecture and runtime dependencies.
Scenarios
Source entity | Target entity | Business meaning | Value |
|
| A call between server roles | Service dependency analysis |
4. Use relationship (use)
Semantics
Indicates that one entity uses the service or feature of another entity.
Scenarios
Source entity | Target entity | Business meaning | Value |
|
| A developer uses an AI tool | AI tool effectiveness analysis |
5. Manage relationship (manage)
Semantics
Represents ownership. This clarifies the owner or team responsible for a resource.
Scenarios
Source entity | Target entity | Business meaning | Value |
|
| A developer owns a server role | Accountability management |
6. Direct relationship (direct)
Semantics
Represents a direct reporting relationship in an organization chart.
Scenarios
Source entity | Target entity | Business meaning | Value |
|
| A direct report relationship between developers | Organization chart analysis |
7. Related to relationship (related_to)
Semantics
Represents a general association between entities. You can use this to establish loosely coupled relationships.
Scenarios
Source entity | Target entity | Business meaning | Value |
|
| An AI tool is related to a code repository | Tool usage context |
|
| A code release is related to a developer | Link releases to contributors |
Cross-domain relationship design
1. Development-O&M bridge relationships
Cross-domain relationships are key to a fully integrated DevOps workflow. The main connection points are as follows:
Version traceability chain
ops.service_version ──sourced_from──► organization.code_repo
ops.service_version ──sourced_from──► organization.code_release
organization.code_release ──sourced_from──► organization.code_repo
Value:
Trace runtime issues directly to the source code.
Analyze the impact of code changes on services.
Provide a complete change context for AI analysis.
Ownership chain
organization.developer ──manage──► ops.server_role
organization.developer ──related_to──► organization.code_release
Value:
Establish clear ownership of services.
Quickly find and notify the responsible person when a failure occurs.
Provide data for performance analysis.
AI effectiveness chain
organization.developer ──use──► organization.ai_tool
organization.ai_tool ──related_to──► organization.code_repo
Value:
Analyze how AI tools improve effectiveness on different projects.
Analyze AI tool usage by individuals and teams.
Provide data to support the promotion of AI tools.