Configurare un ambiente di gestione temporanea in Azure Spring Apps
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
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
- Istanza di Azure Spring Apps esistente nel piano Standard.
- Interfaccia della riga di comando di Azure.
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:
Generare il codice per l'app di esempio usando Spring Initializr con questa configurazione.
Scaricare il codice.
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!"; } }
Compilare il file .jar:
mvn clean package -DskipTests
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
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
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"; } }
Ricompilare il file .jar:
mvn clean package -DskipTests
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.
Passare all'istanza di Azure Spring Apps nel portale di Azure.
Nel riquadro di spostamento aprire il riquadro App per visualizzare le app per l'istanza del servizio.
Selezionare un'app per visualizzare i dettagli.
Aprire Distribuzioni per visualizzare tutte le distribuzioni dell'app. La griglia mostra le distribuzioni di produzione e di gestione temporanea.
Selezionare l'URL per aprire l'applicazione attualmente distribuita.
Selezionare Produzione nella colonna Stato per visualizzare l'app predefinita.
Selezionare Gestione temporanea nella colonna Stato per visualizzare l'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
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.
Selezionare i puntini di sospensione dopo lo Stato di registrazione della distribuzione verde, quindi selezionare Imposta come produzione.
Verificare che nell'URL dell'app siano visualizzate le modifiche.
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