Eseguire la migrazione di applicazioni Spring Cloud ad Azure Spring Apps

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

Questa guida descrive gli aspetti da tenere presenti quando si vuole eseguire la migrazione di un'applicazione Spring Cloud esistente da eseguire in Azure Spring Apps.

Pre-migrazione

Per garantire una corretta migrazione, prima di iniziare completare i passaggi di valutazione e inventario descritti nelle sezioni seguenti.

Se non è possibile soddisfare i requisiti di pre-migrazione, vedere le guide alla migrazione complementari seguenti:

  • Eseguire la migrazione di applicazioni JAR eseguibili ai contenitori nel servizio Azure Kubernetes (indicazioni in pianificazione)
  • Eseguire la migrazione di applicazioni JAR eseguibili alle macchine virtuali di Azure (indicazioni in pianificazione)

Esaminare i componenti dell'applicazione

Determinare se e come viene usato il file system

Trovare tutte le istanze in cui i servizi eseguono la scrittura e/o la lettura dal file system locale. Identificare la posizione in cui vengono scritti e letti i file a breve termine/temporanei e i file di lunga durata.

Nota

Azure Spring Apps offre 5 GB di archiviazione temporanea per ogni istanza di Azure Spring Apps, montata in /tmp. Se viene eseguita la scrittura di un numero di file temporanei in eccesso rispetto a tale limite o in un percorso diverso, sarà necessario apportare modifiche al codice.

Contenuto statico di sola lettura

Se l'applicazione attualmente distribuisce contenuto statico, è necessario modificarne la posizione. Si può scegliere di spostare il contenuto statico in Archiviazione BLOB di Azure e di aggiungere la rete di distribuzione dei contenuti di Azure per accelerare i download a livello globale. Per altre informazioni, vedere Hosting di siti Web statici in Archiviazione di Azure e Avvio rapido: Integrare un account di archiviazione di Azure con Rete CDN di Azure.

Contenuto statico pubblicato dinamicamente

Se l'applicazione consente contenuto statico caricato/prodotto dall'applicazione ma non modificabile dopo la creazione, è possibile usare Archiviazione BLOB di Azure e la rete di distribuzione dei contenuti di Azure, come descritto sopra, con una funzione di Azure per gestire i caricamenti e l'aggiornamento della rete CDN. Nell'articolo Caricamento e precaricamento nella rete CDN di contenuto statico con Funzioni di Azure è riportata un'implementazione di esempio che è possibile usare.

Determinare se uno dei servizi contiene codice specifico del sistema operativo

Se l'applicazione contiene codice con dipendenze dal sistema operativo host, sarà necessario effettuarne il refactoring per rimuovere tali dipendenze. Ad esempio, potrebbe essere necessario sostituire qualsiasi utilizzo di / o \ nei percorsi del file system con File.Separator o Paths.get.

Passare a una piattaforma supportata

Azure Spring Apps offre versioni specifiche di Java e versioni specifiche di Spring Boot e Spring Cloud. Per garantire la compatibilità, eseguire prima la migrazione dell'applicazione a una delle versioni supportate di Java nell'ambiente corrente e quindi procedere con i passaggi rimanenti della migrazione. Assicurarsi di testare completamente la configurazione risultante. Usare la versione stabile più recente della distribuzione Linux in questi test.

Nota

Questa convalida è particolarmente importante se il server corrente è in esecuzione in un JDK non supportato, ad esempio Oracle JDK o IBM OpenJ9.

Per ottenere la versione corrente di Java, accedere al server di produzione ed eseguire il comando seguente:

java -version

Per le versioni supportate di Java, Spring Boot e Spring Cloud, nonché istruzioni per l'aggiornamento, vedere Preparare un'applicazione per la distribuzione in Azure Spring Apps.

Identificare le versioni di Spring Boot

Esaminare le dipendenze di ogni applicazione di cui viene eseguita la migrazione per determinare la versione di Spring Boot.

Maven

Nei progetti Maven la versione di Spring Boot è in genere disponibile nell'elemento <parent> del file 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

Nei progetti Gradle la versione di Spring Boot è in genere disponibile nella sezione plugins, come versione del plug-in org.springframework.boot:

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

