Schema
Introducing the InfraGraph (INFRAstructure GRAPH) schema
A graph is a natural fit to describe a system of systems in a clear, intuitive, and mathematically precise manner.
- Node or vertex represents an entity like a component, device, user, router, etc
- Edge represents a relationship between nodes
- Properties store additional information about nodes or edges
Principles
InfraGraph is a collection of APIs and Models
used to describe AI/HPC infrastructure based on the following core principles:
- infrastructure can be described using graph concepts such as vertexes, edges and properties
- vertexes can be
component
or deviceinstances
- an edge contained by a device subgraph is 2 component instances separated by a link
- e.g.,
npu.0
.pcie
.nic.0
- e.g.,
- an edge contained by the infrastructure is 2 device connections separated by a link where a device connection is the device
instance
name andindex
and externalcomponent
name andindex
- e.g.,
server.0
.nic.0
.eth
.leafsw.0
.port.0
- e.g.,
- a path is a collection of infrastructure and device connections between a single source and destination
- properties are fields with in the device and component objects
- vertexes can be
- devices are composable using connections
- connections dictate the depth of the graph
- infrastructure and device connections dictate the shape of the graph
- infrastructure needs to be scalable without duplicating content
OpenapiArt
This repository makes use of OpenAPIArt to do the following:
- create declarative intent based Models and APIs
- auto-generate the following artifacts:
- openapi schema
- protobuf schema
- Redocly documentation of APIs and Models
Python/Go SDKs
that allow for creatingfluent
client/server code overREST/Protobuf
transports