Configurare un ambiente di gestione temporanea in 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.

Questo articolo si applica a: ✔️ Java ❌ C#

Questo articolo si applica a:❌ Basic/Standard ✔️ Enterprise

Questo articolo illustra come configurare una distribuzione di gestione temporanea usando il modello di distribuzione blu/verde in Azure Spring Apps. La distribuzione di tipo blu-verde è un modello di recapito continuo Azure DevOps che si basa sul mantenimento di una versione esistente (blu) attiva, mentre viene distribuita una versione nuova (verde). Questo articolo intende anche dimostrare come portare la distribuzione di gestione temporanea in produzione senza cambiare direttamente la distribuzione di produzione.

Prerequisiti

In questo articolo viene usata un'applicazione creata da Spring Initializr. Se si desidera usare un'applicazione diversa per questo esempio, apportare una modifica in una parte pubblica dell'applicazione per differenziare la distribuzione di gestione temporanea dalla distribuzione di produzione.

Suggerimento

Azure Cloud Shell è una shell interattiva gratuita che può essere utilizzata per eseguire le istruzioni riportate in questo articolo. Include i comuni strumenti di Azure preinstallati, tra cui le ultime versioni di Git, JDK, Maven e dell'interfaccia della riga di comando di Azure. Se è stato effettuato l'accesso alla propria sottoscrizione di Azure, avviare l'istanza Cloud Shell. Per altre informazioni, vedere Panoramica di Azure Cloud Shell.

Per configurare la distribuzione blu-verde in Azure Spring Apps, seguire le istruzioni riportate nelle sezioni successive.

Installare l'estensione dell'interfaccia della riga di comando di Azure.

Installare l'estensione Azure Spring Apps per l'interfaccia della riga di comando di Azure usando il comando seguente:

az extension add --name spring

Preparare l'app e le distribuzioni

Per compilare l'applicazione, effettuare le operazioni seguenti:

  1. Generare il codice per l'app di esempio usando Spring Initializr con questa configurazione.

  2. Scaricare il codice.

  3. Aggiungere il file di origine HelloController.java seguente alla cartella *\src\main\java\com\example\hellospring*:

    package com.example.hellospring;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @RestController
    
    public class HelloController {
    
    @RequestMapping("/")
    
      public String index() {
          return "Greetings from Azure Spring Apps!";
      }
    
    }
    
  4. Compilare il file .jar:

    mvn clean package -DskipTests
    
  5. Creare l'app nell'istanza di Azure Spring Apps:

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --runtime-version Java_17 \
        --assign-endpoint
    
  6. Distribuire l'app in Azure Spring Apps:

    az spring app deploy \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    
  7. Modificare il codice per la distribuzione di gestione temporanea:

    package com.example.hellospring;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @RestController
    
    public class HelloController {
    
    @RequestMapping("/")
    
      public String index() {
          return "Greetings from Azure Spring Apps! THIS IS THE GREEN DEPLOYMENT";
      }
    
    }
    
  8. Ricompilare il file .jar:

    mvn clean package -DskipTests
    
  9. Creare la distribuzione verde:

    az spring app deployment create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --app demo \
        --name green \
        --runtime-version Java_17 \
        --artifact-path target\hellospring-0.0.1-SNAPSHOT.jar
    

Visualizzare app e distribuzioni

Per visualizzare questi dati, procedere come indicato di seguito.

  1. Passare all'istanza di Azure Spring Apps nel portale di Azure.

  2. Nel riquadro di spostamento aprire il riquadro App per visualizzare le app per l'istanza del servizio.

    Screenshot del riquadro App che mostra le app per l'istanza del servizio.

  3. Selezionare un'app per visualizzare i dettagli.

    Screenshot dell'app demo che mostra la pagina Panoramica con le impostazioni disponibili.

  4. Aprire Distribuzioni per visualizzare tutte le distribuzioni dell'app. La griglia mostra le distribuzioni di produzione e di gestione temporanea.

    Screenshot che mostra le distribuzioni dell'app elencate.

  5. Selezionare l'URL per aprire l'applicazione attualmente distribuita.

    Screenshot che mostra l'URL dell'applicazione distribuita.

  6. Selezionare Produzione nella colonna Stato per visualizzare l'app predefinita.

    Screenshot che mostra l'URL dell'app predefinita.

  7. Selezionare Gestione temporanea nella colonna Stato per visualizzare l'app di gestione temporanea.

    Screenshot che mostra l'URL dell'app di gestione temporanea.

Suggerimento

Verificare che l'endpoint di test termini con una barra (/) per assicurarsi che il file CSS venga caricato correttamente. Se il browser richiede di immettere le credenziali di accesso per visualizzare la pagina, usare Decodifica URL per decodificare l'endpoint di test. La decodifica URL restituisce un URL in formato https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green. Usare questo formato per accedere all'endpoint. Per disabilitare l'autenticazione di base per l'endpoint di test, eseguire il comando seguente dell'interfaccia della riga di comando di Azure: az spring app update --resource-group <resource-group-name> --service <Azure-Spring-Apps-instance-name> --name demo --disable-test-endpoint-auth true

Nota

Le impostazioni del server di configurazione si applicano sia all'ambiente di gestione temporanea, sia all'ambiente di produzione. Ad esempio, se si imposta il percorso di contesto (server.servlet.context-path) per la demo dell'app nel server di configurazione come somepath, il percorso della distribuzione verde diventa https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/....

Se a questo punto si visita la demo dell'app pubblica, si dovrebbe vedere la pagina precedente senza la nuova modifica.

Impostare la distribuzione verde come ambiente di produzione

  1. Dopo aver verificato la modifica nell'ambiente di gestione temporanea, è possibile eseguirne il push in produzione. Nella pagina App>Distribuzioni selezionare l'applicazione attualmente in Produzione.

  2. Selezionare i puntini di sospensione dopo lo Stato di registrazione della distribuzione verde, quindi selezionare Imposta come produzione.

    Screenshot che mostra le selezioni per impostare la compilazione della gestione temporanea in produzione.

  3. Verificare che nell'URL dell'app siano visualizzate le modifiche.

    Screenshot che mostra l'URL dell'app attualmente in produzione.

Nota

Dopo aver impostato la distribuzione verde come ambiente di produzione, la distribuzione precedente diventa quella di gestione temporanea.

Modificare la distribuzione di staging

Se non si è soddisfatti della modifica, è possibile modificare il codice dell'applicazione, compilare un nuovo pacchetto .jar e caricarlo nella distribuzione verde tramite l'interfaccia della riga di comando di Azure:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name demo \
    --deployment green \
    --artifact-path demo.jar

Eliminare la distribuzione di gestione temporanea

Per eliminare la distribuzione di gestione temporanea dal portale di Azure, passare alla pagina per la distribuzione di gestione temporanea e selezionare il pulsante Elimina.

In alternativa, eliminare la distribuzione di gestione temporanea dall'interfaccia della riga di comando di Azure eseguendo il comando seguente:

az spring app deployment delete \
    --resource-group <resource-group-name> \
    --service <service-instance-name> \
    --name <staging-deployment-name> \
    --app demo

Passaggi successivi