Data Driven Thinking

Daten gelten als vierter Produktionsfaktor – diese Erkenntnis hat sich mittlerweile in den meisten Führungsetagen durchgesetzt. Während das Buzzword Big Data gerade wieder in der Senke verschwindet, wird nun vor allem von der Data Driven Company gesprochen, oder – im Kontext von I4.0 – von der Smart Factory.
Entsprechend haben die meisten Konzerne in den Aufbau einer Big-Data-Infrastruktur investiert und auch die größeren Mittelständler beginnen allmählich damit, einen Anfang zu setzen. Für den Anfang bedarf es jedoch gar nicht erst eine neue IT-Infrastruktur oder gar eine eigene Data Science Abteilung, ein richtiger Start zum datengetriebenen Unternehmen beginnt mit dem richtigen Mindset – ein Bewusst sein für Datenpotenziale.

Data Driven Thinking

Auch wenn es spezielle Lösungsanbieter anders verkaufen, ist nicht etwa eine bestimmte Datenbank oder eine bestimmte Analysemethodik für die Bewerkstelligung der Digitalisierung notwendig, sondern die datengetriebene Denkweise. In den Datenbeständen der Unternehmen und jenen aus weiteren bisher unerschlossenen Datenquellen stecken große Potenziale, die erkannt werden wollen. Es ist jedoch nicht notwendig, gleich als ersten Schritt jegliche Potenziale in Daten erkennen zu müssen, denn es ist viel hilfreicher, für aktuelle Problemstellungen die richtigen Daten zu suchen, in denen die Antworten für die Lösungen stecken könnten.

Data Driven Thinking oder auch kurz Data Thinking, wie angeblich von einem der ersten Chief Data Officer als solches bezeichnet und auch von meinem Chief Data Scientist Kollegen Klaas Bollhoefer beworben, ist die korrekte Bezeichnung für das richtige Mindset, mit dem sowohl aktuelle Probleme als auch deren Lösungen aus Daten heraus besser identifiziert werden können. Hierfür braucht man auch kein Data Scientist zu sein, es reicht bereits ein in den Grundzügen ausgeprägtes Bewusstsein für die Möglichkeiten der Datenauswertung – Ein Skill, der zeitnah für alle Führungskräfte zum Must-Have werden wird!

Data Scientists als Design Thinker

Was gerade in Europa vordergründig kritisiert wird: Es treffen traditionelle Denkmuster auf ganz neue Produkte und Dienste, mit immer schnelleren Entwicklungsprozessen und tendenziell kürzeren Lebenszyklen – eine zum Scheitern verurteilte Kombination und sicherlich auch einer der Gründe, warum us-amerikanische und auch chinesische Internetunternehmen hier die Nase vorn haben.

Ein zeitgemäßer Ansatz, der im Produktmanagement bereits etabliert ist und genau dort das letzte Quäntchen Innovationskraft freisetzt, ist Design Thinking. Dabei handelt es sich um einen iterativen Ideenfindungs und -validierungsprozess, bei dem die Wünsche und Bedürfnisse der Anwender durchgängig im Fokus stehen, im Hintergrund jedoch steht ein interdisziplinäres Team, dass ein Geschäftsmodell oder einen Geschäftsprozess unter Berücksichtigung des Kundenfeedbacks designed. Nutzer und Entwickler müssen dabei stets im engen Austausch stehen. Erste Ideen und Vorschläge werden bereits möglichst früh vorgestellt, damit bereits lange vor der Fertigstellung das Feedback der Anwender in die weitere Realisierung einfließen kann. Somit orientiert sich die gesamte Entwicklungsphase am Markt – Zu spät erkannte Fehlentwicklungen und Flops lassen sich weitgehend vermeiden. Design Thinker stellen dem Nutzer gezielte Fragen und analysieren dessen Abläufe (und nichts anderes tut ein Data Scientist, er beobachtet seine Welt jedoch viel umfassender, nämlich über jegliche zur Verfügung stehende Daten).

Der Design Thinking Prozess führt crossfunktionale Arbeitsgruppen durch  sechs  Phasen:

In der ersten Phase, dem Verstehen, definiert die Arbeitsgruppe den Problemraum. In der darauffolgenden Phase des Beobachtens ist es entscheidend, die Aktivitäten im Kontext, also vor Ort, durchzuführen und Anwender in ihrem jeweiligen Umfeld zu befragen. In der dritten Phase werden die gewonnenen Erkenntnisse zusammengetragen. In der nachfolgenden Phase der Ideenfindung entwickelt das Team zunächst eine  Vielzahl von Lösungsoptionen. Abschließend werden beim Prototyping, in der fünften Phase, konkrete Lösungen entwickelt, die in der letzten Phase an den Zielgruppen auf ihren Erfolg getestet werden.

Beim Design Thinking mag es zwar eine grundsätzliche Vorgabe für den Ablauf der Ideenfindung und -erprobung geben – der eigentliche Mehrwert steckt jedoch in der dafür nötigen Denkweise und der Einstellung gegenüber dem Experimentieren sowie die Arbeit in einem interdisziplinären Team.

Data Driven Business Cycle

Data Driven Thinking überträgt diesen Ansatz auf die Mehrwert-Generierung unter Einsatz von Datenanalytik und leistet einen Transfer dieser systematischen Herangehensweise an komplexe Problemstellungen im Hinblick auf die Realisierung dafür angesetzter Big Data Projekte. Design Thinking unter Nutzung von Big Data ist überaus mächtig, wenn es darum geht, kundenorientierte Produkte und Prozesse zu entwickeln. Im Data Driven Business Cycle werden für immer neue Ideen und Fragestellungen:

  1. Daten generiert und gesammelt
  2. Daten gesichert, verwaltet und aufbereitet
  3. Daten analysiert
  4. daraus Erkenntnisse gezogen

Aus diesen sich iterativ kreisenden Prozessen der Datennutzung entsteht ein Data Pool (oftmals auch als Data Lake bezeichnet), der immer wieder zum für die Beantwortung von Fragen genutzt werden kann.

Prinzipien des maschinellen Lernen verstehen lernen

Data Driven Thinking entsteht mit dem Bewusstsein für die Potenziale, die in Daten liegen. Noch wirkungsvoller wird diese Denkweise, wenn auch ein Bewusstsein für die Möglichkeiten der Datenauswertung vorhanden ist.

„Kinder, die heute nicht programmieren können, sind die Analphabeten der Zukunft.“ schimpfte Vorzeige-Unternehmer Frank Thelen kürzlich in einer Politik-Talkrunde und bekräftigte damit meine noch davor verkündete Meinung “Karriere ohne Programmier-Erfahrung wird nahezu undenkbar”, denn “Systeme der künstlichen Intelligenz werden in der Zukunft unseren Einkauf und die Warenlieferung übernehmen, unsere Autos fahren, unsere Buchhaltung erledigen, unser Geld optimal auf den Finanzmärkten anlegen und unsere Krankheiten frühzeitig diagnostizieren und die bestmögliche medizinische Behandlung vorgeben.”

Jetzt muss niemand zum Experten für die Entwicklung künstlicher Systeme werden, um hier schritthalten zu können. Ein grundsätzliches Verständnis von den unterschiedlichen Prinzipien des maschinellen Lernen kann jedoch dabei helfen, solche Systeme und die dazugehörigen Chancen und Risiken besser einschätzen zu können, denn diese werden uns in Alltag und Beruf vermehrt begegnen, dabei einen entscheidenden Einfluss auf den Erfolg des Data Driven Business ausüben.

 

Interview – OTTO auf dem Weg zum intelligenten Echtzeitunternehmen

Interview mit Dr. Michael Müller-Wünsch über die Bedeutung von Data Science für den Online-Handel

cio-mueller-wuensch-interviewDr. Michael Müller-Wünsch ist seit August 2015 CIO der OTTO-Einzelgesellschaft in Hamburg. Herr Müller-Wünsch studierte die Diplom-Studiengänge Informatik sowie BWL mit Schwerpunkt Controlling an der TU Berlin. In seinen Rollen als IT-Leiter und CIO wurde er mehrfach für seine Leistungen ausgezeichnet und gilt heute als eine der erfahrensten Führungskräfte mit explizitem Know How in der Nutzung von Big Data für den eCommerce.

Data Science Blog: Herr Dr. Müller-Wünsch, welcher Weg hat Sie bis in den Bereichsvorstand von OTTO geführt?

Mein Weg wurde sicherlich bestimmt durch meine große Begeisterung für Technologie und Innovationen. Dazu habe ich als Sohn eines Textileinzelhändlers früh einen Sinn für Kundenorientierung entwickelt. Bei OTTO, dem größten deutschen Onlinehändler für Fashion und Lifestyle, kann ich nun beides optimal zusammenbringen und die digitale Transformation des Unternehmens weiter vorantreiben.

Data Science Blog: Viele reden heute von einer datengetriebenen Unternehmensausrichtung. Was ist Ihre Version von einer Data-Driven Company?

Mein Ziel ist es, OTTO zum intelligenten Echzeitunternehmen zu machen. Damit meine ich eine Organisation, die sich durch selbst lernende Algorithmen ständig weiterentwickelt und verbessert und Kundenerwartungen in jedem Augenblick sofort erfüllen kann. Ohne zeitraubende Batchverarbeitungsprozesse und ohne Medienbrüche.

Data Science Blog: Welche Rolle sehen Sie für Big Data Analytics für den Einzelhandel?

Predictive Analytics helfen uns beispielsweise maßgeblich dabei, Artikelabsatzprognosen zu erstellen und zu antizipieren, wie oft ein bestimmter Artikel morgen nachgefragt werden wird. Das erhöht die Lieferbereitschaft und vermeidet Lagerüberhänge – ist also gut für beide Seiten, für unsere Kunden und für unser Unternehmen. Darüber hinaus geht es heute immer stärker darum, das Onlinemarketing datenbasiert intelligent auszusteuern und den Kunden ein maximal relevantes Angebot auf otto.de zu präsentieren.

Data Science Blog: Für den deutschsprachigen Raum gilt Otto als Händler „am weitesten voraus“ in Sachen Big Data. Sehen Sie Ihren größten Wettbewerb eher im Silicon Valley?

In Zeiten des E-Commerce müssen wir den Wettbewerb in alle Richtungen beobachten. Wir müssen permanent damit rechnen, dass sich das Marktumfeld und das Kundenverhalten ändern. Das ist immer schwerer vorherzusehen. Mehr denn je kommt es deshalb darauf an, sich flexibel aufzustellen, um schnell reagieren zu können.

Data Science Blog: In Sachen Datenschutz gibt es auf politischer Ebene sowohl Bestrebungen zur Verschärfung als auch zur Lockerung der Gesetzgebung. Als Einzelhändler arbeiten Sie sehr viel mit personenbezogenen Datenbeständen, wie sehr werden Sie bei Ihrer Arbeit eigentlich durch gültige Datenschutzgesetze eingeschränkt?

Das Vertrauen der Kunden hat für uns allerhöchste Priorität, deshalb ist es für uns selbstverständlich, sehr sorgsam mit Daten umzugehen. Wir setzen dabei konsequent auf Transparenz und Selbstbestimmung. Das heißt, dass wir unseren Kunden keine Mehrwerte vorenthalten möchten, die durch moderne Technologien möglich werden und das digitale Shopping-Erlebnis bereichern können. Wir erklären im Shop aber ausführlich, was wir tun, und bieten auch die Möglichkeit, bestimmte Features zu deaktivieren.

Data Science Blog: Wofür nutzt Otto Big Data und Data Science eigentlich genau?

Wir verfolgen bei OTTO einen so genannten 360°-Ansatz: Unser Ziel ist es, die Kunden auf ihrer gesamten Customer Journey zu begleiten und bestenfalls in Echtzeit mit ihnen zu interagieren –  von der ersten Informationsrecherche bis hin zur Lieferung; und das über alle Kanäle und Touchpoints hinweg. Anhand von anonymisierten Daten aus jedem dieser Kundenkontaktpunkte können wir dann Leistungen entwickeln und gute Geschäftsentscheidungen treffen, um damit Umsatz- und Ergebnispotentiale zu erschließen. Ich möchte hier aber gar nicht vorgreifen: Mein Kollege Thomas Schlüter, IT-Bereichsleiter Business Intelligence bei OTTO, wird darüber auf dem Data Leader Day am 17. November in Berlin ausführlich sprechen.

Data Science Blog: Big Data, Data Science, Business Intelligence und viele Begriffe mehr – Grenzen Sie hier ab oder wie lautet Ihr internes Wording?

