Offener Standard für das Austauschschema von Infrastrukturressourcen
OSIRIS JSON erzeugt herstellerneutrale JSON-Dokumente zur Beschreibung von Infrastrukturressourcen und deren topologischen Beziehungen in heterogenen IT- und OT-Umgebungen. Ein Austauschformat, das von Grund auf für Portabilität, durchgängige Klarheit und OT-Einbindung konzipiert wurde.
Das Problem
Moderne Infrastruktur erstreckt sich über mehrere Stacks und Anbieter: Hyperscaler (AWS, Azure, GCP usw.), Public-Cloud-Anbieter, On-Prem-Rechenzentren und die Integration komplexer OT-Umgebungen.
Obwohl einige Plattformen Inventare exportieren (oft als JSON), sind die Darstellungen inkonsistent zwischen Anbietern – selbst für gleichwertige Konzepte wie Identität, Eigenschaften und Beziehungen.
Die Lösung
OSIRIS JSON definiert ein herstellerneutrales JSON-Schema zur Beschreibung von Infrastrukturressourcen und topologischen Beziehungen in heterogenen Umgebungen.
Das Ziel von OSIRIS JSON ist die Normalisierung von Exporten aus Hyperscalern und Cloud-Anbietern sowie von On-Prem-Rechenzentrumsgeräten (Compute, Storage, Netzwerk).
Seit der ersten Veröffentlichung der Spezifikation unterstützt OSIRIS JSON die OT-Integration by Design.
Was du bekommst
Sechs Kernfähigkeiten, die OSIRIS JSON zu einem offenen Standard für den Austausch von Infrastrukturressourcen und Topologie machen.
Einheitliches Design
Entwickelt für heterogene IT-Umgebungen mit einem klaren Erweiterungspfad für OT und andere Domänen bei wachsender Akzeptanz.
Explizite Beziehungen
Erstklassige Darstellung von Verbindungen, Abhängigkeiten, Containment und anderen topologischen Beziehungen.
Flexible Gruppierung
Unterstützung für logische und physische Gruppierung, die reale organisatorische und architektonische Strukturen widerspiegelt, ohne eine einzelne Taxonomie zu erzwingen.
Anbieterzuordnung
Ressourcen bewahren die Rückverfolgbarkeit zu ihrem Quellsystem/Anbieter bei Verwendung einer standardisierten, herstellerneutralen Darstellung.
Für Erweiterbarkeit konzipiert
Ein definierter Mechanismus für anbieterspezifische Eigenschaften und benutzerdefinierte Ressourcentypen ohne Kompatibilitätsverlust.
Drei-Stufen-Validierung
Strukturelle (Schema-), semantische und Domänenvalidierung zur Verbesserung von Konsistenz und Datenqualität bei Einsatz von Validierungswerkzeugen.
Designprinzipien
OSIRIS JSON ist ein statisches Snapshot-Austauschformat. Es erfasst, was existiert und wie es zu einem bestimmten Zeitpunkt zusammenhängt. Es wurde nicht als Echtzeit-Überwachungssystem, Deployment-Tool oder Infrastructure-as-Code-Engine konzipiert.
block OSIRIS JSON ist NICHT
check_circle OSIRIS JSON IST
Optimiert für Szenarien, in denen Dokumentation und Topologie zwischen Systemen und Teams ausgetauscht werden müssen.
OSIRIS JSON Beispiele ausprobieren
Erkunde reale OSIRIS JSON Topologie-Snapshots mit Beziehungen, Anbietern und Gruppierungen in einem portablen JSON-Dokument.
Anwendung auf Azure mit API-Services auf 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}
Werde Teil der Community
GitHub Discussions
Stelle Fragen, teile Ideen und hilf, die Spezifikation zu gestalten
GitHub-Repository
Trage Code bei, melde Probleme und sende Pull Requests
Möglichkeiten beizutragen
Code
Erstelle Producer/Parser für Hyperscaler, Cloud-Plattformen und On-Prem IT/OT-Systeme.
Dokumentation
Verbessere Anleitungen, schreibe Tutorials und reale Anwendungsfälle, um anderen bei der Einführung von OSIRIS JSON zu helfen.
Testing
Validiere die Spezifikation und das Schema mit realen Infrastrukturtopologien und Grenzfällen.
Feedback
Melde Probleme, schlage Verbesserungen vor oder schlage Erweiterungen und neue Funktionen vor.
Tooling
Erstelle SDKs, CLI-Tools, Validatoren, Exporter und Dokumentations-/Diagrammwerkzeuge.
Verbreite die Nachricht
Schreibe Beiträge, halte Vorträge, nimm Demos auf und teile OSIRIS JSON mit deinem Netzwerk.
Design & Vorlagen
Entwirf hochwertige Diagrammvorlagen, grafische Layouts für Docs und Website, Icons, Beispieldatensätze und wiederverwendbare Assets für die Community.
Roadmap
OSIRIS JSON wird von der Community getragen
OSIRIS JSON entstand aus realen Problemen und wächst weiter durch Feedback, neue Ideen und praktische Beiträge. Wenn du Vorschläge hast oder helfen möchtest, mach mit – dein Input hilft, sowohl die Roadmap als auch den Standard zu gestalten.
OSIRIS JSON unterstützen
OSIRIS JSON steckt noch in den Anfängen. Im Moment zählen Nutzung und Feedback mehr als Finanzierung. Probiere die Tools aus, teste sie an realer Infrastruktur und sag uns, was fehlt.
Nutze es und berichte
Führe einen Producer auf deiner Infrastruktur aus, validiere die Ausgabe und eröffne ein Issue, wenn etwas nicht stimmt.
Trage bei
Reiche Praxisbeispiele ein, verbessere die Dokumentation oder baue einen Producer für deine Plattform.
Verbreite es weiter
Teile OSIRIS mit deinem Team, schreibe über deine Erfahrungen oder erwähne es in relevanten Communities.