Udostępnij za pośrednictwem


Ręczne wdrażanie aplikacji Java przy użyciu biblioteki Open Liberty/WebSphere Liberty w klastrze usługi Azure Red Hat OpenShift

Ten artykuł zawiera szczegółowe wskazówki dotyczące uruchamiania biblioteki Open/WebSphere Liberty w klastrze Usługi Azure Red Hat OpenShift. Przeprowadzi Cię przez proces przygotowywania aplikacji Liberty, kompilowania obrazu platformy Docker aplikacji i uruchamiania konteneryzowanej aplikacji w klastrze usługi Azure Red Hat OpenShift.

W szczególności dowiesz się, jak wykonywać następujące zadania:

  • Przygotowywanie aplikacji Liberty
  • Kompilowanie obrazu aplikacji
  • Uruchamianie konteneryzowanej aplikacji w klastrze usługi Azure Red Hat OpenShift przy użyciu graficznego interfejsu użytkownika i interfejsu wiersza polecenia

Aby uzyskać bardziej zautomatyzowane rozwiązanie, które przyspiesza podróż do klastra Usługi Azure Red Hat OpenShift, zobacz Deploy IBM WebSphere Liberty and Open Liberty on Azure Red Hat OpenShift using Azure Marketplace offer (Wdrażanie oprogramowania IBM WebSphere Liberty i Open Liberty w usłudze Azure Red Hat OpenShift przy użyciu oferty witryny Azure Marketplace).

Aby uzyskać więcej informacji na temat open liberty, zobacz stronę projektu Open Liberty. Aby uzyskać więcej informacji na temat platformy WebSphere Liberty, zobacz stronę produktu WebSphere Liberty.

Ten artykuł ma pomóc w szybkim rozpoczęciu wdrażania. Przed przejściem do środowiska produkcyjnego należy zapoznać się z tematem Tuning Liberty.

Jeśli chcesz przekazać opinię lub ściśle pracować nad scenariuszami migracji z zespołem inżynierów opracowującym rozwiązanie WebSphere na platformie Azure, wypełnij tę krótką ankietę dotyczącą migracji webSphere i dołącz informacje kontaktowe. Zespół menedżerów programów, architektów i inżynierów natychmiast skontaktuje się z Tobą w celu zainicjowania ścisłej współpracy.

Ważne

Chociaż usługa Azure Red Hat OpenShift jest wspólnie zaprojektowana, obsługiwana i obsługiwana przez firmę Red Hat i Microsoft w celu zapewnienia zintegrowanego środowiska pomocy technicznej, oprogramowanie uruchamiane na platformie Azure Red Hat OpenShift, w tym opisane w tym artykule, podlega własnym warunkom pomocy technicznej i postanowień licencyjnych. Aby uzyskać więcej informacji o obsłudze usługi Azure Red Hat OpenShift, zobacz Cykl życia pomocy technicznej dla usługi Azure Red Hat OpenShift 4. Aby uzyskać więcej informacji o obsłudze oprogramowania opisanego w tym artykule, zobacz strony główne dotyczące tego oprogramowania zgodnie z opisem w artykule.

Uwaga

Usługa Azure Red Hat OpenShift wymaga co najmniej 40 rdzeni do utworzenia i uruchomienia klastra OpenShift. Domyślny limit przydziału zasobów platformy Azure dla nowej subskrypcji platformy Azure nie spełnia tego wymagania. Aby zażądać zwiększenia limitu zasobów, zobacz Limit przydziału w warstwie Standardowa: Zwiększanie limitów według serii maszyn wirtualnych. Pamiętaj, że subskrypcja bezpłatnej wersji próbnej nie kwalifikuje się do zwiększenia limitu przydziału, uaktualnij subskrypcję do subskrypcji z płatnością zgodnie z rzeczywistym użyciem przed zażądaniem zwiększenia limitu przydziału.

