Zum Hauptinhalt springen

OctoMesh – State-of-the-Art-Dateninfrastrukturplattform

OctoMesh ist eine hochmoderne Softwareplattform, die dafür konzipiert ist, robuste Dateninfrastrukturen aufzubauen und die Erstellung von Data Meshes zu ermöglichen. Aufgebaut auf modernen Cloud-nativen Technologien, läuft OctoMesh auf Kubernetes und besteht aus verschiedenen spezialisierten Services. Die Plattform kombiniert Open-Source-Core-Services mit lizenzierten Pro Services und bietet damit Flexibilität für unterschiedliche organisatorische Anforderungen. Die Anbindung von Datenquellen und -zielen wird über Adapter erreicht, die entweder in der Cloud oder am Edge bereitgestellt werden können.

Plattformüberblick​

Click to enlarge

Kernprinzipien​

Data-Mesh-Architektur​

OctoMesh setzt das Data-Mesh-Paradigma um und behandelt Daten als Produkt mit:

  • Domänenorientierte Eigentümerschaft: Jede Domäne besitzt und betreibt ihre eigenen Datenprodukte
  • Self-Service-Datenplattform: Teams können Datenprodukte autonom erstellen und verwalten
  • Föderierte Governance: Einheitliche Standards über dezentrale Datenprodukte hinweg
  • Produktdenken: Daten werden als wertvolle Produkte mit klarer Eigentümerschaft behandelt

Service-Kategorien​

Open-Source-Core-Services​

  • Asset Repository Service: Zentrale Verwaltung von Datenprodukten und Ressourcen
  • Identity Service: Authentifizierung und Autorisierung auf Enterprise-Niveau
  • Communication Controller: Sicheres Message-Routing und Geräteverwaltung
  • Bot Service: Automatisierung und Orchestrierung geplanter Workflows
  • Platform Services: Discovery der Tenant-Konfiguration und Plattform-Observability

Pro Services (lizenziert)​

  • Reporting Service: Berichtserstellung und -vorlagen
  • Office: Integration und Erzeugung von Office-Dokumenten

Open-Source-Edge-Services​

  • Edge Adapter Management: Lokale Bereitstellung und Verwaltung von Adaptern
  • Local Data Processing: Edge-Computing-Fähigkeiten für die Echtzeit-Datenverarbeitung
  • Offline-Betrieb: Funktionalität in getrennten oder schwach angebundenen Umgebungen
  • Lightweight Data Storage: Lokale Caching- und Speicherlösungen

Architektur​

Click to enlarge

OctoMesh unterstützt Mandantenfähigkeit (Multi-Tenancy) und erlaubt es damit verschiedenen Tenants, innerhalb einer einzigen Instanz der Anwendung zu arbeiten, ohne Daten zu teilen. Die Daten jedes Tenants werden in einer separaten MongoDB-Datenbank gespeichert, was Datenisolation und Sicherheit gewährleistet. Zusätzlich können Tenants kaskadiert werden, das heißt, Tenants können aufeinander aufbauen und bei Bedarf Eigenschaften und Konfigurationen erben.

Zentrale Architekturkomponenten​

Construction Kit​

Der Construction Kit ist der Kern von OctoMeshs Data-Mesh-Technologie und ermöglicht objektorientierte Datenmodellierung mit:

  • Attribute: Einfache Datentypen (string, number, boolean) oder komplexe Records
  • Associations: Beziehungen zwischen Klassen und Datenentitäten
  • Type: Definiert Entitätstypen mit ihren Attributen, Assoziationen und Vererbung
  • Record: Strukturen für eingebettete Dokumente innerhalb von Types, die mehrere Attribute enthalten
  • Enum: Enumerationen für kontrollierte Vokabulare und semantische Werte
  • Versionierung: Verwalten der Schema-Evolution mit versionskontrollierten Modellen

Runtime und Stream Data​

Runtime-Entitäten sind Instanzen von Construction-Kit-Typen, die tatsächliche Datenobjekte im System repräsentieren. Sie werden über die OctoMesh-API erstellt, gelesen, aktualisiert und gelöscht und in den zugrunde liegenden Datenbanken gespeichert. Stream-Entitäten repräsentieren Zeitreihendaten, Ereignisse und Metriken, die kontinuierlich von Geräten, Anwendungen oder Prozessen erzeugt werden. Sie sind für die Ingestion mit hohem Durchsatz und für Echtzeitabfragen optimiert.

Datenpersistenz und -verteilung​

Zwei spezialisierte Datenbanken verarbeiten unterschiedliche Datentypen:

  • MongoDB: Stammdaten und Tenant-Isolation
  • CrateDB: Zeitreihendaten und Echtzeit-Analytics

RabbitMQ ermöglicht die asynchrone Kommunikation zwischen Services und gewährleistet damit Skalierbarkeit und Zuverlässigkeit.

Flexible Bereitstellung​

OctoMesh unterstützt mehrere Deployment-Modelle:

  • Cloud-Deployment: Vollständige Plattform auf AWS, Azure, GCP oder Rancher
  • Edge-Deployment: Leichtgewichtiges K3s für IoT- und Industrieumgebungen
  • Hybrid-Modell: Kombination aus zentraler Cloud-Steuerung und Datenerfassung am Edge

OctoMesh Core Services​

Core Services beschreibt OctoMesh-Komponenten, die zentral installiert werden und wesentliche Plattformfunktionalitäten bereitstellen.

Identity Service​

OctoMesh liefert einen hochmodernen Identity Service, der auf den Bereich des Industrial Internet of Things (IIoT) zugeschnitten ist. Er bietet einen zentralisierten Authentifizierungs- und Autorisierungsmechanismus, der sich mit mehreren Verzeichnisdiensten verbindet. Über den Identity Service von OctoMesh können Unternehmen eine sichere und effiziente Konnektivität über eine Vielzahl von Geräten, Anwendungen und Systemen innerhalb des IIoT-Ökosystems herstellen.

Unterstützte Identity Provider:

  • Open LDAP
  • Microsoft Active Directory
  • Microsoft Entra ID
  • Google Authentication
  • Meta Authentication
  • Microsoft Authentication

Asset Repository Service​

Der Repository Service ist eine zentrale Komponente der Data-Mesh-Architektur und darauf ausgelegt, das Datenmanagement und die Bedienbarkeit zu verbessern. Dieser Service konzentriert sich auf die Beschreibung, Organisation und Auffindbarkeit von Datenprodukten und Ressourcen und optimiert damit den Arbeitsablauf für Datenteams und Stakeholder.

Datenprodukte und Datenressourcen​

Datenprodukte​

Ein Datenprodukt im Kontext des Repository Service ist eine logische Gruppierung zusammengehöriger Daten-Assets, die Datensätze, Code oder beliebige andere datenbezogene Artefakte umfassen kann. Datenprodukte werden mit einem bestimmten Anwendungsfall oder einer Geschäftsdomäne im Blick kuratiert und gepflegt und stellen ein verpacktes, konsumierbares Datenutensil bereit.

Datenressourcen​

Datenressourcen bezeichnen die greifbaren Elemente, die innerhalb eines Systems gespeichert sind, wie Datenbanken, Dateien oder beliebige strukturierte Datencontainer. Diese Ressourcen sind die physische Ausprägung von Daten, auf die Datenprodukte zugreifen und die sie nutzen können.

Es gibt zwei Arten von Datenressourcen:

  • Data Sets: Sammlungen von Daten, die strukturiert und so gespeichert sind, dass sie es ermöglichen
  • Data Files: Einzelne Dateien, die Daten enthalten und in verschiedenen Formaten wie CSV, JSON, XML usw. vorliegen können.
  • Data Streams: Kontinuierliche Datenflüsse, die in Echtzeit erzeugt werden und häufig für Monitoring oder ereignisgesteuerte Anwendungen verwendet werden.

Funktionen des Asset Repository Service​

  • Zugriffsschnittstelle: Der Service bietet eine benutzerfreundliche Oberfläche, über die Benutzer sowohl auf Datenprodukte als auch auf Datenressourcen zugreifen können. Diese Oberfläche ist darauf ausgelegt, eine breite Palette von Datenoperationen zu unterstützen, von einfachen Abfragen bis zu komplexen Datenprozessen.
  • Unterstützung von Data Governance: Der Repository Service ist mit Data Governance im Kern konzipiert. Er stellt die notwendigen Werkzeuge und Protokolle bereit, um Daten effektiv zu verwalten und die Einhaltung interner und externer Vorschriften und Richtlinien sicherzustellen.
  • Zentralisierte Organisation und Beschreibung: Der zentrale Asset Repository Service ermöglicht die systematische Organisation und detaillierte Beschreibung von Datenprodukten und Ressourcen. Dieser zentralisierte Ansatz stellt sicher, dass Assets innerhalb des Data Mesh leicht identifizierbar und zugänglich sind.
  • Verbesserte Auffindbarkeit: Durch den Einsatz von Metadaten, Indizierung und Suchfunktionen werden Daten-Assets innerhalb der Organisation auffindbar gemacht. Dies verbessert die teamübergreifende Zusammenarbeit und reduziert die Zeit, um Daten-Assets zu finden und zu nutzen.
  • Metadaten, Richtlinien und Qualitätsmetriken: Der Service speichert nicht nur Daten, sondern stellt für jedes Datenprodukt auch reichhaltige Metadaten, Nutzungsrichtlinien und Qualitätsmetriken bereit. Dies stellt sicher, dass Benutzer gut über die Daten informiert sind, auf die sie zugreifen, und erleichtert bessere Entscheidungen sowie die Aufrechterhaltung hoher Datenqualitätsstandards.
  • Konsistente Nutzung und Wiederverwendung: Mit dem Fokus auf konsistente Nutzung stellt der Repository Service sicher, dass Datenprodukte für die Wiederverwendung über verschiedene Szenarien hinweg konzipiert sind, um den aus jedem Daten-Asset gewonnenen Wert zu maximieren.
  • Echtzeitanalyse: Ermöglicht die Untersuchung von Daten, während sie erfasst werden, liefert Einblicke sofort und erlaubt zeitnahe Entscheidungen.
  • Trenderkennung: Nutzt fortschrittliche Algorithmen, um signifikante Trends innerhalb der Daten zu erkennen, was hilft, vergangenes Verhalten zu verstehen und operative Strategien entsprechend anzupassen.
  • Prognose: Setzt prädiktive Analytik ein, um zukünftige Muster und Ergebnisse – etwa Energieproduktionsraten – auf Basis historischer Daten zu projizieren. Diese Funktion ist für Planung und Optimierung in verschiedenen industriellen Szenarien von unschätzbarem Wert.
  • Verarbeitungsfähigkeiten: Nutzt Standard-SQL-Syntax für die Datenverarbeitung, wodurch sie für alle zugänglich ist, die mit traditionellen Datenbank-Abfragesprachen vertraut sind. Behält auch bei hochfrequenten Datenschreibvorgängen eine schnelle Abfrageperformance bei und stellt so sicher, dass die Reaktionsfähigkeit des Systems konstant bleibt.

Bot Service​

Octo Bots sind dynamische, automatisierte Assistenten, die in die OctoMesh-Plattform integriert sind. Sie sind darauf ausgelegt, eine Vielzahl routinemäßiger und komplexer Aufgaben zu optimieren und fördern ein Umfeld der Effizienz und Automatisierung. Durch den Einsatz von Octo Bots können Benutzer den manuellen Arbeitsaufwand erheblich reduzieren und die Prozessausführung innerhalb des OctoMesh-Ökosystems verbessern.

Fähigkeiten und Automatisierung​

Octo Bots sind darauf ausgelegt, eine umfangreiche Bandbreite an Aktivitäten zu bewältigen, darunter unter anderem:

  • Datenaufbereitung: Optimierung des Prozesses, Daten für die Analyse bereitzustellen.
  • Datenbereinigung: Sicherstellung der Datenqualität durch das Entfernen von Fehlern oder das Korrigieren von Werten in Datensätzen.
  • Anonymisierung/Pseudonymisierung: Schutz personenbezogener Daten durch das Verschleiern identifizierender Details.
  • Datenaggregation: Kombinieren von Daten aus verschiedenen Quellen zu einer konsolidierten Zusammenfassung.
  • Massenbenachrichtigungen/Newsletter: Effizientes Versenden großangelegter Kommunikation.
  • Batch-Importe: Integrieren von Daten aus verschiedenen Formaten wie XML, CSV und JSON.
  • Archiverstellung: Verpacken von Dateien in komprimierte Formate zur Speicherung oder Übertragung.
  • Auslösen von Web Hooks: Automatisieren der Ausführung von Skripten oder Ereignissen über externe Webdienste.
  • Benutzerverwaltung: Systematisches Löschen von Benutzern und Verwalten benutzerbezogener Daten.
  • Diagrammerstellung: Erzeugen verschiedener Formen visueller Datendarstellungen.
  • Verwaltung temporärer Dateien: Automatisieren der Bereinigung nicht benötigter Dateien.
  • Automatisches Reporting: Regelmäßiges Erzeugen von Berichten ohne manuellen Eingriff.
  • Datenbankwartung: Sicherstellen, dass die Datenbanken optimiert sind und korrekt funktionieren.

Platform Services​

Platform Services ist der Einstiegspunkt auf Plattformebene, der Clients und Administratoren ermöglicht, eine OctoMesh-Installation zu entdecken und zu beobachten, ohne vorheriges Wissen über ihre interne Service-Topologie. Wie jeder OctoMesh-Service wird er unter einem platform.-Hostnamen auf der eigenen Domain des Clusters bereitgestellt – zum Beispiel platform.prod-1.octo-mesh.com und platform.prod-2.octo-mesh.com auf den Produktionsclustern, platform.staging.octo-mesh.com auf Staging und platform.test-2.mm.cloud auf dem Testcluster.

Wesentliche Verantwortlichkeiten:

  • Discovery der Tenant-Konfiguration: Ein öffentlicher, Tenant-bezogener Endpunkt (GET /{tenantId}/_configuration) liefert die Service-URLs und Identitätseinstellungen (URLs für Asset Repository, Bot, Communication, Reporting, AI und MCP Service, den OIDC-Issuer, die CrateDB- und Grafana-URLs sowie die System-Tenant-ID), die ein Client zum Verbinden benötigt. Konsumenten wie Refinery Studio, die Office-Integration, Power BI und Power Query nutzen ihn, um ihre Verbindung zu initialisieren. Die URL-Felder der optionalen Services – Reporting, AI Services und MCP – sind immer vorhanden, tragen aber nur dann eine echte URL, wenn das Deployment eine solche ankündigt (über die Helm-Values, zum Beispiel externalUris.reporting oder services.aiServices.publicUri; lokal über Start-Octo); andernfalls enthält das Feld eine leere Zeichenkette, die Konsumenten als „Service nicht Teil dieser Installation" lesen – Refinery Studio zum Beispiel zeigt die entsprechenden Tenant-Features als Not installed an. Die Antwort enthält niemals Anmeldedaten.
  • Plattform-Observability: Nur für Administratoren zugängliche, schreibgeschützte Endpunkte legen Informationen zu Tenants, Blueprint-Installationen und Service-Drift über die gesamte Installation offen und geben Betreibern einen zentralen Ort, um den Gesundheits- und Konfigurationszustand der Plattform zu inspizieren.
  • Systembenutzeroberflächenmodell: Platform Services besitzt das System.UI-Construction-Kit-Modell und seedet bei Tenant-Lifecycle-Ereignissen die zugehörigen Cockpit-Dashboards und ersetzt damit die Funktionalität des stillgelegten Administrationspanels.

Communication Service​

Der Octo Communication Controller ist eine zentrale Komponente des OctoMesh-Ökosystems und fungiert als zentraler Knotenpunkt für die Verwaltung und Absicherung der Kommunikation. Er integriert sich nahtlos mit Octo Plugs und Sockets und stellt einen robusten Nachrichtenaustausch zwischen der zentralen OctoMesh-Plattform und einer breiten Palette angebundener Geräte und Anwendungen sicher.

Kernfunktionalität​

  • Regulierung der Kommunikation: Der Com Controller fungiert als Gatekeeper und reguliert den Nachrichtenfluss, um Ordnung zu wahren und Staus in Netzwerk-Kommunikationskanälen zu verhindern.

  • Sicherheitsmaßnahmen: Er setzt strenge Verschlüsselungsprotokolle ein, um sicherzustellen, dass jede Kommunikation vor unbefugtem Zugriff geschützt ist, und wahrt so höchstmögliche Übertragungssicherheitsstandards.

  • Hohe Konnektivität: Fähig, Verbindungen mit Millionen von Geräten und Backend-Lösungen – darunter Datenbanken, Dashboards und Octo Apps – zu handhaben, ist der Com Controller außergewöhnlich skalierbar.

  • Flexible Integration: Die Anpassungsfähigkeit von Octo Plugs und Sockets macht es möglich, nahezu jedes Gerät oder System an den Com Controller anzubinden und damit die Fähigkeiten der OctoMesh-Plattform zu erweitern.

Wesentliche Funktionen​

  • Sichere Kanäle: Er richtet sichere Kommunikationskanäle sowohl zum Senden als auch zum Empfangen von Daten von IoT-Geräten ein.
  • Geräteauthentifizierung: Verwaltet Geräteidentitäten, um den Zugriff innerhalb des Netzwerks zu authentifizieren und zu steuern.
  • Automatisiertes Provisioning: Automatisiert den Registrierungs- und Provisioning-Prozess für Geräte und reduziert damit den Bedarf an manueller Einrichtung.
  • Verwaltung von Edge-Komponenten: Überwacht und wahrt die Integrität lokaler Edge-Komponenten und stellt deren ordnungsgemäßes Funktionieren innerhalb des Netzwerks sicher.
  • Netzwerkerweiterung: Erleichtert die Erweiterung des Datennetzwerks, indem der Transfer von Octo Plugs und Services auf Edge-Geräte problemlos ermöglicht wird.

OctoMesh Edge Services​

Zur Erleichterung der Kommunikation mit externen Systemen nutzt OctoMesh spezialisierte Komponenten, die als Adapter bekannt sind. Diese Adapter werden in zwei Typen unterteilt:

  • Plugs: Adapter, die eingehende Daten von externen Systemen verarbeiten.
  • Sockets: Adapter, die ausgehende Daten zu externen Systemen verwalten.

Diese Adapter stellen sicher, dass Daten nahtlos zwischen OctoMesh und externen Anwendungen oder Services fließen, und wahren dabei Systemintegrität und Performance.

Click to enlarge

Edge OctoMesh Services werden auf Edge-Geräten mithilfe einer leichtgewichtigen Kubernetes-Distribution namens K3s bereitgestellt. Dies ermöglicht eine effiziente Datenerfassung und -verarbeitung nahe der Quelle und reduziert Latenz und Bandbreitennutzung. Bei der Kommunikation mit cloudbasierten Systemen können Edge OctoMesh Services abhängig von der Deployment-Architektur auch auf zentralen Kubernetes-Clustern betrieben werden.

Communication Operator​

Die Bereitstellung von Workloads wird vom Communication Operator übernommen, einem Kubernetes-Operator, der den Lebenszyklus der Workloads eines Tenants auf einem Cluster verwaltet. Er stellt zwei Arten von Workloads bereit:

  • Adapters: die Plugs und Sockets, die OctoMesh mit externen Systemen verbinden.
  • Applications: containerisierte Geschäftsanwendungen (zum Beispiel eine eigene Web-UI oder API), die parallel zur Plattform laufen und über einen Ingress öffentlich zugänglich gemacht werden können.

Der Communication Operator läuft in zwei Modi:

  • Edge: auf einem entfernten Edge-Cluster (K3s), nahe an den Datenquellen.
  • Central: parallel zum Communication Controller im zentralen Cluster. In diesem Modus kann der Operator Deployment Sites automatisch für neue Tenants provisionieren und sowohl Adapters als auch Applications zentral bereitstellen.

Statt Container-Deployments direkt zu bauen, stellt der Operator jeden Workload aus einem Helm-Chart bereit. Das Chart wird aus einem vom Workload referenzierten Helm-Chart-Repository bezogen (Repository-URL, Chart-Name und Chart-Version); der Operator registriert das Repository und führt pro Workload helm upgrade --install aus. Chart- Values sind geschichtet – clusterweite Defaults vom Operator, die eigenen Base-Values des Workloads und pro-Workload- Overrides aus Refinery Studio – sodass dasselbe Chart konsistent über Edge- und zentrale Cluster hinweg bereitgestellt werden kann. Siehe Deployment Sites, wie Deployment Sites, Operatoren und Workloads zusammenpassen.