Da cloudbasierte Lösungen für Geschäftsanwendungen immer beliebter werden, geht der Trend zur Entwicklung von Microservice-Anwendungen in einer Cloud-Infrastruktur. Die Microservice-Architektur bietet zahlreiche Vorteile: Geschwindigkeit, Skalierbarkeit, Flexibilität, Produktivität und Zuverlässigkeit. Aber sie wirft auch die Frage der Rückverfolgbarkeit von Anwendungsfehlern für Microservices auf. Jeder Ausfall von Microservice-Anwendungen kostet Zeit, Geld und Vertrauen. Es ist wichtig, die bereitgestellte Anwendung zu überwachen und zu analysieren, um vorbeugende Maßnahmen ergreifen zu können und damit Benutzerfreundlichkeit, Zuverlässigkeit und Verfügbarkeit der Anwendung zu erhöhen. Eine gute Applikationsüberwachung und -analyse bringt zudem interessante betriebswirtschaftliche Erkenntnisse.
Jedes Unternehmen ist bestrebt, seine digitale Präsenz zu stärken. Für maximalen Erfolg müssen digitale Lösungen heutzutage agil, flexibel und mit den End-to-End-Prozessen des Unternehmens verbunden sein. Lösungen, die auf der Entwicklungsumgebung SAP Cloud Foundry basieren, helfen Unternehmen, Entwicklungszeit und -kosten zu sparen, die Flexibilität zu erhöhen und Vendor Locking zu vermeiden. Eine einheitliche Business-Cloud-Plattform ist entscheidend für die Bereitstellung modernster Lösungen in einem sich ständig verändernden Markt.
Um die Flexibilität und Verfügbarkeit der Cloud-Plattform voll auszuschöpfen, setzen Unternehmen auf die Microservice-Architektur. Einfach ausgedrückt, brechen microservicebasierte Lösungen eine große Anwendung in kleinere, unabhängige Anwendungen auf. Diese Aufteilung bietet den Vorteil, Anwendungen parallel zu entwickeln und die wichtigsten Dienste zu replizieren, um einen maximalen Servicedurchsatz zu erreichen. Die microservicebasierte Anwendung in der Cloud ist flexibel genug, um beliebig viele Serviceanforderungen von Benutzern dynamisch zu bedienen. SAP Cloud Foundry sorgt für das horizontale Upscaling von Microservices.
Die Microservice-Architektur bietet viele Vorteile, etwa die Möglichkeit, verschiedene Technologie-Stacks zu nutzen, unabhängig voneinander zu implementieren oder kleine Probleme einzeln zu lösen. Eine Anwendung in einer Microservice-Architektur besteht aus mehreren Diensten, die über das HTTP-Protokoll miteinander kommunizieren (z. B. REST oder SOA). Ein Service ist eine einzigartige, isolierte Anwendung, die ein Problem aufteilt und unabhängig läuft. Microservices bieten Entwicklerteams genau das, was diese in der digitalisierten und disruptiven Geschäftswelt benötigen: Geschwindigkeit, Skalierbarkeit, Flexibilität, Produktivität und Zuverlässigkeit von Anwendungen.
Abbildung 1: Monolithische Architektur vs. Microservice-Architektur (Quelle: Martin Fowler)
Eine Microservice-Architektur bringt aber auch Herausforderungen mit sich. Während kleinere Codeblöcke für Entwickler leichter zu verstehen und zu verwalten sind, bestehen die Anwendungen aus viel mehr Komponenten - und diese Komponenten haben mehr Verbindungen. Diese Abhängigkeiten erhöhen die Gesamtkomplexität der Anwendung, was zu Problemen führen kann.
Bei den Microservices stellt sich zudem die Frage der Rückverfolgbarkeit oder Beobachtbarkeit. Es ist schwierig nachzuvollziehen, wie und wann ein Dienst ausfällt. Der Einsatz von microservicebasierten Anwendungen beinhaltet oft Replikationen von Service-Instanzen. Sobald eine Service-Instanz ausgefallen ist, ist die Ursache schwierig zu ermitteln, da die Anwendung noch auf der redundanten Service-Instanz laufen kann. Die folgenden Fragen lassen sich nur bei ordnungsgemäßer Anmeldung in Code- und Protokollanalyseanwendungen beantworten:
Die Herausforderung für Entwicklerteams besteht darin, das Problem durch kontinuierliches Monitoring anhand aussagekräftiger Analysen zu lösen. Die Analyse zeigt, wo Probleme bestehen oder Prozesse verbessert werden können. Jeder Service-Ausfall kostet Zeit, Geld und manchmal auch Kundenvertrauen. Daher ist es sinnvoll, in die Geschwindigkeit, Flexibilität und Zuverlässigkeit von Microservice-Architekturen und in deren Wartung zu investieren.
Eine gute Anwendungsüberwachung gibt Unternehmen auch die Möglichkeit, ihre digitalen Assets besser zu kennen, zum Beispiel die Aktionsmuster der Benutzer, die Navigationshistorie der Anwendung, die am häufigsten verwendeten Funktionen und andere KPIs. Eine ordnungsgemäße Überwachung der Anwendung zeigt interessante Fakten für den Geschäftsbetrieb auf und liefert die Basis, um Dienstleistungen zu verbessern und die Nutzerzufriedenheit zu erhöhen.
Die Entwicklungsumgebung SAP Cloud Foundry beinhaltet die Open-Source-Lösung ELK Stack (Elasticsearch, Logstash und Kibana) für die Anwendungsüberwachung und Protokollanalyse. Intuitive Dashboards liefern Details zu Performance, Auslastung, Benutzeraktionen, Routingverlauf etc. So vereinfacht der ELK Stack die Entscheidungsfindung und die Performance-Analyse für Entwicklungsteams und Geschäftskunden.
Abbildung 2: Der ELK Stack
Elasticsearch: Die verteilte, JSON-basierte Such- und Analyse-Engine ist auf horizontale Skalierbarkeit, maximale Zuverlässigkeit und einfache Verwaltung ausgelegt. Daten lassen sich sofort speichern, suchen und analysieren.
Logstash: Die serverseitige Open-Source-Software verarbeitet Datenströme aus unterschiedlichen Quellen simultan, wandelt die Daten anschließend um und leitet sie in eine beliebige „Ablage“ weiter.
Kibana: Die erweiterbare Benutzeroberfläche konfiguriert und verwaltet alle Aspekte des Elastic-Stacks und bringt die Daten in Form.
Mehr zum ELK Stack lesen Sie hier.