Bereitstellen von IBM WebSphere Liberty und Open Liberty auf Azure Red Hat OpenShift

In diesem Artikel erfahren Sie, wie Sie mithilfe des Azure-Portals schnell IBM WebSphere Liberty und Open Liberty auf Azure Red Hat OpenShift (ARO) aufstehen.

Dieser Artikel nutzt das Azure Marketplace-Angebot für Open/WebSphere Liberty, um Ihre Umstellung auf ARO zu beschleunigen. Das Angebot stellt automatisch mehrere Ressourcen bereit, einschließlich eines ARO-Clusters mit einer integrierten OpenShift Container Registry (OCR), den Liberty Operators und optional einem Containerimage, einschließlich Liberty und Ihrer Anwendung. Um das Angebot anzuzeigen, besuchen Sie das Azure-Portal. Wenn Sie eine manuelle Schritt-für-Schritt-Anleitung zum Ausführen von Liberty auf ARO bevorzugen, die die durch das Angebot aktivierte Automatisierung nicht nutzt, finden Sie weitere Informationen unter Bereitstellen einer Java-Anwendung mit Open Liberty/WebSphere Liberty auf einem Azure Red Hat OpenShift-Cluster.

Dieser Artikel soll Ihnen helfen, schnell zur Bereitstellung zu gelangen. Bevor Sie in die Produktion gehen, sollten Sie Tuning Liberty erkunden.

Wichtig

Während ARO von Red Hat und Microsoft gemeinsam entwickelt, betrieben und unterstützt wird, um eine integrierte Unterstützung zu bieten, unterliegt die Software, die Sie auf ARO ausführen, einschließlich der in diesem Artikel beschriebenen, eigenen Support- und Lizenzbedingungen. Ausführliche Informationen zur Unterstützung von ARO finden Sie unter Supportlebenszyklus für Azure Red Hat OpenShift 4. Ausführliche Informationen zur Unterstützung der Software, die in diesem Artikel beschrieben wird, finden Sie auf den Hauptseiten der Software, die im Artikel aufgeführt ist.

Hinweis

Für Azure Red Hat OpenShift sind mindestens 40 Kerne erforderlich, um einen OpenShift-Cluster zu erstellen und auszuführen. Das standardmäßige Azure-Ressourcenkontingent für ein neues Azure-Abonnement erfüllt diese Anforderung nicht. Informationen zum Anfordern einer Erhöhung ihres Ressourcenlimits finden Sie im Abschnitt Anfordern einer Erhöhung von nicht anpassbaren Kontingenten für die Erhöhung von VCPU-Kontingenten der VM-Familie. Da die Art des Kontingents, für das Sie eine Erhöhung anfordern müssen, "nicht anpassbar" ist, müssen Sie ein Supportticket einreichen. Die Schritte in Anfordern einer Erhöhung für nicht anpassbare Kontingente zeigen Ihnen genau, wie Sie das Ticket mit dem richtigen Inhalt ablegen.

Das kostenlose Testabonnement ist nicht für eine Kontingenterhöhung berechtigt. Führen Sie ein Upgrade auf ein Nutzungsbasierte Zahlungs-Abonnement durch, bevor Sie eine Kontingenterhöhung anfordern. Weitere Informationen finden Sie unter: Durchführen eines Upgrades für Ihr kostenloses Azure-Konto oder Ihr Azure for Students Starter-Konto.

Voraussetzungen

  • Ein lokaler Computer mit einem installierten UNIX-ähnlichen Betriebssystem (z. B. Ubuntu, macOS, Windows-Subsystem für Linux).
  • Die Azure CLI Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
  • Melden Sie sich mit dem Befehl az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
  • Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
  • Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen. Für diesen Artikel ist mindestens Version 2.31.0 der Azure CLI erforderlich.

Hinweis

Sie können diesen Leitfaden auch aus der Azure Cloud Shell ausführen. Bei diesem Ansatz sind alle erforderlichen Tools mit Ausnahme von Docker vorinstalliert.

Abrufen eines Red Hat Pull Secrets

Das Azure Marketplace-Angebot, das Sie in diesem Artikel verwenden wollen, erfordert ein Red Hat Pull Secret. In diesem Abschnitt erfahren Sie, wie Sie ein Red Hat Pull Secret für Azure Red Hat OpenShift abrufen. Informationen dazu, was ein Red Hat Pull Secret ist und warum Sie es benötigen, finden Sie im Abschnitt Abrufen eines Red Hat Pull Secrets des Tutorials: Erstellen eines Azure Red Hat OpenShift 4-Clusters. Führen Sie die Schritte in diesem Abschnitt aus, um den Pullschlüssel für die Verwendung zu erhalten.

Benutzen Sie Ihr Red Hat Konto, um sich beim OpenShift-Cluster-Manager-Portal anzumelden, besuchen Sie hierzu das Red Hat OpenShift Hybrid Cloud Console. Möglicherweise müssen Sie weitere Bedingungen akzeptieren und Ihr Konto aktualisieren, wie im folgenden Screenshot gezeigt. Verwenden Sie dasselbe Kennwort wie beim Erstellen des Kontos.

Screenshot der Seite

Nachdem Sie sich angemeldet haben, wählen Sie OpenShift und dann Downloads aus. Wählen Sie die Dropdownliste Alle Kategorien und dann Token aus. Wählen Sie unter Geheimen Schlüssel ziehen die Option Kopieren oder Herunterladen aus, um den Wert abzurufen, wie im folgenden Screenshot gezeigt.

Screenshot des Red Hat-Konsolenportals mit dem geheimen Pullschlüssel.

Der folgende Inhalt ist ein Beispiel, das aus dem Red Hat-Konsolenportal kopiert wurde, wobei die Authentifizierungscodes durch xxxx...xxx ersetzt wurden.

{"auths":{"cloud.openshift.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"quay.io":{"auth":"xxx...xxx","email":"contoso-user@test.com"},"registry.connect.redhat.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"registry.redhat.io":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"}}}

Speichern Sie den geheimen Schlüssel in einer Datei, damit Sie ihn später verwenden können.

Erstellen eines Microsoft Entra-Dienstprinzipals aus dem Azure-Portal

Das in diesem Artikel verwendete Azure Marketplace-Angebot, das Sie benutzen möchten, erfordert einen Microsoft Entra-Dienstprinzipal, um Ihr Azure Red Hat OpenShift-Cluster bereitzustellen. Das Angebot weist dem Dienstprinzipal während der Bereitstellungszeit ordnungsgemäße Berechtigungen zu, ohne dass eine Rollenzuweisung erforderlich ist. Wenn Sie einen Dienstprinzipal verwenden möchten, überspringen Sie diesen Abschnitt, und fahren Sie mit dem nächsten Abschnitt fort, in dem Sie das Angebot bereitstellen.

Führen Sie die folgenden Schritte aus, um einen Dienstprinzipal bereitzustellen und seine Anwendungs-ID (Client)-ID und den geheimen Schlüssel aus dem Azure-Portal abzurufen. Weitere Informationen finden Sie unter Erstellen und Verwenden eines Dienstprinzipals zum Bereitstellen eines Azure Red Hat OpenShift-Clusters.

Hinweis

Sie müssen über ausreichende Berechtigungen verfügen, um eine Anwendung bei Ihrem Microsoft Entra-Mandanten registrieren zu können. Falls ein Problem auftritt, sollten Sie die erforderlichen Berechtigungen überprüfen, um sicherzustellen, dass die Identität mit Ihrem Konto erstellt werden kann. Weitere Informationen finden Sie im Abschnitt Berechtigungen, die zum Registrieren einer App erforderlich sind in Verwendung des Portals, um eine Microsoft Entra-Anwendung und einen Dienstprinzipal zu erstellen, der auf Ressourcen zugreifen kann.

  1. Melden Sie sich über das Azure-Portal bei Ihrem Azure-Konto an.

  2. Wählen Sie Microsoft Entra ID aus.

  3. Wählen Sie App-Registrierungen aus.

  4. Wählen Sie Neue Registrierung aus.

  5. Nennen Sie die Anwendung, z. B. "liberty-on-aro-app". Wählen Sie einen unterstützten Kontotyp aus, der bestimmt, von wem die Anwendung verwendet werden kann. Nachdem Sie die Werte festgelegt haben, wählen Sie Registrieren aus, wie im folgenden Screenshot gezeigt. Es dauert mehrere Sekunden, um die Anwendung bereitzustellen. Warten Sie, bis die Bereitstellung abgeschlossen ist, bevor Sie den Vorgang fortsetzen.

    Screenshot des Azure-Portals mit der Seite

  6. Speichern Sie die Anwendungs-ID (Client) auf der Übersichtsseite, wie im folgenden Screenshot gezeigt. Zeigen Sie mit dem Mauszeiger auf den Wert (im Screenshot rot dargestellt), und wählen Sie das angezeigte Kopiersymbol aus. Die QuickInfo besagt In die Zwischenablage kopieren. Achten Sie darauf, den richtigen Wert zu kopieren, da die anderen Werte in diesem Abschnitt auch Kopiersymbole enthalten. Speichern Sie die Anwendungs-ID in einer Datei, damit Sie sie später verwenden können.

    Screenshot des Azure-Portals mit dienstprinzipaler Client-ID.

  7. Erstellen Sie einen neuen geheimen Clientschlüssel, indem Sie die folgenden Schritte ausführen:

    1. Wählen Sie Zertifikate & Geheimnisse aus.
    2. Wählen Sie Geheime Clientschlüssel und dann Neuer geheimer Clientschlüssel aus.
    3. Geben Sie eine Beschreibung des geheimen Schlüssels und eine Dauer ein. Wenn Sie fertig sind, wählen Sie Hinzufügen aus.
    4. Nachdem der geheime Clientschlüssel gespeichert wurde, wird dessen Wert angezeigt. Kopieren Sie den geheimen Wert, da Sie ihn später nicht mehr abrufen können.

Sie haben jetzt eine Microsoft Entra-Anwendung, den Dienstprinzipal und den geheimen Clientschlüssel.

Bereitstellen von IBM WebSphere Liberty oder Open Liberty auf Azure Red Hat OpenShift

Die Schritte in diesem Abschnitt leiten Sie zur Bereitstellung von IBM WebSphere Liberty oder Open Liberty auf Azure Red Hat OpenShift.

In den folgenden Schritten erfahren Sie, wie Sie das Angebot von WLS in AKS finden und den Bereich Grundlagen ausfüllen.

  1. Geben Sie in der Suchleiste oben im Azure-Portal Liberty ein. Wählen Sie in den automatisch vorgeschlagenen Suchergebnissen im Abschnitt Marketplace IBM Liberty auf AROaus, wie im folgenden Screenshot gezeigt.

    Screenshot des Azure-Portals mit IBM WebSphere Liberty und Open Liberty auf Azure Red Hat OpenShift in Suchergebnissen.

    Sie können auch mit diesem Portallink direkt zum Angebot wechseln.

  2. Wählen Sie auf der Angebotsseite Erstellen aus.

  3. Stellen Sie im Bereich Grundlagen sicher, dass der im Feld Abonnement angezeigte Wert dem Wert entspricht, für den die Rollen im Abschnitt mit Voraussetzungen aufgeführt sind.

  4. Das Angebot muss in einer leeren Ressourcengruppe bereitgestellt werden. Wählen Sie im Feld Ressourcengruppe die Option Neu erstellen aus, und geben Sie einen Wert für die Ressourcengruppe ein. Da Ressourcengruppen innerhalb eines Abonnements eindeutig sein müssen, wählen Sie einen eindeutigen Namen aus. Eine einfache Möglichkeit, eindeutige Namen zu haben, besteht darin, eine Kombination aus Ihren Initialen, dem heutigen Datum und einer Kennung zu verwenden. Beispiel: abc1228rg.

  5. Erstellen Sie eine Umgebungsvariable in Der Shell für den Ressourcengruppennamen.

    export RESOURCE_GROUP_NAME=<your-resource-group-name>
    
  6. Wählen Sie unter Instanzdetails die Region für die Bereitstellung aus. Eine Liste der Azure-Regionen, in denen OpenShift betrieben wird, finden Sie unter Regionen für Red Hat OpenShift 4.x in Azure.

  7. Nachdem Sie den Bereich ausgewählt haben, wählen Sie Weiter aus.

Die folgenden Schritte zeigen, wie Sie den im folgenden Screenshot gezeigten ARO-Bereich ausfüllen:

Screenshot des Azure-Portals mit IBM WebSphere Liberty und Open Liberty im Azure Red Hat OpenShift ARO-Bereich.

  1. Wählen Sie unter Neues Cluster erstellenJa aus.

  2. Geben Sie unter Informationen zum Erstellen eines neuen Clusters für Red Hat geheimen Schlüssel ziehen ein, und füllen Sie das Red Hat Pull-Geheimnis aus, das Sie im Abschnitt Abrufen eines Red Hat Pull-Geheimnis erhalten haben. Verwenden Sie denselben Wert zum Bestätigen des geheimen Schlüssel.

  3. Füllen Sie die Client-ID des Dienstprinzipals mit der Dienstprinzipalanwendungs-ID (Client) aus, die Sie im Abschnitt Erstellen eines Microsoft Entra-Dienstprinzipals aus dem Azure-Portal abgerufen haben.

  4. Füllen Sie den geheimen Clientschlüssel des Dienstprinzipals mit dem geheimen Dienstprinzipal-Anwendungsschlüssel aus, den Sie im Abschnitt Erstellen eines Microsoft Entra-Dienstprinzipals aus dem Azure-Portal erhalten haben. Verwenden Sie denselben Wert zum Bestätigen des geheimen Schlüssel.

  5. Nachdem Sie die Werte ausgefüllt haben, wählen Sie Weiter aus.

Die folgenden Schritte zeigen, wie Sie den im folgenden Screenshot gezeigten Bereich Operator und Anwendung ausfüllen und die Bereitstellung starten.

Screenshot des Azure-Portals mit IBM WebSphere Liberty und Open Liberty auf Azure Red Hat OpenShift Operator und Anwendungsbereich.

  1. Wählen Sie unter IBM unterstützt?, wählen Sie Ja aus.

    Hinweis

    Diese Schnellstartanleitung stellt den IBM-unterstützten WebSphere Liberty Operator bereit, aber Sie können Nein auswählen, um stattdessen den Open Liberty Operator bereitzustellen.

  2. Lassen Sie die Standardoption "Nein " für die Anwendung bereitstellen?.

    Hinweis

    Diese Schnellstartanleitung stellt eine Beispielanwendung später manuell bereit, aber Sie können Ja für die Bereitstellung einer Anwendung auswählen? wenn Sie es vorziehen.

  3. Klicken Sie auf Überprüfen + erstellen. Stellen Sie sicher, dass im oberen Bereich die grüne Meldung Überprüfung erfolgreich angezeigt wird. Wenn die Nachricht nicht angezeigt wird, beheben Sie alle Überprüfungsprobleme, und wählen Sie dann erneut Überprüfen + erstellen aus.

  4. Klicken Sie auf Erstellen.

  5. Verfolgen Sie den Status der Bereitstellung auf der Seite Bereitstellung wird durchgeführt.

Abhängig von den Netzwerkbedingungen und anderen Aktivitäten in Ihrer ausgewählten Region kann die Bereitstellung bis zu 40 Minuten dauern.

Überprüfen der Funktionsfähigkeit der Bereitstellung

Die Schritte in diesem Abschnitt zeigen Ihnen, wie Sie überprüfen können, ob die Bereitstellung erfolgreich abgeschlossen wurde.

Wenn Sie die Seite Bereitstellung läuft verlassen haben, zeigen Ihnen die folgenden Schritte, wie Sie zu dieser Seite zurückkehren. Wenn Sie sich immer noch auf der Seite befinden, auf der Ihre Bereitstellung ist abgeschlossen angezeigt wird, können Sie mit Schritt 5 fortfahren.

  1. Wählen Sie in der Ecke einer beliebigen Portalseite das Hamburgermenü und anschließend Ressourcengruppen aus.

  2. Geben Sie in das Feld mit dem Text nach beliebigem Feld filtern die ersten Buchstaben der zuvor erstellten Ressourcengruppe ein. Wenn Sie der empfohlenen Konvention gefolgt sind, geben Sie Ihre Initialen ein und wählen Sie dann die entsprechende Ressourcengruppe aus.

  3. Wählen Sie im linken Navigationsbereich im Abschnitt Einstellungen die Option Bereitstellungen aus. Es wird eine sortierte Liste der Bereitstellungen für diese Ressourcengruppe angezeigt, wobei die neueste Bereitstellung zuerst aufgeführt wird.

  4. Scrollen Sie zum ältesten Eintrag in dieser Liste. Dieser Eintrag entspricht der Bereitstellung, die Sie im vorherigen Abschnitt gestartet haben. Wählen Sie die älteste Bereitstellung aus, wie im folgenden Screenshot dargestellt.

    Screenshot des Azure-Portals mit IBM WebSphere Liberty und Open Liberty auf Azure Red Hat OpenShift-Bereitstellungen mit hervorgehobener ältester Bereitstellung.

  5. Wählen Sie im linken Navigationsbereich Ausgaben aus. Diese Liste enthält die Ausgabewerte aus der Bereitstellung, die einige nützliche Informationen enthalten.

  6. Öffnen Sie Das Terminal, und fügen Sie den Wert aus dem Feld cmdToGetKubeadminCredentials ein. Sie sehen das Administratorkonto und die Anmeldeinformationen für die Anmeldung beim OpenShift-Clusterkonsolenportal. Der folgende Inhalt ist ein Beispiel für ein Administratorkonto.

    az aro list-credentials --resource-group abc1228rg --name clusterf9e8b9
    {
      "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx",
      "kubeadminUsername": "kubeadmin"
    }
    
  7. Fügen Sie den Wert aus dem Feld clusterConsoleUrl in einen mit dem Internet verbundenen Webbrowser ein, und drücken Sie dann Enter. Geben Sie den Administratorbenutzernamen und das Kennwort ein, und melden Sie sich an.

  8. Überprüfen Sie, ob der entsprechende Kubernetes-Operator für Liberty installiert ist. Wählen Sie im Navigationsbereich Operatoren und dannInstallierte Operatoren aus, wie im folgenden Screenshot gezeigt:

    Screenshot des Red Hat OpenShift-Clusterkonsolenportals mit der Seite

    Notieren Sie sich, wenn Sie den WebSphere Liberty-Operator oder den Open Liberty-Operator installiert haben. Die Operatorvariante entspricht dem, was Sie zur Bereitstellungszeit ausgewählt haben. Wenn Sie IBM Supported ausgewählt haben, verfügen Sie über den WebSphere Liberty-Operator. Andernfalls haben Sie den Open Liberty-Operator. Diese Informationen sind in späteren Schritten wichtig.

  9. Laden Sie die OpenShift CLI oc herunter, und installieren Sie sie, indem Sie die Schritte im Lernprogramm Installieren der OpenShift CLIausführen, und kehren Sie dann zu dieser Dokumentation zurück.

  10. Wechseln Sie zum Ausgabebereich, kopieren Sie den Wert aus dem cmdToLoginWithKubeadmin-Feld, und fügen Sie ihn dann in Ihr Terminal ein. Führen Sie den Befehl aus, um sich beim API-Server des OpenShift-Clusters anzumelden. Die Ausgabe sollte etwa folgendem Beispiel in den Konsolen entsprechen:

    Login successful.
    
    You have access to 71 projects, the list has been suppressed. You can list all projects with 'oc projects'
    
    Using project "default".
    

Erstellen einer Azure-SQL-Datenbank

Die folgenden Schritte führen Sie durch das Erstellen einer Azure SQL-Datenbank-Einzeldatenbank zur Verwendung mit Ihrer App:

  1. Erstellen Sie eine Einzeldatenbank in Azure SQL-Datenbank, indem Sie die Schritte unter Schnellstart: Erstellen einer Azure SQL-Einzeldatenbank ausführen. Beachten Sie dabei die Unterschiede, die im folgenden Hinweis beschrieben werden. Kehren Sie nach dem Erstellen und Konfigurieren des Datenbankservers zu diesem Artikel zurück.

    Hinweis

    Notieren Sie sich im Schritt Grundlagendie Werte von Ressourcengruppe, Datenbankname,<server-name>.database.windows.net, Serveradministratoranmeldung und Kennwort. Die Datenbank Ressourcengruppe ist später in diesem Artikel als <db-resource-group> bezeichnet.

    Legen Sie im Schritt Netzwerk die Option Verbindungsmethode auf Öffentlicher Endpunkt, Anderen Azure-Diensten und -Ressourcen den Zugriff auf diesen Server gestatten auf Ja und Aktuelle Client-IP-Adresse hinzufügen auf Ja fest.

    Screenshot des Azure-Portals, auf dem die Registerkarte

  2. Erstellen Sie eine Umgebungsvariable in Der Shell für den Ressourcengruppennamen für die Datenbank.

    export DB_RESOURCE_GROUP_NAME=<db-resource-group>
    

Nachdem Sie die Datenbank und den ARO-Cluster erstellt haben, können Sie die ARO vorbereiten, um Ihre WebSphere Liberty-Anwendung zu hosten.

Konfigurieren und Bereitstellen der Beispielanwendung

Führen Sie die Schritte in diesem Abschnitt aus, um die Beispielanwendung in der Liberty-Laufzeit zu implementieren. In diesen Schritten wird Maven verwendet.

Auschecken der Anwendung

Klonen Sie den Beispielcode für diese Anleitung mithilfe der folgenden Befehle. Das Beispiel befindet sich auf GitHub.

git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro
export BASE_DIR=$PWD
git checkout 20240223
cd 3-integration/connect-db/mssql

Wenn eine Meldung angezeigt wird, dass Sie sich im Status „detached HEAD“ befinden, können Sie diese Meldung problemlos ignorieren. Sie bedeutet nur, dass Sie ein Tag ausgecheckt haben.

Es gibt ein paar Beispiele im Repository. Wir verwenden 3-integration/connect-db/mssql/. Hier ist die Dateistruktur der Anwendung:

mssql
├─ src/main/
│  ├─ aro/
│  │  ├─ db-secret.yaml
│  │  ├─ openlibertyapplication.yaml
│  │  ├─ webspherelibertyapplication.yaml
│  ├─ docker/
│  │  ├─ Dockerfile
│  │  ├─ Dockerfile-ol
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ pom.xml

Die Verzeichnisse java, resources und webapp enthalten den Quellcode der Beispielanwendung. Der Code deklariert und verwendet eine Datenquelle mit dem Namen jdbc/JavaEECafeDB.

IM aro-Verzeichnis gibt es drei Bereitstellungsdateien. db-secret.xml wird zum Erstellen von Kubernetes-Geheimnissen mit Anmeldeinformationen für die Datenbankverbindung verwendet. Die Datei webspherelibertyapplication.yaml wird in dieser Schnellstartanleitung verwendet, um die WebSphere Liberty-Anwendung bereitzustellen. Verwenden Sie die Datei openlibertyapplication.yaml, um die Open Liberty-Anwendung bereitzustellen, wenn Sie open Liberty Operator im Abschnitt Bereitstellen von IBM WebSphere Liberty oder Open Liberty auf Azure Red Hat OpenShiftbereitgestellt haben.

Im Docker-Verzeichnis gibt es zwei Dateien, um das Anwendungsimage entweder mit Open Liberty oder WebSphere Liberty zu erstellen. Diese Dateien sind Dockerfile und Dockerfile-ol. In dieser Schnellstartanleitung verwenden Sie die Datei Dockerfile, um das Anwendungsimage mit WebSphere Liberty zu erstellen. Verwenden Sie auch die Datei Dockerfile-ol, um das Anwendungsimage mit Open Liberty zu erstellen, wenn Sie Open Liberty Operator im Abschnitt Bereitstellen von IBM WebSphere Liberty oder Open Liberty auf Azure Red Hat OpenShiftbereitgestellt haben.

Im Verzeichnis liberty/config wird die Datei server.xml verwendet, um die DB-Verbindung für den Open Liberty- und WebSphere Liberty-Cluster zu konfigurieren.

Erstellen des Projekts

Nachdem Sie nun die erforderlichen Eigenschaften gesammelt haben, können Sie die Anwendung mithilfe der folgenden Befehle erstellen. Die POM-Datei für das Projekt liest viele Variablen aus der Umgebung. Im Rahmen des Maven-Builds werden diese Variablen verwendet, um Werte in den YAML-Dateien in src/main/aro aufzufüllen. Sie können etwas Ähnliches für Ihre Anwendung außerhalb von Maven tun, wenn Sie möchten.

cd ${BASE_DIR}/3-integration/connect-db/mssql

# The following variables are used for deployment file generation into target.
export DB_SERVER_NAME=<server-name>.database.windows.net
export DB_NAME=<database-name>
export DB_USER=<server-admin-login>@<server-name>
export DB_PASSWORD=<server-admin-password>

mvn clean install

(Optional:) Lokales Testen Ihres Projekts

Sie können das Projekt jetzt lokal ausführen und testen, bevor Sie es in Azure bereitstellen, indem Sie die folgenden Schritte ausführen. Der Einfachheit halber verwenden wir das liberty-maven-plugin. Weitere Informationen zu liberty-maven-plugin finden Sie unter Erstellen einer Webanwendung mit Maven. Für Ihre Anwendung können Sie ähnliche Aktionen mit jedem anderen Mechanismus ausführen, z. B. Ihrer lokalen IDE. Sie können auch die Option liberty:devc für die Entwicklung mit Containern in Betracht ziehen. Weitere Informationen zu liberty:devc finden Sie in der Liberty-Dokumentation.

  1. Starten Sie die Anwendung mithilfe von liberty:run, wie im folgenden Beispiel gezeigt. liberty:run nutzt ebenfalls die im vorherigen Abschnitt definierten Umgebungsvariablen.

    cd ${BASE_DIR}/3-integration/connect-db/mssql
    mvn liberty:run
    
  2. Überprüfen Sie, dass die Anwendung wie erwartet funktioniert. Bei erfolgreicher Ausführung sollte in der Befehlsausgabe eine ähnliche Meldung wie [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds. angezeigt werden. Navigieren Sie in Ihrem Browser zu http://localhost:9080/ oder https://localhost:9443/, und überprüfen Sie, ob auf die Anwendung zugegriffen werden kann und alle Funktionen funktionieren.

  3. Drücken Sie STRG+C, um zu beenden.

Führen Sie als Nächstes die folgenden Schritte aus, um Ihr Projekt mithilfe von Docker zu Containern und lokal als Container auszuführen, bevor Sie es in Azure bereitstellen:

  1. Führen Sie den docker build Befehl aus, um das Image zu erstellen.

    cd ${BASE_DIR}/3-integration/connect-db/mssql/target
    docker buildx build --platform linux/amd64 -t javaee-cafe:v1 --pull --file=Dockerfile .
    
  2. Führen Sie das Image mithilfe des folgenden Befehls aus. Beachten Sie, dass wir die zuvor definierten Umgebungsvariablen verwenden.

    docker run -it --rm -p 9080:9080 -p 9443:9443 \
        -e DB_SERVER_NAME=${DB_SERVER_NAME} \
        -e DB_NAME=${DB_NAME} \
        -e DB_USER=${DB_USER} \
        -e DB_PASSWORD=${DB_PASSWORD} \
        javaee-cafe:v1
    
  3. Sobald der Container gestartet wird, wechseln Sie in Ihrem Browser zu http://localhost:9080/ oder https://localhost:9443/, um auf die Anwendung zuzugreifen.

  4. Drücken Sie STRG+C, um zu beenden.

Erstellen eines Bilds und Übertragen an den Bilddatenstrom

Wenn Sie mit dem Zustand der Anwendung zufrieden sind, erstellen Sie das Image remote im Cluster, indem Sie die folgenden Schritte benutzen.

  1. Verwenden Sie die folgenden Befehle, um das Quellverzeichnis und die Dockerfile zu identifizieren:

    cd ${BASE_DIR}/3-integration/connect-db/mssql/target
    
    # If you are deploying the application with WebSphere Liberty Operator, the existing Dockerfile is ready for you
    
    # If you are deploying the application with Open Liberty Operator, uncomment and execute the following two commands to rename Dockerfile-ol to Dockerfile
    # mv Dockerfile Dockerfile.backup
    # mv Dockerfile-ol Dockerfile
    
  2. Verwenden Sie den folgenden Befehl, um einen Bildstream zu erstellen:

    oc create imagestream javaee-cafe
    
  3. Verwenden Sie den folgenden Befehl, um eine Buildkonfiguration zu erstellen, die das Imagestreamtag der Buildausgabe angibt:

    oc new-build --name javaee-cafe-config --binary --strategy docker --to javaee-cafe:v1
    
  4. Benutzen Sie folgenden Befehl zum Starten des Builds, um lokale Inhalte hochzuladen, zu containerisieren und in das zuvor angegebene Imagestreamtag zu übertragen:

    oc start-build javaee-cafe-config --from-dir . --follow
    

Bereitstellen und Testen der Anwendung

Führen Sie die folgenden Schritte aus, um die Anwendung bereitzustellen und zu testen:

  1. Verwenden Sie den folgenden Befehl, um den DB-Schlüssel anzuwenden:

    cd ${BASE_DIR}/3-integration/connect-db/mssql/target
    oc apply -f db-secret.yaml
    

    Die Ausgabe secret/db-secret-mssql created sollte angezeigt werden.

  2. Verwenden Sie den folgenden Befehl, um die Bereitstellungsdatei anzuwenden:

    oc apply -f webspherelibertyapplication.yaml
    
  3. Warten Sie, bis alle Pods gestartet und erfolgreich ausgeführt werden, indem Sie den folgenden Befehl verwenden:

    oc get pods -l app.kubernetes.io/name=javaee-cafe --watch
    

    Eine Ausgabe wie die folgende Beispielausgabe sollte angezeigt werden. Sie gibt an, dass alle Pods ausgeführt werden:

    NAME                          READY   STATUS    RESTARTS   AGE
    javaee-cafe-67cdc95bc-2j2gr   1/1     Running   0          29s
    javaee-cafe-67cdc95bc-fgtt8   1/1     Running   0          29s
    javaee-cafe-67cdc95bc-h47qm   1/1     Running   0          29s
    
  4. Führen Sie die folgenden Schritte aus, um die Ergebnisse zu überprüfen:

    1. Verwenden Sie den folgenden Befehl, um den Host der Route-Ressource abzurufen, die mit der Anwendung bereitgestellt wird:

      echo "route host: https://$(oc get route javaee-cafe --template='{{ .spec.host }}')"
      
    2. Kopieren Sie den Wert route host aus der Ausgabe, und öffnen Sie ihn dann in Ihrem Browser, um die Anwendung zu testen. Wenn die Webseite nicht ordnungsgemäß gerendert wird, liegt das daran, dass die App weiterhin im Hintergrund gestartet wird. Warten Sie einige Minuten, und versuchen Sie es dann erneut.

    3. Fügen Sie einige Kaffee hinzu, und löschen Sie sie, um die Funktionalität der App und der Datenbankverbindung zu überprüfen.

      Screenshot der ausgeführten App.

Bereinigen von Ressourcen

Zum Vermeiden von Azure-Gebühren sollten Sie nicht benötigte Ressourcen bereinigen. Wenn der Cluster nicht mehr benötigt wird, entfernen Sie mit dem Befehl az group delete die Ressourcengruppe, das ARO Cluster, die Azure SQL Database und alle zugehörigen Ressourcen.

az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
az group delete --name $DB_RESOURCE_GROUP_NAME --yes --no-wait

Nächste Schritte

Erfahren Sie mehr über die Bereitstellung der IBM WebSphere-Familie in Azure unter folgenden Links: