Technologien und Infrastruktur bei SALESmanago

 

SALESmanago ist eine Marketing Automation Plattform mit AI & Machine Learning Technologie, die von über 10.000 Unternehmen aus 40 Ländern genutzt wird, darunter Lacoste, Yves Rocher, Starbucks und viele kleine und große Unternehmen. In der Rangliste Financial Times Fast 1000 rangierte SALESmanago auf Platz 26 der am schnellsten wachsenden Unternehmen in Europa und war damit die am schnellsten wachsende europäische Plattform in der Martech-Branche.

SALESmanago-Kunden erstellen vollständige Verhaltens- und Transaktionsprofile von über 500 Millionen Verbrauchern und verwenden diese Daten zur Personalisierung der Marketingkommunikation in allen Kanälen wie E-Mail-Marketing, dynamische Inhalte auf der Webseite, Mobilgeräte, Social Media, Werbenetzwerke und Direktverkauf.

Wir verarbeiten und speichern riesige Datenmengen bei SALESmanago. Wir versenden täglich 50 Millionen E-Mails, d.h. jede Sekunde sind es fast 600. Jeden Tag registrieren wir 75 Millionen Besuche auf den Webseiten unserer Kunden. Die in unseren Datenbanken gesammelten Verhaltensdaten überschreiten bereits mehrere hundert Terabyte. Unsere Datenbanken unterstützen weit über 25 Tausend Transaktionen pro Sekunde. Von unseren Servern haben wir nur 2018 2 284 057 743 907 420 Bytes d.h. 2,1 PiB an das Internet gesendet.

Der Umgang mit solch großen Datenmengen, deren Verarbeitung in Echtzeit sowie die Speicherung erfordern den Einsatz sehr fortschrittlicher, stabiler und etablierter Technologien. Bei SALESmanago suchen wir nach Open-Source-Lösungen der Enterprise-Klasse, bewährten Tools, die umfangreiche Skalierungsmöglichkeiten bieten. Darüber hinaus sind qualifizierte Spezialisten für die Wartung und Weiterentwicklung des Systems verantwortlich.

Unter den vielen Technologien, die in einem so großen Projekt verwendet werden, lohnt es sich die wichtigsten zu erwähnen.

Anwendung

Die gesamte SALESmanago-Anwendung basiert auf Technologien, die von Java abgeleitet sind und auf Java basieren. Java ist eine klassenbasierte, objektorientierte Programmiersprache. Sie wurde von einem Team unter der Leitung von James Gosling von Sun Microsystems gegründet. Java ist die Sprache zum Erstellen von zu Bytecode kompilierten Quellprogrammen, also der Form, die eine virtuelle Maschine ausführt. Die Sprache zeichnet sich durch starke Typisierung aus. Ihre grundlegenden Konzepte wurden von Smalltalk (virtuelle Maschine, Speicherverwaltung) und von C++ (ein großer Teil der Syntax und Schlüsselwörter) übernommen.

Die SALESmanago-Anwendung basiert auf dem Framework Spring. Spring-Framework ist eine Plattform, deren Hauptzweck es ist, die Erstellung von Software der Enterprise-Klasse in der Technologie Java/J2EE zu vereinfachen. Spring besteht aus vielen Projekten, die der Erstellung von Anwendungen in Java gewidmet sind. Der Kern von Spring ist ein Container des Einbringens von Abhängigkeiten, der Komponenten und ihre Abhängigkeiten verwaltet. Er ermöglicht die automatische Erkennung dieser Abhängigkeiten ohne eine größere Beteiligung des Programmierers. Die Geschichte von Spring reicht zurück bis ins Jahr 2002, als J2EE 1.3 die Hauptplattform für die Anwendungsentwicklung in Java war, wobei die unpopuläre EJB 2.0-Technologie im Vordergrund stand. 2003 erschien seine erste Version. Angefangen hat alles mit dem Buch Expert One-on-One J2EE Design and Development, geschrieben von Rod Johnson – Paten von Spring, der mit Jürgen Hoeller und Yann Caroff die Arbeit an Spring begann.

