Einrichten einer Stagingumgebung in Azure Spring Apps

Hinweis

Azure Spring Apps ist der neue Name für den Azure Spring Cloud-Dienst. Obwohl der Dienst umbenannt wurde, wird der alte Name noch an einigen Stellen verwendet, solange wir Ressourcen wie Screenshots, Videos und Diagramme aktualisieren.

Dieser Artikel gilt für: ✔️ Java ❌ C#

Dieser Artikel gilt für:❌ Basic ✔️ Standard ✔️ Enterprise

In diesem Artikel wird erläutert, wie Sie unter Verwendung des Blau-Grün-Bereitstellungsmusters in Azure Spring Apps eine Stagingbereitstellung einrichten. Die Blau-Grün-Bereitstellung ist ein Azure DevOps-Muster für Continuous Delivery, bei dem eine vorhandene Version (blau) live bleibt, während eine neue Version (grün) bereitgestellt wird. In diesem Artikel wird außerdem gezeigt, wie Sie diese Stagingbereitstellung in die Produktion überführen, ohne die Produktionsbereitstellung zu ändern.

Voraussetzungen

In diesem Artikel wird eine Anwendung verwendet, die mit Spring Initializr erstellt wurde. Wenn Sie für dieses Beispiel eine andere Anwendung verwenden möchten, nehmen Sie am öffentlichen Teil der Anwendung eine Änderung vor, um die Staging- von der Produktionsbereitstellung zu unterscheiden.

Tipp

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Anweisungen in diesem Artikel ausführen können. Sie verfügt über allgemeine vorinstallierte Azure-Tools, u. a. die aktuellen Versionen von Git, JDK, Maven und der Azure-Befehlszeilenschnittstelle. Wenn Sie bei Ihrem Azure-Abonnement angemeldet sind, starten Sie Ihre Cloud Shell-Instanz. Weitere Informationen finden Sie in der Übersicht über Azure Cloud Shell.

Befolgen Sie die Anweisungen in den nächsten Abschnitten, um die Blau-Grün-Bereitstellungen in Azure Spring Apps einzurichten.

Installieren der Azure CLI-Erweiterung

Führen Sie den folgenden Befehl aus, um die Azure Spring Apps-Erweiterung für die Azure CLI zu installieren:

az extension add --name spring

Vorbereiten der App und der Bereitstellungen

Führen Sie die folgenden Schritte aus, um die Anwendung zu erstellen:

  1. Generieren Sie den Code für die Beispiel-App mithilfe von Spring Initializr mit dieser Konfiguration.

  2. Laden Sie den Code herunter.

  3. Fügen Sie folgende Quelldatei HelloController.java dem Ordner „*\src\main\java\com\example\hellospring“ hinzu:

    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. Erstellen Sie die JAR-Datei:

    mvn clean package -DskipTests
    
  5. Erstellen Sie die App in Ihrer Azure Spring Apps-Instanz:

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name demo \
        --runtime-version Java_17 \
        --assign-endpoint
    
  6. Stellen Sie die App in Azure Spring Apps bereit:

    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. Ändern Sie den Code für die Stagingbereitstellung:

    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. Erstellen Sie die JAR-Datei neu:

    mvn clean package -DskipTests
    
  9. Erstellen Sie die Grün-Bereitstellung:

    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
    

Anzeigen von Apps und Bereitstellungen

Führen Sie die folgenden Schritte aus, um bereitgestellte Apps anzuzeigen.

  1. Wechseln Sie im Azure-Portal zu Ihrer Azure Spring Apps-Instanz.

  2. Öffnen Sie im Navigationsbereich den Bereich Apps, um die Apps für Ihre Dienstinstanz anzuzeigen.

    Screenshot: Bereich „Apps“ mit Apps für Ihre Dienstinstanz.

  3. Wählen Sie eine App aus, um Details anzuzeigen.

    Screenshot der Demo-App mit verfügbaren Einstellungen auf der Seite „Übersicht“.

  4. Öffnen Sie Bereitstellungen, um alle Bereitstellungen der App anzuzeigen. Das Raster zeigt die Produktions- und Stagingbereitstellungen.

    Screenshot: Auflistung der App-Bereitstellungen

  5. Klicken Sie auf die URL, um die aktuell bereitgestellte Anwendung zu öffnen.

    Screenshot: URL der bereitgestellten Anwendung.

  6. Klicken Sie in der Spalte Zustand auf Produktion, um die Standard-App anzuzeigen.

    Screenshot: URL der Standard-App.

  7. Klicken Sie in der Spalte Zustand auf Staging, um die Staging-App anzuzeigen.

    Screenshot: URL der Staging-App.

Tipp

Vergewissern Sie sich, dass der Testendpunkt mit einem Schrägstrich (/) endet, um sicherzustellen, dass die CSS-Datei richtig geladen wird. Wenn Sie zum Anzeigen der Seite Anmeldeinformationen im Browser eingeben müssen, verwenden Sie URL-Decodierung, um den Testendpunkt zu decodieren. Die URL-Decodierung gibt eine URL im Format https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green zurück. Verwenden Sie dieses Format für den Zugriff auf Ihren Endpunkt.

Hinweis

Die Konfigurationsservereinstellungen gelten sowohl für Ihr Stagingumgebung als auch für Ihre Produktionsumgebung. Wenn Sie beispielsweise für den Kontextpfad (server.servlet.context-path) für Ihr App-Demo im Konfigurationspfad somepath festlegen, wird der Pfad zu Ihrer grünen Bereitstellung in https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/... geändert.

Wenn Sie jetzt die öffentliche App Demo-Instanz aufrufen, wird die alte Seite ohne die Änderung angezeigt.

Festlegen der grünen Bereitstellung als Produktionsumgebung

  1. Nachdem Sie die Änderung in Ihrer Stagingumgebung überprüft haben, können Sie sie in die Produktion überführen. Wählen Sie auf der Seite Apps>Bereitstellungen die Anwendung aus, die sich derzeit in der Produktion befindet.

  2. Klicken Sie auf die Auslassungspunkte nach dem Registrierungsstatus der grünen Bereitstellung, und klicken Sie dann auf Als Produktion festlegen.

    Screenshot: Auswahl zum Festlegen des Stagingbuilds für die Produktion

  3. Stellen Sie sicher, dass die URL der App Ihre Änderungen widerspiegelt.

    Screenshot: URL der App, die sich nun in der Produktionsumgebung befindet.

Hinweis

Sobald die grüne Bereitstellung als Produktionsumgebung festgelegt wurde, wird die vorherige Bereitstellung zur Stagingbereitstellung.

Ändern der Stagingbereitstellung

Wenn Sie mit Ihrer Änderung nicht zufrieden sind, können Sie Ihren Anwendungscode ändern, ein neues JAR-Paket erstellen und dieses mithilfe der Azure CLI in Ihre grüne Bereitstellung hochladen:

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

Löschen der Stagingbereitstellung

Rufen Sie die Seite für Ihre Stagingbereitstellung auf, und klicken Sie auf Löschen, um Ihre Stagingbereitstellung über das Azure-Portal zu löschen.

Alternativ können Sie die Stagingbereitstellung über die Azure CLI löschen, indem Sie den folgenden Befehl ausführen:

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

Nächste Schritte