Navigation überspringen

Bewährtes mit Kafka in die Cloud bringen

Was macht einen guten Onlineshop für Elektro- und Haushaltsgeräte aus? Zu allererst ein breites Sortiment, übersichtlich dargestellt. Wer sich zum Beispiel für eine Waschmaschine entscheidet, bekommt im Idealfall das richtige Zubehör angezeigt. Und für weniger Entschlossene bietet der Shop Alternativen an, bis das Wunschprodukt im Warenkorb landet. Diese und weitere datenbasierte Vorzüge will ein großer griechischer Anbieter für Haushaltselektronik noch intensiver nutzen. Doch die vorhandene Software-Ausstattung genügt den Anforderungen nicht mehr.

Im Rekordtempo

Also entscheidet der Elektrohändler 2019, die technische Plattform des Webshops inklusive Datenbank neu aufzustellen und alles in die Cloud zu heben. Dabei ist besonders wichtig, dass es für die neue Software keinen Unterschied macht, ob zehn oder 10.000 Menschen auf der Webseite sind oder ob sie Produkte über die App bestellen. Der Shop muss schnell funktionieren – und das rund um die Uhr.

Betraut mit dem Projekt sind neben der ITGAIN auch weitere IT-Spezialisten vor Ort. Solche Aufgaben lassen sich nur im Team bewerkstelligen. Das Team soll für die neue Software-Architektur verschiedene Bausteine nutzen: Amazon Web Services sorgt für die Cloud-Dienste und Serverpower. IBM Websphere Commerce bildet als E-Commerce-Plattform das Herzstück des Webshops. Sie verknüpft den Warenbestand und die richtigen Adressen aus der Datenbank miteinander. Dahinter liegt die Db2-Datenbank von IBM, in der Artikelnummern, Auftragsdaten, Kundendaten und weitere Informationen gespeichert sind. Für zwei Teilprojekte kommt Reinhold Farsch als Virtualisierungsspezialist von ITGAIN dazu: „Ich wurde als Experte für die Db2-Datenbank und die Cloud-Lösungen rund um Amazon Web Services ins Boot geholt, weil der gesamte Job innerhalb von sechs Wochen fertig werden musste.“

Um die Umgebung der Datenbank zu berücksichtigen, ist in der Zeit dieser Austausch mit den anderen Experten wichtig. Denn die Software soll sich automatisch installieren und muss direkt mit anderen Bausteinen harmonieren.

Das Playbook

Also schreibt Reinhold Farsch ein sogenanntes Playbook, wie er erklärt: „Das ist die Steuerdatei. Mit dieser Datei füttern wir eine Software namens Ansible, die nichts anderes macht, als nach diesem Muster die Datenbank mit allen Kundenwünschen zu installieren. Das lässt sich am Ende beliebig oft wiederholen, fehlerfrei.“ So muss der Betreiber des Shops bei Problemen nicht auf Fehlersuche gehen, sondern installiert mit wenigen Mausklicks neu. In der virtuellen Cloud-Umgebung ist dieser Weg ressourcenschonender und schneller.

Die Schwierigkeiten, ein solches Playbook zu schreiben, verbildlicht Farsch mit einem Gedankenspiel: „Stellen Sie sich vor, Sie schreiben hintereinander auf, was Sie alles tun müssen, wenn Sie morgens aufstehen und etwas anziehen. Jede Muskelbewegung, jede Entscheidung für ein Kleidungsstück. Wir müssen alle Dinge voraussehen, die die neue Datenbank in dieser Umgebung braucht, damit sie wie vom Kunden gewünscht funktioniert. Darin liegt die große Herausforderung.“

Anschlussjob

Nach zwei Wochen steht alles: Mehrere Datenbanken sind miteinander verschaltet und haben den gleichen Datenbestand. Sollte eine ausfallen, springt nahtlos eine andere ein. Im IT-Deutsch heißt das HADR, also High Availability Disaster Recovery-Lösung, ein zentrales Anliegen des Kunden. Dank des erfolgreichen Aufsetzens der neuen Datenbank bekommt Reinhold Farsch direkt ein Anschlussprojekt: Er soll prüfen, ob die App des Onlineshops und ein neues Kassensystem mit der Wunschsoftware Kafka verbunden werden können. Denn der Kunde verspricht sich dadurch eine schnellere Datenverarbeitung. Sobald sich eine Information in der Datenbank erneuert hat, zum Beispiel wenn ein Tabletpreis gesunken ist, setzt die Datenbank das Kassensystem per Datenstrom direkt über den neuen Preis in Kenntnis.

