Configurer un environnement de préproduction dans Azure Spring Apps

Remarque

Azure Spring Apps est le nouveau nom du service Azure Spring Cloud. Bien que le service ait un nouveau nom, vous verrez l’ancien nom à divers endroits pendant un certain temps, car nous travaillons à mettre à jour les ressources telles que les captures d’écran, les vidéos et les diagrammes.

Cet article s’applique à : ✔️ Java ❌ C#

Cet article s’applique à : ❌ De base ✔️ Standard ✔️ Entreprise

Cet article explique comment configurer un déploiement de préproduction à l’aide du modèle de déploiement bleu-vert dans Azure Spring Apps. Le déploiement bleu-vert est un modèle de livraison continue Azure DevOps qui consiste à garder en service une version existante (bleue) pendant le déploiement d'une nouvelle version (verte). Cet article vous montre également comment faire passer ce déploiement intermédiaire en production sans modifier le déploiement de production.

Prérequis

  • Une instance Azure Spring Apps existante sur le plan Standard.
  • Azure CLI.

Cet article utilise une application générée à partir de Spring Initializr. Si vous souhaitez utiliser une autre application pour cet exemple, apportez une modification à une partie publique de l’application afin de différencier votre déploiement de préproduction du déploiement de production.

Conseil

Azure Cloud Shell est un interpréteur de commandes interactif gratuit que vous pouvez utiliser pour exécuter les instructions de cet article. Les outils Azure les plus courants sont préinstallés, notamment les dernières versions de Git, JDK, Maven et Azure CLI. Si vous êtes connecté à votre abonnement Azure, lancez votre instance de Cloud Shell. Pour en savoir plus, consultez Vue d’ensemble d’Azure Cloud Shell.

Pour configurer un déploiement bleu-vert dans Azure Spring Apps, suivez les instructions des sections suivantes.

Installer l’extension Azure CLI

Installez l’extension Azure Spring Apps pour Azure CLI à l’aide de la commande suivante :

az extension add --name spring

Préparer l'application et les déploiements

Pour générer l'application, procédez comme suit :

  1. Générez le code de l'exemple d'application à l'aide de Spring Initializr avec cette configuration.

  2. Téléchargez le code.

  3. Ajoutez le fichier source HelloController.java suivant au dossier *\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. Générez le fichier .jar :

    mvn clean package -DskipTests
    
  5. Créez l’application dans votre instance 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. Déployez l’application sur 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. Modifiez le code de votre déploiement intermédiaire :

    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. Régénérez le fichier .jar :

    mvn clean package -DskipTests
    
  9. Créez le déploiement vert :

    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
    

Afficher les applications et les déploiements

Effectuez les étapes suivantes pour afficher les applications déployées.

  1. Accédez à votre instance Azure Spring Apps dans le portail Azure.

  2. Dans le volet de navigation, ouvrez le volet Apps pour afficher les applications de votre instance de service.

    Capture d’écran du volet Applications montrant les applications pour votre instance de service.

  3. Sélectionnez une application pour afficher les détails.

    Capture d’écran de l’application de démonstration montrant la page Vue d’ensemble avec les paramètres disponibles.

  4. Ouvrez Déploiements pour voir tous les déploiements de l’application. La grille affiche le déploiement de production et le déploiement intermédiaire.

    Capture d'écran affichant la liste des déploiements d'applications.

  5. Sélectionnez l'URL pour ouvrir l'application actuellement déployée.

    Capture d’écran montrant l’URL de l’application déployée.

  6. Sélectionnez Production dans la colonne État pour afficher l'application par défaut.

    Capture d’écran montrant l’URL de l’application par défaut.

  7. Sélectionnez Intermédiaire dans la colonne État pour afficher l'application intermédiaire.

    Capture d’écran montrant l’URL de l’application de préproduction.

Conseil

Vérifiez que votre point de terminaison de test se termine par une barre oblique (/) pour garantir le bon chargement du fichier CSS. Si votre navigateur vous demande d’entrer des informations d’identification de connexion pour afficher la page, utilisez URL Decode pour décoder votre point de terminaison de test. Le décodage par URL retourne une URL au format https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green. Utilisez ce format pour accéder à votre point de terminaison.

Remarque

Les paramètres du serveur de configuration s'appliquent à la fois à votre environnement intermédiaire et à votre environnement de production. Par exemple, si vous définissez le chemin contextuel (server.servlet.context-path) pour la démo de votre application dans le serveur de configuration sur quelque part, le chemin d'accès à votre déploiement vert devient https://\<username>:\<password>@\<cluster-name>.test.azuremicroservices.io/demo/green/somepath/....

Si vous visitez la démonstration de votre application publique à ce stade, vous devez voir l’ancienne page sans votre nouvelle modification.

Définir le déploiement vert comme environnement de production

  1. Après avoir vérifié votre changement dans votre environnement intermédiaire, vous pouvez l’envoyer (push) en production. Sur la page Applications>Déploiements, sélectionnez l'application qui se trouve actuellement en Production.

  2. Sélectionnez les points de suspension situés après l'État de l'inscription du déploiement vert, puis sélectionnez Définir en tant que déploiement de production.

    Capture d'écran illustrant les sélections nécessaires pour définir la build intermédiaire en tant que build de production.

  3. Vérifiez que l'URL de l'application affiche vos modifications.

    Capture d’écran montrant l’URL de l’application désormais en production.

Remarque

Une fois le déploiement vert défini comme environnement de production, le déploiement précédent devient le déploiement intermédiaire.

Modifier le déploiement de préproduction

Si vous n'êtes pas satisfait de votre changement, vous pouvez modifier le code de votre application, générer un nouveau package .jar et le charger dans votre déploiement vert à l'aide d'Azure CLI :

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

Supprimer le déploiement intermédiaire

Pour supprimer votre déploiement intermédiaire du portail Azure, accédez à la page correspondante et sélectionnez le bouton Supprimer.

Vous pouvez également supprimer votre déploiement intermédiaire à partir d’Azure CLI en exécutant la commande suivante :

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

Étapes suivantes