IT-Trends-Blog

IT-Trends-Blog

Opinions expressed on this blog reflect the writer’s views and not the position of the Capgemini Group

Microservices mit SAP HANA (Teil I): Die Verschmelzung zweier Welten

Kategorie: Digitale Trends

Folgt man dem Paradigma von Microservices konsequent, so bewegt man sich schnell im Bereich von Service-Definitionen und -Zerteilung, von Technikvielfalt und unabhängigen Deployments. Es geht um Schnittstellendefinitionen, den Aufbau von Dictionarys, die Orchestrierung in Services, um agile Teams und eine Dezentralisierung der Datenbasis. Diese Definitionen beheimaten viele Vorteile von Microservices. Jedoch kommen auf die IT auch Herausforderungen zu, die eine Betreuung und Entwicklung von Software beliebig komplex machen können. Im Kontext dieser Herausforderungen und im Thema dieses Artikels möchte ich mich der entstehenden Komplexität der Datenhaltung bzw. Datenbasis widmen. In diesem Blog fangen wir – Sie und ich – daher ganz unten an und knöpfen uns zunächst einmal die Datenbasis vor, um darauf aufbauend die von uns geforderte Agilität voll ausspielen zu können. Das ist für mich ein greifbarer Ansatz für die digitale Transformation eines Unternehmens.

Eine unweigerlich redundante Datenhaltung

Jeder Microservice hat im allgemeinen Verständnis nach Fowler seinen eigenen Datenbestand aufzubauen und zu verwalten. Dies dient dem Konzept ihrer modularen Struktur. Jedoch bringt dieses Konzept der Trennung auf Ebene der Datenbasis weitaus größere Probleme mit sich als beispielsweise die Trennung auf der Logikschicht. Das kommt daher, dass viele Microservices ihre eigene Logiksteuerung besitzen, die sie einzigartig macht – im Unternehmen und in allen existierenden Microservices. Jedoch benötigen viele Microservices dieselben Daten, um einen Prozess abarbeiten zu können. Somit entstehen unweigerlich Datenredundanzen, die sich später wieder miteinander synchronisieren müssen. Welcher Datenbestand dann der führende ist, vor allem bei Inkonsistenzen, ist schwer zu bestimmen. Je weiter die Systeme verteilt liegen, desto größer wird dieses Problem: Unternehmen ab einer Unternehmensgröße von 1000 Mitarbeiter erstellen von einem Datensatz durchschnittlich ca. 516 Kopien, so eine Studie der IDC. Das liegt zum einen daran, dass die Unternehmensbereiche die Hoheit über Ihre Daten behalten möchten (Organisationsproblem). Zum anderen an den Effekten in der Datensperrung bei gleichzeitigem lesenden oder schreibenden Zugriff auf gleiche Daten (Performanceproblem bei Datenzugriffen). Die aktuelle IT Welt steht vor diesen Problemen schon seit Jahren. Mit Microservices wird das sicherlich noch mehr zur Aufgabe werden.

Verstehen Sie mich nicht falsch. Ich finde die Idee von Microservices sehr charmant und sicherlich in einigen Umgebungen sehr gut geeignet. Jedoch sind die Daten im Unternehmen unser neues Öl der Zukunft. Entscheidungen in Echtzeit rücken immer weiter in den Vordergrund. Meiner Meinung nach, werden sich Unternehmen in den kommenden Jahren die Redundanzen von Daten nicht mehr erlauben können, wenn sie wettbewerbsfähig bleiben wollen. Das reine Paradigma an der Stelle der dezentralen Datenbasis, wie Microservices heute beschrieben werden, möchte ich daher gerne aufbrechen und Neues mit Bekanntem gewinnbringend verknüpfen. Die Verschmelzung dieser beiden Welten, Microservices mit SAP HANA, stelle ich Ihnen im Folgenden vor:

Wie SAP HANA und Microservices zusammenkommen

Sprechen wir hier nun über SAP-Software? Nein, sondern über Ihre individuellen Eigenentwicklungen im Unternehmen und Ihre Ideen, die sie mit Microservices umsetzen möchten – mit Programmiersprachen wie z.B. Java, C# oder R. Sie kennen jedoch SAP HANA nur im Kontext von SAP-Software? Dann darf ich Ihnen vorab den Artikel von Detlev Sandel empfehlen, der erklärt, welches Eroberungspotenzial SAP HANA auf dem unerschlossenem Terrain jenseits der Welt von SAP einnimmt.

Mein Vorschlag ist folgender: Verbinden Sie all Ihre Microservices mit einem zentralen Datenbestand, der alle Daten mit hoher Performance ausliefern kann. Der Datenbestand sollte außerdem eine hohe Parallelität von Nutzerzahlen zulassen und so gut wie niemals Datensätze gegenüber anderen Prozessen sperren. Das Datenmodell des Bestandes sollte sich so flexibel verhalten, dass jeder Microservice seine eigene Sicht darauf definieren kann und Anpassungen oder Ergänzungen von neuen Microservices im laufenden Betrieb vorgenommen werden können. Klingt nach einem Versprechen, das traditionelle Datenbanken so bisher nicht oder nur schwer einlösen konnten? Stimmt! Das ist einer der Trümpfe von SAP HANA und das in ihrem doch noch jungen Alter. Für HANA wurden viele neue Konzepte erdacht und umgesetzt, die ich in diesem Blog gerne auf die Non-SAP-Welt anwenden möchte. Die Verknüpfung von SAP HANA mit Microservices bildet an dieser Stelle den Startpunkt. Das Verschmelzen dieser zwei Welten mit den gerade beschriebenen Fähigkeiten birgt vor allem eines: Komplexitätsreduktion – und daraus folgend Kostenersparnisse.

Nach dieser kurzen Einführung, werde ich Ihnen im zweiten Teil dieses Blogs die Konzepte von SAP HANA – unter anderem virtuelle Views und Multiversion Concurrency Controle (MVCC) – für diese Art der Umsetzung näher bringen. Bleiben Sie neugierig, es könnte sich lohnen!

Über den Autor

Roman Bartlog
Roman Bartlog
Roman Bartlog ist Managing Enterprise Architect und kümmert sich um Themen rund um die digitale Transformation, u.a. SAP HANA, SAP Themen, Cloud, Microservices und die Integration von Cloud- und On-Premise-Lösungen.
2 Kommentare Kommentar hinterlassen
Es ist meines Erachtens der Sinn von Micro-Services die Abhängigkeiten zwischen den autonomen IT Funktionen (self-contained) zu kappen, um schneller Projekte umzusetzen (multi speed IT, Agile, DevOps). Bei einer gemeinsamen Datenhaltung bin ich wieder in dem Maintenance Zyklus der einen Datenbank, habe tendenziell ein Singel-Point of Failure und muss trotzdem über API Schnittstellen miteinander kommunizieren, habe trotzdem eher mehrere redundante Datenbestände (in einer Datenbank - um nicht anderen Micro Services abhängig zu sein) was habe ich denn dann gewonnen ?
Lieber Andre, zum einen hast du natürlich Recht damit, was du über die Microservices selbst schreibst. Ihre Agilität ist der Grundgedanke, wieso sie eingeführt worden sind. Diese Paradigma der Agilität stellen sie vor alles andere. Meines Erachtens ist das aber nicht immer genau der Zielführende Gedanke, denn Unternehmen haben noch andere Probleme -> Datenredundanzen! Diesen Punkt adressiere ich hier in diesem Blog. Agilität hinzugewinnen durch Microservices und eine zentrale Datenbasis aufzubauen, damit man zu jeder Zeit nicht nur SCHNELL (Agil) sondern auch KORREKT aussagefähig sein kann, ist meiner Meinung durch den Einsatz von SAP HANA möglich. Wie das funktionieren kann werde ich in meinem zweiten Teil des Blogs beschreiben. Ich freue mich auf dein Feedback!

Kommentar hinterlassen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mit einem * gekennzeichnet.