Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku opisano, co należy wiedzieć, kiedy chcesz przeprowadzić migrację istniejącej aplikacji JBoss EAP do uruchomienia w usłudze Azure Red Hat OpenShift.
Przed migracją
Aby zapewnić pomyślną migrację, przed rozpoczęciem wykonaj kroki oceny i spisu opisane w poniższych sekcjach.
Upewnij się, że wybrany cel jest odpowiedni dla procesu migracji
Pierwszym krokiem pomyślnej migracji aplikacji JBoss EAP na platformę Azure jest wybranie najbardziej odpowiedniego celu migracji. Protokół JBoss EAP działa dobrze na maszynach wirtualnych platformy Azure lub w usłudze Azure Red Hat OpenShift.
Obiekt docelowy maszyny wirtualnej jest najprostszym wyborem, ponieważ najbardziej przypomina wdrożenie lokalne. Środowisko administracyjne i wdrożenie maszyn wirtualnych jest podobne do środowiska lokalnego. Wybranie maszyn wirtualnych umożliwia odroczenie modernizacji.
Rozwiązanie Red Hat OpenShift łączy przetestowane i zaufane usługi w celu zmniejszenia problemów z opracowywaniem, modernizowaniem, wdrażaniem, uruchamianiem i zarządzaniem aplikacjami. Usługa Azure Red Hat OpenShift jest oparta na platformie Kubernetes. Usługa Azure Red Hat OpenShift zapewnia spójne środowisko w chmurze publicznej, lokalnie, w chmurze hybrydowej lub architekturze brzegowej.
Jeśli minimalizacja zmian jest najważniejszym czynnikiem dla nakładu pracy nad migracją, rozważ migrację opartą na maszynie wirtualnej. W takim przypadku zobacz Migrowanie aplikacji JBoss EAP do środowiska JBoss EAP na maszynach wirtualnych platformy Azure. Jeśli możesz tolerować konwertowanie aplikacji do uruchomienia w usłudze Red Hat OpenShift w celu zmniejszenia kosztów środowiska uruchomieniowego, rozważ migrację opartą na usłudze Azure Red Hat OpenShift. W takim przypadku przejdź do Migrowanie aplikacji JBoss EAP na platformę JBoss EAP w usłudze Azure Red Hat OpenShift. Aby zrozumieć różnice między JBoss EAP a JBoss EAP for OpenShift, zobacz Porównanie: JBoss EAP i JBoss EAP for OpenShift.
Określ, czy gotowa oferta w witrynie Azure Marketplace jest dobrym punktem wyjścia
Najpierw zdecyduj, że usługa Azure Red Hat OpenShift jest odpowiednim celem wdrożenia. Następnie zdecyduj, czy wstępnie przygotowana oferta w Azure Marketplace jest dobrym punktem wyjścia. Rozważ następujące kwestie dotyczące wstępnie utworzonej oferty witryny Azure Marketplace:
- Firma Red Hat i firma Microsoft stworzyli tę ofertę, aby umożliwić szybką aprowizację aplikacji JBoss EAP w usłudze Azure Red Hat OpenShift.
- Na wysokim poziomie oferta automatyzuje następujące kroki.
- Zainstaluj operator EAP na platformie Azure Red Hat OpenShift.
- Tworzenie obrazu aplikacji przy użyciu szablonu eap-s2i-build. Aby uzyskać więcej informacji na temat Source-to-image (S2I), zobacz Using OpenJDK 11 source-to-image for OpenShift.
- Wdróż aplikację Java przy użyciu operatora protokołu EAP. Więcej informacji można znaleźć w dokumentacji referencyjnej dotyczącej operatora EAP w serwisie Red Hat.
Jeśli nie korzystasz z gotowej oferty w Azure Marketplace, musisz nauczyć się bezpośrednio korzystać z operatora EAP. Opanowanie operatora wykracza poza zakres tego artykułu. Pełna dokumentacja Operatora EAP jest dostępna na stronie Red Hat.
W pozostałej części tej sekcji przedstawiono pewne zagadnienia dotyczące podejmowania decyzji o użyciu wstępnie utworzonej oferty witryny Azure Marketplace lub bezpośredniego korzystania z operatora.
Określanie, czy wersja protokołu EAP JBoss jest zgodna
Istniejąca wersja protokołu EAP JBoss musi być jedną z wersji obsługiwanych przez operatora. Aby uzyskać więcej informacji, zobacz sekcję Zgodność wersji i wsparcie w dokumentacji Red Hat.
Inwentaryzacja wydajności serwerów
Udokumentowanie sprzętu (pamięci, procesora CPU, dysku) bieżących serwerów produkcyjnych oraz średniej i szczytowej liczby żądań oraz wykorzystania zasobów. Te informacje są potrzebne niezależnie od wybranej ścieżki migracji. Następujące aspekty i inne korzyści wynikają ze szczegółowego spisu pojemności serwera.
- Aby ułatwić wybór rozmiaru maszyn wirtualnych w puli węzłów.
- Aby zrozumieć ilość pamięci, która ma być używana przez kontener.
- Aby dowiedzieć się, ilu udziałów CPU potrzebuje kontener.
Istnieje możliwość zmiany rozmiaru pul węzłów w usłudze Azure Red Hat OpenShift. Aby uzyskać więcej informacji, zobacz Zmiana rozmiaru klastra — Microsoft Azure w dokumentacji Red Hat.
Zinwentaryzuj wszystkie sekrety
Przed pojawieniem się technologii typu „konfiguracja jako usługa”, takich jak Azure Key Vault, nie istniało dobrze zdefiniowane pojęcie „sekretów”. Zamiast tego miałeś rozproszony zestaw ustawień konfiguracyjnych, który w praktyce działał jak to, co dziś nazywamy „sekretami”. W przypadku serwerów aplikacji, takich jak JBoss EAP, te wpisy tajne znajdują się w wielu różnych plikach konfiguracji i magazynach konfiguracji. Sprawdź wszystkie pliki z właściwościami i pliki konfiguracyjne na serwerze/serwerach produkcyjnych pod kątem wszelkich sekretów i haseł. Pamiętaj, aby sprawdzić pliki konfiguracji, takie jak custom-config.xml lub jboss-web.xml w aplikacjach. Możesz również znaleźć pliki konfiguracji zawierające hasła lub poświadczenia wewnątrz aplikacji. Aby uzyskać więcej informacji, zobacz artykuł Podstawowe pojęcia dotyczące usługi Azure Key Vault.
Po utworzeniu solidnego spisu wpisów tajnych zapoznaj się z dokumentacją operatora protokołu EAP dotyczącą wpisów tajnych. Aby uzyskać więcej informacji, zobacz sekcję Tworzenie obiektu Secret w dokumentacji Red Hat.
Utworzenie spisu wszystkich certyfikatów
Zapisz wszystkie certyfikaty używane na potrzeby publicznych punktów końcowych protokołu SSL. Wszystkie certyfikaty na serwerach produkcyjnych można wyświetlić, uruchamiając następujące polecenie:
keytool -list -v -keystore <path to keystore>
Po utworzeniu solidnego spisu certyfikatów można je skonfigurować w usłudze Azure Red Hat OpenShift. Więcej informacji znajduje się w sekcji Konfiguracja protokołu TLS w OpenShift Container Platform(replace) w dokumentacji Red Hat.
Sprawdzanie, czy obsługiwana wersja języka Java działa poprawnie
Wszystkie ścieżki migracji protokołu JBoss EAP do usługi Azure Red Hat OpenShift wymagają określonej wersji języka Java, która różni się w zależności od każdej ścieżki. Należy sprawdzić, czy aplikacja może działać poprawnie przy użyciu tej obsługiwanej wersji.
Uwaga
Ta weryfikacja jest szczególnie ważna, jeśli bieżący serwer działa na nieobsługiwanym zestawie JDK (na przykład Oracle JDK lub IBM OpenJ9).
Aby uzyskać informacje na temat bieżącej wersji języka Java, zaloguj się na serwerze produkcyjnym i uruchom następujące polecenie:
java -version
Utworzenie spisu zasobów JNDI
Utwórz spis wszystkich zasobów JNDI. Na przykład źródła danych, takie jak bazy danych, mogą mieć powiązaną nazwę JNDI, która umożliwia JPA prawidłowe wiązanie instancji z określoną bazą danych. Aby uzyskać więcej informacji na temat zasobów JNDI i baz danych, zobacz Zarządzanie źródłami danych w dokumentacji Red Hat. Inne zasoby związane z JNDI, takie jak brokery komunikatów ActiveMQ Artemis, mogą wymagać migracji lub ponownej konfiguracji. Aby uzyskać więcej informacji na temat konfiguracji ActiveMQ Artemis, zobacz Konfigurowanie komunikacji w dokumentacji Red Hat.
Określenie, czy jest używana replikacja sesji
Jeśli aplikacja opiera się na replikacji sesji, z Infinispan lub bez niego, masz trzy opcje:
- Narzędzie Infinispan działa dobrze na maszynach wirtualnych platformy Azure, ale jeśli używasz profilu zapewniającego wysoką dostępność, należy pamiętać o konfiguracji
JGroups. Ustal, czy system działa jako domena zarządzana, czy autonomiczny serwer.- Jeśli w domenie zarządzanej profile
halubfull-hazajmują się grupami JGroup. - W przypadku serwera standalone, pliki konfiguracyjne standalone-ha.xml lub standalone-full-ha.xml dotyczą konfiguracji JGroups.
- Platforma Microsoft Azure nie obsługuje protokołów odnajdywania JGroups opartych na multiemisji UDP. Aby uzyskać więcej informacji, zobacz dokument Korzystanie z wysokiej dostępności JBoss EAP na platformie Microsoft Azure w dokumentacji Red Hat.
- Jeśli w domenie zarządzanej profile
- Zrefaktoryzuj aplikację tak, aby korzystała z bazy danych do zarządzania sesjami.
- Zrefaktoryzuj aplikację, aby przenieść obsługę sesji do usługi Azure Redis Service. Aby uzyskać więcej informacji, zobacz Azure Cache for Redis.
W przypadku wszystkich tych opcji dobrym pomysłem jest opanowanie sposobu, w jaki JBoss EAP wykonuje replikację stanu sesji HTTP. Aby uzyskać więcej informacji, zobacz sekcję Informacje o replikacji sesji HTTP w dokumentacji Red Hat.
Udokumentowanie źródeł danych
Jeśli aplikacja korzysta z dowolnych baz danych, należy przechwycić następujące informacje:
- Jaka jest nazwa źródła danych?
- Jaka jest konfiguracja puli połączeń?
- Gdzie mogę znaleźć plik JAR sterownika JDBC?
Aby uzyskać więcej informacji na temat sterowników JDBC w JBoss EAP, zobacz Zarządzanie źródłami danych w dokumentacji Red Hat.
Ustal, czy JBoss EAP został dostosowany
Ustal, które z następujących dostosowań zostały wdrożone, i określ, jakie działania zostały wykonane.
- Czy zostały zmienione skrypty uruchamiania? Do takich skryptów należą host, eap_env, standalone i domain.
- Czy do środowiska JVM są przekazywane określone parametry?
- Czy do ścieżki klas serwera zostały dodane pliki JAR?
Te dostosowania należy przechwycić w obrazie kontenera uruchomionym w usłudze Azure Red Hat OpenShift. Aby uzyskać więcej informacji, zobacz temat Konfigurowanie obrazu JBoss EAP for OpenShift dla aplikacji Java w dokumentacji Red Hat.
Ustal, czy jest potrzebne połączenie ze środowiskiem lokalnym
Jeśli aplikacja wymaga dostępu do dowolnych usług lokalnych, musisz aprowizować jedną z usług łączności platformy Azure. Aby uzyskać więcej informacji, zobacz Łączenie sieci lokalnej z platformą Azure. Alternatywnie musisz zrefaktoryzować aplikację tak, aby korzystała z publicznie dostępnych interfejsów API udostępnianych przez twoje zasoby lokalne.
Określ, czy używane są kolejki czy tematy Java Message Service (JMS)
Jeśli aplikacja korzysta z kolejek lub tematów JMS, możesz przeprowadzić migrację ich do serwera JMS hostowanego zewnętrznie. Usługa Azure Service Bus i protokół Advanced Message Queuing Protocol mogą stanowić doskonałą strategię migracji w przypadku korzystania z usługi JMS. Aby uzyskać więcej informacji, zobacz: Używanie usługi Java Message Service 1.1 z usługą Azure Service Bus w warstwie Standard i protokołem AMQP 1.0.
W przypadku skonfigurowania magazynów trwałych usługi JMS należy przechwycić ich konfigurację i zastosować ją po migracji.
Aby uzyskać więcej informacji, zobacz Konfigurowanie komunikatów w dokumentacji Red Hat.
Ustalanie, czy są używane niestandardowe, udostępnione biblioteki Java EE
Jeśli korzystasz z funkcji udostępnionych bibliotek Java EE, masz dwie opcje:
- Przeprowadź refaktoryzację kodu aplikacji, usuwając wszystkie zależności od bibliotek, i dołącz funkcje bezpośrednio do aplikacji.
- Dodaj biblioteki do ścieżki klas serwera.
Te biblioteki można obsługiwać przy użyciu tych samych technik, co opisano w sekcji Określanie, czy JBoss EAP został dostosowany .
Określanie, czy aplikacja zawiera kod właściwy dla systemu operacyjnego
Jeśli aplikacja zawiera jakikolwiek kod z zależnościami systemu operacyjnego hosta, należy go refaktoryzować, aby usunąć te zależności. Na przykład może być konieczne zastąpienie każdego wystąpienia lub w ścieżkach systemu plików znakiem lub , jeśli aplikacja działa w systemie Windows.
Usługa Azure Red Hat OpenShift działa w systemie OpenShift 4 przy użyciu systemu Red Hat Enterprise Linux CoreOS (RHCOS) jako systemu operacyjnego dla wszystkich węzłów płaszczyzny sterowania i procesu roboczego. Każdy kod specyficzny dla systemu operacyjnego musi być zgodny z rhCOS.
Ustalanie, czy aplikacja składa się z wielu plików WAR
Jeśli Twoja aplikacja składa się z wielu plików WAR, należy traktować poszczególne pliki jako oddzielne aplikacje. W przypadku każdej z nich należy wykonać instrukcje opisane w tym przewodniku.
Ustalanie, czy aplikacja jest spakowana jako plik EAR
Jeśli aplikacja jest spakowana w pliku EAR, pamiętaj, aby zachować ich konfiguracje.
Zidentyfikuj wszystkie zewnętrzne procesy i demony uruchomione na serwerach produkcyjnych
Jeśli jakieś procesy działają poza serwerem aplikacyjnym, na przykład demony monitorujące, musisz je usunąć lub przenieść w inne miejsce.
Uwzględnij wymagania dotyczące równoważenia obciążenia
Najlepszym sposobem uwzględnienia równoważenia obciążenia jest użycie integracji z usługą App Gateway. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure Application Gateway?
Migracja
W krokach w tej sekcji założono, że analiza doprowadziła Cię do podjęcia decyzji o użyciu wstępnie utworzonej oferty witryny Azure Marketplace.
Skonfiguruj ofertę
Aby otworzyć ofertę w portalu Azure, zobacz JBoss EAP w usłudze Azure Red Hat OpenShift. Wybierz Utwórz, a następnie postępuj zgodnie z instrukcjami w ofercie.
Migrowanie aplikacji
Ta oferta obsługuje proces Source-to-Image (S2I) do tworzenia i uruchamiania aplikacji Java na obrazie JBoss EAP for OpenShift. Aplikacja Red Hat zawiera przykład pokazujący, jak to zrobić ręcznie, jeśli chcesz wdrożyć je później samodzielnie. Więcej informacji można znaleźć w dokumentacji Red Hat — zobacz Rozdział 2. Tworzenie i uruchamianie aplikacji Java w obrazie JBoss EAP for OpenShift.
Po migracji
Po osiągnięciu celów migracji zdefiniowanych w kroku przed migracją przeprowadź kompleksowe testy akceptacyjne, aby sprawdzić, czy wszystko działa zgodnie z oczekiwaniami. Aby uzyskać informacje na temat niektórych potencjalnych ulepszeń po migracji, zobacz następujące artykuły:
Implementowanie skalowania. Skalowanie dynamiczne to kluczowa propozycja wartości, która uzasadnia złożoność korzystania z usługi Azure Red Hat OpenShift. Informacje na temat wdrożenia rozwiązania skalowania można znaleźć w sekcji Stosowanie automatycznego skalowania do klastra OpenShift Container Platform w dokumentacji OpenShift.
Możesz chcieć wykonać więcej konfiguracji w usłudze Application Gateway. Aby uzyskać więcej informacji, zobacz Omówienie konfiguracji usługi Application Gateway.
Popraw topologię sieci dzięki zaawansowanym usługom równoważenia obciążenia. Aby uzyskać więcej informacji, zobacz Korzystanie z usług równoważenia obciążenia w usłudze Azure.
Uzyskaj zoptymalizowane pod kątem języka Java monitorowanie wydajności aplikacji za pomocą usług Azure Monitor i Application Insights. Aby uzyskać więcej informacji, zobacz Monitorowanie aplikacji bez instrumentacji dla platformy Kubernetes — Azure Monitor Application Insights.
Wdróż aplikacje w zmigrowanym klastrze usługi Azure Red Hat OpenShift za pomocą usługi Azure DevOps. Aby uzyskać więcej informacji, zobacz dokumentację wprowadzającą do usługi Azure DevOps.
Używaj tożsamości zarządzanych platformy Azure do zarządzania wpisami tajnymi i przypisywania dostępu opartego na rolach do zasobów platformy Azure. Aby uzyskać więcej informacji, zobacz artykuł Co to są tożsamości zarządzane dla zasobów platformy Azure?
Integrowanie uwierzytelniania i autoryzacji języka Java EE z identyfikatorem Entra firmy Microsoft. Aby uzyskać więcej informacji, zobacz przewodnik wprowadzający dotyczący integracji Microsoft Entra ID z aplikacjami.