Wymagania wstępne

  • Zainstalowano maszynę lokalną z systemem operacyjnym przypominającym system Unix — na przykład Ubuntu, macOS lub Podsystem Windows dla systemu Linux.

  • Implementacja języka Java Standard Edition (SE) w wersji 17 — na przykład Eclipse Open J9.

  • Maven, wersja 3.9.8 lub nowsza.

  • Platforma Docker dla systemu operacyjnego.

  • Interfejs wiersza polecenia platformy Azure w wersji 2.61.0 lub nowszej.

  • Klaster usługi Azure Red Hat OpenShift 4. Aby utworzyć klaster, postępuj zgodnie z instrukcjami w temacie Tworzenie klastra usługi Azure Red Hat OpenShift 4, korzystając z następujących instrukcji:

  • Nawiąż połączenie z klastrem, wykonując czynności opisane w temacie Nawiązywanie połączenia z klastrem usługi Azure Red Hat OpenShift 4, korzystając z poniższych instrukcji:

    • Pamiętaj, aby wykonać kroki opisane w temacie "Instalowanie interfejsu wiersza polecenia platformy OpenShift", ponieważ użyjesz oc polecenia w dalszej części tego artykułu.
    • Zapisz adres URL konsoli klastra. Powinien wyglądać następująco: https://console-openshift-console.apps.<random>.<region>.aroapp.io/.
    • Zanotuj kubeadmin poświadczenia.
    • Pamiętaj, aby wykonać kroki opisane w temacie "Nawiązywanie połączenia przy użyciu interfejsu wiersza polecenia platformy OpenShift" przy kubeadmin użyciu poświadczeń.

Instalowanie operatora Open Liberty OpenShift

Po utworzeniu klastra i nawiązaniu połączenia z klastrem wykonaj następujące kroki, aby zainstalować operator Open Liberty. Główna strona początkowa operatora Open Liberty znajduje się w witrynie GitHub.

  1. Zaloguj się do konsoli internetowej openShift z przeglądarki przy użyciu kubeadmin poświadczeń.

  2. Przejdź do pozycji Operator OperatorHub> i wyszukaj ciąg Open Liberty.

  3. Wybierz pozycję Otwórz wolność w wynikach wyszukiwania.

  4. Wybierz Zainstaluj.

  5. Na stronie Install Operator (Operator instalacji) wykonaj następujące kroki:

    1. W polu Aktualizuj kanał wybierz najnowszy kanał w wersji 1.4.
    2. W przypadku tryb instalacjiwybierz pozycję Wszystkie przestrzenie nazw w klastrze (ustawienie domyślne).
    3. W obszarze Zatwierdzanie aktualizacji wybierz pozycję Automatyczne.

    Zrzut ekranu przedstawiający konsolę internetową openShift z wyświetloną stroną Operator instalacji.

  6. Wybierz pozycję Zainstaluj i zaczekaj kilka minut na zakończenie instalacji.

  7. Zwróć uwagę, że operator Open Liberty jest pomyślnie zainstalowany i gotowy do użycia. Jeśli nie jest gotowy, przed kontynuowaniem zdiagnozuj i rozwiąż problem.

    Zrzut ekranu przedstawiający konsolę internetową OpenShift z wyświetlonym oknie dialogowym Zainstalowany operator.

Uwaga

Ten przewodnik instaluje program Open Liberty Operator w celu zarządzania aplikacjami Liberty w klastrze Usługi Azure Red Hat OpenShift. Jeśli chcesz użyć operatora WebSphere Liberty, wykonaj kroki opisane w temacie Instalowanie operatora WebSphere Liberty, aby zainstalować operator WebSphere Liberty w klastrze.

Tworzenie przestrzeni nazw OpenShift dla aplikacji Java

Wykonaj następujące kroki, aby utworzyć przestrzeń nazw openShift do użycia z aplikacją:

  1. Upewnij się, że zalogowano się do konsoli internetowej openShift z przeglądarki przy użyciu kubeadmin poświadczeń.

  2. Przejdź do >przestrzenie>nazw Utwórz przestrzeń nazw.

  3. open-liberty-demo Wypełnij pola Nazwa i wybierz pozycję Utwórz, jak pokazano poniżej.

    Zrzut ekranu przedstawiający konsolę internetową OpenShift z wyświetlonym oknie dialogowym Tworzenie przestrzeni nazw.

Tworzenie elastycznego serwera usługi Azure Database for MySQL

Model wdrażania serwera elastycznego usługi Azure Database for MySQL to tryb wdrażania, który zapewnia bardziej szczegółową kontrolę i elastyczność funkcji zarządzania bazami danych oraz ustawień konfiguracji niż tryb wdrażania pojedynczego serwera usługi Azure Database for MySQL. W tej sekcji pokazano, jak utworzyć wystąpienie serwera elastycznego usługi Azure Database for MySQL przy użyciu interfejsu wiersza polecenia platformy Azure. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie wystąpienia usługi Azure Database for MySQL — serwer elastyczny przy użyciu interfejsu wiersza polecenia platformy Azure.

Uruchom następujące polecenie w terminalu, aby utworzyć wystąpienie serwera elastycznego usługi Azure Database for MySQL. Zastąp <server-admin-password> ciąg hasłem spełniającym wymagania dotyczące złożoności haseł dla serwera elastycznego usługi Azure Database for MySQL.

az mysql flexible-server create \
    --name ${CLUSTER} \
    --resource-group ${RESOURCEGROUP} \
    --admin-user admin${RESOURCEGROUP} \
    --admin-password '<server-admin-password>' \
    --database-name ${RESOURCEGROUP}db \
    --public-access 0.0.0.0 \
    --yes

Uwaga

Ten artykuł zawiera instrukcje tworzenia serwera elastycznego usługi Azure Database for MySQL przy użyciu uwierzytelniania MySQL. Bezpieczniejszą praktyką jest użycie uwierzytelniania firmy Microsoft Entra do uwierzytelniania połączenia serwera bazy danych. Usługa Azure Red Hat OpenShift nie obsługuje obecnie Tożsamość obciążeń Microsoft Entra, dlatego uwierzytelnianie MySQL jest jedyną dostępną opcją.

Jeśli zostanie wyświetlony komunikat o błędzie Brak dostępnych jednostek SKU w tej lokalizacji, określ inną lokalizację przy użyciu parametru --location i spróbuj ponownie. Użyj następującego polecenia, aby wyświetlić listę dostępnych jednostek SKU w określonej lokalizacji:

az mysql flexible-server list-skus --location <location>

Znajdź lokalizację, która ma dostępne jednostki SKU, a następnie powtórz poprzednie az mysql flexible-server create polecenie, ale dołącz odpowiedni --location <location> parametr, pozostawiając wszystkie pozostałe parametry bez zmian.

Utworzenie serwera, bazy danych, użytkownika administratora i reguły zapory, która akceptuje połączenia ze wszystkich zasobów platformy Azure, trwa kilka minut. Jeśli polecenie zakończy się pomyślnie, dane wyjściowe wyglądają podobnie do następującego przykładu:

{
  "connectionString": "mysql <database-name> --host <server-name>.mysql.database.azure.com --user <server-admin-username> --password=<server-admin-password>",
  "databaseName": "<database-name>",
  "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2024-7-10_16-22-8",
  "host": "<server-name>.mysql.database.azure.com",
  "id": "/subscriptions/REDACTED/resourceGroups/<resource-group-of-the-OpenShift-cluster>/providers/Microsoft.DBforMySQL/flexibleServers/<server-name>",
  "location": "West US",
  "password": "<server-admin-password>",
  "resourceGroup": "<resource-group-of-the-OpenShift-cluster>",
  "skuname": "Standard_B1ms",
  "username": "<server-admin-username>",
  "version": "5.7"
}

Przygotowywanie aplikacji Liberty

Jako przykład w tym przewodniku używamy aplikacji Java EE 8. Open Liberty to pełny serwer zgodny z profilem Java EE 8, dzięki czemu można łatwo uruchomić aplikację. Open Liberty jest również zgodny z pełnym profilem Dżakarta EE 8.

Uruchamianie aplikacji na platformie Open Liberty

Aby uruchomić aplikację na platformie Open Liberty, należy utworzyć plik konfiguracji serwera Open Liberty, aby wtyczka Liberty Maven mogła spakować aplikację do wdrożenia. Wtyczka Liberty Maven nie jest wymagana do wdrożenia aplikacji w usłudze OpenShift. Jednak w tym przykładzie używamy go w trybie deweloperskim (deweloperskim) platformy Open Liberty. Tryb dewelopera umożliwia łatwe uruchamianie aplikacji lokalnie. Aby dowiedzieć się więcej na temat programu liberty-maven-plugin, zobacz Tworzenie aplikacji internetowej za pomocą narzędzia Maven.

Wykonaj kroki opisane w tej sekcji, aby przygotować przykładową aplikację do późniejszego użycia w tym artykule. W tych krokach są używane narzędzia Maven i liberty-maven-plugin.

Wyewidencjonowywanie aplikacji

Użyj następujących poleceń, aby sklonować przykładowy kod dla tego przewodnika. Przykład znajduje się w witrynie GitHub.

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

Jeśli zostanie wyświetlony komunikat o stanie "odłączony HEAD", ten komunikat jest bezpieczny do zignorowania. Oznacza to po prostu wyewidencjonowanie tagu.

W repozytorium znajduje się kilka przykładów. Używamy open-liberty-on-aro/3-integration/connect-db/mysql. Oto struktura plików aplikacji:

open-liberty-on-aro/3-integration/connect-db/mysql
├─ src/main/
│  ├─ aro/
│  │  ├─ db-secret.yaml
│  │  ├─ openlibertyapplication.yaml
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ Dockerfile
├─ Dockerfile-wlp
├─ pom.xml

Katalogi java, zasoby i aplikacja internetowa zawierają kod źródłowy przykładowej aplikacji. Kod deklaruje i używa źródła danych o nazwie jdbc/JavaEECafeDB.

W katalogu aro umieściliśmy dwa pliki wdrożenia. db-secret.xml służy do tworzenia wpisów tajnych z poświadczeniami połączenia bazy danych. Plik openlibertyapplication.yaml służy do wdrażania obrazu aplikacji.

W katalogu głównym umieściliśmy dwa pliki Dockerfile. Pliki Dockerfile i Dockerfile-wlp są używane do debugowania lokalnego i do kompilowania obrazu na potrzeby wdrożenia usługi Azure Red Hat OpenShift, współpracując odpowiednio z platformami Open Liberty i WebSphere Liberty.

W katalogu liberty/config server.xml służy do konfigurowania połączenia bazy danych dla klastra Open Liberty i WebSphere Liberty.

Kompilowanie projektu

Korzystając ze zdefiniowanych wcześniej zmiennych środowiskowych, uruchom następujące polecenia w terminalu, aby skompilować projekt. Plik POM dla projektu odczytuje wiele właściwości ze środowiska.

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

# The following variables are used for deployment file generation
export DB_SERVER_NAME=$CLUSTER.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=${RESOURCEGROUP}db
export DB_USER=admin${RESOURCEGROUP}
export DB_PASSWORD='<server-admin-password>'
export NAMESPACE=open-liberty-demo

mvn clean install

(Opcjonalnie) Testowanie aplikacji lokalnie