Das funktioniert mit Kafka und seiner Arbeitsweise: An einem Ende ist ein User, der etwas tut, am anderen Ende sind viele, die sich das nehmen, was sie davon brauchen. Sie sind in die Rollen Producer und Consumer geteilt. „Producer ist der Mausklick, welcher Events, also Ereignisse, auslöst. Consumer ist der Algorithmus, der auf Basis der Klicks errechnet, welches Produkt dem User noch eingeblendet wird. Apache Kafka bietet hier viele Vorteile“, so Farsch. Die Software sorgt dafür, dass die Ereignisse chronologisch richtig weitergegeben werden und sich zeitlich nicht überholen. Vor allem aber ist sie skalierbar ohne Geschwindigkeitsverlust, wenn genügend Rechenpower da ist. Andere Software-Lösungen haben interne Grenzen – antworten ab bestimmten Anfragemengen also nicht so schnell, ganz egal, wie viel Rechenpower vorhanden ist.

Der knifflige Part: Kafka mit der vorher aufgesetzten Db2-Datenbank zu verbinden. „Db2 ist eine relationale Datenbank im klassischen Sinn, weshalb sie nicht für sehr viele kleine Abfragen in kurzer Zeit geeignet ist“, sagt Farsch. An dieser Stelle wird daher Change Data Capture – also das Erfassen aller Änderungen in der Datenbank – als Bindeglied zwischen der Db2-Databank und Kafka eingesetzt. Damit erfasst die Datenbank jede Veränderung nahezu in Echtzeit und überträgt sie an Kafka. Keineswegs eine Standardlösung, weshalb Farsch sehr zufrieden ist. „Diese Bausteine haben wir bislang so noch nicht zusammengefügt. Aber jetzt ist die alte Welt einer relationalen Datenbank mit einer Streaming-Plattform, also der neuen Welt, sinnvoll verbunden.“ Job erledigt.


Anwendungsmodernisierung und Software Engineering

Kostenersparnis, optimierter Betrieb und einfachere Wartung: Eine gelungene Anwendungsmodernisierung bringt viele Vorteile. Wir sind darauf spezialisiert! So sorgt unser Team dafür, dass Ihre fachlichen Anforderungen besser unterstützt werden und Ihre bewährten Anwendungen sicher und performant laufen – auf moderner Hardware und mit neuen Betriebssystemen. Dazu tauschen wir nicht einfach nur alte gegen neue Technik aus. Wir transformieren Ihre Anwendungen. So unterstützen wir Ihre dynamisch wachsenden Geschäftsprozesse, auch durch klassisches Software-Engineering.

Software Architektur

Von der Idee bis zum fertigen System, vom Lastenheft bis zur fertigen Anwendung, vom Entwicklungsauftrag bis zur Realisierung: Wir entwickeln vollständige Softwarelösungen oder arbeiten als eng eingebundener Zulieferer von selbst entwickelten und produzierten Anwendungskomponenten. Als Entwicklungsdienstleister unterstützen wir unsere Kunden beim Design, bei der Architektur, der Softwareentwicklung, dem Test, der Produktion und dem Betrieb – gleich ob Anwendungskomponenten oder vollständige Systeme. Was können wir für Sie tun?

Datenbank Architektur

Wir sind Datenbankarchitekten und Performancespezialisten. Wir beraten, betreiben aber auch hunderte von Datenbanken innerhalb unseres Managed Database Service, stellen eigene Datenbank-Performance-Lösungen her und vertreiben sie weltweit. Deswegen wissen wir genau, welcher Typ Datenbank für Sie optimal ist. NoSQL oder Big-Data-Architekturen beispielsweise bieten in bestimmten Szenarien deutliche Vorteile gegenüber relationalen Datenbanken. Open-Source wie PostgreSQL ist eine echte Alternative, wenn es um stabile und performante Verfügbarkeit von Unternehmensdaten geht. Nutzen Sie unsere Erfahrung aus unzähligen heterogenen Projekten und entwickeln Sie mit uns die passende Lösung!