Big Data verstehe ich als den Rohstoff, den wir uns mithilfe von Business Intelligence als Fachdisziplin erschließen und nutzbar machen. Innerhalb der BI arbeiten wir dann sowohl mit Analytics Methoden als auch mit Data Science Modellen für komplexere und oftmals prognostische Fragestellungen.

Data Science Blog: Aktuell scheint der Trend hin zum Data Lab zu gehen. Finden die Analysen nur in solchen Labs oder eher in den konkreten Fachbereichen statt?

Bei OTTO ist die BI gleich in zwei Vorstandsbereichen verankert: Im Vertrieb bei meinem Kollegen Marc Opelt und bei mir in der Technologie. Das sagt schon einiges über die stetig steigende Bedeutung aus. Wir sind davon überzeugt, dass der Schlüssel zum Erfolg in der partnerschaftlichen Zusammenarbeit zwischen Fachbereich und IT liegt und sich das Thema auch immer weiter in die Fachbereiche hinein entwickeln wird. Aktuell arbeiten wir beispielsweise an einer zukunftsweisenden neuen BI-Plattform, die wir BRAIN nennen – das funktioniert einfach nur bereichsübergreifend im Team.

Data Science Blog: Ihre Investitionen in diese neuen Technologien und Methoden sind recht hoch. Wie ist die Erwartung für den Break-Event-Point?

Als wir im März dieses Jahres die Wachstumszahlen der OTTO-Einzelgesellschaft vorgestellt haben, hat Alexander Birken es im Ausblick auf den Punkt gebracht: Wir haben uns in den vergangenen Jahren kontinuierlich eine sehr robuste Wirtschaftskraft erarbeitet. Insofern können wir es uns im wahrsten Sinne des Wortes leisten, die Investitionsgeschwindigkeit weiter spürbar zu erhöhen und damit die Zukunft von OTTO zu gestalten. Vor allem die technologischen Wachstumsbereiche werden weiter konsequent vorangetrieben.

Data Science Blog: Ihr Engagement für Big Data zeigt sich auch in den Jobportalen, dabei unterscheiden Sie die Jobprofile auch z. B. nach Data Scientist und Date Engineer. Welche Art von Mensch suchen Sie für Ihre zukünftigen Umsetzungen? Eher den introvertierten Nerd oder den kommunikationsstarken Beratertyp?

Ich glaube, wir brauchen vor allem Menschen, die Spaß haben an Veränderung und die im Sinne des Unternehmenserfolgs ganzheitlich denken, bis zum Konsumenten da draußen.


Anmerkung der Redaktion: Welche Potenziale das Unternehmen OTTO aus Daten nutzbar macht und mit welchen Methoden und Technologien die BI bei OTTO arbeitet, erfahren Sie am 17. November beim Data Leader Day in Berlin.

Neuronale Netzwerke zur Spam-Erkennung

Die Funktionsweise der in immer mehr Anwendungen genutzten neuronalen Netzwerke stieß bei weniger technik-affinen Menschen bislang nur auf wenig Interesse. Geschuldet wird das sicher vor allem der eher trockenen Theorie, die hinter diesen Konstrukten steht und die sich für die meisten nicht auf Anhieb erschließt. Ein populäres Beispiel für die Fähigkeiten, die ein solches neuronales Netzwerk bereits heute hat, lieferte in jüngster Zeit Googles “Inception”, welches ohne den Anspruch auf einen praktischen Nutzen eigenständig eine spektakuläre Bilderwelt kreierte, die auch Menschen ohne großes Interesse an den dahinter steckenden Technologien ins Staunen versetzte. Ansonsten bieten sich die neuronalen Netze vor allem überall dort an, wo wenig systematisches Wissen zur Verfügung steht, wie etwa bei der Bilderkennung und der Text- bzw. Sprachanalyse.

Weniger effektheischend, als die Ergebnisse von “Inception”, dafür jedoch überaus hilfreich für den vernetzten Alltag, sind neuronale Netzwerke, die zum Aufspüren und zur Kategorisierung von Spam-Seiten entwickelt werden. In diesem Anwendungsbereich können diese ein wertvolles Werkzeug sein.

Wie bei allen selbstlernenden Netzwerken muss dafür zunächst ein Grundgerüst aufgebaut werden, welches später von Hand mit Informationen gefüttert wird, bis es schließlich in der Lage ist, sich selbstständig weiter zu entwickeln, hinzuzulernen und auf diese Weise immer genauere Ergebnisse liefert.

Die Auswahl der Kriterien

Unerwünschte Webseiten mit störenden und oft illegalen Inhalten findet man im Internet zu Hauf und meist locken sie mit dubiosen Angeboten für vermeintliche Wundermittel oder gaukeln leichtgläubigen Nutzern vor, man könne ohne großes Zutun viel Geld verdienen – meist ohne ein tatsächliches Produkt oder eine Dienstleistung dahinter. Ein entsprechend programmiertes neuronales Netzwerk spürt diese Seiten anhand von bestimmten Faktoren automatisch auf. Als Trainingsdaten werden dafür zunächst von Hand Kriterien wie die Registrierungs-IP, der Nutzername und die verwendete Sprachversion eingegeben. Da das Netzwerk nur mit den Zahlen 0 und 1 arbeiten kann, müssen diese Datensätze zuvor manuell aufbereitet werden. Indem alle gewünschten Registrierungs-IPs erst auf den jeweiligen Internetdienstanbieter abgebildet werden und der Grad ihrer jeweiligen Spammigkeit von Hand bestimmt wird, lässt sich der jeweilige Durchschnitt der “Spammigkeit” eines Internetdienstanbieters berechnen. Teilt man die Anzahl der Spammer durch die Gesamtnutzerzahl eines einzelnen Anbieters, erhält man bereits ein Ergebnis, das sich zur Eingabe in das neuronale Netzwerk eignet. Ähnlich kann z. B. bei der Kombination aus Geolocation und Sprachversion verfahren werden. Mit einer Vielzahl weiterer Faktoren kann die Effizienz des neuronalen Netzwerks verbessert werden. So lassen sich etwa große Unterschiede bei dem Herkunftsland feststellen, in dem die Spam-Seiten angesiedelt sind. Ein besonders großes Erkennungspotential bieten bestimmte Keywords und Keyword-Kombinationen, die mitunter eindeutige Rückschlüsse auf ein Spam-Angebot ziehen lassen. Befindet sich z. B. die Wortkombination “Geld verdienen” besonders häufig auf einer Seite, ist dies ein recht deutliches Kriterium für die Klassifizierung als Spam. Doch auch weniger offensichtliche Faktoren helfen dem neuronalen Netzwerk dabei, hellhörig zu werden: Ein ungewöhnliches Verhältnis zwischen Vokalen und Konsonanten oder auch Seitennamen, die vermehrt Zahlen und unübliche Zeichen beinhalten, können die Spam-Wahrscheinlichkeit steigern. Kommt die verwendete IP-Adresse aus einem anonymisierten Netzwerk oder VPN, schürt dies ebenfalls den Verdacht auf unseriöse Inhalte.

Erstellung einer Korrelationsmatrix

Da jedes der einbezogenen Kriterien zur Bestimmung der Spammigkeit einer Seite eine unterschiedlich hohe Relevanz hat, müssen die einzelnen Faktoren verschieden stark gewichtet werden. Damit das neuronale Netzwerk genau das tun kann, wird deshalb eine Korrelationsmatrix erstellt. In dieser Matrix werden alle gesammelten Kriterien in Verbindung zueinander gesetzt, um es dem Netzwerk zu ermöglichen, nicht jeden Punkt nur einzeln zu werten. So ist ein Keyword wie z. B. “100 mg” an sich vergleichsweise unverdächtig. Stammt die Seite, auf der das Wort vorkommt jedoch aus einer Gegend, in der erfahrungsgemäß viele unseriöse Arzneimittelanbieter angesiedelt sind, kann dies die Spam-Wahrscheinlichkeit erhöhen.

Libraries für die Implementierung

Ein wertvolles Tool, das sich für die Implementierung des jeweiligen neuronalen Netzwerks eignet, ist die Open Source Machine Learning Library “Tensor Flow” von Google. Diese Programmierschnittstelle der zweiten Generation verfügt über einige handfeste Vorteile gegenüber anderen Libraries und ermöglicht die Parallelisierung der Arbeit. Berechnet wird sie auf der schnellen GPU des Rechners, was in direkten Vergleichen die Rechenzeit um ein Vielfaches senken konnte. Bewährt hat sich “Tensor Flow” bereits in zahlreichen kommerziellen Diensten von Google, darunter Spracherkennungssoftware, Google Photos, und Gmail.

