Effizienter mit Microservices

Analysen über APIs automatisieren

05.05.2020
Von 
Michael Möhring ist Wissenschaftlicher Projektleiter an der Hochschule München.
Mit der fortschreitenden Digitalisierung müssen Unternehmen Prozesse und Abläufe genau im Blick behalten. Automatisierte Analysen können dabei helfen. Für die Integration bieten sich Microservices an.

Analyseservices können Funktionen übernehmen, die bisher nur manuell oder teilautomatisiert möglich waren. Dadurch sind sie prinzipiell in jedem Unternehmensbereich sinnvoll. So können Analyseservices im Marketing & Sales etwa helfen, Kundendaten automatisiert zu analysieren oder in der Fertigung für automatische Produktionsanalysen zu fahren.

Automatisierte Analysen können Prozesse beispielsweise im Marketing oder der Produktion effizienter machen.
Automatisierte Analysen können Prozesse beispielsweise im Marketing oder der Produktion effizienter machen.
Foto: NicoElNino - shutterstock.com

Derartig automatisierte Analysedienste bereitszustellen, ist allerdings nicht trivial. Ein hoher Aufwand bei der Entwicklung von Analyseservices liegt neben der bereinigten Datenextraktion und dem Finden des richtigen Analysemodells, wie beispielsweise Regressionsmodellen oder Neuronale Netze/Deep Learning, vor allem auch in der finalen Bereitstellung der Analyseservices.

Microservices: Knackpunkt Integration

In der Vergangenheit bedeutete dies in aller Regel einen hohen Integrationsaufwand, um die vorwiegend in Python oder R geschriebenen Analyseservices direkt mit bestehenden Softwarepaketen zu verknüpfen. Nicht selten drohten gute Analyseprozesse in der Praxis an der Integration zu scheitern. Die Einbindung in komplexe Softwarearchitekturen stellt grundsätzlich eine große Herausforderung dar. Dies führt weiterhin vor allem im Verlauf der Nutzung zu Wartungs- und Skalierungsproblemen bei diesen datenintensiven Anwendungen.

Ein Weg Integrationsprobleme zu lösen, kann die Implementierung dieser Analyseprozesse in Microservices sein. Diese lassen sich skalierbar und einfach wartbar anlegen. Ein Zugriff auf diese Microservices kann über eine REST-API erfolgen. So lassen sich beispielsweise in einer potenziellen Kundenanalyse Kundendaten JSON-basiert per API-Aufruf an den Analyseservice übermitteln. Im Ergebnis stellt der Analyseservice die Ergebnisse der Kundenanalyse pro Kunde wieder JSON-basiert bereit. Dies geschieht standardisiert und einfach integrierbar in eine bestehende Anwendungslandschaft.

Für Analyseprozesse in Python können Anwender verschiedene Frameworks verwenden. Beispielhaft sind hier "Flask" und "FastAPI" zu nennen. Darüber hinaus ist ein benutzerfreundlicher Test inklusive Dokumentation der API-Schnittstellen über Open Source Tools wie "Swagger" möglich. Das erleichtert diese Arbeitsschritte enorm.

Analyseservices: Inhouse oder in der Public Cloud

Analyseservices können sowohl Inhouse als auch in der Public Cloud ausgerollt und bereitgestellt werden. Vor allem für Dienste, die nicht so oft ausgeführt werden, aber viel Ressourcen wie CPU und Arbeitsspeicher benötigen, bietet sich ein Public-Cloud-Ansatz an. Dies ist zudem in aller Regel kostengünstiger und einfacher skalierbar. Hierbei gilt es jedoch für die Anwenderunternehmen, Aspekte wie Sicherheits- und Integrationsanforderungen separat zu beurteilen. Gängige Public-Cloud Anbieter wie Amazon Web Services (AWS) oder Microsoft Azure bieten an dieser Stelle ausgereifte Cloud-Umgebungen an.

Lesen Sie mehr zum Thema Microservices-Architekturen:

Eine weitere Public-Cloud-basierte Lösungsmöglichkeit kann die Nutzung von Serverless Computing für diese Analyseservices sein. Hierbei bezahlen Anwender in der Regel nur pro Ausführung des Analyseprozesses. Um Skalierbarkeit sowie Ressourcenanforderungen kümmert sich der Cloud-Provider. Beispiele sind hierfür etwa AWS Lambda, Microsoft Azure Functions oder Google Cloud Functions. Die Herausforderungen liegen ähnlich wie beim allgemeinen Public Cloud Computing etwa Sicherheits- und Integrationsaspekte.

Zusammenfassend kann die Nutzung und Implementierung von Analyseservices ein großer Schritt innerhalb der Digitalisierung von datenintensiven Prozessen sein. Dabei sollten solche Services vor allem als Microservices mit einer definierten API entwickelt werden, um eine vereinfachte Integration, Skalierbarkeit, Test und Wartbarkeit zu gewährleisten.