Estàndard Obert per a l'Esquema d'Intercanvi de Recursos d'Infraestructura
OSIRIS JSON produeix documents JSON independents del proveïdor per descriure recursos d'infraestructura i les seves relacions topològiques en entorns heterogenis d'IT i OT. Un format d'intercanvi dissenyat per a la portabilitat, la claredat d'extrem a extrem i la inclusió OT des del seu disseny.
El problema
La infraestructura moderna abasta múltiples stacks i proveïdors: hyperscalers (AWS, Azure, GCP, etc.), proveïdors de núvol públic, centres de dades on-prem i integració amb entorns OT complexos.
Tot i que algunes plataformes exporten inventaris (sovint com a JSON), les representacions són inconsistents entre proveïdors fins i tot per a conceptes equivalents com identitat, propietats i relacions.
La solució
OSIRIS JSON defineix un esquema JSON independent del proveïdor per descriure recursos d'infraestructura i relacions topològiques en entorns heterogenis.
L'objectiu d'OSIRIS JSON és normalitzar les exportacions d'hyperscalers i proveïdors cloud, així com de dispositius en centres de dades on-prem (computació, emmagatzematge, xarxa).
Des de la primera versió de l'Especificació, OSIRIS JSON dóna suport a la inclusió d'OT per disseny.
Què obtens
Sis capacitats principals que fan d'OSIRIS JSON un estàndard obert per a l'intercanvi de recursos d'infraestructura i topologia.
Disseny unificat
Construït per a entorns IT heterogenis, amb un camí clar d'extensió per a OT i altres dominis a mesura que creix l'adopció.
Relacions explícites
Representació de primera classe de connexions, dependències, contenció i altres relacions topològiques.
Agrupació flexible
Suport per a agrupació lògica i física que reflecteix estructures organitzatives i arquitectòniques reals sense forçar una taxonomia única.
Atribució del proveïdor
Els recursos preserven la traçabilitat cap al seu sistema/proveïdor d'origen usant una representació estandarditzada i independent del proveïdor.
Dissenyat per a l'extensibilitat
Un mecanisme definit per a propietats específiques de proveïdor i tipus de recursos personalitzats sense trencar la compatibilitat.
Validació en tres nivells
Validació estructural (esquema), semàntica i de domini que millora la consistència i qualitat de dades quan s'apliquen eines de validació.
Principis de disseny
OSIRIS JSON és un format d'intercanvi d'instantànies estàtiques. Captura el que existeix i com es relaciona en un moment donat. No va ser dissenyat com un sistema de monitoratge en temps real, una eina de desplegament ni un motor d'Infrastructure-as-Code.
block OSIRIS JSON NO ÉS
check_circle OSIRIS JSON ÉS
Optimitzat per a escenaris on la documentació i la topologia s'han d'intercanviar entre sistemes i equips.
Prova els exemples d'OSIRIS JSON
Explora instantànies reals de topologia OSIRIS JSON amb relacions, proveïdors i agrupacions capturades en un document JSON portable.
Aplicació en execució a Azure amb serveis API a AWS
1{
2 "$schema": "https://osirisjson.org/schema/v1.0/osiris.schema.json",
3 "version": "1.0.0",
4 "metadata": {
5 "timestamp": "2026-01-08T15:45:00Z",
6 "generator": {
7 "name": "manual",
8 "version": "1.0.0"
9 },
10 "scope": {
11 "name": "Multi-cloud web application",
12 "description": "Three-tier application with frontend and database in Azure East US, API backend in AWS US-East-1",
13 "providers": ["aws", "azure"],
14 "regions": ["us-east-1", "eastus"],
15 "accounts": ["123456789012"],
16 "environments": ["production"]
17 }
18 },
19 "topology": {
20 "resources": [
21 {
22 "id": "azure::app-web-frontend",
23 "type": "compute.container",
24 "name": "web-frontend-prod",
25 "description": "Azure App Service hosting React frontend",
26 "provider": {
27 "name": "azure",
28 "type": "Microsoft.Web/sites",
29 "native_id": "/subscriptions/sub-001/resourceGroups/prod-rg/providers/Microsoft.Web/sites/web-frontend-prod",
30 "region": "eastus",
31 "subscription": "sub-001",
32 "tenant": "tenant-001"
33 },
34 "status": "active",
35 "state": "running",
36 "properties": {
37 "kind": "app,linux",
38 "runtime_stack": "NODE|18-lts",
39 "default_hostname": "web-frontend-prod.azurewebsites.net",
40 "https_only": true,
41 "ftps_state": "Disabled",
42 "reserved": true
43 },
44 "tags": {
45 "Environment": "production",
46 "Tier": "frontend",
47 "Platform": "azure"
48 }
49 },
50 {
51 "id": "aws::i-0xyz789abc123",
52 "type": "compute.vm",
53 "name": "api-server-prod-01",
54 "description": "AWS EC2 instance running API backend",
55 "provider": {
56 "name": "aws",
57 "type": "AWS::EC2::Instance",
58 "native_id": "i-0xyz789abc123",
59 "region": "us-east-1",
60 "account": "123456789012",
61 "zone": "us-east-1b"
62 },
63 "status": "active",
64 "state": "running",
65 "properties": {
66 "instance_type": "c5.xlarge",
67 "platform": "linux",
68 "image_id": "ami-0c55b159cbfafe1f0",
69 "private_ip": "10.0.2.78",
70 "public_ip": "203.0.113.10",
71 "vpc_id": "vpc-0def456",
72 "subnet_id": "subnet-0ghi789"
73 },
74 "tags": {
75 "Environment": "production",
76 "Tier": "backend",
77 "Platform": "aws"
78 }
79 },
80 {
81 "id": "azure::sql-prod-db",
82 "type": "application.database",
83 "name": "prod-sql-database",
84 "description": "Azure SQL Database for application data",
85 "provider": {
86 "name": "azure",
87 "type": "Microsoft.Sql/servers/databases",
88 "native_id": "/subscriptions/sub-001/resourceGroups/prod-rg/providers/Microsoft.Sql/servers/prod-sql-srv/databases/prod-db",
89 "region": "eastus",
90 "subscription": "sub-001"
91 },
92 "status": "active",
93 "state": "online",
94 "properties": {
95 "edition": "Standard",
96 "service_tier": "S2",
97 "max_size_bytes": 268435456000,
98 "server_name": "prod-sql-srv.database.windows.net",
99 "collation": "SQL_Latin1_General_CP1_CI_AS",
100 "zone_redundant": false
101 },
102 "tags": {
103 "Environment": "production",
104 "Engine": "mssql",
105 "Platform": "azure"
106 }
107 },
108 {
109 "id": "azure::redis-cache-prod",
110 "type": "application.cache",
111 "name": "prod-redis-cache",
112 "description": "Azure Redis Cache for session storage",
113 "provider": {
114 "name": "azure",
115 "type": "Microsoft.Cache/Redis",
116 "native_id": "/subscriptions/sub-001/resourceGroups/prod-rg/providers/Microsoft.Cache/Redis/prod-redis",
117 "region": "eastus",
118 "subscription": "sub-001"
119 },
120 "status": "active",
121 "state": "running",
122 "properties": {
123 "sku": "Standard",
124 "family": "C",
125 "capacity": 1,
126 "redis_version": "6.0",
127 "port": 6379,
128 "ssl_port": 6380,
129 "hostname": "prod-redis.redis.cache.windows.net"
130 },
131 "tags": {
132 "Environment": "production",
133 "Purpose": "session-cache",
134 "Platform": "azure"
135 }
136 }
137 ],
138 "connections": [
139 {
140 "id": "conn-frontend-to-api",
141 "type": "dependency",
142 "source": "azure::app-web-frontend",
143 "target": "aws::i-0xyz789abc123",
144 "direction": "forward",
145 "name": "Frontend to API",
146 "description": "Cross-cloud API calls from Azure frontend to AWS backend",
147 "status": "active",
148 "properties": {
149 "protocol": "https",
150 "port": 443,
151 "endpoint": "https://api.example.com/v1",
152 "authentication": "oauth2"
153 },
154 "tags": {
155 "type": "cross-cloud",
156 "critical": "true"
157 }
158 },
159 {
160 "id": "conn-api-to-db",
161 "type": "dependency",
162 "source": "aws::i-0xyz789abc123",
163 "target": "azure::sql-prod-db",
164 "direction": "forward",
165 "name": "API to Database",
166 "description": "Database connection from AWS API to Azure SQL",
167 "status": "active",
168 "properties": {
169 "protocol": "tds",
170 "port": 1433,
171 "connection_string_encrypted": true,
172 "connection_pool_size": 20
173 },
174 "tags": {
175 "type": "cross-cloud",
176 "critical": "true"
177 }
178 },
179 {
180 "id": "conn-frontend-to-cache",
181 "type": "dependency",
182 "source": "azure::app-web-frontend",
183 "target": "azure::redis-cache-prod",
184 "direction": "bidirectional",
185 "name": "Frontend session cache",
186 "description": "Session data storage and retrieval",
187 "status": "active",
188 "properties": {
189 "protocol": "redis",
190 "port": 6380,
191 "ssl": true,
192 "use_case": "session-storage"
193 }
194 },
195 {
196 "id": "conn-api-to-cache",
197 "type": "dependency",
198 "source": "aws::i-0xyz789abc123",
199 "target": "azure::redis-cache-prod",
200 "direction": "bidirectional",
201 "name": "API cache access",
202 "description": "API response caching",
203 "status": "active",
204 "properties": {
205 "protocol": "redis",
206 "port": 6380,
207 "ssl": true,
208 "use_case": "response-cache"
209 }
210 }
211 ]
212 }
213}
Participa a la comunitat
GitHub Discussions
Fes preguntes, comparteix idees i ajuda a donar forma a l'especificació
Repositori GitHub
Contribueix codi, reporta problemes i envia pull requests
Formes de contribuir
Codi
Construeix productors/parsers per a hyperscalers, plataformes cloud i sistemes IT/OT on-prem.
Documentació
Millora guies, escriu tutorials i casos d'ús reals per ajudar d'altres a adoptar OSIRIS JSON.
Testing
Valida l'especificació i l'esquema amb topologies d'infraestructura reals i casos límit.
Feedback
Reporta problemes, suggereix millores o proposa extensions i noves funcionalitats.
Eines
Crea SDKs, eines CLI, validadors, exportadors i eines de documentació/diagramació.
Difon la veu
Escriu posts, fes xerrades, grava demos i comparteix OSIRIS JSON amb la teva xarxa.
Disseny i plantilles
Dissenya plantilles de diagrames d'alta qualitat, layouts gràfics per a docs i web, icones, datasets d'exemple i recursos reutilitzables per a la comunitat.
Full de ruta
OSIRIS JSON és impulsat per la comunitat
OSIRIS JSON va néixer enfrontant problemes del món real i segueix creixent a través de feedback, noves idees i contribucions pràctiques. Si tens suggeriments o vols ajudar, participa: la teva aportació ajuda a donar forma tant al full de ruta com a l'estàndard.
Dóna suport a OSIRIS JSON
OSIRIS JSON és als seus inicis. Ara mateix, l'adopció i el feedback importen més que el finançament. Prova les eines, testa-les contra infraestructura real i digues-nos què falta.
Usa'l i informa
Executa un producer a la teva infraestructura, valida la sortida i obre una issue quan alguna cosa falli.
Contribueix
Envia exemples reals, millora la documentació o construeix un producer per a la teva plataforma.
Escampa la veu
Comparteix OSIRIS amb el teu equip, escriu sobre la teva experiència o menciona'l en comunitats rellevants.