Für eine bessere Abstraktion des Netzwerks, können zusätzlich zu der hinteren mehrere weitere Schichten angelegt werden. Die hintere Schicht bleibt dabei oft die einzige, die von außerhalb sichtbar ist.

Die Optimierung des neuronalen Netzwerks

Es liegt in der Natur der Sache, dass ein eigenständig lernfähiges Netzwerk nicht von Anfang an durch höchste Zuverlässigkeit hinsichtlich seiner Trefferquote besticht. Zum Lernen gehört Erfahrung und die muss das Netz erst noch sammeln. Zwar gelingt es auch einem noch frisch programmierten Netzwerk bereits die Erfüllung seiner Aufgabe oft recht gut, die Fehlerquote kann jedoch im Laufe der Zeit immer weiter verbessert werden. Gerade am Anfang werden noch viele Spam-Seiten nicht erkannt und einige vermeintliche Spammer stellen sich bei der Überprüfung durch den Menschen als unbedenklich heraus. Darum ist es für die Steigerung der Effizienz praktisch unerlässlich, immer wieder von Hand einzugreifen, falsche Ergebnisse zu korrigieren und dem Netzwerk auf diese Weise zu helfen.

Eine Hadoop Architektur mit Enterprise Sicherheitsniveau

Dies ist Teil 3 von 3 der Artikelserie zum Thema Eine Hadoop-Architektur mit Enterprise Sicherheitsniveau.

Die ideale Lösung

Man denkt, dass die Integration einer sehr alten Technologie, wie ActiveDirectory oder LDAP zusammen mit einem etablierten und ausgereiften Framework wie Hadoop reibungslos funktionieren würde. Leider sind solche Annahmen in der IT Welt zu gut um wahr zu sein. Zum Glück gibt es bereits erste Erfahrungsberichte  von  Unternehmen, die ihre Hadoop Infrastruktur an ein zentrales IMS gekoppelt haben.

Da die meisten Unternehmen  Active Directory als IMS benutzen, werden die im Folgenden  dargestellte Bilder und Architekturen dies ebenfalls tun.  Die vorgeschlagene Architektur ist jedoch derartig flexibel und technologieunabhängig, dass man das Active Directory auf den Bildern problemlos gegen LDAP austauschen könnte. Vielmehr ist die Integration eines Hadoop Clusters mit LDAP einfacher, da beide Technologien nativ zu Linux sind.

Schritt Eins – Integration von Hadoop mit Active Directory

Der erste Schritt, um Hadoop in dasActive Directory zu integrieren, ist ein sogenannter One-Way Trust von der Linux Welt hin zur Windows Welt . Dabei ist das Vertrauen des Authentisierungsmechanismuses von Hadoop zum Active Directory gemeint. Alle Identity Management Systeme bieten diese Funktionalität an, um sich gegenseitig vertrauen zu können und User aus anderen Domänen (Realms) zu akzeptieren. Das ermöglicht z.B. globalen Firmen mit vielen Standorten und unterschiedlichen IT Infrastrukturen und Identity Management Systemen diese zu verwalten und miteinander kommunizieren zu lassen.

Das Key Distribution Center (KDC) von Kerberos ist das Herz des Kerberos Systems im Hadoop. Hier  werden die User und ihre Passwörter oder Keytabs geschützt und verwaltet. Dabei brauchen wir lediglich den One Way Trust von KDC zu Active Directory. Allerdings gibt es eine vielversprechendere Technologie, die FreeIPA. Diese hat laut Wikipedia das Ziel, ein einfach zu verwaltendes Identity,-Policy-and-Audit-System (IPA) zur Verfügung zu stellen. Seit der Version 3.0.0 kann sich FreeIPA in das Active Directory integrieren. Die aussagekräftigen Vorteile von FreeIPA sind folgende:

  1. Reibungslose Integration mit Active Directory
  2. Es wird zusammen mit der Technologie SSSD geliefert, die das temporäre Speichern von Rechten und Passwörtern erlaubt. Das erlaubt auch offline den Zugriff auf  Fähigkeiten und Unabhängigkeit vom zentralen IPA, dem unterliegenden System.
  3. Integrierte Kerberos und Single Sign On (SSO) Funktionalitäten.

Wir lassen dann FreeIPA die Verwaltung von Kerberos und die primäre Authentisierung unseres Clusters übernehmen. Sowohl das Active Directory, als auch FreeIPA erlauben eine kinderleichte Umsetzung des One Way Trusts mithilfe von Web Tools. Im Prinzip muss man beim One Way Trust lediglich die öffentlichen Zertifikate jedes Tools mit denen der anderen bekannt machen.

Schritt Zwei – Synchronisation der Rechte & Rollen von Active Directory

Jetzt sind alle User, die sich im Active Directory befinden, unserem Hadoop Cluster bekannt. Ein User kann sich mithilfe des kinit Kommandos und nach Eingabe seines Usernames und Passwortes einloggen. Aber man braucht auch die im Active Directory definierten Rollen und Gruppen, um eine Autorisierung mithilfe von Ranger oder Sentry zu ermöglichen. Ohne die Provisionierung der Rollen haben wir bei der Autorisierung ein ähnliches Problem, wie es bei der Authentisierung aufgetreten ist.  Man müsste die Rollen selber verwalten, was nicht ideal ist.

Zum Glück gibt es verschiedene Ansätze um eine regelforme Synchronisierung der Gruppen von Active Directory in Ranger oder Sentry zu implementieren. Ranger kommt mit einem LDAP Plugin namens uxugsync, das sowohl mit LDAP als auch mit dem Active Directory kommunizieren kann. Leider hat die aktuelle Version dieses Plugins einige Nachteile:

  1. Leistungsprobleme, weil es defaultsmäßig versucht, den ganzen Hierarchiebaum von Active Directory zu synchronisieren. Das kann zu einem großen Problem für große Firmen werden, die mehrere tausend User haben. Außerdem müssen nicht alle User Zugriff auf Hadoop haben.
  2. Man kann bestimmte User syncen lassen, indem man ihren Gruppename im Gruppenfeld vom Plugin einträgt. Nachteil dabei ist, dass diese Abfrage nicht rekursiv funktioniert und alle Gruppe die im Ranger sein sollen einzeln abgefragt werden müssen, Das wiederum skaliert nicht sonderlich gut.
  3. Massive und regelmäßige Abfragen des Plugins können sogar zu einem DDoS Angriff auf den zentralen Active Directory führen.

Eine bessere Lösung wäre es, wenn wir die schönen Features des SSSD Deamons (der wie oben beschrieben zusammen mit FreeIPA kommt) ausnutzen könnten. Mithilfe von SSSD werden alle User und ihre entsprechenden Gruppen dem unterliegenden Linux Betriebssystem bekannt gemacht. Das bedeutet, dass man ein einfaches Script schreiben könnte, das die User und ihre Gruppen vom System direkt abfragt und zu Ranger oder Sentry über ihre entsprechende REST APIs überträgt. Dabei schont man sowohl das Active Directory vor regelmäßigen und aufwändigen Abfragen und schafft sogar ein schnelleres Mapping der Rollen zwischen Hadoop und Betriebssystem, auch wenn Active Directory nicht erreichbar ist. Es gibt derzeit Pläne, ein solches Plugin in den nächsten Versionen von Ranger mitzuliefern.

Schritt Drei – Anlegen und Verwaltung von technischen Usern

Unser System hat jedoch neben personalisierten Usern, die echten Personen in einem Unternehmen entsprechen, auch  technische User. Die technischen Users (Nicht Personalisierte Accounts – NPA), sind die Linux User mit denen die Hadoop Dienste gestartet werden. Dabei hat HDFS, Ambari usw. jeweils seinen eigenen User mit demselben Namen. Rein theoretisch könnten diese User auch im Active Directory einen Platz finden.

Meiner Meinung nach gehören diese User aber nicht dorthin. Erstens, weil sie keine echten User sind und zweitens, weil die Verwaltung solcher User nach Upgrades oder Neuinstallation des Clusters schwierig sein kann. Außerdem müssen solche User nicht den gleichen Sicherheitspolicies unterliegen, wie die normalen User. Am besten sollten sie kein Passwort besetzen, sondern lediglich ein Kerberos Keytab, das sich nach jedem Upgrade oder Neuinstallierung des Clusters neu generiert und in FreeIPA angelegt ist. Deswegen neige ich eher dazu, die NPAs in IPA anzulegen und zu verwalten.

High Level Architektur

Das folgende Bild fasst die Architektur zusammen. Hadoop Dienste, die üblicherweise in einer explorativen Umgebung benutzt werden, wie Hive und HBase, werden mit dargestellt. Es ist wichtig zu beachten, dass jegliche Technologie, die ein Ausführungsengine für YARN anbietet, wie Spark oder Storm, von dieser Architektur ebenfalls profitiert. Da solche Technologien nicht direkt mit den unterliegenden Daten interagieren, sondern diese immer über YARN und die entsprechenden Datanodes erhalten, benötigen sie auch keine besondere Darstellung oder Behandlung. Der Datenzugriff aus diesen 3rd Party Technologien respektiert die im Ranger definierten ACLs und Rollen des jeweiligen Users, der sie angestoßen hat.

hadoop-integration-active-directory-ipa-domain

Architektur in einer Mehrclusterumgebung

Wir haben schon das Argument untermauert, warum  unsere technischen User direkt im IPA liegen sollten. Das kann jedoch insofern Probleme verursachen, wenn man mit mehreren Clustern arbeitet, die alle die gleichen Namen für ihre technischen User haben. Man merkt sofort, dass es sich hier um eine Namenskollision handelt. Es gibt zwei Lösungsansätze hierfür:

  1. Man fügt den Namen Präfixen, die als kurze Beschreibungen der jeweiligen Umgebung dienen, wie z.B. ada, proj1, proj2 hinzu. Dadurch haben die User unterschiedliche Namen, wie proj1_hdfs für die proj1 Umgebung und ada_hdfs für die ada Umgebung. Man kann diese Lösung auch bei Kerberos KDCs benutzen, die in jeder Umgebung dediziert sind und die technischen User der jeweiligen Umgebung beibehalten.
  2. Man benutzt einen separaten Realm für jede Umgebung und damit auch eine separate IPA Instanz. Hier gibt es wiederum zwei verschiedene Ansätze. Ich muss jedoch zugeben, dass ich die Zweite nie ausprobiert habe und daher für ihre Durchführbarkeit nicht garantieren kann:
    1. Man bindet jede Umgebung einzeln über ihre FreeIPA per One Way Trust an das zentrale Active Directory. Das hat natürlich den Nachteil einer uneinheitlichen User Management Infrastruktur für alle Umgebungen, da Jede ihre eigene IPA Infrastruktur verwaltet und wartet.
    2. Man baut einen Hierarchiebaum von unterschiedlichen IPA Instanzen, so wie man es bei Forests von Active Directory Instanzen macht.

Das folgende Bild stellt den letzten Ansatz dar. Im Prinzip haben wir hier einen hierarchischen IPA Cluster mit mehreren One Way Trusts von den lokalen IPA Instanzen zu der zentralen IPA.

hadoop-local-identity-management-domain-ipa-netzwerk

Zusammenfassung

Wie Sie vielleicht von der gesamten Diskussion her abgeleitet haben, ist die Umsetzung einer unternehmerisch-konformen und personenbasierten Sicherheitsarchitektur innerhalb von Hadoop  keine einfache Sache. Man muss mit unterschiedlichen Architekturen und Ansätzen spielen, bevor man einen relativ vernünftigen oder sogar idealen Zustand erreicht hat. Die Berücksichtigung der jeweiligen IT Architektur spielt dabei eine sehr große Rolle. Ich hoffe, ich konnte die wichtigsten Merkmalen einer solchen Architektur und die Punkte, die ein Architekt besonders beachten muss, klar darstellen.

Als Zusammenfassung habe ich Ihnen am Ende eine Art Shoppingliste aller Komponenten zusammengestellt, die wichtig für den personalisierten Zugriff im Hadoop sind:

  1. Kerberos – Authentisierung
  2. FreeIPA – Authentisierung, Integration mit Active Directory
  3. Active Directory oder LDAP
  4. Ranger oder Sentry
    1. Plugin für Rollen/Gruppen Mapping zwischen AD und dem Betriebssystem
  5. Optional SSSD für schnellere Abfrage der Gruppen und Rollen des Betriebssystems

Zurück zu Teil 2 von 3 – Sicherheitstechnologie in Hadoop