Guida introduttiva: Distribuire applicazioni di microservizi in App Azure Spring

Nota

Le prime 50 ore vCPU e 100 GB di memoria sono gratuite ogni mese. Per altre informazioni, vedere Riduzione dei prezzi - Azure Spring Apps fa di più, meno costi! nel blog di App in Azure.

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.

Questo articolo illustra come distribuire applicazioni di microservizi in Azure Spring Apps usando l'app di esempio nota PetClinic.

L'esempio Pet Clinic illustra il modello di architettura del microservizio. Il diagramma seguente illustra l'architettura dell'applicazione PetClinic nel piano Azure Spring Apps Enterprise.

Diagramma che mostra l'architettura dell'esempio PetClinic nel piano Azure Spring Apps Enterprise.

Il diagramma mostra i flussi architetturali e le relazioni seguenti dell'esempio pet clinic:

  • Usa Azure Spring Apps per gestire le app front-end e back-end. Le app back-end vengono compilate con Spring Boot e ogni app usa HSQLDB come archivio permanente. L'app front-end rifornita si basa sull'app Gateway api Pet Clinic con Node.js che funge da applicazione Web front-end autonoma.
  • Usa i componenti gestiti in Azure Spring Apps, tra cui Registro dei servizi, Servizio di configurazione delle applicazioni, Spring Cloud Gateway e Application Live View. Il servizio di configurazione dell'applicazione legge la configurazione del repository Git.
  • Espone l'URL di Spring Cloud Gateway per instradare la richiesta alle app del servizio back-end ed espone l'URL di Application Live View per monitorare le app back-end.
  • Analizza i log usando l'area di lavoro Log Analytics.
  • Monitora le prestazioni con Application Insights.

Nota

Questo articolo usa una versione semplificata di PetClinic, usando un database in memoria che non è pronto per la distribuzione rapida in Azure Spring Apps.

Tanzu Developer Tools espone l'accesso pubblico per Application Live View, che rappresenta un punto di rischio. L'ambiente di produzione deve proteggere l'accesso. Per altre informazioni, vedere la sezione Configurare il portale di Dev Tools di Tanzu nel piano Azure Spring Apps Enterprise.

L'esempio Pet Clinic illustra il modello di architettura del microservizio. Il diagramma seguente illustra l'architettura dell'applicazione PetClinic nel piano Standard di Azure Spring Apps.

Diagramma che mostra l'architettura dell'esempio PetClinic nel piano standard di Azure Spring Apps.

Il diagramma mostra i flussi architetturali e le relazioni seguenti dell'esempio pet clinic:

  • Usa Azure Spring Apps per gestire le app Spring Boot. Ogni app usa HSQLDB come archivio permanente.
  • Usa i componenti gestiti Spring Cloud Config Server ed Eureka Service Registry in Azure Spring Apps. Il server di configurazione legge la configurazione del repository Git.
  • Espone l'URL del gateway API per bilanciare il carico delle richieste alle app del servizio ed espone l'URL del server Amministrazione per gestire le applicazioni.
  • Analizza i log usando l'area di lavoro Log Analytics.
  • Monitora le prestazioni con Application Insights.

Nota

Questo articolo usa una versione semplificata di PetClinic, usando un database in memoria che non è pronto per la distribuzione rapida in Azure Spring Apps.

L'app distribuita espone l'accesso admin-server pubblico, ovvero un punto di rischio. L'ambiente di produzione deve proteggere l'applicazione Amministrazione Spring Boot.

