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:
Przygotuj maszynę lokalną z zainstalowanym systemem operacyjnym przypominającym system Unix (na przykład Ubuntu, macOS lub Podsystem Windows dla systemu Linux).
Zainstaluj implementację języka Java Standard Edition (SE) w wersji 17 lub nowszej (na przykład Eclipse Open J9).
Zainstaluj program Maven w wersji 3.5.0 lub nowszej.
Zainstaluj platformę Docker dla systemu operacyjnego.
Zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.0.75 lub nowszej.
Zainstaluj w
envsubst
razie potrzeby.Sklonuj kod dla tego przykładu w systemie lokalnym. Przykład znajduje się w witrynie GitHub.
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ładStandard_E4s_v3
jest to minimalny rozmiar maszyny wirtualnej do zainstalowania operatora Elasticsearch w klastrze. Aby uzyskać więcej informacji, zobacz: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ń.
- Pamiętaj, aby wykonać kroki opisane w artykule "Instalowanie interfejsu wiersza polecenia platformy OpenShift", ponieważ w dalszej części tego artykułu użyjemy
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.
Zaloguj się do konsoli internetowej openShift z przeglądarki przy użyciu
kubeadmin
poświadczeń.Przejdź do pozycji Operator OperatorHub> i wyszukaj ciąg Open Liberty.
Wybierz pozycję Otwórz wolność w wynikach wyszukiwania.
Wybierz Zainstaluj.
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:
Wybierz pozycję Zainstaluj i zaczekaj minutę lub dwie, aż instalacja zostanie ukończona.
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.
Tworzenie przestrzeni nazw OpenShift dla aplikacji Java
Wykonaj następujące kroki, aby utworzyć przestrzeń nazw openShift do użycia z aplikacją:
Upewnij się, że zalogowano się do konsoli internetowej openShift z przeglądarki przy użyciu
kubeadmin
poświadczeń.Przejdź do obszaru Administracyjne>przestrzenie>nazw Utwórz przestrzeń nazw.
open-liberty-demo
Wypełnij pola Nazwa i wybierz pozycję Utwórz, jak pokazano poniżej.
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ą:
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.
Po utworzeniu bazy danych otwórz sieć ustawień> bazy danych>, a następnie wykonaj następujące kroki:
- 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.
- Wybierz pozycję Zezwalaj na dostęp publiczny z dowolnej usługi platformy Azure na platformie Azure do tego serwera.
- Upewnij się, że adres IPv4 klienta znajduje się na liście dozwolonych reguł zapory.
- Zapisz zmiany.
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:devc
temat programu , zobacz dokumentację wtyczki Liberty.
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.
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
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ź dohttps://localhost:9443/
witryny w przeglądarce i sprawdź, czy aplikacja jest dostępna, a wszystkie funkcje działają.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:
Upewnij się, że logujesz się do interfejsu wiersza polecenia platformy OpenShift przy użyciu
kubeadmin
poświadczeń.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
Użyj następującego polecenia, aby zmienić projekt na open-liberty-demo:
oc project open-liberty-demo
Użyj następującego polecenia, aby utworzyć strumień obrazu:
oc create imagestream javaee-cafe-mysql
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
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:
Zaloguj się do konsoli internetowej openShift z przeglądarki przy użyciu
kubeadmin
poświadczeń.Rozwiń węzeł Strona główna, wybierz pozycję Projekty>open-liberty-demo.
Przejdź do pozycji Operatory zainstalowane operatory>.
W środku strony zostanie wyświetlona strona Open Liberty.
W obszarze Udostępnione interfejsy API wybierz pozycję OpenLibertyApplication. Nawigacja elementów w interfejsie użytkownika odzwierciedla rzeczywistą hierarchię zawierania używanych technologii.
Wybierz pozycję Utwórz plik OpenLibertyApplication.
Wybierz widok YAML dla pozycji Konfiguruj za pośrednictwem.
Zastąp wygenerowany plik yaml elementem yours, który znajduje się w folderze <path-to-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.
Wybierz pozycję Utwórz. Zostanie wyświetlona lista aplikacji OpenLibertyApplications.
Przejdź do pozycji Wpisy tajne obciążeń>.
Wybierz pozycję Utwórz> z YAML.
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.
Wybierz pozycję Utwórz. Wrócisz do strony Szczegóły wpisu tajnego.
Przejdź do pozycji Operatory Zainstalowane operatory>>Otwórz Liberty>OpenLibertyApplication.
Wybierz pozycję javaee-café-mysql.
W środku strony wybierz pozycję Zasoby.
W tabeli wybierz link javaee-café-mysql z typem Trasy.
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:
- W okienku nawigacji po lewej stronie rozwiń wpis Operatory.
- Wybierz pozycję Zainstalowane operatory.
- Wybierz pozycję Otwórz wolność.
- W środku strony wybierz pozycję OpenLibertyApplication.
- W obszarze javaee-café-mysql wybierz wielokropek pionowy (trzy pionowe kropki), a następnie wybierz pozycję Usuń OpenLibertyApplication.
- Wybierz pozycję Usuń , aby usunąć aplikację.
Aby usunąć wpis tajny z funkcji Open Shift, wykonaj następujące czynności:
- Przejdź do pozycji Wpisy tajne obciążeń>.
- Wybierz pozycję db-secret-mysql.
- Wybierz pozycję Akcje>Usuń wpis tajny.
- 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:
- Open Liberty
- Azure Red Hat OpenShift
- Open Liberty, operator
- Konfiguracja serwera Open Liberty Server
- Wtyczka Liberty Maven
- Otwieranie obrazów kontenera Liberty
- Obrazy kontenerów WebSphere Liberty
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?
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla