Standard Aperto per lo Schema di Interscambio delle Risorse Infrastrutturali
OSIRIS JSON produce documenti JSON indipendenti dai vari vendor per descrivere risorse infrastrutturali e le loro relazioni topologiche in ambienti eterogenei IT e OT. Un formato di interscambio progettato per la portabilità, la chiarezza end-to-end e l'inclusione OT fin dalla sua progettazione.
Il problema
L'infrastruttura moderna si estende su molteplici stack e fornitori: hyperscaler (AWS, Azure, GCP ecc.), provider di cloud pubblico, datacenter on-prem e integrazione con ambienti OT complessi.
Sebbene alcune piattaforme esportino inventari (spesso in JSON), le rappresentazioni sono incoerenti tra i fornitori anche per concetti equivalenti come identità, proprietà e relazioni.
La soluzione
OSIRIS JSON definisce uno schema JSON indipendente dal fornitore per descrivere risorse infrastrutturali e relazioni topologiche in ambienti eterogenei.
L'obiettivo di OSIRIS JSON è normalizzare le esportazioni da hyperscaler e provider cloud, così come dai dispositivi dei datacenter on-prem (calcolo, storage, rete).
Fin dalla prima versione della Specifica, OSIRIS JSON supporta l'inclusione OT by design.
Cosa ottieni
Sei capacità fondamentali che rendono OSIRIS JSON uno standard aperto per l'interscambio di risorse infrastrutturali e topologia.
Design unificato
Costruito per ambienti IT eterogenei, con un percorso chiaro di estensione per OT e altri domini man mano che cresce l'adozione.
Relazioni esplicite
Rappresentazione di prima classe di connessioni, dipendenze, contenimento e altre relazioni topologiche.
Raggruppamento flessibile
Supporto per raggruppamento logico e fisico che riflette strutture organizzative e architetturali reali senza forzare una tassonomia unica.
Attribuzione del fornitore
Le risorse preservano la tracciabilità verso il sistema/fornitore di origine utilizzando una rappresentazione standardizzata e indipendente dal fornitore.
Progettato per l'estensibilità
Un meccanismo definito per proprietà specifiche del fornitore e tipi di risorse personalizzati senza compromettere la compatibilità.
Validazione a tre livelli
Validazione strutturale (schema), semantica e di dominio che migliora coerenza e qualità dei dati quando vengono applicati strumenti di validazione.
Principi di design
OSIRIS JSON è un formato di interscambio di snapshot statici. Cattura ciò che esiste e come si relaziona in un dato momento. Non è stato progettato come sistema di monitoraggio in tempo reale, strumento di deployment o motore Infrastructure-as-Code.
block OSIRIS JSON NON È
check_circle OSIRIS JSON È
Ottimizzato per scenari in cui documentazione e topologia devono essere scambiate tra sistemi e team.
Prova gli esempi OSIRIS JSON
Esplora snapshot reali di topologia OSIRIS JSON con relazioni, fornitori e raggruppamenti catturati in un documento JSON portabile.
Applicazione in esecuzione su Azure con servizi API su 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}
Partecipa alla comunità
GitHub Discussions
Fai domande, condividi idee e aiuta a definire la specifica
Repository GitHub
Contribuisci codice, segnala problemi e invia pull request
Modi per contribuire
Codice
Costruisci producer/parser per hyperscaler, piattaforme cloud e sistemi IT/OT on-prem.
Documentazione
Migliora le guide, scrivi tutorial e casi d'uso reali per aiutare altri ad adottare OSIRIS JSON.
Testing
Valida la specifica e lo schema con topologie infrastrutturali reali e casi limite.
Feedback
Segnala problemi, suggerisci miglioramenti o proponi estensioni e nuove funzionalità.
Strumenti
Crea SDK, strumenti CLI, validatori, esportatori e strumenti di documentazione/diagrammi.
Diffondi la voce
Scrivi post, tieni talk, registra demo e condividi OSIRIS JSON con la tua rete.
Design e template
Progetta template di diagrammi di alta qualità, layout grafici per docs e sito web, icone, dataset di esempio e risorse riutilizzabili per la comunità.
Roadmap
OSIRIS JSON è guidato dalla comunità
OSIRIS JSON è nato affrontando problemi del mondo reale e continua a crescere attraverso feedback, nuove idee e contributi pratici. Se hai suggerimenti o vuoi aiutare, partecipa: il tuo contributo aiuta a definire sia la roadmap che lo standard.
Supporta OSIRIS JSON
OSIRIS JSON è ai suoi primi passi. In questo momento, adozione e feedback contano più dei finanziamenti. Prova gli strumenti, testali sulla tua infrastruttura reale e dicci cosa manca.
Usalo e segnala
Esegui un producer sulla tua infrastruttura, valida l'output e apri una issue quando qualcosa non funziona.
Contribuisci
Invia esempi reali, migliora la documentazione o costruisci un producer per la tua piattaforma.
Spargi la voce
Condividi OSIRIS con il tuo team, scrivi della tua esperienza o menzionalo nelle community pertinenti.