Questo articolo offre le opzioni seguenti per la distribuzione in Azure Spring Apps:

  • L'opzione portale di Azure è il modo più semplice e rapido per creare risorse e distribuire applicazioni con un solo clic. Questa opzione è adatta agli sviluppatori Spring che vogliono distribuire rapidamente le applicazioni nei servizi cloud di Azure.
  • L'opzione plug-in portale di Azure + Maven è un modo più convenzionale per creare risorse e distribuire le applicazioni in modo dettagliato. Questa opzione è adatta agli sviluppatori Spring che usano i servizi cloud di Azure per la prima volta.
  • L'opzione dell'interfaccia della riga di comando di Azure usa un potente strumento da riga di comando per gestire le risorse di Azure. Questa opzione è adatta agli sviluppatori Spring che hanno familiarità con i servizi cloud di Azure.
  • L'opzione plug-in portale di Azure + Maven è un modo più convenzionale per creare risorse e distribuire le applicazioni in modo dettagliato. Questa opzione è adatta agli sviluppatori Spring che usano i servizi cloud di Azure per la prima volta.
  • L'opzione dell'interfaccia della riga di comando per sviluppatori di Azure è un modo più efficiente per creare automaticamente le risorse e distribuire le applicazioni tramite semplici comandi. L'interfaccia della riga di comando per sviluppatori di Azure usa un modello per effettuare il provisioning delle risorse di Azure necessarie e per distribuire il codice dell'applicazione. Questa opzione è adatta agli sviluppatori Spring che hanno familiarità con i servizi cloud di Azure.

1. Prerequisiti

2. Preparare il progetto Spring

Per preparare l'esempio in locale, seguire questa procedura:

  1. Clonare il progetto di esempio usando il comando seguente:

    git clone https://github.com/Azure-Samples/spring-petclinic-microservices.git
    
  2. Passare alla directory radice del progetto e quindi usare il comando seguente per eseguire il progetto di esempio in locale:

    bash ./scripts/run_all_without_infra.sh
    
  3. Al termine dello script, passare a http://localhost:8080 nel browser per accedere all'applicazione PetClinic.

3. Preparare l'ambiente cloud

Questa sezione descrive come creare un'istanza del servizio Azure Spring Apps e preparare l'ambiente cloud di Azure.

3.1. Accedere al portale di Azure

Passare al portale di Azure e immettere le credenziali per accedere al portale. La visualizzazione predefinita è il dashboard del servizio.

3.2. Creare un'istanza di Azure Spring Apps

Per creare l'istanza del servizio, seguire questa procedura:

  1. Selezionare Crea una risorsa nell'angolo del portale di Azure.

  2. Nella scheda Servizi di Azure selezionare Calcolo di>Azure Spring Apps.

    Screenshot del portale di Azure che mostra la pagina Crea una risorsa con Azure Spring Apps evidenziata.

  3. Nella pagina Crea app Azure Spring compilare il modulo nella scheda Informazioni di base.

    Screenshot del portale di Azure che mostra la pagina Crea app Azure Spring con la scheda Informazioni di base selezionata.

    Usare la tabella seguente come guida per completare il modulo. Il piano consigliato è Standard.

    Impostazione Valore suggerito Descrizione
    Abbonamento Nome della sottoscrizione. Sottoscrizione di Azure da usare per il server. Se si hanno più sottoscrizioni, scegliere la sottoscrizione per cui si vuole fatturare la risorsa.
    Gruppo di risorse myresourcegroup Nuovo nome di gruppo di risorse o uno esistente nella sottoscrizione.
    Nome myasa Nome univoco che identifica l'istanza di Azure Spring Apps. Il nome deve essere composto da 4-32 caratteri e può contenere solo lettere in minuscolo, numeri e trattini. Il primo carattere del nome del servizio deve essere una lettera e l'ultimo deve essere una lettera o un numero.
    Piano Standard Il piano tariffario determina le risorse e i costi associati all'istanza.
    Area Area più vicina agli utenti. Località più vicina agli utenti.
    Ridondanza della zona opzione non selezionata Crea il servizio Azure Spring Apps in una zona di disponibilità di Azure. Attualmente non supportato in tutte le aree.
  4. Passare alla scheda Impostazioni di diagnostica nella pagina Crea app Azure Spring e quindi selezionare Crea nuovo per creare una nuova istanza di aree di lavoro Log Analytics. Nella pagina Crea nuova area di lavoro Log Analytics aggiornare il nome dell'area di lavoro Log Analytics in base alle esigenze e quindi selezionare OK per confermare la creazione.

    Screenshot del portale di Azure che mostra la pagina Crea app Azure Spring con la scheda Diagnostica selezionata e il pulsante Crea nuovo evidenziato.

  5. Passare alla scheda Application Insights nella pagina Crea app Azure Spring e quindi selezionare Crea nuovo per creare una nuova istanza di Application Insights. Nella pagina Crea nuova risorsa di Application Insights aggiornare il nome di Application Insights in base alle esigenze, selezionare Basato sull'area di lavoro per Modalità risorsa e quindi selezionare OK per confermare la creazione.

    Screenshot del portale di Azure che mostra la pagina Crea app Azure Spring con il riquadro Crea nuova risorsa di Application Insights.

  6. Selezionare Rivedi e crea per esaminare le selezioni. Selezionare quindi Crea per effettuare il provisioning dell'istanza di Azure Spring Apps.

  7. Selezionare l'icona Notifiche (a campana) per monitorare il processo di distribuzione. Al termine della distribuzione, è possibile selezionare Aggiungi al dashboard per creare un collegamento nel dashboard portale di Azure alla pagina Panoramica del servizio.

    Screenshot del portale di Azure che mostra una distribuzione di una risorsa e il riquadro Notifica con i pulsanti Vai alla risorsa e Aggiungi al dashboard.

  8. Selezionare Vai alla risorsa per passare alla pagina Panoramica di Azure Spring Apps.

  9. Selezionare Config Server (Server di configurazione) nel riquadro di spostamento.

  10. Nella pagina Config Server (Server di configurazione) immettere e https://github.com/Azure-Samples/spring-petclinic-microservices-config.git quindi selezionare Validate (Convalida).

    Screenshot della portale di Azure che mostra la pagina Config Server con l'URI predefinito e il pulsante Convalida evidenziato.

  11. Dopo la convalida, selezionare Applica per completare la configurazione del server di configurazione.

4. Distribuire le app in Azure Spring Apps

È ora possibile distribuire l'app in App Spring di Azure.

Usare la procedura seguente per distribuire le applicazioni di microservizi usando il plug-in Maven per Azure Spring Apps:

  1. Passare alla directory del progetto di esempio e quindi usare il comando seguente per configurare le app per Azure Spring Apps:

    ./mvnw -P spring-apps com.microsoft.azure:azure-spring-apps-maven-plugin:1.17.0:config
    
  2. L'elenco seguente descrive le interazioni con i comandi:

    • Selezionare i moduli figlio da configurare(numeri di input separati da virgola, ad esempio[1-2,4,6], INVIO per selezionare TUTTO): premere INVIO per selezionare tutto.
    • Accesso OAuth2: autorizzare l'accesso ad Azure in base al protocollo OAuth2.
    • Selezionare la sottoscrizione: selezionare il numero di elenco di sottoscrizioni dell'istanza di Azure Spring Apps creata, che per impostazione predefinita corrisponde alla prima sottoscrizione nell'elenco. Se si usa il numero predefinito, premere INVIO direttamente.
    • Selezionare App Azure Spring per la distribuzione: selezionare il numero di elenco dell'istanza di Azure Spring Apps creata. Se si usa il numero predefinito, premere INVIO direttamente.
    • Selezionare le app per esporre l'accesso pubblico:(numeri di input separati da virgola, ad esempio: [1-2,4,6], INVIO per selezionare NONE): immettere 1,5 per admin-server e api-gateway.
    • Confermare di salvare tutte le configurazioni precedenti (Y/n): premere y. Se si preme n, la configurazione non viene salvata nei file POM.
  3. Usare il comando seguente per compilare e distribuire ogni applicazione:

    ./mvnw azure-spring-apps:deploy
    
  4. Per la richiesta di accesso OAuth2, autorizzare l'accesso ad Azure in base al protocollo OAuth2.

    Nota

    La distribuzione in Azure Spring Apps può richiedere fino a 25 minuti.

Dopo l'esecuzione del comando, un log visualizza un output simile all'esempio seguente, che indica che tutte le distribuzioni hanno esito positivo:

[INFO] Deployment(default) is successfully updated.
[INFO] Deployment Status: Running
[INFO]   InstanceName:admin-server-default-xx-xx-xxx  Status:Running Reason:null       DiscoverStatus:UP
[INFO] Getting public url of app(admin-server)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-admin-server.azuremicroservices.io

...

[INFO] Getting public url of app(api-gateway)...
[INFO] Application url: https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.io

2. Preparare il progetto Spring

Il pulsante Deploy to Azure (Distribuisci in Azure) nella sezione successiva avvia un'esperienza di portale di Azure che scarica un pacchetto JAR dalla pagina ASA-Samples-Web-Application release (Versioni di ASA-Samples-Web-Application) in GitHub. Non sono necessari passaggi di preparazione locali.

3. Preparare l'ambiente cloud

La risorsa principale da eseguire questo esempio è un'istanza di Azure Spring Apps. Questa sezione descrive come creare questa risorsa.

Questa sezione usa un pulsante Distribuisci in Azure per avviare un'esperienza di distribuzione nella portale di Azure. Questa esperienza usa un modello di Resource Manager per creare risorse di Azure.

3.1. Accedere al portale di Azure

Passare al portale di Azure e immettere le credenziali per accedere al portale. La visualizzazione predefinita è il dashboard del servizio.

3.2. Creare risorse Azure

Usare la procedura seguente per creare tutte le risorse di Azure da cui dipende l'app:

  1. Selezionare il pulsante Distribuisci in Azure seguente per avviare l'esperienza di distribuzione nel portale di Azure:

    Pulsante per distribuire il modello di Resource Manager in Azure.

  2. Compilare il modulo nella scheda Informazioni di base . Utilizzare la tabella seguente come guida per completare il modulo:

    Impostazione Valore suggerito Descrizione
    Abbonamento Nome della sottoscrizione. Sottoscrizione di Azure da usare per il server. Se si hanno più sottoscrizioni, scegliere quella in cui si desidera che venga fatturata la risorsa.
    Gruppo di risorse myresourcegroup Nuovo nome di gruppo di risorse o uno esistente nella sottoscrizione.
    Area Area più vicina agli utenti. L'area viene usata per creare il gruppo di risorse.

    Screenshot del portale di Azure che mostra la pagina Distribuzione personalizzata.

  3. Selezionare Rivedi e crea per esaminare le selezioni. Selezionare quindi Crea per distribuire l'app in Azure Spring Apps.

  4. Sulla barra degli strumenti selezionare l'icona Notifiche a forma di campana per monitorare il processo di distribuzione. Al termine della distribuzione, è possibile selezionare Aggiungi al dashboard, che crea un riquadro per questo servizio nel dashboard portale di Azure come collegamento alla pagina Panoramica del servizio. Selezionare Vai alla risorsa per aprire la pagina Panoramica del servizio.

    Screenshot del portale di Azure che mostra la pagina Panoramica con il riquadro notifiche di distribuzione personalizzato aperto.

4. Distribuire le app in Azure Spring Apps

Il pulsante Distribuisci in Azure nella sezione precedente avvia un'esperienza di portale di Azure che include la distribuzione dell'applicazione, quindi non è necessario altro.

5. Convalidare le app

Le sezioni seguenti descrivono come convalidare la distribuzione.

5.1. Accedere alle applicazioni

Al termine della distribuzione, è possibile trovare l'URL di Spring Cloud Gateway dagli output della distribuzione, come illustrato nello screenshot seguente:

Screenshot del portale di Azure che mostra la pagina Output distribuzione.

Aprire l'URL del gateway. L'applicazione dovrebbe essere simile alla schermata seguente:

Screenshot dell'applicazione PetClinic in esecuzione nel piano Enterprise di Azure Spring Apps.

5.2. Eseguire query sui log dell'applicazione

Dopo aver esplorato ogni funzione di Pet Clinic, l'area di lavoro Log Analytics raccoglie i log di ogni applicazione. È possibile controllare i log usando query personalizzate, come illustrato nello screenshot seguente:

Screenshot del portale di Azure che mostra la pagina Log della query nell'applicazione PetClinic e i risultati per il piano Enterprise.

5.3. Monitorare le applicazioni

Application Insights monitora le dipendenze dell'applicazione, come illustrato nella mappa di traccia delle applicazioni seguente:

Screenshot del portale di Azure che mostra la pagina Mappa applicazioni per il piano Enterprise di Azure Spring Apps.

È possibile trovare l'URL della visualizzazione dinamica dell'applicazione dagli output della distribuzione. Aprire l'URL di Visualizzazione dinamica dell'applicazione per monitorare i runtime dell'applicazione, come illustrato nello screenshot seguente:

Screenshot della visualizzazione dinamica dell'applicazione per l'applicazione PetClinic.

5.1. Accedere alle applicazioni

Usando le informazioni sull'URL nell'output del log di distribuzione, aprire l'URL esposto dall'app denominata api-gateway , https://<your-Azure-Spring-Apps-instance-name>-api-gateway.azuremicroservices.ioad esempio . L'applicazione dovrebbe essere simile alla schermata seguente:

Screenshot dell'applicazione PetClinic in esecuzione in Azure Spring Apps.

5.2. Eseguire query sui log dell'applicazione

Dopo aver esplorato ogni funzione di Pet Clinic, l'area di lavoro Log Analytics raccoglie i log di ogni applicazione. È possibile controllare i log usando query personalizzate, come illustrato nello screenshot seguente:

Screenshot del portale di Azure che mostra la pagina Log della query nell'applicazione PetClinic e i risultati.

5.3. Monitorare le applicazioni

Application Insights monitora le dipendenze dell'applicazione, come illustrato nella mappa di traccia delle applicazioni seguente:

Screenshot del portale di Azure che mostra la pagina Mappa applicazioni per un'istanza di Application Insights.

Aprire l'URL esposto dall'app admin-server per gestire le applicazioni tramite Spring Boot Amministrazione Server, come illustrato nello screenshot seguente:

Screenshot della pagina Spring Boot Amministrazione Server per l'applicazione PetClinic che elenca le istanze dell'applicazione correnti.

6. Pulire le risorse

Se si prevede di usare le guide di avvio rapido e le esercitazioni successive, è consigliabile non cancellare le risorse create. Quando le risorse non sono più necessarie, è possibile pulire le risorse non necessarie per evitare addebiti di Azure.

Usare la procedura seguente per eliminare l'intero gruppo di risorse, inclusa l'istanza del servizio appena creata:

  1. Individuare il gruppo di risorse nel portale di Azure. Nel menu di spostamento selezionare Gruppi di risorse e quindi selezionare il nome del gruppo di risorse.

  2. Nella pagina Gruppo di risorse selezionare Elimina. Immettere il nome del gruppo di risorse nella casella di testo per confermare l'eliminazione e quindi selezionare Elimina.

Assicurarsi di eliminare le risorse create in questo articolo quando non sono più necessarie. È possibile eliminare il gruppo di risorse di Azure, che include tutte le risorse del gruppo.

Usare la procedura seguente per eliminare l'intero gruppo di risorse:

  1. Individuare il gruppo di risorse nel portale di Azure. Nel menu di spostamento selezionare Gruppi di risorse e quindi selezionare il nome del gruppo di risorse.

  2. Nella pagina Gruppo di risorse selezionare Elimina. Immettere il nome del gruppo di risorse nella casella di testo per confermare l'eliminazione e quindi selezionare Elimina.

7. Passaggi successivi

Per altre informazioni, vedere gli articoli seguenti: