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.
Zdefiniuj, co rozumiesz przez „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 etapu „migracja ukończona” możesz utworzyć migawkę maszyn wirtualnych zgodnie z opisem w Tworzenie migawki wirtualnego dysku twardego. Bezpieczniej jest wprowadzać ulepszenia po tym, jak sprawdzisz, że można pomyślnie przywrócić z twojej 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 zobaczyć w sekcji JBoss EAP na maszynach wirtualnych Azure w części Red Hat JBoss EAP na platformie Azure.
Aby zapoznać się ze wstępnie utworzoną ofertą Azure Marketplace, zobacz Szybki start: wdrażanie klastra JBoss EAP na maszynach wirtualnych Azure.
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 portalu Azure dla ofert pokazują, które wersje 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 z gotowych ofert Azure Marketplace musisz mieć aktualne licencje od Red Hat dla wszystkich swoich serwerów JBoss EAP. Przeniesienie ich na platformę Azure pozwala wybrać między następującymi opcjami wdrażania, aby spełnić twoje potrzeby:
- Wdróż na maszynach wirtualnych z płatnością zgodnie z użyciem w systemie Red Hat Enterprise Linux. Ta opcja jest nazywana PAYG.
- 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 (Pool ID) z 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 przeglądem Red Hat Satellite, zobacz Red Hat Satellite.
Uwaga
Jeśli nie masz uprawnień EAP, możesz zarejestrować się w celu uzyskania bezpłatnej subskrypcji dla deweloperów za pośrednictwem Red Hat Developer Subscription for Individuals. Zapisz szczegóły konta do użycia jako nazwę użytkownika RHSM i hasło RHSM w predefiniowanych ofertach witryny Azure Marketplace.
Kroki odkrywania Pool ID zostały wyjaśnione w sekcji Wymagania wstępne w Szybki start: Wdrażanie klastra JBoss EAP na maszynach wirtualnych Azure (VMs).
Inwentaryzacja 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ści pamięci do wykorzystania przez kontener oraz liczby udziałów CPU, jakich potrzebuje kontener.
Istnieje możliwość zmiany rozmiaru pul węzłów w AKS. Aby dowiedzieć się, jak to zrobić, zobacz Zmienianie rozmiaru pul węzłów w usłudze Azure Kubernetes Service (AKS).
Inwentaryzacja wszystkich tajemnic
Sprawdź wszystkie ustawienia i pliki konfiguracji na serwerze produkcyjnym lub serwerach pod kątem wszelkich danych poufnych i haseł. Pamiętaj, aby sprawdzić plik jboss-web.xml w swoich plikach WAR. 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, proszę zobaczyć 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, którą wersję JDK używać, zobacz Obsługiwane Konfiguracje w dokumentacji 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, zapoznaj się z sekcją Informacje o źródłach danych 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ą, potrzebujesz dla niej alternatywnej lokalizacji. Należy rozważyć przeniesienie zawartości statycznej do usługi Azure Blob Storage i dodanie usługi Azure Front Door w celu szybkiego pobierania na całym świecie. Aby uzyskać więcej informacji, zobacz hostowanie statycznej witryny internetowej w usłudze Azure Storage i Integrowanie konta usługi Azure Storage z usługą Azure Front Door.
Określenie, czy jest konieczne połączenie z lokalną infrastrukturą.
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. Możesz również przeprowadzić refaktoryzację aplikacji, aby używać publicznie dostępnych interfejsów API udostępnianych przez odpowiednie 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 Java Message Service 1.1 z usługą Azure Service Bus w warstwie standardowa i 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 JBoss EAP, to aby był on dostępny, musisz dodać pliki JAR do ścieżki klas serwera i przenieść niezbędne pliki konfiguracyjne do odpowiedniej lokalizacji w katalogach serwera 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 wykorzystania zasobów maszyny wirtualnej platformy Azure, powinieneś podzielić EAR na oddzielne aplikacje internetowe.
Zidentyfikuj wszystkie procesy i demony zewnętrzne działające na serwerach produkcyjnych
Jeśli masz jakiekolwiek procesy działające poza serwerem aplikacji, takie jak demony monitorujące, musisz je wyeliminować lub przenieść gdzie indziej.
Migracja
Wybierz ofertę 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 chmurowych (wersja klasyczna).
JBoss EAP na klastrowanych maszynach wirtualnych
Jeśli wolisz, tradycyjny klaster maszyn wirtualnych korzystający z mechanizmu klastrowania JBoss EAP będzie odpowiedni dla migracji metodą "lift and shift" z wdrożeń, które już wykorzystują tę funkcję. Aby uzyskać więcej informacji, zobacz „Klastrowanie w aplikacjach webowych” w dokumentacji JBoss EAP. Wstępnie utworzona oferta 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.
Zestaw narzędzi Red Hat do migracji aplikacji
Zestaw narzędzi Red Hat Migration Toolkit for Applications to darmowe rozszerzenie dla 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 Omówienie Migration Toolkit for Applications (Zestaw 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
pl-PL: Po zrealizowaniu celów migracji zdefiniowanych w kroku Czynności przed migracją, przeprowadź całościowe 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:
Usługa Azure Storage umożliwia obsługę zawartości statycznej zainstalowanej na maszynach wirtualnych. Aby uzyskać więcej informacji, zobacz Dołączanie lub odłączanie dysku danych dla maszyny wirtualnej laboratorium w Azure DevTest Labs.
Wdróż aplikacje w zmigrowanym klastrze JBoss EAP za pomocą usługi Azure DevOps. Aby uzyskać więcej informacji, zobacz Rozpocznij korzystanie z dokumentacji Azure DevOps.
Popraw topologię sieci dzięki zaawansowanym usługom równoważenia obciążenia. Aby uzyskać więcej informacji, zapoznaj się z artykułem Korzystanie z usług równoważenia obciążenia na platformie Azure.
Tożsamości zarządzane Azure umożliwiają zarządzanie tajemnicami i przydzielanie dostępu opartego na rolach do zasobów Azure. Aby uzyskać więcej informacji, zobacz 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 o integrowaniu Entra ID firmy Microsoft z aplikacjami.
Użyj Azure Key Vault do przechowywania wszelkich informacji, które pełnią rolę sekretu. Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia dotyczące usługi Azure Key Vault.