11. April 2017 User Stories

Das Finanzleben mit Elasticsearch bei George

By Michael Jakl

Die Erste Group Bank ist mit über 15 Millionen Kunden eine der größten Bankengruppen in Zentral- und Osteuropa. Ihr digitales Gesicht ist George. 

George wer?

George ist das neue digitale Banking der Erste Group Bank. 2015 auf dem österreichischen Markt gestartet, hat George mittlerweile über 1 Million User. Mit dem Sprung in die anderen Märkte der Erste Group, werden weitere Millionen hinzukommen. Mit George machen wir den Schritt vom klassischen Online-Banking hin zur digitalen Banking-Plattform.

George bietet den Kunden nicht nur ein modernes Interface, das Einblick in das gesamte Finanzleben erlaubt. Er bietet darüber hinaus ganze eine Bandbreite neuer Funktionen an, die über das klassische Online-Banking, wie wir es kennen, hinausgehen.

1new.png

Highlights von George

Für viele der neuen Anwendungsfälle und modernen UX ist im Hintergrund ein Elasticsearch Cluster zuständig. Dazu gehören neben der semantischen Suche auch Statistiken, die auf Elasticsearch Aggregations basieren. Skalierbarkeit und Performance werden zudem bei uns groß geschrieben. Auch hier ist Elasticsearch ein zentraler Teil der Architektur.

Die technische Implementierung von George

Die Architektur von George ist auf ein heterogenes Unternehmen ausgelegt, das aus unabhängigen Banken in verschiedenen Ländern der Erste Group besteht. In Österreich sind es die Erste Bank und Sparkassen, in Tschechien die Česká spořitelna und in der Slowakei die Slovenská sporiteľňa etc.

Um den Kunden gruppenweit ein einheitliches Auftreten zu präsentieren und die Entwicklungen und Innovationen der lokalen Banken schnell in die gesamte Gruppe zu integrieren, haben wir eine API definiert, auf die die Clients (z.B. Web Frontend, mobile Clients, spezialisierte Clients) aufbauen. Diese API wird unter anderem von Elasticsearch versorgt.

Weshalb Elasticsearch?

Suche ist ein zentraler Teil von George, allerdings nicht nur via Eingabefeld, sondern verwoben im Gesamtkonzept. Viele Funktionen am Frontend basieren ganz oder zum Teil auf Elasticsearch-Abfragen. Die Transaktionslisten, die Statistiken der Kontobewegungen, der persönliche Finanz Manager, die Gruppierung der ähnlichen Transaktionen, das Adressbuch oder der Wertpapierhandel sind nur einige Beispiele, bei denen Elasticsearch eine zentrale Rolle spielt.

Dadurch, dass Elasticsearch zu einem der zentralen Dreh- und Angelpunkte im George Ökosystem avanciert ist, haben wir entsprechend hohe Anforderungen an das System, speziell in diesen Bereichen:

  • Ausfallsicherheit
  • Wartbarkeit
  • Performance
  • Skalierbarkeit

Einige Beispiele

Die Statistiken werden je nach Konto- oder Produkttyp dargestellt, bei einem Girokonto sind z.B. die monatlichen Einnahmen bzw. Ausgaben interessant:

2.jpg
Ansicht Girokonto

Bei einem Sparkonto ist der Kontostand am Ende des Monats von Interesse:

3.jpg
Ansicht Sparkonto

Auf die Suche im George sind wir besonders stolz, mit ihr finden unsere Kunden die Nadel im Heuhaufen der letzten 7 Jahre. Hier ein Beispiel das nach allen Transaktionen sucht, die das Wort "billa" enthalten, kleiner als 50 Euro waren und im letzten Jahr stattgefunden haben:

4.jpg
Transaktionssuche

Selbst in den Details der Transaktion versteckt sich noch ein Stück Elasticsearch, zu jeder Transaktion zeigen wir z.B. eine Statistik der Umsätze mit dem selben Partner an:

5.jpg
Transaktionsdetails

Ausfallsicherheit

Die George-Server sind auf drei Data Center in Wien aufgeteilt. Die Anforderung, die wir an uns stellen ist, dass ein Datacenter ausfallen darf (Stromversorgung, Internet etc.). Darüber hinaus darf ein weiterer Server im Cluster in der Wartung sein.

Elasticsearch bietet mit der flexiblen Konfigurationsmöglichkeit der Replicas in Verbindung mit Zone-Awareness alle notwendigen Mittel, um diese Anforderung auch auf der Ebene der Datenhaltung umzusetzen.

Wartbarkeit

In der Enterprise Welt sind schwergewichtige, komplexe IT-Systeme keine Seltenheit. Durch die Einfachheit in der Nutzung und Wartung brachte Elasticsearch eine frische und willkommene Frühlingsbrise.

Als missionskritische Komponente hat Elasticsearch einen sehr hohen Stellenwert.  Um etwaige Fehlersituationen schnell meistern zu können, steht uns der Elastic Support zur Verfügung. Damit sind wir gut auch für brenzlige Situationen gewappnet.

Mit Monitoring (Marvel) von Elastic konnten wir bisher die meisten Ungereimtheiten im Cluster schnell und einfach selbst handhaben, so erkennen wir z.B. schnell Ressourcenengpässe und können früh beginnen den Cluster zu erweitern. Mit dem Security Plugin (Shield) lässt sich das notwendige Level an Sicherheit gewährleisten, Verschlüsselung, Audit Logs und Zugangskontrolle spielen dabei die Kernrollen.

Kurz: Unsere Operations Abteilung ist mit dem Setup ebenso glücklich wie der CFO.

Performance

Zu einem guten Service gehört natürlich auch die entsprechende Performance. Unser Elasticsearch-Setup ist mit wenigen Handgriffen um das zig-fache schneller als mit der Standardkonfiguration.

Die Key Settings für uns waren eine sehr hohe Anzahl an Shards zusammen mit Routing Keys und einer kundenabhängigen Shard Preference. So konnten wir die Last am Elasticsearch Cluster durch einfache Applikationslogik auf ca. 1/100 reduzieren. Statt 10TB an Daten zu durchsuchen, sind es so nur 100GB, was sich in niedrigen Latenzzeiten widerspiegelt und sich somit auch direkt beim Kunden bemerkbar macht.

Skalierbarkeit

Im Banking-Business rechnen wir nicht mit dem großen plötzlichen Kundenansturm. Unsere Kundenzahl ist nur leichten oder langsamen Schwankungen unterworfen. Dennoch ist es wichtig, einen kosteneffektiven Weg zu haben, um die Infrastruktur an neue Anforderungen, neue Use-Cases und vielleicht doch einer größeren Kundenzahl anzupassen. Mit der nahezu linearen Skalierbarkeit von Elasticsearch fühlen wir uns bestens vorbereitet für den 100-millionsten Kunden.

Schlusswort

Gerade das Zusammenspiel einer konservativen Branche mit top modernen Produkten bietet eine spannende Umgebung, die George für uns so speziell macht. Nach einigen Jahren mit anderen Ansätzen, eine Suche zu ermöglichen, ist erst mit Elasticsearch ein Produkt auf dem Markt, das kaum Kompromisse erfordert, und George das spezielle magische Etwas einhaucht.


author-michael-jakl.jpg

Dr. Michael Jakl arbeitet seit 2012 an George und seit Version 0.20.x mit Elasticsearch. Neben Erfahrung mit Lucene, Solr, Hibernate-Search und anderen Suchtechnologien, beschäftigt er sich mit allen Bereichen der Software Entwicklung und hilft Studenten an der Universität Wien, die nächste Generation an Software Entwicklern zu werden.