Migrowanie aplikacji Spring Cloud do usługi Azure Spring Apps

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

W tym przewodniku opisano, co należy wiedzieć, kiedy chcesz przeprowadzić migrację istniejącej aplikacji Spring Cloud do uruchamiania w usłudze Azure Spring Apps.

Przed migracją

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

Jeśli nie możesz spełnić żadnego z tych wymagań przed migracją, zapoznaj się z następującymi przewodnikami po migracji towarzyszącej:

  • Migrowanie wykonywalnych aplikacji JAR do kontenerów w usłudze Azure Kubernetes Service (zaplanowane wskazówki)
  • Migrowanie wykonywalnych aplikacji JAR do usługi Azure Virtual Machines (zaplanowane wskazówki)

Sprawdzanie składników aplikacji

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

Znajdź wszystkie wystąpienia, w których usługi zapisują dane i/lub odczytują z lokalnego systemu plików. Określ, gdzie pliki krótkoterminowe/tymczasowe są zapisywane i odczytywane oraz gdzie pliki długoterminowe są zapisywane i odczytywane.

Uwaga

Usługa Azure Spring Apps zapewnia 5 GB magazynu tymczasowego na wystąpienie usługi Azure Spring Apps zainstalowane w programie /tmp. Jeśli pliki tymczasowe są zapisywane poza tym limitem lub w innej lokalizacji, wymagane będą zmiany kodu.

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.

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.

Ustal, czy którakolwiek z usług zawiera kod specyficzny dla systemu operacyjnego

Jeśli aplikacja zawiera dowolny kod z zależnościami w systemie operacyjnym hosta, musisz przeprowadzić jej refaktoryzację, aby usunąć te zależności. Na przykład może być konieczne zastąpienie każdego użycia symbolu / lub \ w ścieżkach systemu plików przez File.Separator lub Paths.get.

Przełączanie na obsługiwaną platformę

Usługa Azure Spring Apps oferuje określone wersje języka Java i określone wersje platformy Spring Boot i Spring Cloud. Aby zapewnić zgodność, najpierw przeprowadź migrację aplikacji do jednej z obsługiwanych wersji języka Java w bieżącym środowisku, a następnie wykonaj pozostałe kroki migracji. Pamiętaj, aby w pełni przetestować konfigurację wynikową. W tych testach użyj najnowszej stabilnej wersji dystrybucji systemu Linux.

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

Aby uzyskać obsługiwane wersje języków Java, Spring Boot i Spring Cloud, a także instrukcje dotyczące aktualizowania, zobacz Przygotowywanie aplikacji do wdrożenia w usłudze Azure Spring Apps.

Identyfikowanie wersji platformy Spring Boot

Sprawdź zależności każdej migrowanej aplikacji, aby określić jej wersję spring boot.

Maven

W projektach Maven wersja Spring Boot jest zwykle znajdowana w <parent> elemplecie pliku POM:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.10</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
Gradle

W projektach narzędzia Gradle wersja platformy Spring Boot będzie zwykle znajdowana w plugins sekcji jako wersja org.springframework.boot wtyczki:

plugins {
  id 'org.springframework.boot' version '2.7.10'
  id 'io.spring.dependency-management' version '1.0.15.RELEASE'
  id 'java'
}

W przypadku wszystkich aplikacji korzystających z platformy Spring Boot 1.x postępuj zgodnie z przewodnikiem migracji spring boot 2.0, aby zaktualizować je do obsługiwanej wersji spring boot. Aby uzyskać obsługiwane wersje, zobacz sekcję Wersje platformy Spring Boot i spring Cloud w temacie Przygotowywanie aplikacji do wdrożenia w usłudze Azure Spring Apps.

Identyfikowanie wersji platformy Spring Cloud

Sprawdź zależności każdej migrowania aplikacji, aby określić wersję używanych składników platformy Spring Cloud.

Maven

W projektach Maven wersja platformy Spring Cloud jest zwykle ustawiana we spring-cloud.version właściwości :

  <properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>2021.0.6</spring-cloud.version>
  </properties>
Gradle

W projektach Gradle wersja spring Cloud jest zwykle ustawiana w bloku "dodatkowe właściwości":

ext {
  set('springCloudVersion', "2021.0.6")
}