Per tutte le applicazioni che usano Spring Boot 1.x, seguire la Guida alla migrazione di Spring Boot 2.0 per aggiornarle a una versione di Spring Boot supportata. Per le versioni supportate, vedere la sezione Versioni di Spring Boot e Spring Cloud di Preparare un'applicazione per la distribuzione in Azure Spring Apps.

Identificare le versioni di Spring Cloud

Esaminare le dipendenze di ogni applicazione di cui si intende eseguire la migrazione per determinare la versione dei componenti di Spring Cloud che usa.

Maven

Nei progetti Maven la versione di Spring Cloud è in genere impostata nella proprietà spring-cloud.version:

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

Nei progetti Gradle la versione di Spring Cloud è in genere impostata nel blocco delle proprietà aggiuntive "extra properties":

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

È necessario aggiornare tutte le applicazioni per usare le versioni supportate di Spring Cloud. Per un elenco delle versioni supportate, vedere la sezione Versioni di Spring Boot e Spring Cloud di Preparare un'applicazione per la distribuzione in Azure Spring Apps.

Identificare le soluzioni di aggregazione dei log

Identificare le soluzioni di aggregazione dei log in uso dalle applicazioni di cui si esegue la migrazione. È necessario configurare le impostazioni di diagnostica nella migrazione per rendere disponibili gli eventi registrati per l'utilizzo. Per altre informazioni, vedere la sezione Verificare la registrazione della console e configurare le impostazioni di diagnostica.

Identificare gli agenti di gestione delle prestazioni delle applicazioni

Identificare gli agenti di monitoraggio delle prestazioni delle applicazioni in uso con le applicazioni. Azure Spring Apps supporta l'integrazione con Application Insights, New Relic, Elastic APM, Dynatrace e AppDynamics. Se l'applicazione usa un APM supportato, configurare l'integrazione nella migrazione. Se l'applicazione non usa un modulo APM supportato, prendere in considerazione l'uso di Application Insights. Per altre informazioni, vedere la sezione Migrazione .

Identificare le dipendenze di Zipkin

Determinare se l'applicazione ha dipendenze da Zipkin. Aggiornare invece l'applicazione per usare Application Insights. Per informazioni, vedere Usare l'agente in-process Java di Application Insights in Azure Spring Apps e la sezione Post-migrazione .

Inventario delle risorse esterne

Identificare le risorse esterne, ad esempio le origini dati, i broker dei messaggi JMS e gli URL di altri servizi. Nelle applicazioni Spring Cloud è in genere possibile trovare la configurazione per tali risorse in uno dei percorsi seguenti:

  • Nella cartella src/main/directory, in un file normalmente denominato application.properties o application.yml.
  • Nel repository Spring Cloud Config identificato nel passaggio precedente.

Database

Per qualsiasi database SQL, identificare la stringa di connessione.

Per un'applicazione Spring Boot, le stringhe di connessione sono in genere incluse nei file di configurazione.

Ecco un esempio di un file application.properties:

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

Ecco un esempio di un file application.yaml:

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

Vedere la documentazione di Spring Data per altri scenari possibili di configurazione:

Broker di messaggi JMS

Identificare i broker in uso cercando nel manifesto di compilazione, in genere, un file pom.xml o build.gradle, per le dipendenze pertinenti.

Ad esempio, un'applicazione Spring Boot che usa ActiveMQ in genere contiene questa dipendenza nel relativo file pom.xml:

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

Le applicazioni Spring Boot che usano broker commerciali in genere contengono dipendenze direttamente dalle librerie di driver JMS dei broker. Ecco un esempio di un file build.gradle:

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

Dopo aver identificato i broker in uso, trovare le impostazioni corrispondenti. Nelle applicazioni Spring Cloud sono in genere disponibili nei file application.properties e application.yml nella directory dell'applicazione o nel repository di Spring Cloud Config Server.

Ecco un esempio di un file application.properties per ActiveMQ:

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

Per altre informazioni sulla configurazione di ActiveMQ, vedere la documentazione sulla messaggistica di Spring Boot.

Ecco un esempio di un file application.yaml per IBM MQ:

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

Per altre informazioni sulla configurazione di IBM MQ, vedere la documentazione relativa ai componenti Spring di IBM MQ.

Identificare le cache esterne

Identificare le cache esterne in uso. Spesso, Redis viene usato tramite Spring Data Redis. Per informazioni sulla configurazione, vedere la documentazione di Spring Data Redis.

Determinare se i dati della sessione vengono memorizzati nella cache tramite una sessione Spring cercando la rispettiva configurazione (in Java o XML).

Provider di identità

Identificare tutti i provider di identità e tutte le applicazioni Spring Cloud che richiedono l'autenticazione e/o l'autorizzazione. Per informazioni su come configurare i provider di identità, vedere le risorse seguenti:

Risorse configurate tramite il servizio VMware TAS (Tanzu Application Service) (in precedenza Pivotal Cloud Foundry)

Per le applicazioni gestite con TAS, le risorse esterne, incluse quelle descritte in precedenza, vengono spesso configurate tramite le associazioni del servizio TAS. Per esaminare la configurazione di tali risorse, usare l'interfaccia della riga di comando di TAS (Cloud Foundry) per visualizzare la variabile VCAP_SERVICES per l'applicazione.

# 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>

Esaminare la variabile VCAP_SERVICES per le impostazioni di configurazione dei servizi esterni associati all'applicazione. Per altre informazioni, vedere la documentazione di TAS (Cloud Foundry).

Tutte le altre risorse esterne

Non è possibile documentare tutte le possibili dipendenze esterne in questa guida. Dopo la migrazione, è responsabilità dell'utente verificare che sia possibile soddisfare tutte le dipendenze esterne dell'applicazione.

Segreti e origini della configurazione dell'inventario

Password e stringhe sicure dell'inventario

Controllare tutte le proprietà e i file di configurazione e tutte le variabili di ambiente nei server di produzione per verificare la presenza di stringhe segrete e password. In un'applicazione Spring Cloud tali stringhe sono in genere disponibili nel file application.properties o application.yml nei singoli servizi o nel repository Spring Cloud Config.

Inventario dei certificati

Documentare tutti i certificati usati per gli endpoint SSL pubblici o per la comunicazione con i database back-end e altri sistemi. È possibile visualizzare tutti i certificati nei server di produzione eseguendo il comando seguente:

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

Determinare se viene usato Spring Cloud Vault

Se si usa Spring Cloud Vault per archiviare i segreti e accedervi, identificare l'archivio segreti sottostante, ad esempio HashiCorp Vault o CredHub. Identificare quindi tutti i segreti usati dal codice dell'applicazione.

Individuare l'origine del server di configurazione

Se l'applicazione usa un server Spring Cloud Config, identificare il percorso in cui è archiviata la configurazione. Questa impostazione si trova in genere nel file bootstrap.yml o bootstrap.properties oppure talvolta nel file application.yml o application.properties. L'impostazione sarà simile all'esempio seguente:

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

Sebbene come archivio dati di backup della configurazione Spring Cloud si usi in genere GIT, come illustrato in precedenza, è possibile che sia in uso uno degli altri back-end possibili. Consultare la documentazione di Spring Cloud Config per informazioni su altri back-end, ad esempio database relazionale (JDBC), SVN e file system locale.

Nota

Se i dati del server di configurazione vengono archiviati in locale, ad esempio GitHub Enterprise, sarà necessario renderli disponibili ad Azure Spring Apps tramite un repository Git.

Esaminare l'architettura di distribuzione

Documentare i requisiti hardware per ogni servizio

Per ogni servizio Spring Cloud (escluso il server di configurazione, il registro o il gateway), documentare le informazioni seguenti:

  • Numero di istanze in esecuzione.
  • Numero di CPU allocate a ogni istanza.
  • Quantità di RAM allocata a ogni istanza.

Documentare la replica geografica/distribuzione

Determinare se le applicazioni Spring Cloud sono attualmente distribuite tra più aree o data center. Documentare i requisiti di tempo di attività/contratto di servizio per le applicazioni di cui si intende eseguire la migrazione.

Identificare i client che ignorano il registro dei servizi

