Migrowanie aplikacji JBoss EAP do aplikacji JBoss EAP na maszynach wirtualnych platformy Azure

W tym przewodniku opisano, co należy wiedzieć, kiedy chcesz migrować istniejącą aplikację JBoss EAP do uruchamiania w aplikacji JBoss EAP na maszynach wirtualnych platformy Azure.

Przed migracją

Aby zapewnić pomyślną migrację, przed rozpoczęciem wykonaj kroki oceny i spisu opisane w poniższych sekcjach.

Określenie punktu oznaczającego „ukończenie migracji”

Ten przewodnik i odpowiednie oferty witryny Azure Marketplace stanowią punkt wyjścia do przyspieszenia migracji obciążeń protokołu EAP JBoss na platformę Azure. Ważne jest, aby zdefiniować zakres nakładów pracy w związku z migracją. Przykładowo, czy stosujesz rygorystyczną metodę migracji „lift and shift” z istniejącej infrastruktury do usługi Azure Virtual Machines? Jeśli tak, idea równoczesnego zastosowania metody „lift and improve” podczas migracji może być kusząca.

Lepiej jednak trzymać się ściśle planu opartego na metodzie „lift and shift”, uwzględniając niezbędne zmiany zgodnie z opisem zawartym w tym przewodniku. Zdefiniuj punkt kontrolny oznaczający „ukończenie migracji”, aby wiedzieć, kiedy zostanie osiągnięty. Po osiągnięciu "ukończonej migracji" możesz utworzyć migawkę maszyn wirtualnych zgodnie z opisem w artykule Tworzenie migawki wirtualnego dysku twardego. Bezpieczniejsza jest poprawa po sprawdzeniu, czy można pomyślnie przywrócić z migawki. W ten sposób możesz kontynuować bez obawy przed utratą postępów migracji osiągniętych do tej pory.

Określanie, czy wstępnie utworzone oferty witryny Azure Marketplace są dobrym punktem wyjścia

Firma Red Hat i firma Microsoft nawiązali współpracowanie z zestawem szablonów rozwiązań platformy Azure w witrynie Azure Marketplace w celu zapewnienia solidnego punktu wyjścia do migracji na platformę Azure. Listę ofert można wyświetlić w sekcji JBoss EAP w usłudze Azure Virtual Machines w aplikacji Red Hat JBoss EAP na platformie Azure.

Aby zapoznać się ze wstępnie utworzoną ofertą witryny Azure Marketplace, zobacz Szybki start: wdrażanie serwera JBoss EAP na maszynie wirtualnej platformy Azure przy użyciu witryny Azure Portal.

Jeśli żadna z istniejących ofert nie jest dobrym punktem wyjścia, musisz odtworzyć wdrożenie ręcznie przy użyciu zasobów dostępnych w usłudze Azure Virtual Machines. Aby uzyskać więcej informacji, zobacz Co to jest IaaS?

Określanie, czy wersja protokołu EAP JBoss jest zgodna

Istniejąca wersja protokołu JBoss EAP musi być zgodna z wersją w ofertach infrastruktury jako usługi (IaaS). Strony witryny Azure Portal dla ofert pokazują, które wersje protokołu JBoss EAP są dostępne. Aby uzyskać więcej informacji, zobacz ofertę JBoss EAP Cluster on VMs (Klaster EAP JBoss na maszynach wirtualnych ) w witrynie Azure Portal. Jeśli istniejąca wersja JBoss EAP nie jest zgodna z wersjami dostępnymi w ofercie, musisz odtworzyć wdrożenie ręcznie przy użyciu zasobów IaaS platformy Azure. Aby uzyskać więcej informacji, zobacz Co to jest IaaS?

Upewnij się, że masz wymagane licencje

W przypadku korzystania ze wstępnie utworzonych ofert witryny Azure Marketplace musisz mieć bieżące licencje z oprogramowania Red Hat dla wszystkich serwerów JBoss EAP. Przeniesienie ich na platformę Azure pozwala wybrać między następującymi opcjami wdrażania, aby spełnić twoje potrzeby:

  • Wdrażanie na maszynach wirtualnych z płatnością zgodnie z rzeczywistym użyciem w systemie Red Hat Enterprise Linux. Ta opcja jest nazywana płatnością zgodnie z rzeczywistym użyciem.
  • Przenieś subskrypcje red hat JBoss EAP i Red Hat Enterprise Linux na platformę Azure za pośrednictwem programu Red Hat Cloud Access . Ta opcja jest znana jako BYOS.

W obu opcjach w celu przeniesienia licencji zostanie wyświetlony monit o identyfikator puli z oprogramowania Red Hat. Przed wypróbowaniem ofert upewnij się, że masz ten identyfikator.

Wstępnie utworzone oferty witryny Azure Marketplace obejmują obsługę aplikacji Red Hat Satellite na potrzeby zarządzania licencjami. Aby zapoznać się z omówieniem satelity Red Hat, zobacz Red Hat Satellite.

Uwaga

Jeśli nie masz uprawnień do korzystania z protokołu EAP, możesz zarejestrować się w celu uzyskania bezpłatnej subskrypcji dla deweloperów za pośrednictwem subskrypcji red hat developer dla użytkowników indywidualnych. Zapisz szczegóły konta do użycia jako nazwę użytkownika rhSM i hasło RHSM w wstępnie utworzonych ofert witryny Azure Marketplace.

Kroki odnajdywania identyfikatora puli opisano w sekcji Wymagania wstępne w przewodniku Szybki start: wdrażanie serwera JBoss EAP na maszynie wirtualnej platformy Azure przy użyciu witryny Azure Portal.

Utworzenie spisu pojemnoś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 będą potrzebne niezależnie od wybranej ścieżki migracji. Jest to przydatne, na przykład, aby ułatwić wybór rozmiaru maszyn wirtualnych w puli węzłów, ilość pamięci używanej przez kontener oraz liczbę udziałów procesora CPU w kontenerze.

Istnieje możliwość zmiany rozmiaru pul węzłów w usłudze AKS. Aby dowiedzieć się, jak to zrobić, zobacz Zmienianie rozmiaru pul węzłów w usłudze Azure Kubernetes Service (AKS).

Utworzenie spisu wszystkich wpisów tajnych

Sprawdź wszystkie właściwości i pliki konfiguracji na serwerze produkcyjnym lub serwerach pod kątem wszelkich wpisów tajnych i haseł. Pamiętaj, aby sprawdzić plik jboss-web.xml w regułach WARs. Wewnątrz aplikacji możesz również znaleźć pliki konfiguracji zawierające hasła lub poświadczenia.

Rozważ przechowywanie tych wpisów tajnych w usłudze Azure Key Vault. Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia dotyczące usługi Azure Key Vault.

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>

Sprawdzanie, czy obsługiwana wersja języka Java działa poprawnie

Protokół JBoss EAP na maszynach wirtualnych platformy Azure wymaga obsługiwanej wersji języka Java. Aby uzyskać wskazówki dotyczące używanej wersji zestawu JDK, zobacz Obsługiwane konfiguracje w dokumentacji oprogramowania Red Hat.

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 zewnętrznych

Zasoby zewnętrzne, takie jak źródła danych, brokery komunikatów JMS i inne, są wstrzykiwane za pośrednictwem interfejsu Java Naming and Directory Interface (JNDI). Niektóre takie zasoby mogą wymagać migracji lub ponownej konfiguracji.

W aplikacji

Sprawdź pliki WEB-INF/jboss-web.xml i/lub WEB-INF/web.xml. Poszukaj elementów <Resource> wewnątrz elementu <Context>.

Źródła danych

Źródła danych to zasoby JNDI z atrybutem type ustawionym na javax.sql.DataSource. Dla każdego źródła danych należy udokumentować 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, zobacz sekcjęAbout JBoss EAP Datasources (Informacjo o źródłach danych platformy JBoss EAP) w dokumentacji platformy JBoss EAP.

Wszystkie inne zasoby zewnętrzne

Nie jest możliwe udokumentowanie każdej możliwej zależności zewnętrznej w tym przewodniku. Twój zespół odpowiada za sprawdzenie, czy każda zależność zewnętrzna aplikacji może być spełniona po migracji.

Określanie, czy i jak jest używany system plików

Każde użycie systemu plików na serwerze aplikacji wymaga ponownej konfiguracji lub, w rzadkich przypadkach, zmian architektury. Moduły JBoss EAP lub kod aplikacji mogą używać systemu plików. Można zidentyfikować niektóre lub wszystkie scenariusze opisane w poniższych sekcjach.

Zawartość statyczna tylko do odczytu

Jeśli aplikacja aktualnie obsługuje zawartość statyczną, potrzebna jest dodatkowa lokalizacja. Warto rozważyć przeniesienie zawartości statycznej do usługi Azure Blob Storage i dodanie usługi Azure CDN, aby zapewnić błyskawiczne pobieranie na całym świecie. Aby uzyskać więcej informacji, zobacz Hostowanie statycznej witryny internetowej w usłudze Azure Storage i Szybki start: integrowanie konta usługi Azure Storage z usługą Azure CDN. Możesz również bezpośrednio wdrożyć zawartość statyczną w aplikacji w planie Azure Spring Apps Enterprise. Aby uzyskać więcej informacji, zobacz Wdrażanie internetowych plików statycznych.

Dynamicznie publikowana zawartość statyczna

Jeśli aplikacja zezwala na zawartość statyczną, która została przekazana/utworzona przez aplikację, ale pozostaje niezmienna po jej utworzeniu, możesz użyć usług Azure Blob Storage i Azure CDN, jak opisano powyżej, oraz usługi Azure Function do obsługiwania przekazywania i odświeżania usługi CDN. Udostępniliśmy przykładową implementację do użycia w temacie Przekazywanie zawartości statycznej i jej wstępne ładowanie w usłudze CDN za pomocą usługi Azure Functions. Możesz również bezpośrednio wdrożyć zawartość statyczną w aplikacji w planie Azure Spring Apps Enterprise. Aby uzyskać więcej informacji, zobacz Wdrażanie internetowych plików statycznych.

