Container-basierte Infrastruktur für OpenText InfoArchive
Nov 7, 2019 | by Antje Dwehus | 0 Comments

opentext infoarchive

Was OpenText auf der Enterprise World 2019 in Toronto für die InfoArchive Roadmap angekündigt hat, hat fme längst für einen Kunden realisiert: Das Aufsetzen einer container-basierten Infrastruktur für den Betrieb von OpenText InfoArchive.

Die Vorteile einer Docker-Container-basierten Infrastruktur gegenüber den bislang meist verwendeten Virtuellen Maschinen sind den IT Verantwortlichen mittlerweile bewusst.
(> Docker – Der „Gamechanger“)
Verständlich also, wenn sie die Gelegenheit, diese auch zu nutzen bei der Einführung von neuen Systemen berücksichtigen wollen. Aus diesem Grund überzeugte das Konzept der fme, InfoArchive als containerisierte on-premises Umgebung einzurichten, den Kunden als dieser eine neue unternehmensweiten Archivierungsplattform konzipierte.

Auch wenn OpenText bislang keine fertigen Container für InfoArchive bereitstellt, eignet sich die Plattform aufgrund ihrer modularen Architektur sehr gut für den Betrieb in Containern.

Bereitstellung der Docker Images
Grundsätzlich lässt sich InfoArchive in drei Komponenten aufteilen:

  • IA Sever – Die Logik
  • IA WebApp – Web Applikation die als User Interface dient
  • xDB Nodes – Datenbanken, welche die strukturierten Daten, die Aufbewahrungsfristen und verschieden Systemdaten enthalten

Für diese drei Komponenten wird jeweils ein Docker Image angelegt. In unserem Fall entschieden wir uns für ein CentOS basiertes Image.

GIT Repository

Abbildung 1 Benötigte Docker Images im GIT Repository

Die Images werden anhand von Dockerfiles erstellt. Neben CentOS als Betriebssystem, installieren wir in unserem Basis Image alle weiteren Software-Komponenten, die für OpenText InfoArchive notwendig sind, wie z.B. OracleJDK und haveged.

Folgende Schritte sind für das IA Server Image notwendig:

  1. Unser Basis Image laden
  2. InfoArchive Install Paket in den Container kopieren und entpacken
  3. Projektspezifische Konfigurationsdateien für IA Server laden
  4. JAVA_HOME setzen

 

FROM fmeIABasisImage:latest
COPY infoarchive.tar.gz /opt
RUN cd /opt && tar -xzf /opt/infoarchive.tar.gz && rm /opt/infoarchive.tar.gz
COPY Config/* /opt/infoarchive/config/iaserver
ENV JAVA_HOME /usr/java/jdk1.8.0_202-amd64/jre

Codebeispiel: Dockerfile für das IA Server Image

Im Folgenden sind der Vollständigkeit halber auch die Dockerfiles für das IA WebApp Image und das xDB Image gelistet. Diese werden nicht weiter im Detail erklärt. Beim Dockerfile für das IA WebApp Image ist vielleicht noch die Installation des LanguagePacks in Zeile 5 zu erwähnen, da später auch eine deutsche Version der Benutzeroberfläche zur Verfügung steht soll.

FROM fmeIABasisImage:latest
COPY infoarchive.tar.gz /opt
RUN cd /opt && tar -xzf /opt/infoarchive.tar.gz && rm /opt/infoarchive.tar.gz
COPY languagepack.tar.gz /opt/infoarchive
RUN cd /opt/infoarchive && tar -xzf /opt/infoarchive/languagepack.tar.gz && rm /opt/infoarchive/languagepack.tar.gz
COPY Config/* /opt/infoarchive/config/iawebapp/
ENV JAVA_HOME /usr/java/jdk1.8.0_202-amd64/jre
RUN cd /opt/infoarchive/languagepack && ../bin/ant

Codebeispiel: Dockerfile für das IA WebApp Image

FROM fmeIABasisImage:latest
ENV license=… \
    XHIVE_DATANODE=/data/xdb/XhiveDatabase.bootstrap \
    XHIVE_SERVER_ADDRESS='*' \
COPY infoarchive.tar.gz /opt
RUN cd /opt && tar -xzf /opt/infoarchive.tar.gz && rm /opt/infoarchive.tar.gz && cd infoarchive && tar -xzf first-time-setup/xDB_11_1_11_IA.tar.gz
COPY Config/* /opt/infoarchive/xDB/

Codebeispiel: Dockerfile für das xDB Image

Erstellung der Docker Container und Architektur der IA Umgebung
Docker Container sind die konkreten laufenden Instanzen eines Docker Images. Über Umgebungsvariablen werden beim Starten Parameter, wie z.B. zu verwendende Portnummern übergeben. So haben wir in unserem initialen Setup jeweils zwei IA Server und zwei IA Web App Server, sowie vier xDB Nodes (jeweils einen Node für System Data, Structured Data, Retention Data und Search Result) erstellt.

Persistente Daten können auf allen von InfoArchive zugelassen Speichern gehalten werden, hierzu zählen NAS/SAN, Isilon, ECS, AWS S3, Glacier, Archive Center oder auch weitere Custom Storage Systems.

Architektur-Übersicht

Abbildung2: Vereinfachte Übersicht Architektur

Gestartet haben wir die Container während der Entwickungsphase mit dem Docker run Befehl. Da sie miteinander kommunizieren sollen, werden sie mit Option –link verbunden. Im Falle des IA Servers wird der Dienst im Container über ein Shellskript gestartet.

docker run -d --link xdb --link xdb-retention --link xdb-search --link xdb-structured --name ia-server -v InfoArchive:/etc/IA -p 8383:8765 ia-server:16.5 /bin/sh -c "/opt/infoarchive/config/iaserver/run.sh"

Dockerrunbefehl für einen IA Server Container

Im Produktivbetrieb können die Container mit Hilfe von GitLab und einer Orchestrierungssoftware wie Kubernetes oder Docker Swarm automatisch überwacht und bei Bedarf automatisch neu gestartet werden.

Benefits

  • Die Umgebung kann nun einfach skaliert werden und Container mit spezifischen Aufgaben (z.B. exklusiv für den Ingest während einer Dekomissionierung) können einfach hinzugefügt werden. Sollte das Datenvolumen extrem wachsen, können unkompliziert weitere xDB Nodes zugeschaltet werden
  • Eine Aktualisierung der die Software kann in vielen Fällen durch einfache Änderungen der Dockerfiles durchgeführt werden. So kann z.B. das Betriebssystem durch eine Änderung des Basis-Images für alle Komponenten aktualisiert werden
  • Zusätzliche Software kann durch kleine Skriptanpassungen, wie Kopieren von einer externen Quelle in den Container einfach nachinstalliert werden

 

Fazit & Ausblick
Wir sind gespannt zu sehen, wie die von OpenText direkt ausgelieferten Container Images in der, erst vor wenigen Tagen veröffentlichten InfoArchive Version 16.7 aussehen. Fazit ist aber, dass sich OpenText InfoArchive auch schon in früheren Versionen gut mit der Docker Technologie betreiben lässt. Insbesondere die Reduzierung der Komplexität als auch der hohen Grad der Wiederverwendbarkeit bietet viele Vorteile für Projekte – und davon profitieren sowohl Sie als Kunde als auch wir als Dienstleister.