Identificare tutte le applicazioni client che richiamano i servizi di cui eseguire la migrazione senza usare Spring Cloud Service Registry. Dopo la migrazione, tali chiamate non saranno più possibili. Aggiornare i client affinché usino Spring Cloud OpenFeign prima della migrazione.

Migrazione

Rimuovere configurazioni con restrizioni

Nei servizi di cui si esegue la migrazione trovare e rimuovere eventuali assegnazioni esplicite delle impostazioni con restrizioni seguenti. Queste proprietà vengono inserite automaticamente nell'ambiente dell'applicazione per accedere al server di configurazione e all'individuazione dei servizi. Se queste proprietà si trovano nei file dell'applicazione config server, è possibile che si verifichino conflitti e comportamenti imprevisti. Per altre informazioni, vedere la sezione Restrizione di Configurare un server di configurazione Spring Cloud gestito in 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

Creare un'istanza e app di Azure Spring Apps

Effettuare il provisioning di un'istanza di Azure Spring Apps nella sottoscrizione di Azure. Effettuare quindi il provisioning di un'app per ogni servizio di cui verrà eseguita la migrazione. Non includere i server di configurazione e registro di Spring Cloud. Includere il servizio Spring Cloud Gateway. Per istruzioni, vedere Avvio rapido: Distribuire la prima applicazione in Azure Spring Apps.

Preparare il server di configurazione di Spring Cloud

Configurare il server di configurazione nell'istanza di Azure Spring Apps. Per altre informazioni, vedere Configurare un'istanza di Spring Cloud Config Server per il servizio.

Nota

Se il repository Spring Cloud Config corrente si trova nel file system locale o in locale, è prima necessario eseguire la migrazione o replicare i file di configurazione in un repository basato su cloud privato, ad esempio GitHub, Azure Repos o BitBucket.

Verificare la registrazione della console e configurare le impostazioni di diagnostica

Configurare la registrazione in modo che tutto l'output venga instradato alla console e non ai file.

Dopo la distribuzione di un'applicazione in Azure Spring Apps, aggiungere un'impostazione di diagnostica per rendere disponibili gli eventi registrati per l'utilizzo, ad esempio tramite Monitoraggio di Azure Log Analytics.

Stack LogStash/ELK

Se si usa lo stack LogStash/ELK per l'aggregazione dei log, configurare l'impostazione di diagnostica per trasmettere l'output della console a un'istanza di Hub eventi di Azure. Usare quindi il plug-in LogStash EventHub per inserire gli eventi registrati in LogStash.

Splunk

Se si usa Splunk per l'aggregazione dei log, configurare l'impostazione di diagnostica per trasmettere l'output della console ad Archiviazione BLOB di Azure. Usare quindi il componente aggiuntivo Splunk per servizi cloud Microsoft per inserire gli eventi registrati in Splunk.

Configurare la risorsa di archiviazione persistente

Se una parte dell'applicazione legge o scrive nel file system locale, sarà necessario configurare l'archiviazione persistente in modo da sostituire il file system locale. Per altre informazioni, vedere Usare l'archiviazione permanente predefinita in Azure Spring Apps.

È consigliabile scrivere tutti i file temporanei nella directory /tmp. Per l'indipendenza del sistema operativo, è possibile accedere a questa directory usando System.getProperty("java.io.tmpdir"). È anche possibile usare java.nio.Files::createTempFile per creare file temporanei.

Componenti di VMware Tanzu

Nel livello Enterprise viene fornito il servizio di configurazione delle applicazioni per VMware Tanzu® per supportare la configurazione esterna per le app. Spring Cloud Config Server gestito non è disponibile nel livello Enterprise ed è disponibile solo nel livello Standard e Basic di Azure Spring Apps.

Servizio di configurazione dell'applicazione per Tanzu

Il servizio di configurazione delle applicazioni per Tanzu è uno dei componenti commerciali di VMware Tanzu. Il servizio di configurazione delle applicazioni per Tanzu è nativo di Kubernetes e diverso da Spring Cloud Config Server. Il servizio di configurazione delle applicazioni per Tanzu consente la gestione delle risorse ConfigMap native di Kubernetes popolate da proprietà definite in uno o più repository Git.

Nel livello Enterprise non è disponibile alcun server di configurazione Spring Cloud, ma è possibile usare il servizio di configurazione dell'applicazione per Tanzu per gestire le configurazioni centralizzate. Per altre informazioni, vedere Usare il servizio di configurazione dell'applicazione per Tanzu

Per usare il servizio di configurazione delle applicazioni per Tanzu, seguire questa procedura per ognuna delle app:

  1. Aggiungere un'associazione esplicita dell'app per dichiarare che l'app deve usare il servizio di configurazione dell'applicazione per Tanzu.

    Nota

    Quando modifichi lo stato bind/unbind, devi riavviare o ridistribuire l'app per rendere effettiva la modifica.

  2. Impostare i modelli di file di configurazione. I modelli di file di configurazione consentono di scegliere l'applicazione e il profilo usati dall'app. Per altre informazioni, vedere la sezione Pattern (Modello) di Use Application Configuration Service for Tanzu (Usare il servizio di configurazione delle applicazioni per Tanzu).

    Un'altra opzione consiste nell'impostare i modelli di file di configurazione contemporaneamente alla distribuzione dell'app, come illustrato nell'esempio seguente:

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

Il servizio di configurazione dell'applicazione per Tanzu viene eseguito in Kubernetes. Per consentire un'esperienza di sviluppo locale trasparente, vengono forniti i suggerimenti seguenti.

  • Se si dispone già di un repository Git per archiviare la configurazione esterna, è possibile configurare Spring Cloud Config Server in locale come configurazione centralizzata per l'applicazione. Dopo l'avvio del server di configurazione, clona il repository Git e fornisce il contenuto del repository tramite il controller Web. Per altre informazioni, vedere Spring Cloud Config nella documentazione di Spring. spring-cloud-config-client consente all'applicazione di selezionare automaticamente la configurazione esterna dal server di configurazione.

  • Se non si ha un repository Git o non si vuole configurare il server di configurazione in locale, è possibile usare il file di configurazione direttamente nel progetto. È consigliabile usare un profilo per isolare il file di configurazione in modo che venga usato solo nell'ambiente di sviluppo. Ad esempio, usare dev come profilo. È quindi possibile creare un file application-dev.yml nella cartella src/main/resource per archiviare la configurazione. Per ottenere l'app da usare questa configurazione, avviare l'app in locale con --spring.profiles.active=dev.

Registro dei servizi Tanzu

VMware Tanzu® Service Registry è uno dei componenti commerciali di VMware Tanzu. Registro dei servizi Tanzu fornisce alle app di livello Enterprise un'implementazione del modello di individuazione dei servizi, uno dei principali set di impostazioni di un'architettura basata su microservizi. Le app possono usare il Registro di sistema del servizio Tanzu per individuare e chiamare in modo dinamico i servizi registrati. L'uso del Registro di sistema del servizio Tanzu è preferibile configurare a mano ogni client di un servizio, che può essere difficile o adottare una qualche forma di convenzione di accesso, che può essere fragile nell'ambiente di produzione. Per altre informazioni, vedere Usare il Registro di sistema del servizio Tanzu.

Eseguire la migrazione dei segreti dell'insieme di credenziali di Spring Cloud ad Azure Key Vault

È possibile inserire i segreti direttamente nelle applicazioni tramite Spring usando Spring Boot Starter per Azure Key Vault. Per altre informazioni, vedere Come usare Spring Boot Starter per Azure Key Vault.

Nota

Per la migrazione potrebbe essere necessario rinominare alcuni segreti. Aggiornare il codice dell'applicazione di conseguenza.

Eseguire la migrazione di tutti i certificati a Key Vault

Azure Spring Apps non fornisce l'accesso all'archivio chiavi JRE, quindi è necessario eseguire la migrazione dei certificati ad Azure KeyVault e modificare il codice dell'applicazione per accedere ai certificati in KeyVault. Per altre informazioni, vedere Introduzione ai certificati Key Vault e Libreria client dei certificati di Azure Key Vault per Java.

Configurare le integrazioni di APM (Application Performance Management)

Azure Spring Apps offre le integrazioni APM seguenti. Seguire i collegamenti per abilitare il servizio APM necessario:

Se l'applicazione non usa un modulo APM supportato, prendere in considerazione l'uso di Application Insights. Azure Spring Apps offre un'integrazione approfondita con Application Insights per la gestione delle prestazioni e la risposta in tempo reale alle aberrazioni.

Disabilitare i client e gli endpoint delle metriche nelle applicazioni

Rimuovere tutti i client o gli endpoint delle metriche esposti nelle applicazioni.

Distribuire i servizi

Distribuire ognuna delle app Spring di cui è stata eseguita la migrazione (non inclusi i server Spring Cloud Config e Registry), come descritto in Avvio rapido: Distribuire la prima applicazione in Azure Spring Apps.

Configurare i segreti per servizio e le impostazioni esternalizzate

È possibile inserire tutte le impostazioni di configurazione per servizio in ogni servizio come variabili di ambiente. Nel portale di Azure seguire questa procedura:

  1. Passare all'istanza di App Spring di Azure e selezionare App.
  2. Selezionare il servizio da configurare.
  3. Seleziona Configurazione.
  4. Immettere le variabili da configurare.
  5. Seleziona Salva.

Spring Cloud App Configuration Settings

Eseguire la migrazione e abilitare il provider di identità

Se le applicazioni Spring Cloud richiedono l'autenticazione o l'autorizzazione, assicurarsi che siano configurate per l'accesso al provider di identità:

Aggiornare le applicazioni client

Aggiornare la configurazione di tutte le applicazioni client per usare gli endpoint di Azure Spring Apps pubblicati per le applicazioni migrate.

Dopo la migrazione

  • Valutare la possibilità di aggiungere una pipeline di distribuzione per distribuzioni automatiche e coerenti. Sono disponibili istruzioni per Azure Pipelines, per GitHub Actions e per Jenkins.

  • Provare a usare le distribuzioni di staging per testare le modifiche del codice in produzione prima che siano disponibili per alcuni o tutti gli utenti finali. Per altre informazioni, vedere Configurare un ambiente di gestione temporanea in Azure Spring Apps.

  • Valutare la possibilità di aggiungere associazioni a servizi per connettere l'applicazione ai database di Azure supportati. Queste associazioni a servizi elimineranno la necessità di fornire le informazioni di connessione, incluse le credenziali, alle applicazioni Spring Cloud.

  • È consigliabile usare app Azure lication Insights per monitorare le prestazioni e le interazioni delle applicazioni. Per altre informazioni, vedere Application Insights Java In-Process Agent in Azure Spring Apps.

  • Valutare la possibilità di aggiungere regole di avviso e gruppi di azioni di Monitoraggio di Azure per rilevare rapidamente e risolvere le condizioni anomale. Per altre informazioni, vedere Esercitazione: Monitorare le risorse di Spring Cloud usando avvisi e gruppi di azioni.

  • Valutare la possibilità di replicare la distribuzione di Azure Spring Apps in un'altra area per ridurre la latenza e maggiore affidabilità e tolleranza di errore. Usare Gestione traffico di Azure per bilanciare il carico tra le distribuzioni o usare Frontdoor di Azure per aggiungere l'offload SSL e Web Application Firewall con protezione DDoS.

  • Se la replica geografica non è necessaria, è consigliabile aggiungere un gateway applicazione di Azure per aggiungere l'offload SSL e Web Application Firewall con protezione DDoS.

  • Se le applicazioni usano i componenti legacy di Spring Cloud Netflix, provare a sostituirli con le alternative correnti:

    Legacy Corrente
    Spring Cloud Eureka Spring Cloud Service Registry
    Spring Cloud Netflix Zuul Spring Cloud Gateway
    Spring Cloud Netflix Archaius Spring Cloud Config Server
    Spring Cloud Netflix Ribbon Spring Cloud Load Balancer (servizio di bilanciamento del carico lato client)
    Spring Cloud Hystrix Spring Cloud Circuit Breaker + Resilience4J
    Spring Cloud Netflix Turbine Micrometer + Prometheus