Należy zaktualizować wszystkie aplikacje, aby korzystały z obsługiwanych wersji usługi Spring Cloud. Aby uzyskać listę obsługiwanych wersji, zobacz sekcję Wersje platformy Spring Boot i platformy Spring Cloud w temacie Przygotowywanie aplikacji do wdrożenia w usłudze Azure Spring Apps.

Identyfikowanie rozwiązań agregacji dzienników

Zidentyfikuj wszelkie rozwiązania agregacji dzienników używane przez migrowane aplikacje. Należy skonfigurować ustawienia diagnostyczne w migracji, aby umożliwić udostępnianie zarejestrowanych zdarzeń do użycia. Aby uzyskać więcej informacji, zobacz sekcję Zapewnianie rejestrowania konsoli i konfigurowania ustawień diagnostycznych.

Identyfikowanie agentów zarządzania wydajnością aplikacji (APM)

Zidentyfikuj wszystkich agentów monitorowania wydajności aplikacji używanych z aplikacjami. Usługa Azure Spring Apps obsługuje integrację z aplikacjami Szczegółowe informacje, New Relic, Elastic APM, Dynatrace i AppDynamics. Jeśli aplikacja korzysta z obsługiwanego programu APM, skonfiguruj integrację w migracji. Jeśli aplikacja nie korzysta z obsługiwanego programu APM, rozważ użycie Szczegółowe informacje aplikacji. Aby uzyskać więcej informacji, zobacz sekcję Migracja.

Identyfikowanie zależności zipkin

Ustal, czy aplikacja ma zależności od pliku Zipkin. Zaktualizuj aplikację, aby zamiast tego korzystała z usługi Application Szczegółowe informacje. Aby uzyskać informacje, zobacz sekcję Use Application Szczegółowe informacje Java In-Process Agent in-Process Agent in-Process w usłudze Azure Spring Apps i sekcję Post-migration.

Utworzenie spisu zasobów zewnętrznych

Zidentyfikuj zasoby zewnętrzne, takie jak źródła danych, brokery komunikatów JMS i adresy URL innych usług. W aplikacjach Spring Cloud zwykle można znaleźć konfigurację takich zasobów w jednej z następujących lokalizacji:

  • W folderze src/main/directory w pliku zwykle nazywanym application.properties lub application.yml.
  • W repozytorium Spring Cloud Config, które zidentyfikowano w poprzednim kroku.

Bazy danych

W przypadku dowolnej bazy danych SQL zidentyfikuj parametry połączenia.

W przypadku aplikacji Spring Boot parametry połączenia zwykle są widoczne w plikach konfiguracji.

Oto przykład z pliku application.properties:

spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=dbuser
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

Oto przykład z pliku application.yaml:

spring:
  data:
    mongodb:
      uri: mongodb://mongouser:deepsecret@mongoserver.contoso.com:27017

Aby uzyskać więcej możliwych scenariuszy konfiguracji, zobacz dokumentację rozwiązania Spring Data:

Brokerzy komunikatów JMS

Zidentyfikuj używany broker lub brokerów, wyszukując w manifeście kompilacji (zazwyczaj plik pom.xml lub build.gradle ) dla odpowiednich zależności.

Na przykład aplikacja Spring Boot korzystająca z usługi ActiveMQ zwykle zawiera tę zależność w pliku pom.xml :

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

Aplikacje Spring Boot korzystające z brokerów komercyjnych zwykle zawierają zależności bezpośrednio od bibliotek sterowników JMS brokera. Oto przykład z pliku build.gradle:

    dependencies {
      ...
      compile("com.ibm.mq:com.ibm.mq.allclient:9.0.4.0")
      ...
    }

Po zidentyfikowaniu używanego brokera lub brokera znajdź odpowiednie ustawienia. W aplikacjach Spring Cloud zazwyczaj można je znaleźć w plikach application.properties i application.yml w katalogu aplikacji lub w repozytorium serwera Spring Cloud Config.

Oto przykład activeMQ z pliku application.properties :

spring.activemq.brokerurl=broker:(tcp://localhost:61616,network:static:tcp://remotehost:61616)?persistent=false&useJmx=true
spring.activemq.user=admin
spring.activemq.password=tryandguess

Aby uzyskać więcej informacji na temat konfiguracji usługi ActiveMQ, zobacz dokumentację obsługi komunikatów spring boot.

Oto przykład ibm MQ z pliku application.yaml :

ibm:
  mq:
    queueManager: qm1
    channel: dev.ORDERS
    connName: localhost(14)
    user: admin
    password: big$ecr3t

Aby uzyskać więcej informacji na temat konfiguracji ibm MQ, zobacz dokumentację składników ibm MQ Spring.

Identyfikowanie zewnętrznych pamięci podręcznych

Zidentyfikuj używane zewnętrzne pamięci podręczne. Często usługa Redis jest używana za pośrednictwem usługi Spring Data Redis. Informacje o konfiguracji można znaleźć w dokumentacji usługi Spring Data Redis .

Ustal, czy dane sesji są buforowane za pośrednictwem sesji Spring, wyszukując odpowiednią konfigurację (w języku Java lub XML).

Dostawcy tożsamości

Zidentyfikuj wszystkich dostawców tożsamości i wszystkie aplikacje Spring Cloud, które wymagają uwierzytelniania i/lub autoryzacji. Aby uzyskać informacje na temat sposobu konfigurowania dostawców tożsamości, zobacz następujące zasoby:

  • Aby uzyskać informacje o konfiguracji protokołu OAuth2, zobacz przewodnik Szybki start dotyczący usługi Spring Cloud Security.
  • Aby uzyskać informacje na temat konfiguracji Auth0 Spring Security, zobacz dokumentację Auth0 Spring Security.
  • Aby uzyskać informacje o konfiguracji usługi PingFederate Spring Security, zobacz instrukcje Auth0 PingFederate.

Zasoby skonfigurowane za pomocą usługi VMware Tanzu Application Service (TAS) (dawniej Pivotal Cloud Foundry)

W przypadku aplikacji zarządzanych za pomocą usługi TAS zasoby zewnętrzne, w tym opisane wcześniej zasoby, są często konfigurowane za pośrednictwem powiązań usługi TAS. Aby sprawdzić konfigurację takich zasobów, użyj interfejsu wiersza polecenia TAS (Cloud Foundry), aby wyświetlić zmienną VCAP_SERVICES dla aplikacji.

# Log into TAS, if needed (enter credentials when prompted)
cf login -a <API endpoint>

# Set the organization and space containing the application, if not already selected during login.
cf target org <organization name>
cf target space <space name>

# Display variables for the application
cf env <Application Name>

Sprawdź zmienną VCAP_SERVICES ustawień konfiguracji usług zewnętrznych powiązanych z aplikacją. Aby uzyskać więcej informacji, zobacz dokumentację usługi TAS (Cloud Foundry).

Wszystkie inne zasoby zewnętrzne

W tym przewodniku nie można udokumentować każdej możliwej zależności zewnętrznej. Po zakończeniu migracji należy sprawdzić, czy można spełnić wszystkie zależności zewnętrzne aplikacji.

Spis źródeł konfiguracji i wpisów tajnych

Hasła spisu i bezpieczne ciągi

Sprawdź wszystkie pliki właściwości i konfiguracji oraz wszystkie zmienne środowiskowe we wdrożeniach produkcyjnych pod kątem wszelkich ciągów wpisów tajnych i haseł. W aplikacji Spring Cloud zazwyczaj można znaleźć takie ciągi w pliku application.properties lub application.yml w poszczególnych usługach lub w repozytorium Spring Cloud Config.

Certyfikaty spisu

Udokumentuj wszystkie certyfikaty używane w przypadku publicznych punktów końcowych protokołu SSL lub komunikacji z bazami danych zaplecza i innymi systemami. Wszystkie certyfikaty na serwerach produkcyjnych można wyświetlić, uruchamiając następujące polecenie:

keytool -list -v -keystore <path to keystore>

Określanie, czy jest używana usługa Spring Cloud Vault

Jeśli używasz usługi Spring Cloud Vault do przechowywania wpisów tajnych i uzyskiwania do nich dostępu, zidentyfikuj magazyn wpisów tajnych kopii zapasowych (na przykład hashiCorp Vault lub CredHub). Następnie zidentyfikuj wszystkie wpisy tajne używane przez kod aplikacji.

Lokalizowanie źródła serwera konfiguracji

Jeśli aplikacja używa serwera konfiguracji Spring Cloud, zidentyfikuj miejsce przechowywania konfiguracji. Zazwyczaj to ustawienie można znaleźć w pliku bootstrap.yml lub bootstrap.properties , a czasami w pliku application.yml lub application.properties . Ustawienie będzie wyglądać podobnie do następującego przykładu:

spring.cloud.config.server.git.uri: file://${user.home}/spring-cloud-config-repo

Chociaż usługa Git jest najczęściej używana jako magazyn danych kopii zapasowych spring cloud Config, jak pokazano wcześniej, jeden z pozostałych możliwych zapleczy może być używany. Zapoznaj się z dokumentacją spring Cloud Config, aby uzyskać informacje na temat innych zapleczy, takich jak Relacyjna baza danych (JDBC), SVN i lokalny system plików.

Uwaga

Jeśli dane serwera konfiguracji są przechowywane lokalnie, takie jak GitHub Enterprise, musisz udostępnić je usłudze Azure Spring Apps za pośrednictwem repozytorium Git.

Sprawdzanie architektury wdrażania

Dokumentowanie wymagań sprzętowych dla każdej usługi

Dla każdej usługi Spring Cloud (nie w tym serwera konfiguracji, rejestru lub bramy) należy udokumentować następujące informacje:

  • Liczba uruchomionych wystąpień.
  • Liczba procesorów CPU przydzielonych do każdego wystąpienia.
  • Ilość pamięci RAM przydzielonej do każdego wystąpienia.

Dokument dotyczący replikacji geograficznej/dystrybucji

Ustal, czy aplikacje Spring Cloud są obecnie dystrybuowane między kilkoma regionami lub centrami danych. Udokumentowanie wymagań dotyczących czasu pracy/umowy SLA dla migrujących aplikacji.

Identyfikowanie klientów, którzy pomijają rejestr usług

Zidentyfikuj wszystkie aplikacje klienckie, które wywołują dowolną z usług, które mają zostać zmigrowane bez korzystania z rejestru Spring Cloud Service Registry. Po migracji takie wywołania nie będą już możliwe. Zaktualizuj takich klientów, aby używali rozwiązania Spring Cloud OpenFeign przed migracją.

Migracja

Usuwanie konfiguracji z ograniczeniami

W migrowaniu usług znajdź i usuń wszelkie jawne przypisania następujących ustawień z ograniczeniami. Te właściwości są automatycznie wstrzykiwane do środowiska aplikacji w celu uzyskania dostępu do serwera konfiguracji i odnajdywania usługi. Jeśli te właściwości znajdują się w plikach aplikacji serwera konfiguracji, mogą wystąpić konflikty i nieoczekiwane zachowanie. Aby uzyskać więcej informacji, zobacz sekcję Ograniczenia w temacie Konfigurowanie zarządzanego serwera konfiguracji Spring Cloud w usłudze Azure Spring Apps

  • eureka.client.service-url.defaultZone
  • eureka.client.tls.keystore
  • eureka.instance.preferIpAddress
  • eureka.instance.instance-id
  • server.port
  • spring.cloud.config.tls.keystore
  • spring.config.import
  • spring.application.name
  • spring.jmx.enabled
  • management.endpoints.jmx.exposure.include

Tworzenie wystąpienia i aplikacji usługi Azure Spring Apps

Aprowizuj wystąpienie usługi Azure Spring Apps w ramach subskrypcji platformy Azure. Następnie aprowizacja aplikacji dla każdej migrowania usługi. Nie dołączaj rejestru Spring Cloud i serwerów konfiguracji. Uwzględnij usługę Spring Cloud Gateway. Aby uzyskać instrukcje, zobacz Szybki start: wdrażanie pierwszej aplikacji w usłudze Azure Spring Apps.

Przygotowywanie serwera konfiguracji spring cloud

Skonfiguruj serwer konfiguracji w wystąpieniu usługi Azure Spring Apps. Aby uzyskać więcej informacji, zobacz Konfigurowanie wystąpienia serwera Spring Cloud Config Server dla usługi.

Uwaga

Jeśli bieżące repozytorium Spring Cloud Config znajduje się w lokalnym systemie plików lub lokalnie, musisz najpierw przeprowadzić migrację lub zreplikować pliki konfiguracji do repozytorium opartego na chmurze prywatnej, takiego jak GitHub, Azure Repos lub BitBucket.

Upewnij się, że rejestrowanie konsoli i konfigurowanie ustawień diagnostycznych

Skonfiguruj rejestrowanie, aby wszystkie dane wyjściowe są kierowane do konsoli, a nie do plików.

Po wdrożeniu aplikacji w usłudze Azure Spring Apps dodaj ustawienie diagnostyczne, aby udostępnić zarejestrowane zdarzenia do użycia, na przykład za pośrednictwem usługi Azure Monitor Log Analytics.

LogStash/ELK Stack

Jeśli używasz usługi LogStash/ELK Stack do agregacji dzienników, skonfiguruj ustawienie diagnostyczne w celu przesyłania strumieniowego danych wyjściowych konsoli do centrum zdarzeń platformy Azure. Następnie użyj wtyczki LogStash EventHub, aby pozyskać zarejestrowane zdarzenia do usługi LogStash.

Splunk

Jeśli używasz funkcji Splunk do agregacji dzienników, skonfiguruj ustawienie diagnostyczne w celu przesyłania strumieniowego danych wyjściowych konsoli do usługi Azure Blob Storage. Następnie użyj dodatku Splunk dla usług Microsoft Cloud Services, aby pozyskać zarejestrowane zdarzenia w rozwiązaniu Splunk.

Konfigurowanie magazynu trwałego

Jeśli jakakolwiek część aplikacji odczytuje lub zapisuje w lokalnym systemie plików, musisz skonfigurować magazyn trwały, aby zastąpić lokalny system plików. Aby uzyskać więcej informacji, zobacz Używanie wbudowanego magazynu trwałego w usłudze Azure Spring Apps.

Należy zapisać wszystkie pliki tymczasowe w /tmp katalogu. Aby uzyskać niezależność systemu operacyjnego, możesz uzyskać ten katalog przy użyciu polecenia System.getProperty("java.io.tmpdir"). Możesz również użyć java.nio.Files::createTempFile polecenia , aby utworzyć pliki tymczasowe.

Składniki VMware Tanzu

W warstwie Enterprise usługa konfiguracji aplikacji dla programu VMware Tanzu® jest udostępniana w celu obsługi konfiguracji zewnętrznej dla aplikacji. Zarządzany serwer Spring Cloud Config Server nie jest dostępny w warstwie Enterprise i jest dostępny tylko w warstwie Standardowa i Podstawowa usługi Azure Spring Apps.

Usługa konfiguracji aplikacji dla tanzu

Usługa konfiguracji aplikacji dla Tanzu jest jednym z komercyjnych składników VMware Tanzu. Usługa Konfiguracji aplikacji dla tanzu jest natywna dla platformy Kubernetes i różni się od serwera Spring Cloud Config Server. Usługa Application Configuration Service for Tanzu umożliwia zarządzanie natywnymi zasobami ConfigMap platformy Kubernetes, które są wypełniane z właściwości zdefiniowanych w co najmniej jednym repozytorium Git.

W warstwie Enterprise nie ma serwera Spring Cloud Config Server, ale do zarządzania scentralizowanymi konfiguracjami można użyć usługi Application Configuration Service for Tanzu. Aby uzyskać więcej informacji, zobacz Use Application Configuration Service for Tanzu (Używanie usługi konfiguracji aplikacji dla tanzu)

Aby użyć usługi Application Configuration Service for Tanzu, wykonaj następujące kroki dla każdej aplikacji:

  1. Dodaj jawne powiązanie aplikacji, aby zadeklarować, że aplikacja musi używać usługi Application Configuration Service for Tanzu.

    Uwaga

    Po zmianie stanu powiązania/odłączenia należy ponownie uruchomić lub ponownie wdrożyć aplikację, aby zmiany zaczęły obowiązywać.

  2. Ustaw wzorce plików konfiguracji. Wzorce plików konfiguracji umożliwiają wybranie aplikacji i profilu używanej aplikacji. Aby uzyskać więcej informacji, zobacz sekcję Pattern (Wzorzec ) w temacie Use Application Configuration Service for Tanzu (Korzystanie z usługi konfiguracji aplikacji dla tanzu).

    Inną opcją jest ustawienie wzorców plików konfiguracji w tym samym czasie co wdrożenie aplikacji, jak pokazano w poniższym przykładzie:

    az spring app deploy \
        --name <app-name> \
        --artifact-path <path-to-your-JAR-file> \
        --config-file-pattern <config-file-pattern>
    

Usługa Konfiguracji aplikacji dla tanzu działa na platformie Kubernetes. Aby ułatwić włączenie przezroczystego lokalnego środowiska programistycznego, udostępniamy następujące sugestie.

  • Jeśli masz już repozytorium Git do przechowywania konfiguracji zewnętrznej, możesz skonfigurować serwer Spring Cloud Config Server lokalnie jako scentralizowaną konfigurację aplikacji. Po uruchomieniu serwera konfiguracji klonuje repozytorium Git i udostępnia zawartość repozytorium za pośrednictwem kontrolera sieci Web. Aby uzyskać więcej informacji, zobacz Spring Cloud Config w dokumentacji platformy Spring. Dzięki spring-cloud-config-client temu aplikacja może automatycznie pobierać konfigurację zewnętrzną z serwera konfiguracji.

  • Jeśli nie masz repozytorium Git lub nie chcesz konfigurować serwera konfiguracji lokalnie, możesz użyć pliku konfiguracji bezpośrednio w projekcie. Zalecamy użycie profilu w celu odizolowania pliku konfiguracji tak, aby był używany tylko w środowisku projektowym. Na przykład użyj jako dev profilu. Następnie możesz utworzyć plik application-dev.yml w folderze src/main/resource , aby zapisać konfigurację. Aby pobrać aplikację do korzystania z tej konfiguracji, uruchom aplikację lokalnie za pomocą polecenia --spring.profiles.active=dev.

Rejestr usługi Tanzu

Rejestr usług VMware Tanzu® jest jednym z komercyjnych składników VMware Tanzu. Rejestr usługi Tanzu udostępnia aplikacje warstwy przedsiębiorstwa z implementacją wzorca odnajdywania usług, jednym z kluczowych zestawów architektury opartej na mikrousługach. Aplikacje mogą używać rejestru usługi Tanzu do dynamicznego odnajdywania zarejestrowanych usług i wywoływania ich. Korzystanie z rejestru usługi Tanzu jest preferowane do ręcznego konfigurowania każdego klienta usługi, co może być trudne lub przyjęcie jakiejś formy konwencji dostępu, która może być krucha w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Use Tanzu Service Registry (Korzystanie z rejestru usługi Tanzu).

Migrowanie wpisów tajnych usługi Spring Cloud Vault do usługi Azure KeyVault

Wpisy tajne można wprowadzać bezpośrednio do aplikacji za pośrednictwem platformy Spring przy użyciu szablonu startowego Spring Boot usługi Azure KeyVault. Aby uzyskać więcej informacji, zobacz How to use the Spring Boot Starter for Azure Key Vault (Jak używać szablonu startowego Spring Boot dla usługi Azure Key Vault).

Uwaga

Migracja może wymagać zmiany nazwy niektórych wpisów tajnych. Odpowiednio zaktualizuj kod aplikacji.

Migrowanie wszystkich certyfikatów do usługi KeyVault

Usługa Azure Spring Apps nie zapewnia dostępu do magazynu kluczy JRE, dlatego należy przeprowadzić migrację certyfikatów do usługi Azure KeyVault i zmienić kod aplikacji, aby uzyskać dostęp do certyfikatów w usłudze KeyVault. Aby uzyskać więcej informacji, zobacz Wprowadzenie do certyfikatów usługi Key Vault i biblioteki klienta certyfikatu usługi Azure Key Vault dla języka Java.

Konfigurowanie integracji zarządzania wydajnością aplikacji (APM)

Usługa Azure Spring Apps oferuje następujące integracje APM. Postępuj zgodnie z linkami, aby włączyć potrzebny APM:

Jeśli aplikacja nie korzysta z obsługiwanego programu APM, rozważ użycie Szczegółowe informacje aplikacji. Usługa Azure Spring Apps oferuje głęboką integrację z usługą Application Szczegółowe informacje na potrzeby zarządzania wydajnością i reagowania w czasie rzeczywistym na aberrations.

Wyłączanie klientów i punktów końcowych metryk w aplikacjach

Usuń wszystkich używanych klientów metryk lub wszystkich punktów końcowych metryk uwidocznionych w aplikacjach.

Wdrażanie usług

Wdróż każdą z migrowanych aplikacji Spring (nie w tym serwerów konfiguracji Spring Cloud i rejestru), zgodnie z opisem w przewodniku Szybki start: wdrażanie pierwszej aplikacji w usłudze Azure Spring Apps.

Konfigurowanie wpisów tajnych dla usługi i ustawień zewnętrznych

Możesz wstrzyknąć dowolne ustawienia konfiguracji dla usługi do każdej usługi jako zmienne środowiskowe. Wykonaj następujące kroki w witrynie Azure Portal:

  1. Przejdź do wystąpienia usługi Azure Spring Apps i wybierz pozycję Aplikacje.
  2. Wybierz usługę do skonfigurowania.
  3. Wybierz Konfiguracja.
  4. Wprowadź zmienne do skonfigurowania.
  5. Wybierz pozycję Zapisz.

Spring Cloud App Configuration Settings

Migrowanie i włączanie dostawcy tożsamości

Jeśli którakolwiek z aplikacji Spring Cloud wymaga uwierzytelniania lub autoryzacji, upewnij się, że są skonfigurowane do uzyskiwania dostępu do dostawcy tożsamości:

  • Jeśli dostawca tożsamości jest identyfikatorem Entra firmy Microsoft, nie należy wprowadzać żadnych zmian.
  • Jeśli dostawca tożsamości jest lasem lokalna usługa Active Directory, rozważ zaimplementowanie rozwiązania tożsamości hybrydowej przy użyciu identyfikatora Entra firmy Microsoft. Aby uzyskać wskazówki, zobacz dokumentację tożsamości hybrydowej.
  • Jeśli dostawca tożsamości jest innym rozwiązaniem lokalnym, takim jak PingFederate, zapoznaj się z tematem Niestandardowa instalacja usługi Microsoft Entra Połączenie, aby skonfigurować federację z identyfikatorem Entra firmy Microsoft. Alternatywnie rozważ użycie usługi Spring Security do korzystania z dostawcy tożsamości za pośrednictwem protokołu OAuth2/OpenID Połączenie lub SAML.

Aktualizowanie aplikacji klienckich

Zaktualizuj konfigurację wszystkich aplikacji klienckich, aby korzystały z opublikowanych punktów końcowych usługi Azure Spring Apps dla migrowanych aplikacji.

Po migracji

  • Rozważ dodanie potoku wdrażania dla wdrożeń automatycznych, spójnych. Instrukcje są dostępne dla usługi Azure Pipelines, dla funkcji GitHub Actions i dla serwera Jenkins.

  • Rozważ użycie wdrożeń przejściowych do testowania zmian kodu w środowisku produkcyjnym, zanim będą dostępne dla niektórych lub wszystkich użytkowników końcowych. Aby uzyskać więcej informacji, zobacz Konfigurowanie środowiska przejściowego w usłudze Azure Spring Apps.

  • Rozważ dodanie powiązań usługi w celu połączenia aplikacji z obsługiwanymi bazami danych platformy Azure. Te powiązania usług wyeliminowałyby konieczność dostarczania informacji o połączeniu, w tym poświadczeń, aplikacjom Spring Cloud.

  • Rozważ użycie aplikacja systemu Azure Szczegółowe informacje do monitorowania wydajności i interakcji aplikacji. Aby uzyskać więcej informacji, zobacz Application Szczegółowe informacje Java In-Process Agent in-Process Agent in-Process w usłudze Azure Spring Apps.

  • Rozważ dodanie reguł alertów i grup akcji usługi Azure Monitor, aby szybko wykrywać i rozwiązywać problemy z warunkami aberrant. Aby uzyskać więcej informacji, zobacz Samouczek: monitorowanie zasobów platformy Spring Cloud przy użyciu alertów i grup akcji.

  • Rozważ replikowanie wdrożenia usługi Azure Spring Apps w innym regionie, aby uzyskać mniejsze opóźnienia i większą niezawodność i odporność na uszkodzenia. Usługa Azure Traffic Manager umożliwia równoważenie obciążenia między wdrożeniami lub używanie usługi Azure Front Door do dodawania odciążania protokołu SSL i zapory aplikacji internetowej z ochroną przed atakami DDoS.

  • Jeśli replikacja geograficzna nie jest konieczna, rozważ dodanie bramy aplikacja systemu Azure w celu dodania odciążania protokołu SSL i zapory aplikacji internetowej z ochroną przed atakami DDoS.

  • Jeśli aplikacje korzystają ze starszych składników platformy Spring Cloud Netflix, rozważ zastąpienie ich bieżącymi alternatywami:

    Starsza wersja Bieżąca
    Spring Cloud Eureka Spring Cloud Service Registry
    Spring Cloud Netflix Zuul Spring Cloud Gateway
    Spring Cloud Netflix Archaius Spring Cloud Config Server
    Wstążka Spring Cloud Netflix Spring Cloud Load Balancer (moduł równoważenia obciążenia po stronie klienta)
    Spring Cloud Hystrix Wyłącznik Spring Cloud + Odporność4J
    Turbina Spring Cloud Netflix Mikrometr + Prometheus