Der Weg zu einer kundenspezifischen Datenplattform
Wie kann man firmeninterne Daten besser nutzbar machen?
von DI Paul Heinzlreiter
Wie können Unternehmen ihre Daten effizienter nutzen? Ob Sensordaten zur Qualitätssteigerung oder Geschäftsdaten für bessere Planbarkeit – der Weg zur idealen Datenplattform ist komplex. Wie sieht der Prozess aus?
- Wie kann man firmeninterne Daten besser nutzbar machen?
- Was ist geeignete Lösung für den Anwendungsfall?
- Der Prozess der Technologieauswahl
- Wo wird die fertige Lösung betrieben?
- Die Rolle von Open-Source Frameworks
- Berücksichtigung von sich ändernden Anforderungen
Wie kann man firmeninterne Daten besser nutzbar machen?
Es gibt verschiedenste Szenarien in denen sich eine Verbesserung der firmeneigenen Datenhaltung anbietet. Ein Beispiel hierfür ist die Nutzung von Sensordaten aus der eigenen Produktion, um die Produktqualität zu verbessern, Ausschuss zu reduzieren, oder Energie einzusparen. Eine andere Möglichkeit stellt die Integration von Geschäftsdaten aus verschiedensten Systemen dar, um eine bessere Planbarkeit der eigenen Geschäftsprozesse zu erreichen.
Die Basis eines solchen Projekts stellen Arbeiten im Bereich des Data Engineering dar, welche je nach dem konkreten Projektziel die Einführung einer neuen Datenplattform oder auch nur die Anpassung und Optimierung der Dateneinbringung und der Datenmodelle umfassen kann.
Was ist geeignete Lösung für den Anwendungsfall?
Als Gemeinsamkeit hat sich in solchen Projekten herausgebildet, das der optimale Lösungsansatz für das vorliegende Anliegen individuell erarbeitet werden muss. Oft werden für eine integrierte Gesamtlösung verschiedene Technologien wie anwendungsspezifische Datenbanken, wie Graph- oder Zeitseriendatenbanken und skalierbare Datenverarbeitungsframeworks kombiniert. Um die Lösung portabel und skalierbar zu machen, werden gerne Technologien wie Containerisierung und Kubernetes eingesetzt.
Die RISC Software GmbH hat sich durch die Entwicklung, das Setup, sowie den Betrieb von verschiedensten Server- und Datenhaltungssystemen über viele Jahre eine solide Expertise erarbeitet, um für spezifische Kundenanforderungen genau die richtige Lösung zu erarbeiten. Die Anforderungen können hierbei die unterschiedlichsten Dimensionen wie Ausfallsicherheit, Datensouveränität oder die bereits bestehende Nutzung einer Technologie umfassen. Um die Erhebung der Anforderungen und die darauf basierende Auswahl von geeigneten Technologien gerade im Bereich des Data Engineering effektiv durchzuführen, hat sich bei der RISC Software GmbH ein strukturierter Prozess herausgebildet. Hierbei werden die Kundenanforderungen erhoben und darauf basierend geeignete Technologien ausgewählt.
Der Prozess der Technologieauswahl
Als Basis für eine fundierte Auswahl der einzusetzenden Technologien dient die Erhebung der Kundenanforderungen. Im Bereich des Data Engineering umfassen diese unter anderem die Menge und die Ankunftsgeschwindigkeit von Eingangsdaten, und somit wie schnell die Menge der Daten im System anwächst. Weiters ist es zentral, wie die Daten genutzt werden sollen, ob beispielsweise Datenabfragen fix vorgegeben sind, oder diese dynamisch von den Anwendern gestellt werden können. Weiters sind die erwarteten Antwortzeiten zentral: Werden Antworten in Echtzeit erwartet, oder kann eine Antwortzeit von einigen Sekunden toleriert werden? Eine weitere Frage ist wie aktuell die Daten im System sein müssen. Müssen alle Daten sekundenaktuell zur Verfügung stehen, oder reicht es wenn neue Daten erst am nächsten Tag zur Verfügung stehen?
In einem ersten Schritt wird der Raum der möglichen technologischen Lösungen eingeschränkt indem Konfigurationen ausgeschieden werden, welche aufgrund von nicht-technischen Gründen nicht in Frage kommen. Ein Beispiel hierfür können hohe Lizenzkosten bei kommerziellen Softwarekomponenten sein. Für die weitere Auswahl unter den verbleibenden Lösungsansätzen wird durch Testläufe untersucht, welche Lösungsansätze die Kundenanforderungen am Besten erfüllen. Im Bereich des Data Engineerings wird dazu oft ein repräsentatives Subset der geplanten Datenmenge herangezogen. Dies kann vom Kunden zur Verfügung gestellt werden, oder auch extra für diesen Zweck generiert werden.
Oft stehen allerdings gerade zu Beginn eines Projekts, wenn die grundlegende Technologieentscheidung getroffen werden soll, die geplanten Daten noch nicht zur Verfügung, da mit dem Sammeln von Daten oft zu Projektstart begonnen wird. Dies ist im industriellen Kontext zum Beispiel der Fall, wenn neue Sensorsysteme installiert werden, deren Daten die Grundlage für das Projekt bilden sollen. In diesem Fall kommt generierten Daten für die Performancebewertung von verschiedenen Systemen in der Technologieevaluierungsphase eine zentrale Bedeutung zu. Üblicherweise stellt der Kunde einen sehr kleinen beispielhaften Datensatz zur Verfügung, aus dem aber bereits zentrale Charakteristika der Eingangsdaten, wie beispielsweise das Format abgeleitet werden können. Basierend darauf kann dann eine größere Menge an Daten generiert werden, die aber trotzdem repräsentativ für die während des Projekts erwarteten Daten ist. Dies kann durch einfaches Kopieren der Daten erfolgen, oder auch durch Modifikation von Zeitstempeln oder Messwerten sowie durch die Einbringung einer gewissen zufälligen Komponente. Die sachliche Richtigkeit der Daten ist zu diesem Zeitpunkt nebensächlich, da es zentral um die Leistungscharakteristika der Datenverarbeitung geht.
Die Art der erwarteten Abfragen ist ebenfalls für die Technologieanalyse zentral und wird oft erst später im Projektverlauf endgültig festgelegt. Meist hat der Kunde zu Beginn des Projekts eine Idee, welche Art von Fragen mithilfe der Daten beantwortet werden sollen. Diese können für das Systemdesign herangezogen werden. Es können auch gemeinsam mit dem Kunden beispielhafte Abfragen erarbeitet werden, deren Geschwindigkeit dann mithilfe des Testdatensatzes bewertet werden kann. Wenn alle wesentlichen Anforderungen bekannt sind, kann die Technologieentscheidung aufgrund der Ergebnisse von Testläufen sowie bisherigen Erfahrungen erfolgen. Hierbei wird der Fokus auf Technologien gelegt, welche bisher bei ähnlichen Datenmengen und Zugriffsmustern gute Ergebnisse geliefert haben.
Oft können die Kundenanforderungen auch nicht durch eine einzige Technologie abgedeckt werden. In diesem Fall kombiniert der Systementwurf verschiedene Systeme, wie beispielsweise Datenbanken, Datenverarbeitungsframeworks und eine Caching Schicht um schnell auf die Daten zugreifen zu können.
Wo wird die fertige Lösung betrieben?
Neben der technologischen Auswahl der benötigten Komponenten ist oft auch die Wahl des Ausführungsortes der fertigen Lösung ein wichtiges Element im Entscheidungsprozess. Diese Entscheidung wird meist parallel zu den technologischen Entscheidungen getroffen, da da sich beide Entscheidungsprozesse wechselseitig beeinflussen. Im Gegensatz zu Technologieentscheidungen ist die Wahl des Betriebsstandortes stärker von nicht-technischen Kriterien wie Kosten oder rechtlichen Rahmenbedingungen getrieben. Ein Beispiel für eine solche Rahmenbedingung wäre die Auswahl eines Infrastrukturbetreibers, der der europäischen Gesetzgebung wie beispielsweise der Datenschutzgrundverordnung unterliegt.
Für den Betrieb von IT-Diensten werden heute verschiedene Arten von Serverinfrastrukturen verwendet. Nach der Art der Betriebs kann hierbei zwischen on-premise, Dedicated Hosting in einem Rechenzentrum sowie Cloud Computing unterschieden werden:
- Cloud Computing:
Rechenressourcen werden nach Bedarf dynamisch von einem Cloud Betreiber angemietet und können meist minutenweise abgerechnet werden. Von den großen Cloud Anbietern wie Amazon AWS, Google GCP und Microsoft Azure werden zahlreiche Services angeboten, welche den Betrieb vereinfachen. Beispiele dafür sind Firewalls, LoadBalancer, oder verschiedene Datenbankservices. Solche Standarddienste werden von vielen Online-Anwendungen benötigt und können mit einem gewissen Konfigurationsaufwand in die eigenen Lösungen eingebunden werden. Genauso gibt es aber auch die Möglichkeit als Infrastructure as a Service (IaaS) virtualisierte Rechner mit vollem Administrationszugang in der Cloud zu nutzen. - Dedicated Hosting:
Die Hardware steht in einem entfernten Rechenzentrum und wird vom dortigen Betreiber angemietet. Hier ist oft eine monatsweise Kündigung möglich. In diesem Fall wird die weitere Konfiguration beginnend bei einer Betriebssystem Basisinstallation vom Kunden selbst durchgeführt. In diesem Fall hat man einerseits die volle Kontrolle über den Server, ist aber auch mit Themen wie möglichen Hardwareausfällen konfrontiert, welche beim Cloud-Computing durch die Virtualisierung wegabstrahiert werden. Durch den Betrieb in einem dedizierten Rechenzentrum ist aber eine stabile und redundanten Stromversorgung sowie Netzwerkanbindung gegeben. Auch wird hier üblicherweise Hardware einer hohen Qualität und Stabilität angeboten, welche für den Dauerbetrieb ausgelegt ist. - On-premise:
Im Fall einer on-premise Installation betreibt man die Server-Hardware innerhalb der eigenen Organisation, daher ist man frei in der Auswahl der einzusetzenden Hardware, muss aber auch selbst die Themen wie Stromversorgung, Netzwerkanbindung und Kühlung sowie die damit verbundenen Kosten managen.
Im Gegensatz zum Cloud Computing werden beim dedicated hosting und beim on-premise Betrieb die benötigten Services in einem nicht vorkonfigurierten Betriebssystem installiert. Dies bedeutet im Setup mehr Aufwand, der aber oft durch niedrigere Betriebskosten kompensiert werden kann.
Die Rolle von Open-Source Frameworks
Im Rahmen der Technologieauswahl wird ein besonderer Fokus auf die Nutzung von Open Source Komponenten gelegt, welche flexibel ohne zusätzliche Lizenzkosten sowie unabhängig von der Art des Servicehostings genutzt werden können. Durch eine geeignete Auswahl und Konfiguration des Softwarestacks sowie des Einsatzes von OpenSource Software ist meist möglich auch die Angebote von verschiedenen Cloudanbietern nachzubilden, wenn andere Gründe wie zum Beispiel rechtliche Vorgaben oder Überlegungen zur Datensouveränität gegen die Nutzung dieser Services sprechen. Somit kann jedem Kunden unabhängig von dessen Rahmenbedingungen die technisch beste Lösung für seine Aufgabenstellung angeboten werden.
Durch den Einsatz von Open Source Software ist es möglich auf technologisch ausgereifte Lösungen zurückzugreifen und sie kostengünstig in Gesamtlösungen zu integrieren. Weiters bieten Open Source Lösungen aufgrund ihres breiten Einsatzes auch oft Interaktionsmöglichkeiten mit anderen Open Source Lösungen an wie Schnittstellen, Konnektoren, oder Datenimport- oder -exportmodule. Gerade im Bereich des Data Engineering, wo die Erstellung einer Datenverbindung zwischen heterogenen Systemen eine zentrale Aufgabe ist, ist dies von großem Nutzen.
Berücksichtigung von sich ändernden Anforderungen
Neben der Berücksichtigung der initialen Anforderungen hat einen passende Technologieauswahl noch die Möglichkeit, die Lebensdauer und die Flexibilität eines Systems signifikant zu verbessern. Dies bezieht sich vor allem auf die Offenheit gegenüber von neuen Anforderungen. Beispiel dafür sind der der Einsatz von Containerlösungen, welche eine flexible Ausführungsumgebung für verschiedenste Anwendungsfälle darstellen. Ein anderes Beispiel stellen interoperable Technologien dar, welche auf demselben Technologiestack aufbauen, wie beispielsweise Hadoop. Hiermit kann beispielsweise das verteilte Dateisystem Hadoop Distributed File System (HDFS) mit dem parallelen Ausführungsframework Map-Reduce und der NoSQL Datenbank HBase kombiniert werden.
In einem solchen Fall kann dieselbe Ausführungsplattform leicht um zusätzliche Dienste erweitert werden, da diese auf derselben Grundlage aufbauen. Eine andere Möglichkeit, sich ein hohes Maß an Flexibilität zu erhalten, stellt die Nutzung von weite verbreiteten Formaten und Schnittstellen dar. Ein gutes Beispiel hierfür ist die Möglichkeit auf ein Datenhaltungssystem mit SQL-Abfragen zugreifen zu können. Dies ermöglicht es, das dahinterliegende System schneller und flexibler austauschen, oder auch eine neue Client-Anwendung schnell auf die Datenbasis zugreifen zu lassen. Ein anderes Beispiel ist die Nutzung eines Message Brokers wie Apache Kafka, für den eine Vielzahl an Konnektoren zu anderen Systemen zur Verfügung stehen, und der daher als flexibles Werkzeug für die Verbindung von verschiedenen Systemen verwendet werden kann.
Die RISC Software GmbH unterstützt Sie gerne bei der Umsetzung oder Weiterentwicklung Ihrer Datenlösungen. Durch den hier beschriebenen analytischen Ansatz können wir spezifisch auf Ihre Anforderungen eingehen.
Ansprechperson
Autor
DI Paul Heinzlreiter
Senior Data Engineer