Bekanntlich speichern wir heutzutage mehr und mehr Daten, z.B. in Enterprise Content Management Systemen. User Generated Content und ein hoher Takt der Publikation führen zu wachsendem Datenbestand. Viele Benutzer erwarten beispielsweise auf Nachrichtenportalen eine möglichst lange Historie, um Artikel aus der Vergangenheit aufzufinden. Auf der anderen Seite erwarten Benutzer schnelle Antwortzeiten. Zwei Anforderungen, denen man mit hohem Aufwand und mit viel technischem Einsatz entgegen wirken kann, beispielsweise mit Loadbalancing in Verbindung mit CMS-Cluster-Installationen. Dennoch sind den meist Datenbank-basierten Content Management Systemen Grenzen hinsichtlich der Skalierbarkeit gesetzt.

In diesem Artikel soll aufzeigen werden, wie ein CMS in Verbindung mit einem Archiv auf Basis von Cloudera Search gleichermassen ein Zugewinn an Performance und Skalierbarkeit aufgrund schnell anwachsender Inhalte sicherstellen kann.  

Ausgangslage

Viele Content Management Systeme halten ihre Daten in hybrider Form:

  • in einer relationalen Datenbank
    Metadaten und Text

  • Such-Indizes
    Integrierte Suchmaschine über Inhalte der Datenbank, synchronisiert mit dem CMS hinsichtlich neuem, geändertem und gelöschtem Inhalt

  • und dem Filesystem.
    Mediale Inhalte, z.B. Video, Bilder und Ton

Wachsenden Datenbeständen einhergehend mit Performanceeinbussen begegnet man daher mit unterschiedlichen Lösungsansätzen. Während bei Datenbanken ein Clustering mit Master-Slave-Replikation ein probates Mittel ist, wird beim Filesystem häufig ein skallierbares und hochverfübares SAN bereitgestellt. Im Falle von Solr als Suchlösung kann auf Master-Slave Replikation bzw. SolrCloud zurückgegriffen werden. Oft werden alle Systeme in einem virtualisierten Umfeld betrieben.

Unter dem Strich ergibt sich oft folgendes Bild:

  • Kostspielige Hardware aufgrund der Anforderung der Virtualisierung

  • Systemarchitektur birgt Komplexität beim Deployment: Virtualisierung, SAN, DB Clustering, CMS Clustering, Loadbalancing

  • Inkaufnahme von hohen Lizenzkosten auf vielen Ebenen der Gesamtarchitektur, z.B. Virtualisierung und Datenbank

  • Sinkende Performance bei stetigen Datenwachstum führt zur Erhöhung der Komplexität bei der System- und Gesamtarchitektur

Stellt sich die Frage, ob man das nicht vereinfachen kann. Sicher ist, dass man sich im Kern nicht von der bestehenden Lösung entfernen möchte, daher muss der Lösungsansatz darauf eingehen, wie man die Systeme bei wachsenden Datenbeständen entlasten kann.

Lösungsansatz

Ausgehend von der Annahme, das sämtlicher Inhalt einem Verfallsdatum unterliegt, ergeben sich zwei Teilmengen: wichtiger vs. unwichtiger Inhalt, aktuell und abgelaufener Inhalt, relevanter oder nicht relevanter Inhalt. Sofern man also ein Verfallsdatum definieren kann, z.B. abhängig vom Inhaltstyp (News, Artikel), könnte man Inhalte aus dem CMS “entfernen” und “archivieren”. Angenommen, dies würde zu einer massiven Reduktion des Datenbestandes seitens des CMS führen, so könnte man unterstellen, dass die Performance steigen und der notwendige Ressourceneinsatz sinken müsste.

Die Cloudera Distribution bietet in der aktuellen Version CDH4 ein Search-Modul, was auf SolrCloud aufbaut. Basierend darauf kann ein Archiv aufgebaut werden, was alle Kriterien einer elektronischen Archivierung bis auf folgende Ausnahmen erfüllt:

  • Jedes Dokument darf nur von entsprechend berechtigten Benutzern eingesehen werden

  • Jede ändernde Aktion im elektronischen Archivsystem muss für Berechtigte nachvollziehbar protokolliert werden

Die Zugriffskontrolle über Berechtigungen spielen im Falle einer Archivierung von CMS Inhalten eine untergeordnete Rolle und können daher vernachlässigt werden, liesse sich aber grundsätzlich durch eine Authentifizierung realisieren. Die Nachvollziebarkeit von Veränderungen kann ebenfalls vernachlässigt werden, da hier alle Inhalte unveränderlich archiviert werden sollen. Sofern man diese Anforderung abdecken muss, kann dies über Metadaten im Index realisiert werden. So könnte man beispielsweise den letzten Autor und das Veränderungsdatum, sowie geänderte Werte speichern.

Damit ergibt sich folgende Gesamtarchitektur des Archivsystems, die sich im wesentlichen durch folgende Eigenschaften auszeichnet:

  • Lizenzkostenfrei

  • Kann auf Standard-Hardware betrieben werden

  • Skalierbar bis zu mehreren tausend Knoten und Petabyte

  • Hoher Wiederverwendungsgrad, z.B. für analytische Zwecke

  • Möglichkeit zur Speicherung von schemalosen Daten

Abbildung: Gesamtarchitektur – Archivsystem

Mit Sqoop und Flume, Bestandteile des Integration Layer, können die Daten aus der Datenbank bzw. dem Filesystem in den Storage Layer importiert werden. Dort angekommen können sämtliche Inhalte wie folgt verfügbar gemacht werden:

  • Near Real-time
    Alle Inhalte werden direkt beim Import indiziert und zusätzlich im Storage Layer abgelegt.

  • Batch-Modus
    Alle Inhalte werden zunächst im Storage Layer abgelegt und periodisch in den Index geladen.

Einmal indiziert können die Inhalte in der Hue Search App abgefragt werden, die Bestandteil der Cloudera Distribution ist und entsprechend den Anforderungen bezüglich Darstellung, Facetting, Sortierung uvm. angepasst werden kann. Darüber hinaus kann die Suche via REST API von einem Drittsystem angesprochen werden, beispielsweise dem Content Management System.

Cloudera Search

Cloudera Search ist neben Impala ein weiteres Produkt für Real-Time Queries im Hadoop Ökosystem. Sie bietet auch Benutzern ohne SQL- und Programmierkenntnisse den Zugang zu Informationen durch eine intuitive Volltextsuche mit Facetten, Sortierung und vielem mehr. Erfahren Sie mehr über Cloudera Search: Introducing Cloudera Search

Fazit

Durch die Aufnahme von Search in das Cloudera-Ökosystem ergeben sich ganz neue, bislang ungeahnte Anwendungsmöglichkeiten, z.B. ein skalierbares Archiv. Dank natloser Integration in den Cloudera Manager bekommt man quasi die “Lambda Architektur auf Knopfdruck”.

Haben Sie Interesse an einem Archivsystem auf Basis von Cloudera CDH4, dann können Sie mich gern ansprechen.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *