Mit FastScore stellt das Unternehmen Open Data Group ein Deploymentwerkzeug bereit, das die Entwicklung, das Testen, die Produktivsetzung und Überwachung von Modellen zusammen bringt und es auf Basis von Microservices bereit stellt. Mit Modellen sind in diesem Kontext Analyse- und Auswertungsverfahren gemeint, die auf Datenströme Anwendung finden, um daraus einen informationsbezogenen Mehrwert zu generieren. Dieser Aufbaut ist, laut der OpenDataGroup, ein Konzept für die Zukunft, in der der Modellierungsprozess permanenten Anpassungen unterliegt. Dieser Anwendungsbereich wird mehr und mehr an Bedeutung gewinnen. Darum soll der Anpassungsprozess am Modell möglichst flexibel gestaltet werden. Beim Deploymentprozess soll auf folgende Aspekte im Hinblick auf Systemaufbau und Organisationstruktur Wert gelegt werden:
- Autark und Skalierbar
- Überwachung/Monitoring
- Organisation/Governance/Zuordnung von Zuständigkeiten
Einzelne Systemkomponenten sollen autark und skalierbar sein, d.h. Ressourcen sollen unkompliziert erweitert oder reduziert werden können, sowie Ausfälle oder Störungen leicht isoliert und beseitigt. Dem entsprechend wird die Systemstruktur als Microservices aufgebaut, um derart möglichst große Flexibilität und Ausfallsicherheit sicher zu stellen.
Im Idealfall soll der modulare Systemaufbau auf die Softwareebene übertragen werden, sodass Implementationen in Einheiten entwickelt werden, die sich auf spezifische Aufgaben- und Systembereiche beschränken. Als ein weiter wichtiger Punkt wird die Überwachung des Verarbeitungsprozesses gesehen, um zum Einen die Testphase effizient zu gestallten und zum Anderen im Produktivstrang Unregelmäßigkeiten und Störungen schnell identifizieren zu können. Nicht zuletzt soll die Zuständigkeit und die Organisationsstruktur hinter den einzelnen Komponenten transparent sein und wohldefinierten Abläufen folgen.
Diese Leitlinien und Organisationsstruktur zum Vorbild nehmend, ist FastScore modular aufgebaut und die einzelnen Module stehen als (Docker)-Container zur Verfügung. Wichtige zu nennende Komponenten sind:
- Engine (core-Instanz)
- Dashboard (Web-Interface)
- Model-Manager (Verwaltung der Modelle)
- Composer (Aufbau und Steuerung von Verarbeitungsketten)
- Deploy (SDK für Jupyther)
- Access (Benutzerverwaltung)
- Lineage (Metadatenverwaltung der Prozessabläufen)
Die einzelnen Komponenten sind im Folgenden näher beschrieben:
Eine Engine-Instanz ist die zentrale Einheit, auf der die Verarbeitung und Auswertung des Modells ausgeführt wird. Ein Verarbeitungsprozess wird jeweils einer Engine-Instanz zugeteilt. Auf diesem Weg werden die Verarbeitungsprozesse voneinander isoliert und können individuell mit den benötigten Ressourcen ausgestattet werden. Generell setzt sich ein Verarbeitungsprozess aus dem eigentlichen Modell, aus zwei Streams und Schemata zusammen. Über die Streams werden die Datenquelle (Eingangsstream) und das Ziel (Ausgangsstream) definiert. Die Schnittstellen zwischen Eingangsstream-Modell und Modell-Ausgangsstream werden über Schemata festgelegt, vgl. Abb. 1.
Die drei Komponenten, Modell, Stream und Schema, werden in fastscore als unabhängige Komponenten angelegt, müssen jedoch in einem aufgesetzten Verarbeitungsprozess konsistent sein. Über die Abkapselung der einzelnen Verarbeitungsprozesse kann die Separation zwischen Produktions‑, Test- und Entwicklungseinheiten erfolgen. Darüber lässt sich der Transfer zwischen den Einheiten unkompliziert gestalten.
Die Dashboard-Instanz stellt eine grafische Weboberfläche für die Erstellung, Steuerung und Überwachung von Verarbeitungsprozessen bereit. Darüber kann die Zuteilung der Verarbeitungsprozesse zu den Engine-Instanzen erfolgen, dazu steht eine Übersicht über alle Engins bereit. Das Webinterface bietet ebenso die Möglichkeit den Quellcode für das Modell und das Schema anzupassen. Alle Möglichkeiten, die das Dashboard bietet, lassen sich ebenfalls über ein CLI, APIs und SDKs ansteuern. Für die Implementierung eines Modells steht eine breite Auswahl an gängigen Programmiersprachen bereit.
Die Model-Manager-Instanz übernimmt die Verwaltung und Versionierung der Verarbeitungsprozesskomponenten. Dies kann derzeit über eine Anbindung an eine MySQL Datenbank, github oder bitbucket erfolgen.
Mit der Composer-Instanz können Workflows erstellt, verwalten und eingesetzt werden. Die Access-Instanz ist eine Basisbenutzerverwaltung mit Zugriffsbeschränkungen. Die Deploy-Instanz ist ein Jupyter Notebook Server mit integriertem Deployment Toolkit (SDK). Mit der Lineage-Instanz werden die Metadaten zu Verarbeitungsabläufen bereitgestellt. Diese können über eine REST API abgegriffen werden.
Fazit
Generell ist FastScore ein interessantes Produkt im Feld von DataScience Deployment Plattformen. Es hält die selbst gesetzten Paradigmenvorgaben und ist ohne großen Aufwand aufzusetzen und zu verwalten. Die Ressourcenzuteilung kann komplett über Docker gesteuert werden. Zudem ist es flexibel in Bezug auf den Einsatz und Zusammenspiel von unterschiedlichen Programmiersprachen. Derzeit ist FastScore ein recht neues Produkt und wird intensiv weiterentwickelt. Dies wird an einigen Stellen über geringen Funktionsumfang und Konfigurationsmöglichkeiten deutlich. Andererseits können, laut Open Data Group Webseite, eigene Implementierungswünsche an das FastScore Entwicklerteam heran getragen werden.