Opcjonalnie możesz uruchomić aplikację lokalnie, aby sprawdzić, czy działa zgodnie z oczekiwaniami. Najpierw należy dodać regułę zapory, aby umożliwić maszynie lokalnej łączenie się z wystąpieniem serwera elastycznego usługi Azure Database for MySQL. Aby dodać regułę zapory, wykonaj następujące kroki:

  1. Zaloguj się do witryny Azure Portal i przejdź do utworzonego wcześniej wystąpienia serwera elastycznego usługi Azure Database for MySQL.
  2. W okienku po lewej stronie wybierz pozycję Ustawienia>Sieć.
  3. Wybierz pozycję Dodaj bieżący adres IP klienta.
  4. Wybierz pozycję Zapisz i poczekaj na dodanie reguły zapory.

Wykonaj poniższe kroki, liberty:devc aby uruchomić polecenie w celu lokalnego uruchomienia i przetestowania obrazu projektu i kontenera przed radzeniem sobie z dowolną złożonością platformy Azure. Aby uzyskać więcej informacji na liberty:devctemat programu , zobacz dokumentację wtyczki Liberty.

  1. W razie potrzeby uruchom lokalne środowisko platformy Docker. Instrukcje dotyczące tego działania różnią się w zależności od systemu operacyjnego hosta.

  2. Użyj następujących poleceń, aby uruchomić aplikację w liberty:devc trybie:

    cd ${BASE_DIR}/3-integration/connect-db/mysql
    
    # If you are running with Open Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile
    
    # If you are running with WebSphere Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile-wlp
    
  3. Sprawdź, czy aplikacja działa zgodnie z oczekiwaniami. W przypadku powodzenia powinien zostać wyświetlony komunikat podobny do [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds. w danych wyjściowych polecenia. Przejdź do https://localhost:9443/ witryny w przeglądarce i sprawdź, czy aplikacja jest dostępna, a wszystkie funkcje działają.

  4. Aby zatrzymać liberty:devc tryb, naciśnij Control+C.

Przygotowywanie obrazu aplikacji

Aby wdrożyć i uruchomić aplikację Liberty w klastrze usługi Azure Red Hat OpenShift, konteneryzuj aplikację jako obraz platformy Docker przy użyciu obrazów kontenerów Open Liberty lub obrazów kontenerów WebSphere Liberty.

Kompilowanie aplikacji i wypychanie do strumienia obrazu

Ponieważ aplikacja została już pomyślnie uruchomiona w kontenerze Liberty Docker przy użyciu liberty:devc polecenia , utworzysz obraz zdalnie w klastrze, wykonując następujące kroki:

  1. Upewnij się, że logujesz się do interfejsu wiersza polecenia platformy OpenShift przy użyciu kubeadmin poświadczeń.

  2. Użyj następujących poleceń, aby zidentyfikować katalog źródłowy i plik Dockerfile:

    cd ${BASE_DIR}/3-integration/connect-db/mysql
    
    # If you are building with the Open Liberty base image, the existing Dockerfile is ready for you
    
    # If you are building with the WebSphere Liberty base image, uncomment and execute the following two commands to rename Dockerfile-wlp to Dockerfile
    # mv Dockerfile Dockerfile.backup
    # mv Dockerfile-wlp Dockerfile
    
  3. Użyj następującego polecenia, aby zmienić projekt na open-liberty-demo:

    oc project open-liberty-demo
    
  4. Użyj następującego polecenia, aby utworzyć strumień obrazu:

    oc create imagestream javaee-cafe-mysql
    
  5. Użyj następującego polecenia, aby utworzyć konfigurację kompilacji, która określa tag strumienia obrazu danych wyjściowych kompilacji:

    oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
    
  6. Użyj następującego polecenia, aby uruchomić kompilację w celu przekazania zawartości lokalnej, konteneryzowania i danych wyjściowych do tagu strumienia obrazu określonego wcześniej:

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

Wdrażanie aplikacji w klastrze usługi Azure Red Hat OpenShift

Teraz możesz wdrożyć przykładową aplikację Liberty w klastrze Usługi Azure Red Hat OpenShift utworzonym wcześniej podczas pracy z wymaganiami wstępnymi.

Wdrażanie aplikacji z poziomu konsoli sieci Web

Ponieważ używamy operatora Open Liberty do zarządzania aplikacjami Liberty, musimy utworzyć wystąpienie niestandardowej definicji zasobów typu OpenLibertyApplication. Operator zajmuje się wszystkimi aspektami zarządzania zasobami openShift wymaganymi do wdrożenia. Aby utworzyć to wystąpienie, wykonaj następujące czynności:

  1. Zaloguj się do konsoli internetowej openShift z przeglądarki przy użyciu kubeadmin poświadczeń.

  2. Wybierz projekt, odwiedzając stronę Home>Projects>open-liberty-demo.

  3. Przejdź do pozycji Wpisy tajne>.

  4. Wybierz pozycję Utwórz> z YAML.

  5. Zastąp wygenerowany plik yaml elementem yours, który znajduje się w <lokalizacji path-to-repo>/3-integration/connect-db/mysql/target/db-secret.yaml.

  6. Wybierz pozycję Utwórz. Wrócisz do strony Szczegóły wpisu tajnego.

  7. Przejdź do pozycji Operatory zainstalowane operatory>.

  8. W środku strony zostanie wyświetlona strona Open Liberty.

  9. W obszarze Udostępnione interfejsy API wybierz pozycję OpenLibertyApplication. Nawigacja elementów w interfejsie użytkownika odzwierciedla rzeczywistą hierarchię zawierania używanych technologii.

    Diagram zawierania języka Java w usłudze Azure Red Hat OpenShift.

  10. Wybierz pozycję Utwórz plik OpenLibertyApplication.

  11. Wybierz widok YAML dla pozycji Konfiguruj za pośrednictwem.

  12. Zastąp wygenerowany plik yaml elementem yours, który znajduje się w folderze <path-to-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.

  13. Wybierz pozycję Utwórz. Zostanie wyświetlona lista aplikacji OpenLibertyApplications.

  14. Przejdź do pozycji >OpenLibertyApplication.

  15. Wybierz pozycję javaee-café-mysql.

  16. W środku strony wybierz pozycję Zasoby.

  17. W tabeli wybierz link javaee-café-mysql z typem Trasy.

  18. Na stronie, która zostanie otwarta, wybierz link poniżej lokalizacji.

Strona główna aplikacji zostanie otwarta w przeglądarce.

Usuwanie aplikacji z konsoli sieci Web

Po zakończeniu pracy z aplikacją wykonaj następujące kroki, aby usunąć aplikację z funkcji Open Shift:

  1. W okienku nawigacji po lewej stronie rozwiń wpis Operatory.
  2. Wybierz pozycję Zainstalowane operatory.
  3. Wybierz pozycję Otwórz wolność.
  4. W środku strony wybierz pozycję OpenLibertyApplication.
  5. W obszarze javaee-café-mysql wybierz wielokropek pionowy (trzy pionowe kropki), a następnie wybierz pozycję Usuń OpenLibertyApplication.
  6. Wybierz pozycję Usuń , aby usunąć aplikację.

Aby usunąć wpis tajny z funkcji Open Shift, wykonaj następujące czynności:

  1. Przejdź do pozycji Wpisy tajne>.
  2. Wybierz pozycję db-secret-mysql.
  3. Wybierz pozycję Akcje>Usuń wpis tajny.
  4. Wybierz pozycję Usuń , aby usunąć wpis tajny.

Czyszczenie zasobów

Usuń klaster Usługi Azure Red Hat OpenShift, wykonując kroki opisane w artykule Samouczek: usuwanie klastra usługi Azure Red Hat OpenShift 4. Upewnij się, że baza danych i wszystkie skojarzone zasoby również zostały usunięte.

Następne kroki

Więcej informacji można dowiedzieć się z odwołań używanych w tym przewodniku:

Aby zapoznać się z opcjami uruchamiania produktów WebSphere na platformie Azure, zobacz Co to są rozwiązania do uruchamiania rodziny produktów WebSphere na platformie Azure?