Hibernate ORM – SALESmanago verwendet das objektrelationale Mapping-Framework. Darüber hinaus erhöht es die Effizienz der Vorgänge in der Datenbank durch Zwischenspeicherung und Verringerung der Anzahl der gesendeten Abfragen. Der Hauptinitiator und der Leiter des Projekts ist Gavin King.

MySQL ist ein frei zugängliches relationales Datenbankverwaltungssystem. MySQL wird von Oracle entwickelt. Früher über lange Zeit hat sich darum die schwedische Firma MySQL AB gekümmert. MySQL AB wurde am 16. Januar 2008 von Sun Microsystems gekauft, und wiederum San Microsystems wurde am 27. Januar 2010 von Oracle erworben. MySQL wurde eher mit dem Gedanken über Geschwindigkeit und nicht die Kompatibilität mit dem SQL-Standard geschrieben – lange Zeit hat MySQL keine Transaktionen unterstützt, was auch das Hauptargument der Gegner dieses Projekts war. MySQL unterstützt den Großteil des aktuellen ANSI/ISO SQL-Standards (d.h. SQL: 2003). Außerdem werden Erweiterungen und neue Sprachelemente eingeführt.

PostgreSQL wird häufig auch als Postgres bezeichnet, neben MySQL und Firebird, eines der drei beliebtesten offenen relationalen Datenbankverwaltungssysteme. Ursprünglich an der University of California in Berkeley entwickelt und unter dem Namen Ingres veröffentlicht. Bei der Entwicklung und Erweiterung der Funktionen erhielt die Datenbank die Namen Postgres95 und schließlich PostgreSQL, um an das Original zu erinnern und die Einhaltung des SQL-Standards zu markieren. Derzeit implementiert die Datenbank den Großteil des SQL:2011-Standards.

Neben stabilen und etablierten Technologien haben wir keine Angst vor modernen Werkzeugen, die uns große Möglichkeiten bieten, große Datenmengen zu verarbeiten. In unseren Projekten setzen wir Technologien ein, die schnell an Popularität gewinnen.

Apache Kafka – Nachrichtenbroker als offene Software verfügbar. Das Projekt wurde in Scala geschrieben und von der Apache Software Foundation entwickelt. Ziel des Projekts ist es, Echtzeitdaten von vielen Knoten zu verarbeiten. Die vereinheitlichte Bedienung der Eingabeströme soll große Kapazität und die Reduzierung der Verzögerung sichern. Das Projekt wurde stark von Transaktionsprotokollen beeinflusst. Apache Kafka wurde ursprünglich bei LinkedIn entwickelt und dann Anfang 2011 als Open Source verfügbar gemacht. Das Projekt hat den Apache Incubator am 23. Oktober 2012 verlassen. Im November 2014 gründeten mehrere Ingenieure, die am Kafka bei LinkedIn tätig waren, ein neues Unternehmen, das stark mit Kafka verbunden ist, Confluent.

Apache Flink ist eine Open-Source-Streaming-Plattform, die große Möglichkeiten von Verarbeitungsfunktionen für Datenströme bietet, die auf einer Skala von Millionen von Ereignissen pro Sekunde unempfindlich gegen Beschädigungen sind. Der Schlüssel ist, dass alles mit minimalen Ressourcen bei Verzögerungen von einer Millisekunde ausgeführt wird.

Neben anderen interessanten Technologien, die wir verwenden, lohnt es sich, die Python-Sprache zusammen mit Bibliotheken für maschinelles Lernen wie NumPy oder Bildverarbeitung wie OpenCV zu erwähnen, die im Apache Spark Cluster ausgeführt werden.

Produktionsumgebung

Alle unsere Dienste arbeiten in Linux-Umgebungen. Linux ist eines der Beispiele für freie und offene Software (FLOSS): der Quellcode kann frei verwendet, modifiziert und verteilt werden. Die erste Version des Linux-Kernels wurde am 17. September 1991 veröffentlicht. Eine beliebte Anwendung von Linux sind Serverumgebungen, für die kommerzielle Computerunterstützung auch von großen Computerunternehmen wie IBM, Oracle, Dell, Microsoft, Hewlett-Packard, Red Hat und Novell angeboten wird. Linux arbeitet mit einer breiten Palette von Computerhardware, einschließlich Desktop-Computer, Supercomputer und eingebauter Systeme wie Handys, Router und Fernseher.

Apache ist ein offener HTTP-Server, der für viele Betriebssysteme verfügbar ist. Apache ist der am häufigsten verwendete HTTP-Server im Internet. Im August 2015 betrug sein Anteil unter den Servern über 37%. Apache bietet Mehrsträngigkeit, Skalierbarkeit und Sicherheit. Der Apache-Server wird vom HTTP-Servercode abgeleitet, der von NCSA-Mitarbeiter Rob McCool geschrieben wurde.

Apache Tomcat ist ein Webanwendungscontainer (Eng. „web container“), der im Rahmen des Apache-Projekts entwickelt wurde. Als Anwendungscontainer ist dies ein Server, der es ermöglicht Webanwendungen in solchen Technologien wie Java Servlets und Java Server Pages (JSP) auszuführen. Dies ist einer der beliebtesten Webcontainer.

SALESmanago versendet täglich Millionen von E-Mails. Dies wäre ohne Mailserver nicht möglich. Postfix ist ein Unix-ähnlicher E-Mail-Server (MTA), der für das Senden und Zustellen von E-Mails verantwortlich ist. Die Arbeiten daran wurden von Wietse Venema in IBM Research Laboratories begonnen und werden derzeit unter den Bedingungen freier Software unter der IBM Public License veröffentlicht.

Tools

In der IT-Abteilung werden die Tools von ihren Benutzern ausgewählt. Wir konzentrieren uns auf Komfort und Qualität der Arbeit. Daher ist es nicht überraschend, dass solche Lösungen wie IntelliJ oder GIT gewählt werden.

IntelliJ IDEA – eine kommerzielle integrierte Programmierungsumgebung (IDE) für Java von JetBrains. Laut einer der größten Umfragen, die in der Welt der Java-Programmierer von ZeroTurnaround durchgeführt wurde, gilt IntelliJ IDEA als die beliebteste Umgebung vor Eclipse. Die Entwickler nennen IntelliJ IDEA als the most intelligent Java IDE, und man muss zugeben, dass etwas darin steckt. Die automatischen Hinweise, die diese Umgebung bietet, können wirklich positiv überraschen. IntelliJ konzentriert sich stark auf Produktivität und Arbeit ohne Maus.

Git – ein verteiltes Versionskontrollsystem. Es wurde von Linus Torvalds als Hilfsmittel zur Unterstützung der Entwicklung des Linux-Kernels entwickelt. Git ist eine freie Software und wurde unter der Lizenz von GNU GPL Version 2 veröffentlicht. Die Arbeit an Git begann, nachdem BitKeeper, der damals für die Linux-Entwicklung verwendet wurde, für Open Source-Projekte nicht mehr kostenlos war. Torvalds suchte nach einem verteilten Versionskontrollsystem, das anstelle von BitKeeper verwendet werden konnte.

Grafana ist eine Lösung zur Analyse und Visualisierung von Daten. Dank einer großen Datenbank mit Quellen, aus denen Grafana Daten herunterladen kann (z.B. Influxdb, Elasticsearch, AWS Cloudwatch oder Zabbix), kann es als zentrales Werkzeug zur Darstellung verschiedener Metriken verwendet werden.

Elasticsearch ist eine Volltextsuchmaschine. Elasticsearch selbst ist eine Datenbank, die Apache Lucene für die Suche verwendet. Diese Kombination ermöglicht uns den Zugriff auf ein leistungsfähiges Tool zum Suchen, Gruppieren und Filtern riesiger Datensätze fast in Echtzeit.

Natürlich sind dies nicht alle Werkzeuge und Technologien, die wir verwenden. Das SALESmanago Marketing Automation System basiert auf den neuesten technologischen Lösungen der Welt, um die höchste Effizienz und Zuverlässigkeit des Systems zu gewährleisten.