Optimisation et gestion des applications dans SAP BTP, exécution Cloud Foundry

Implémentation d'un déploiement bleu vert avec SAP BTP, exécution Cloud Foundry pour aucune mise à jour de temps d'arrêt

Objective

After completing this lesson, you will be able to implémentez un déploiement bleu-vert avec SAP BTP, exécution Cloud Foundry pour les mises à jour Zero Downtime.

Implémentation d'un déploiement bleu vert avec SAP BTP, exécution Cloud Foundry pour aucune mise à jour de temps d'arrêt

Scénario de gestion

Commençons par examiner le scénario suivant : vous êtes responsable de la gestion de l'application Book Shop créée à l'aide de SAP CAP (Cloud Application Programming). Votre tâche consiste à implémenter une stratégie de déploiement bleu-vert pour garantir un temps d'arrêt minimal lors de l'introduction d'une modification rompue, comme l'ajout d'une nouvelle zone obligatoire à une entité. Cet exercice vous guidera tout au long des étapes de déploiement des modifications en toute sécurité et efficacité à l'aide de la stratégie de déploiement bleu-vert de SAP BTP, exécution Cloud Foundry.

Options d'exercice

Vous pouvez effectuer cet exercice de deux façons :

  1. Environnement en ligne à l'aide des instructions fournies ci-dessous, vous pouvez effectuer les étapes dans le compte SAP BTP gratuit.
  2. Simulation de plateforme : suivez les instructions étape par étape dans la simulation en cliquant sur le bouton « Commencer l'exercice » ci-dessous.

Remarque

Il est vivement recommandé d'effectuer d'abord les étapes dans l'environnement de production.

Flux de tâches

Dans cet exercice, vous allez effectuer les tâches suivantes :

  1. Configurez les conditions préalables et l'environnement.
  2. Effectuez le déploiement initial en bleu et vert de l'environnement BLUE (Live).
  3. Exécution d'un déploiement bleu-vert de l'environnement VERT (Inactif).
  4. Testez l'application.
  5. Faites de l'environnement VERT l'environnement productif.
  6. Nettoyer les ressources.

Conditions préalables

Comment obtenir de l'aide

Pour obtenir de l'aide lors des exercices, ajoutez votre question dans notre groupe de formation SAP BTP.

Simulation de plate-forme

Cet exercice utilise un exemple d'application multicible (MTA) nommé "librairie" contenant une application avec une interface REST.

Tâche 1: Configuration des conditions préalables et de l'environnement

Étapes

  1. Assurez-vous que toutes les conditions préalables sont installées et configurées.

    1. Exécutez les étapes requises.

  2. Clonez l'application SAP CAP Book Shop.

    1. Saisissez le code suivant :

      Code Snippet
      123
      git clone https://github.tools.sap/SAP-BTP-Courses/cf400_sample_app bookshop cd bookshop
  3. Installez les dépendances.

    1. Saisissez le code suivant :

      npm install
  4. Connectez-vous à Cloud Foundry.

    1. Saisissez le code suivant :

      Code Snippet
      123
      cf api <API-ENDPOINT> cf login cf target -o <ORG> -s <SPACE>

      Vous trouverez le point d'extrémité de l'API dans la section Synthèse de votre sous-compte dans le cockpit SAP BTP.

Tâche 2: Exécution du déploiement initial bleu-vert de l'environnement de production

Étapes

  1. Créez l'application pour la production.

    1. Saisissez le code suivant :

      cds build --production

      Le paramètre --production garantit que les artefacts liés au déploiement dans le cloud sont créés par cds build.

  2. Générez l'archive MTA initiale pour l'application.

    1. Saisissez le code suivant :

      Code Snippet
      1234
      mbt build -t gen --mtar hello-cloud-foundry-blue.mta INFO generating the MTA archive... INFO the MTA archive generated at: gen\hello-cloud-foundry-blue.mta

      Vous trouverez le point d'extrémité de l'API dans la section Synthèse de votre sous-compte dans le cockpit SAP BTP.

  3. Déployez l'environnement initial (bleu) à l'aide du fichier .mta existant.

    1. Saisissez le code suivant :

      Code Snippet
      1234567891011
      cf deploy .\gen\hello-cloud-foundry-blue.mta -f --strategy blue-green ... Operation ID: 1b313fd2-7a96-11ef-910c-eeee0a9ee328 ... No deployed MTA detected - this is initial deployment ... Starting application "hello-cloud-foundry-srv-idle"... Application "hello-cloud-foundry-srv-idle" started and available at "<org>-<space>-hello-cloud-foundry-srv-idle.<domain>" ... Renaming application "hello-cloud-foundry-srv-idle" to "hello-cloud-foundry-srv"... ...

      Remarque pour les utilisateurs Mac : la commande fournie utilise un format de chemin d'accès spécifique à Windows (par exemple, .)\mta_archives\hello-cloud-foundry-blue.mtar). Sur un Mac, vous devrez modifier le format du chemin d'accès au style Unix en remplaçant les barres obliques inverses (\) par des barres obliques ('/'). Par exemple, utilisez./mta_archives/hello-cloud-foundry-blue.mtar à la place.

  4. Vérifiez si les applications sont en cours d'exécution.

    1. Saisissez le code suivant :

      cf appsCapture d'écran affichant les applications en cours d'exécution.
  5. Saisissez l'itinéraire affiché pour hello-cloud-foundry-srv dans votre navigateur pour afficher la page d'ouverture CAP.

    Capture d'écran affichant où trouver les $metadata
  6. Sélectionnez $metadata pour explorer les champs de l'entité du livre.

    Capture d'écran du système, affichant les zones d'entité du livre.

Tâche 3: Exécution du déploiement bleu-vert de l'environnement inactif

Étapes

  1. Modifiez la définition de l'entité.

    1. Ouvrez le fichier db/data-model.cds dans lequel l'entité Book est définie. Cela peut ressembler à ceci :

      Code Snippet
      1234567
      namespace my.bookshop; entity Books { key ID : Integer; title : String; stock : Integer; }
    2. Ajoutez le nouveau champ PublishedDate à l'entité Livres :

      Code Snippet
      12345678
      namespace my.bookshop; entity Books { key ID : Integer; title : String; stock : Integer; publishedDate : Date; // New required field }
  2. Créez et déployez l'environnement vert (nouvelle version).

    1. Compilez l'archive d'applications multicible.

      mbt build -t gen --mtar hello-cloud-foundry-green.mta
    2. Déployez l'environnement vert (nouvelle version).

      Code Snippet
      123456789101112131415
      cf deploy .\gen\hello-cloud-foundry-green.mta -f --strategy blue-green ... Operation ID: 34099f67-7a9b-11ef-90ea-eeee0a9a9d78 ... Renaming application "hello-cloud-foundry-srv" to "hello-cloud-foundry-srv-live"... ... Starting application "hello-cloud-foundry-srv-idle"... Application "hello-cloud-foundry-srv-idle" started and available at "<org>-<space>-hello-cloud-foundry-srv-idle.<domain>" ... Process has entered testing phase. After testing your new deployment you can resume or abort the process. Use "cf deploy -i 34099f67-7a9b-11ef-90ea-eeee0a9a9d78 -a abort" to abort the process. Use "cf deploy -i 34099f67-7a9b-11ef-90ea-eeee0a9a9d78 -a resume" to resume the process. Hint: Use the "--skip-testing-phase" option of the deploy command to skip this phase. Hint: Use the '--skip-testing-phase' option of the deploy command to skip this phase. ...

Tâche 4: Tester l'application verte (inactive)

Étapes

  1. Testez l'application verte (inactive).

    1. Vérifiez si les applications sont en cours d'exécution :

      cf appsCapture d'écran affichant les applications en cours d'exécution.
    2. Assurez-vous que l'application hello-cloud-foundry-srv-idle fonctionne correctement avec le nouveau champ 'PublishedDate'.

      Capture d'écran affichant l'environnement d'exécution.

Tâche 5: Transformez l'environnement VERT en environnement de production

Dans cette tâche, vous allez passer à l'environnement VERT pour devenir le nouvel environnement de production en changeant d'itinéraire et en vérifiant le déploiement.

Étapes

  1. Faites de l'environnement VERT l'environnement productif.

    1. Accédez à l'ID d'opération.

      cf mta-opsCapture d'écran affichant les applications en cours d'exécution.
    2. Faites de l'environnement VERT l'environnement de production actif. Utilisez le code suivant :

      Code Snippet
      12345678910111213
      cf deploy -i 34099f67-7a9b-11ef-90ea-eeee0a9a9d78 -a resume Executing action "resume" on operation 34099f67-7a9b-11ef-90ea-eeee0a9a9d78... ... Updating application "hello-cloud-foundry-srv-idle"... Stopping application "hello-cloud-foundry-srv-idle"... Starting application "hello-cloud-foundry-srv-idle"... Application "hello-cloud-foundry-srv-idle" started and available at "<org>-<space>-hello-cl2bbcd228.<domain>" Renaming application "hello-cloud-foundry-srv-idle" to "hello-cloud-foundry-srv"... Deleting routes for application "hello-cloud-foundry-srv-live"... Stopping application "hello-cloud-foundry-srv-live"... Deleting application "hello-cloud-foundry-srv-live"... Process finished.
  2. Examinez le résultat.

    1. Vérifiez que les anciennes applications BLUE sont supprimées et que les nouvelles applications VERT sont affectées à des itinéraires productifs.

      cf appsCapture d'écran affichant les applications en cours d'exécution.
    2. Vérifiez que l'environnement VERT est productif et sert sur les itinéraires productifs, saisissez l'itinéraire affiché pour hello-cloud-foundry-srv dans votre navigateur et vérifiez les champs de l'entité de livre.

      Capture d'écran affichant l'environnement d'exécution.

Tâche 6: Nettoyer les ressources

Il est recommandé d'arrêter ou d'annuler le déploiement de vos MTA lorsqu'ils ne sont plus nécessaires. Pour ce faire, exécutez la commande suivante.

Étapes

  1. Nettoyer les ressources

    1. Utilisez le code suivant :

      cf undeploy hello-cloud-foundry --delete-services --delete-service-keys -f

Résultat

Dans cet exercice, vous avez correctement implémenté une stratégie de déploiement bleu-vert à l'aide de Cloud Foundry pour garantir aucune mise à jour des temps d'arrêt pour l'application Book Shop. Vous avez commencé par configurer l'environnement, déployer l'environnement bleu initial et vérifier sa fonctionnalité. Ensuite, vous avez mis à jour la définition d'entité dans l'environnement inactif (vert), déployé la nouvelle version et l'avez testée pour vous assurer que les modifications ont été appliquées correctement. Enfin, vous avez fait de l'environnement vert le nouvel environnement productif, assurant une transition en douceur sans perturber le service. Vous avez terminé en nettoyant les ressources pour gérer un espace de travail bien rangé.

Liens de référence/lecture ultérieure