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

Wykonaj następujące wymagania wstępne, aby pomyślnie użyć tego przewodnika:

  1. Przygotuj maszynę lokalną z zainstalowanym systemem operacyjnym przypominającym system Unix (na przykład Ubuntu, macOS lub Podsystem Windows dla systemu Linux).

  2. Zainstaluj implementację języka Java Standard Edition (SE) w wersji 17 lub nowszej (na przykład Eclipse Open J9).

  3. Zainstaluj program Maven w wersji 3.5.0 lub nowszej.

  4. Zainstaluj platformę Docker dla systemu operacyjnego.

  5. Zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.0.75 lub nowszej.

  6. Zainstaluj w envsubst razie potrzeby.

  7. Sklonuj kod dla tego przykładu w systemie lokalnym. Przykład znajduje się w witrynie GitHub.

  8. Postępuj zgodnie z instrukcjami w artykule Create an Azure Red Hat OpenShift 4 cluster (Tworzenie klastra usługi Azure Red Hat OpenShift 4).

    Chociaż krok "Pobierz wpis tajny ściągnięcia red hat" jest oznaczony jako opcjonalny, jest wymagany w tym artykule. Wpis tajny ściągania umożliwia klastrowi usługi Azure Red Hat OpenShift znalezienie operatora Open Liberty.

    Jeśli planujesz uruchamianie aplikacji intensywnie korzystających z pamięci w klastrze, określ odpowiedni rozmiar maszyny wirtualnej dla węzłów procesu roboczego przy użyciu parametru --worker-vm-size . Na przykład Standard_E4s_v3 jest to minimalny rozmiar maszyny wirtualnej do zainstalowania operatora Elasticsearch w klastrze. Aby uzyskać więcej informacji, zobacz:

  9. Połącz się z klastrem, wykonując kroki opisane w artykule Nawiązywanie połączenia z klastrem usługi Azure Red Hat OpenShift 4.

    • Pamiętaj, aby wykonać kroki opisane w artykule "Instalowanie interfejsu wiersza polecenia platformy OpenShift", ponieważ w dalszej części tego artykułu użyjemy oc polecenia .
    • 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 Operator instalacji sprawdź wersję 1.3 dla kanału aktualizacji, Wszystkie przestrzenie nazw w klastrze (ustawienie domyślne) dla trybu instalacji i Automatyczne w celu zatwierdzenia aktualizacji:

    Zrzut ekranu przedstawiający tworzenie subskrypcji operatora dla operatora Open Liberty.

  6. Wybierz pozycję Zainstaluj i zaczekaj minutę lub dwie, aż instalacja zostanie ukończona.

  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.

    Zainstalowane operatory z wyświetloną pozycją Open Liberty są zainstalowane.

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 obszaru Administracyjne>przestrzenie>nazw Utwórz przestrzeń nazw.

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

    Zrzut ekranu przedstawiający tworzenie przestrzeni nazw.

Tworzenie usługi Azure Database for MySQL

Wykonaj następujące kroki, aby skonfigurować usługę Azure Database for MySQL do użycia z aplikacją:

  1. Utwórz serwer elastyczny usługi Azure Database for MySQL, wykonując kroki opisane w artykule Szybki start: tworzenie usługi Azure Database for MySQL — serwer elastyczny przy użyciu witryny Azure Portal. Bazę danych można wdrożyć w tej samej grupie zasobów co klaster OpenShift. Wróć do tego dokumentu po utworzeniu bazy danych.

    Uwaga

    W kroku Podstawowe zapisz wartości Nazwa serwera.mysql.database.azure.com, Nazwa użytkownika administratora i Hasło.

  2. Po utworzeniu bazy danych otwórz sieć ustawień> bazy danych>, a następnie wykonaj następujące kroki:

    1. W obszarze Dostęp publiczny upewnij się, że wybrano opcję Zezwalaj na publiczny dostęp do tego zasobu za pośrednictwem Internetu przy użyciu publicznego adresu IP.
    2. Wybierz pozycję Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformie Azure do tego serwera.
    3. Upewnij się, że adres IPv4 klienta znajduje się na liście dozwolonych reguł zapory.
    4. Zapisz zmiany.

    Zrzut ekranu przedstawiający konfigurowanie sieci bazy danych mysql.

  3. Otwórz bazy danych> Ustawienia>bazy danych>Wybierz pozycję Dodaj. Wypełnij wartość w polu Nazwa i wybierz pozycję Zapisz , aby utworzyć nową bazę danych. Ta baza danych ma typ schematu jako użytkownik i jest używana dla aplikacji później.

    Uwaga

    Zapisz na bok nazwę utworzonej bazy danych.

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

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

Po zebraniu niezbędnych właściwości użyj następujących poleceń, aby skompilować aplikację. Plik POM dla projektu odczytuje wiele właściwości ze środowiska.

cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql

# The following variables are used for deployment file generation
export DB_SERVER_NAME=<Server name>.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=<Database name>
export DB_USER=<Server admin username>
export DB_PASSWORD=<Server admin password>
export NAMESPACE=open-liberty-demo

mvn clean install

Testowanie aplikacji lokalnie

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 <path-to-your-repo>/open-liberty-on-aro/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 <path-to-your-repo>/open-liberty-on-aro/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. Rozwiń węzeł Strona główna, wybierz pozycję Projekty>open-liberty-demo.

  3. Przejdź do pozycji Operatory zainstalowane operatory>.

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

  5. 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.

  6. Wybierz pozycję Utwórz plik OpenLibertyApplication.

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

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

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

  10. Przejdź do pozycji Wpisy tajne obciążeń>.

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

  12. 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.

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

  14. Przejdź do pozycji Operatory Zainstalowane operatory>>Otwórz Liberty>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 obciążeń>.
  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?