Określenie, czy jest konieczne połączenie z lokalną usługą

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 Wybieranie rozwiązania do łączenia sieci lokalnej z platformą Azure. Możesz również przeprowadzić refaktoryzację aplikacji, aby korzystać z publicznie dostępnych interfejsów API uwidacznianych przez Twoje zasoby lokalne.

Określanie, czy używane są kolejki lub tematy Java Message Service (JMS)

Jeśli aplikacja korzysta z kolejek lub tematów JMS, należy je zmigrować do zewnętrznie hostowanego serwera JMS. Usługa Azure Service Bus i protokół Advanced Message Queuing Protocol (AMQP) mogą stanowić doskonałą strategię migracji w przypadku korzystania z usługi JMS. Aby uzyskać więcej informacji, zobacz Używanie usługi JMS z usługą Azure Service Bus 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.

Określanie, czy są używane łączniki JCA

Jeśli aplikacja używa łączników JCA, sprawdź, czy możesz użyć łącznika JCA w aplikacji JBoss EAP. Jeśli możesz użyć łącznika JCA w aplikacji JBoss EAP, aby była dostępna, musisz dodać pliki JAR do ścieżki klasy serwera i umieścić niezbędne pliki konfiguracji w odpowiedniej lokalizacji w katalogach serwerów JBoss EAP.

Określanie, czy usługa JAAS jest w użyciu

Jeśli Twoja aplikacja korzysta z usługi JAAS, należy przechwycić sposób konfiguracji tej usługi. Jeśli używa ona bazy danych, możesz przekonwertować ją na domenę JAAS w aplikacji JBoss EAP. Jeśli jest to implementacja niestandardowa, należy sprawdzić, czy może być używana w aplikacji JBoss EAP.

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 Twoja aplikacja jest spakowana jako plik EAR, przejrzyj i zarejestruj konfigurację pliku application.xml.

Uwaga

Jeśli chcesz mieć możliwość niezależnego skalowania poszczególnych aplikacji internetowych w celu lepszego korzystania z zasobów maszyny wirtualnej platformy Azure, należy podzielić ear na oddzielne aplikacje internetowe.

Identyfikacja wszystkich procesów i demonów zewnętrznych działających na serwerach produkcyjnych

Jeśli masz jakiekolwiek procesy działające poza serwerem aplikacji, takie jak demony monitorowania, musisz wyeliminować je lub zmigrować do innego miejsca.

Migracja

Wybieranie oferty JBoss EAP na maszynach wirtualnych platformy Azure

Oferty opisane w poniższych sekcjach są dostępne dla protokołu JBoss EAP na maszynach wirtualnych platformy Azure.

Podczas wdrażania oferty zostanie wyświetlony monit o wybranie rozmiaru maszyny wirtualnej dla węzłów serwera JBoss EAP. Ważne jest, aby uwzględnić wszystkie aspekty rozmiaru (pamięć, procesor, dysk) wybranej maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Rozmiary usług Cloud Services (wersja klasyczna).

JBoss EAP w usłudze Azure Virtual Machine Scale Sets

Zestawy skalowania maszyn wirtualnych udostępniają grupy maszyn wirtualnych o zrównoważonym obciążeniu i wysoce skalowalnych dla obciążeń o dowolnym rozmiarze. Aby uzyskać więcej informacji, zobacz Co to są zestawy skalowania maszyn wirtualnych?

JBoss EAP na klastrowanych maszynach wirtualnych

Jeśli wolisz, tradycyjny klaster maszyn wirtualnych korzystający z mechanizmu klastrowania JBoss EAP jest odpowiedni dla wdrożenia, które już korzystają z tej funkcji. Aby uzyskać więcej informacji, zobacz Konfigurowanie klastra EAP 7 oprogramowania Red Hat JBoss w dokumentacji protokołu EAP JBoss. Wstępnie utworzona oferta witryny Azure Marketplace obejmuje obsługę trybu domeny. Aby zapoznać się z omówieniem domen EAP i trybu domeny, zobacz Zarządzanie domenami.

Pojedynczy serwer JBoss EAP

Jeśli potrzebujesz tylko jednego serwera, na przykład do testowania i oceny lub dla lekkich obciążeń, istnieje oferta, która wdraża pojedynczy serwer JBoss EAP na jednej maszynie wirtualnej.

Red Hat Migration Toolkit for Apps

Zestaw narzędzi Red Hat Migration Toolkit for Applications to bezpłatne rozszerzenie dla programu Visual Studio Code. To rozszerzenie analizuje kod i konfigurację aplikacji, aby udostępnić zalecenia dotyczące migracji do chmury ze środowiska lokalnego. Aby uzyskać więcej informacji, zobacz Migration Toolkit for Applications overview (Omówienie zestawu narzędzi migracji dla aplikacji).

Zawartość tego przewodnika ułatwia rozwiązywanie problemów z innymi składnikami podróży migracji, takimi jak wybór odpowiedniego rozmiaru maszyny wirtualnej i zewnętrzna zmiana stanu sesji.

Po migracji

Po osiągnięciu celów migracji zdefiniowanych w kroku Czynności przed migracją wykonaj niektóre 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: