Folgen Sie den nachstehenden Anweisungen, um eine MobileFirst-Server-Instanz und eine Instanz von MobileFirst Analytics für IBM Cloud zu konfigurieren. Gehen Sie dazu die folgenden Schritte durch:
Erstellen Sie einen Kubernetes-Cluster vom Typ “Standard” (bezahlter Cluster).
Richten Sie Ihren Host-Computer mit den erforderlichen Tools ein (Docker, Cloud-Foundry-CLI (cf), IBM Cloud-CLI (bx), CLI des Container-Service-Plug-ins für IBM Cloud (bx cs), CLI des Container-Registry-Plug-ins für IBM Cloud (bx cr), Kubernetes-CLI (kubectl)).
Erstellen Sie ein MobileFirst-Server-Docker-Image und stellen Sie es per Push-Operation in das IBM Cloud-Repository.
Abschließend werden Sie das Docker-Image in einem Kubernetes-Cluster ausführen.
Hinweis:
Das Windows-Betriebssystem wird derzeit nicht für die Ausführung dieser Scripts unterstützt.
Die MobileFirst-Server-Konfigurationstools können nicht für die Implementierung in IBM Containern genutzt werden.
Falls Sie noch kein Konto haben, öffnen Sie die IBM Cloud-Website und klicken Sie auf Kostenloses Konto erstellen oder auf Anmeldung. Sie müssen das Registrierungsformular ausfüllen, bevor Sie mit dem nächsten Schritt fortfahren können.
IBM Cloud-Dashboard
Nachdem Sie sich bei IBM Cloud angemeldet haben, wird das IBM Cloud-Dashboard angezeigt, das Ihnen einen Überblick über den aktiven IBM Cloud-Bereich gibt. Standardmäßig hat dieser Arbeitsbereich den Namen “dev”. Bei Bedarf können Sie mehrere Arbeitsbereiche erstellen.
Hostmaschine einrichten
Für die Verwaltung von Containern und Images müssen Sie die folgenden Tools installieren:
Docker
IBM Cloud-CLI (bx)
CLI des Container-Service-Plug-ins für IBM Cloud (bx cs)
CLI des Container-Registry-Plug-ins für IBM Cloud (bx cr)
Hinweis: Für die Implementierung der Mobile Foundation ist ein Kubernetes-Cluster vom Typ “Standard” (bezahlter Cluster) erforderlich.
Archiv ibm-mfpf-container-8.0.0.0 herunterladen
Wenn Sie die Mobile Foundation als Kubernetes-Cluster mit IBM Cloud-Containern einrichten möchten, müssen Sie zunächst ein Image erstellen, das später per Push-Operation in IBM Cloud übertragen wird.
Vorläufige Fixes für MobileFirst Server in IBM Containern können über IBM Fix Central abgerufen werden.
Laden Sie den letzten vorläufigen Fix von Fix Central herunter. Ab iFix 8.0.0.0-IF201707051849 ist Kubernetes-Unterstützung verfügbar.
Die Archivdatei enthält die Dateien für die Erstellung eines Image (dependencies und mfpf-libs) sowie die Dateien für die Erstellung und Implementierung von MobileFirst Server und MobileFirst Analytics in Kubernetes (bmx-kubernetes).
Dieser Ordner enthält die Anpassungsdateien und Scripts für die Implementierung eines Kubernetes-Clusters mit dem Container-Service von IBM Cloud.
Dockerfile-mfpf-analytics und Dockerfile-mfpf-server
Dockerfile-mfpf-server: Textdokument mit allen Befehlen, die für das Erstellen des MobileFirst-Server-Image erforderlich sind.
Dockerfile-mfpf-analytics: Textdokument mit allen Befehlen, die für das Erstellen des MobileFirst-Analytics-Image erforderlich sind.
Ordner scripts: Dieser Ordner enthält den Ordner args mit einer Reihe von Konfigurationsdateien. Er enthält außerdem die erforderlichen Scripts für die Anmeldung bei IBM Cloud, die Erstellung eines Image für MobileFirst Server bzw. MobileFirst Analytics und die Push-Übertragung und Ausführung des Image in IBM Cloud. Sie können diese Scripts interaktiv ausführen oder die Konfigurationsdateien wie weiter unten erläutert für die Ausführung der Scripts vorkonfigurieren. Anders als bei den anpassbaren Dateien args/*.properties dürfen Sie in diesem Ordner keine Elemente modifizieren. Verwenden Sie das Befehlszeilenargument -h oder --help, um einen Hilfetext zur Scriptsyntax abzurufen (z. B. Scriptname.sh --help).
Ordner usr-mfpf-server und usr-mfpf-analytics:
Ordner bin: Enthält die Scriptdatei (mfp-init), die beim Start des Containers ausgeführt wird. Sie können eigenen Code hinzufügen, der ausgeführt werden soll.
Ordner config: Für MobileFirst Server bzw. MobileFirst Analytics verwendete Serverkonfigurationsfragmente (Keystore, Servereigenschaften, Benutzerregistry)
keystore.xml: Konfiguration des Repositorys mit Sicherheitszertifikaten für die SSL-Verschlüsselung. Im Ordner ./usr/security muss auf die aufgelisteten Dateien verwiesen werden.
ltpa.xml: Konfigurationsdatei mit der Definition des LTPA-Schlüssels und des zugehörigen Kennworts
mfpfproperties.xml - Konfigurationseigenschaften für MobileFirst Server und MobileFirst Analytics. Informieren Sie sich anhand der folgenden Dokumentationsabschnitte über die unterstützten Eigenschaften:
mfpfsqldb.xml: JDBC-Datenquellendefinition für die Verbindung zur Db2- oder dashDB-Datenbank
registry.xml: Benutzerregistrykonfiguration. Als Standardkonfiguration wird eine auf XML basierende Basisbenutzerregistrykonfiguration (basicRegistry) bereitgestellt. Sie können Namen und Kennwörter für basicRegistry konfigurieren oder ldapRegistry konfigurieren.
tracespec.xml: Tracespezifikation, um ein Debug zu ermöglichen, sowie Protokollierungsstufen
Ordner jre-security: Sie können die sicherheitsrelevanten JRE-Dateien (Truststore, JAR-Richtliniendateien usw.) aktualisieren, indem Sie sie in diesen Ordner stellen. Die Dateien aus diesem Ordner werden in den Ordner JAVA_HOME/jre/lib/security/ des Containers kopiert.
Ordner security: Wird verwendet, um die Keystore-Datei, die Truststore-Datei und die LTPA-Schlüsseldatei (ltpa.keys) zu speichern.
Ordner env: Enthält die Umgebungseigenschaften für die Serverinitialisierung (server.env) sowie angepasste JVM-Optionen (jvm.options).
Sie müssen über praktische Erfahrungen mit Kubernetes verfügen. Weitere Informationen enthalten die Kubernetes-Dokumente.
MobileFirst Server und Analytics Server im Kubernetes-Cluster mit IBM Containern einrichten
Wie bereits erläutert, können Sie die Scripts interaktiv oder unter Verwendung der Konfigurationsdateien ausführen.
Verwendung der Konfigurationsdateien: Führen Sie die Scripts aus und übergeben Sie die entsprechende Konfigurationsdatei als Argument.
Interaktiv: Führen Sie die Scripts ohne Argumente aus.
Hinweis: Wenn Sie sich entschließen, die Scripts interaktiv auszuführen, können Sie die Konfiguration übergehen. Wir empfehlen Ihnen jedoch, sich mit den Argumenten, die angegeben werden müssen, zu beschäftigen.
Bei interaktiver Ausführung wird eine Kopie der angegebenen Argumente im Verzeichnis ./recorded-args/ gespeichert. Sie können somit beim ersten Mal den interaktiven Modus nutzen und bei künftigen Implementierungen die Eigenschaftendateien wiederverwenden.
Der Ordner args enthält Konfigurationsdateien mit den Argumenten, die zum Ausführen der Scripts erforderlich sind. Tragen Sie die Argumentwerte in den folgenden Dateien ein:
initenv.properties
IBM_CLOUD_API_URL - Zielgeografie oder -region für die Implementierung
Beispiel: api.ng.bluemix.net für die USA oder api.eu-de.bluemix.net für Deutschland oder api.au-syd.bluemix.net für Sydney
IBM_CLOUD_ACCOUNT_ID - Ihre Konto-ID in Form eines alphanumerischen Wertes wie a1b1b111d11e1a11d1fa1cc999999999 Mit dem Befehl bx target können Sie die Konto-ID abrufen.
IBM_CLOUD_USER - Ihr IBM Cloud-Benutzername (E-Mail-Adresse)
IBM_CLOUD_PASSWORD - Ihr IBM Cloud-Kennwort
IBM_CLOUD_ORG - Ihr IBM Cloud-Organisationsname
IBM_CLOUD_SPACE - Ihr IBM Cloud-Bereich (wie oben erläutert)
prepareserverdbs.properties
Der Mobile Foundation Service erfordert eine externe Instanz von Db2 on Cloud.
Hinweis: Sie können auch Ihre eigene Db2-Datenbank verwenden. Der IBM Cloud-Kubernetes-Cluster muss für eine Verbindung zu der Datenbank konfiguriert werden.
Wenn Sie Ihre Db2-Instanz eingerichtet haben, geben Sie die folgenden erforderlichen Argumente an:
DB_TYPE - dashDB (wenn Sie Db2 on Cloud verwenden) oder DB2 (wenn Sie Ihre eigene Db2-Datenbank verwenden)
Bei Verwendung einer eigenen Db2-Datenbank (d. h. DB_TYPE=DB2) machen Sie folgende Angaben:
DB2_HOST - Hostname in Ihrem Db2-Setup
DB2_DATABASE - Name der Datenbank
DB2_PORT - Port für die Verbindung zur Datenbank
DB2_USERNAME - Db2-Datenbankbenutzer (der berechtigt sein muss, Tabellen im bereitgestellten Schema zu erstellen oder beim Fehlen eines Schemas ein Schema zu erstellen)
DB2_PASSWORD - Kennwort des Db2-Benutzers
Wenn Sie Db2 on Cloud verwenden (d. h. DB_TYPE=dashDB), machen Sie folgende Angaben:
ADMIN_DB_SRV_NAME - Name Ihrer dashDB-Serviceinstanz für das Speichern von Verwaltungsdaten
RUNTIME_DB_SRV_NAME - Name Ihrer dashDB-Serviceinstanz für das Speichern von Laufzeitdaten. Der Standardwert ist der Name des Verwaltungsservice.
PUSH_DB_SRV_NAME - Name Ihrer dashDB-Serviceinstanz für das Speichern von Laufzeitdaten. Der Standardwert ist der Name des Verwaltungsservice.
ADMIN_SCHEMA_NAME - Name Ihres Schemas für Verwaltungsdaten. Der Standardwert ist MFPDATA.
RUNTIME_SCHEMA_NAME - Name Ihres Schemas für Laufzeitdaten. Der Standardwert ist MFPDATA.
PUSH_SCHEMA_NAME - Name Ihres Schemas für Laufzeitdaten. Der Standardwert ist MFPDATA.
Hinweis: Wenn Ihr Db2-Datenbankservice von vielen Benutzern oder mehreren Mobile-Foundation-Implementierungen gemeinsam genutzt wird, stellen Sie sicher, dass eindeutige Schemanamen angegeben werden.
prepareserver.properties
SERVER_IMAGE_TAG - Ein Tag für das Image. Der Tag sollte das Format registry-url/namespace/image:tag haben.
ANALYTICS_IMAGE_TAG - Ein Tag für das Image. Der Tag sollte das Format registry-url/namespace/image:tag haben.
Beispiel: registry.ng.bluemix.net/myuniquenamespace/mymfpserver:v1 Wenn Sie noch keinen Docker-Registry-Namespace erstellt haben, erstellen Sie ihn mit einem der folgenden Befehle:
Die folgenden Anweisungen demonstrieren die Ausführung der Scripts unter Verwendung der Konfigurationsdateien. Eine Liste mit Befehlszeilenargumenten für einen nicht interaktiven Modus wird ebenfalls bereitgestellt.
initenv.sh – Anmeldung bei IBM Cloud
Führen Sie das Script initenv.sh aus, um eine Umgebung für die Erstellung und Ausführung von Mobile Foundation in IBM Containern zu erstellen:
Interaktiver Modus
./initenv.sh
Nicht interaktiver Modus
./initenv.sh args/initenv.properties
prepareserverdbs.sh - Erstellung der MobileFirst-Server-Datenbank
Das Script prepareserverdbs.sh wird verwendet, um Ihren MobileFirst Server mit dem Db2-Datenbankservice zu konfigurieren. Die Instanz des Db2-Service muss in der Organisation und dem Bereich verfügbar sein, bei denen Sie sich in Schritt 1 angemeldet haben. Führen Sie Folgendes aus:
Interaktiver Modus
initenv.sh (optional) – Anmeldung bei IBM Cloud
Dieser Schritt ist nur erforderlich, wenn Sie Ihre Container in einer Organisation und einem Bereich ohne verfügbare Db2-Serviceinstanz erstellen müssen. Wenn das der Fall ist, aktualisieren Sie die Datei initenv.properties mit der neuen Organisation und dem neuen Bereich, in denen die Container erstellt (und gestartet) werden müssen. Führen Sie dann erneut das Script initenv.sh aus:
./initenv.sh args/initenv.properties
prepareserver.sh - Erstellung eines MobileFirst-Server-Image
Führen Sie das Script prepareserver.sh aus, um ein MobileFirst-Server-Image und ein MobileFirst-Analytics-Image zu erstellen und per Push-Operation in Ihr IBM Cloud-Repository zu übertragen. Wenn Sie alle verfügbaren Images in Ihrem IBM Cloud-Repository anzeigen möchten, führen Sie bx cr image-list aus.
Die Liste enthält den Image-Namen, das Erstellungsdatum und die ID. Interaktiver Modus
./prepareserver.sh
Nicht interaktiver Modus
./prepareserver.sh args/prepareserver.properties
Implementieren Sie MobileFirst Server und MobileFirst Analytics in Docker-Containern eines Kubernetes-Clusters mit dem Container-Service von IBM Cloud.
Legen Sie Ihren Cluster als Terminalkontext fest: bx cs cluster-config my-cluster
Führen Sie den folgenden Befehl aus, um Ihren Clusternamen zu erfahren: bx cs clusters
In der Ausgabe wird der Pfad zu Ihrer Konfigurationsdatei als Befehl zum Definieren einer Umgebungsvariablen angezeigt. Beispiel: export KUBECONFIG=/Users/ibm/.bluemix/plugins/container-service/clusters/my-cluster/kube-config-prod-dal12-my-cluster.yml
Kopieren Sie den obigen Befehl. Ersetzen Sie my-cluster durch Ihren Clusternamen und fügen Sie den Befehl dann ein, um die Umgebungsvariable für Ihr Terminal festzulegen. Drücken Sie abschließend die Eingabetaste.
[Mandatory for MobileFirst Analytics]: Erstellen Sie ein Persistent Volume Claim (eine Anforderung für einen persistenten Datenträger) zum persistenten Speichern von Analysedaten. Dieser Schritt muss nur einmal ausgeführt werden. Falls Sie bereits ein Persistent Volume Claim (Anforderung für einen persistenten Datenträger) erstellt hatten, können Sie diese Anforderung wiederverwenden. Bearbeiten Sie die yaml-Datei args/mfpf-persistent-volume-claim.yaml und führen Sie den Befehl aus.
Alle Variablen müssen vor Ausführung des folgenden Befehls kubectl durch die entsprechenden Werte ersetzt werden. kubectl create -f ./args/mfpf-persistent-volume-claim.yaml
Notieren Sie den Namen des Persistent Volume Claim. Sie müssen ihn in einem nachfolgenden Schritt angeben.
Führen Sie den folgenden Befehl aus, um Ihre Ingress Domain (Zugangsdomäne) abzurufen: bx cs cluster-get my-cluster
Notieren Sie Ihre Zugangsdomäne. Wenn Sie TLS konfigurieren müssen, notieren Sie den geheimen Zugangsschlüssel (Ingress Secret).
Erstellen Sie die Kubernetes-Implementierungen. Bearbeiten Sie die yaml-Datei args/mfpf-deployment-all.yaml. Tragen Sie alle Details ein. Alle Variablen müssen vor Ausführung des Befehls kubectl durch die entsprechenden Werte ersetzt werden. ./args/mfpf-deployment-all.yaml enthält die Implementierung für Folgendes:
Kubernetes-Implementierung für MobileFirst Server, bestehend aus 3 Instanzen (Replikaten), mit einem Hauptspeicher von 1024 MB und einer CPU mit einem Kern
Kubernetes-Implementierung für MobileFirst Analytics, bestehend aus 2 Instanzen (Replikaten), mit einem Hauptspeicher von 1024 MB und einer CPU mit einem Kern
Kubernetes-Service für MobileFirst Server
Kubernetes-Service für MobileFirst Analytics
Zugang für das gesamte Setup mit allen REST-Endpunkten für MobileFirst Server und MobileFirst Analytics
Konfigurationsübersicht (configMap), um die Umgebungsvariablen in den Instanzen von MobileFirst Server und MobileFirst Analytics verfügbar zu machen
In der YAML-Datei müssen folgende Werte bearbeitet werden:
Verschiedene Vorkommen von my-cluster.us-south.containers.mybluemix.net mit der vom obigen Befehl bx cs cluster-get ausgegebenen Zugangsdomäne (Ingress Domain)
registry.ng.bluemix.net/repository/mfpfanalytics:latest und registry.ng.bluemix.net/repository/mfpfserver:latest - Verwenden Sie zum Hochladen der Images die gleichen Namen wie in prepareserver.sh.
claimName: mfppvc - Verwenden Sie für die Anforderung für einen persistenten Datenträger (Persistent Volume Claim) den Namen, den Sie bei der Erstellung der Anforderung angegeben haben.
Führen Sie den folgenden Befehl aus: kubectl create -f ./args/mfpf-deployment-all.yaml
Hinweis: Folgende YAML-Schablonendateien werden bereitgestellt:
mfpf-deployment-all.yaml: Implementiert MobileFirst Server und MobileFirst Analytics mit HTTP.
mfpf-deployment-all-tls.yaml: Implementiert MobileFirst Server und MobileFirst Analytics mit HTTPS.
mfpf-deployment-server.yaml: Implementiert MobileFirst Server mit HTTP.
mfpf-deployment-analytics.yaml: Implementiert MobileFirst Analytics mit HTTP.
Nach der Erstellung müssen Sie den folgenden Befehl ausführen, um das Kubernetes-Dashboard verwenden zu können: kubectl proxy Öffnen Sie localhost:8001/ui in Ihrem Browser.
MobileFirst Server wird jetzt in IBM Cloud ausgeführt, sodass Sie mit der Anwendungsentwicklung beginnen können. Gehen Sie die Mobile Foundation Lernprogramme durch.
Fixes für MobileFirst Server anwenden
Vorläufige Fixes für MobileFirst Server in IBM Containern können über IBM Fix Central abgerufen werden.
Sichern Sie Ihre vorhandenen Konfigurationsdateien, bevor Sie einen vorläufigen Fix anwenden. Die Konfigurationsdateien befinden sich in den folgenden Ordnern:
MobileFirst Server (Liberty-Cloud-Foundry-Anwendung): Paketstammverzeichnis/bmx-kubernetes/usr-mfpf-server
Anwendung des iFix:
Laden Sie das Archiv mit dem vorläufigen Fix herunter und extrahieren Sie den Inhalt des Archivs in Ihrem vorhandenen Installationsordner. Dabei werden in dem Ordner vorhandene Dateien überschrieben.
Speichern Sie Ihre gesicherten Konfigurationsdateien zurück in die Ordner Paketstammverzeichnis/bmx-kubernetes/usr-mfpf-server und Paketstammverzeichnis/bmx-kubernetes/usr-mfpf-analytics. Dabei werden die neu installierten Konfigurationsdateien überschrieben.
Bearbeiten Sie die Datei Paketstammverzeichnis/bmx-kubernetes/usr-mfpf-server/env/jvm.options in Ihrem Editor. Wenn die folgende Zeile vorhanden ist, entfernen Sie sie:
Jetzt können Sie einen aktualisierten Serverbuild erstellen und den Server implementieren.
a. Führen Sie das Script prepareserver.sh aus, um das Server-Image neu zu erstellen und per Push-Operation zum Service “IBM Containers” zu übertragen.
b. Führen Sie für ein schrittweises Update den folgenden Befehl aus: kubectl rolling-update NAME -f DATEI
Kubernetes-Implementierungen aus IBM Cloud entfernen
Führen Sie die folgenden Befehle aus, um Ihre implementierten Instanzen aus dem IBM Cloud-Kubernetes-Cluster zu entfernen:
kubectl delete -f mfpf-deployment-all.yaml (entfernt alle in der YAML-Datei definierten Kubernetes-Typen)
Führen Sie die folgenden Befehle aus, um einen Image-Namen aus der IBM Cloud-Registry zu entfernen:
bx cr image-list (listet die Images in der Registry auf)
bx cr image-rm Image-Name (entfernt das Image aus der Registry)
Datenbankservicekonfiguration aus IBM Cloud entfernen
Wenn Sie während der Konfiguration des MobileFirst-Server-Image das Script prepareserverdbs.sh ausgeführt haben,
werden die für MobileFirst Server erforderlichen Konfigurationen und Datenbanktabellen erstellt. Das Script erstellt auch das Datenbankschema für den Container.
Sie können die Datenbankservicekonfiguration im IBM Cloud-Dashboard wie folgt entfernen.
Wählen Sie im IBM Cloud-Dashboard den von Ihnen verwendeten Service Db2 on Cloud aus. Wählen Sie den Db2-Servicenamen aus, den Sie für die Ausführung des Scripts prepareserverdbs.sh als Parameter angegeben haben.
Starten Sie die Db2-Konsole, um mit den Schemata und Datenbankobjekten der ausgewählten Db2-Serviceinstanz arbeiten zu können.
Wählen Sie Schemata für die Konfiguration von IBM MobileFirst Server aus. Die Schemanamen sind die, die Sie bei Ausführung des Scripts prepareserverdbs.sh als Parameter angegeben haben.
Untersuchen Sie die Schemanamen und die zugehörigen Objekte gründlich, bevor Sie die einzelnen Schemata löschen. Die Datenbankkonfigurationen wurden aus IBM Cloud entfernt.
Inclusive terminology note: The Mobile First Platform team is making changes to support
the IBM® initiative to replace racially biased and other discriminatory language in our code and content
with more inclusive language. While IBM values the use of inclusive language, terms that are outside of
IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other
industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the
documentation to reflect those changes.