Développement d'applications dans SAP BTP, exécution Cloud Foundry

Conception et exécution de votre application dans SAP BTP, exécution Cloud Foundry

Objective

After completing this lesson, you will be able to développez des applications dans SAP BTP, exécution Cloud Foundry.

Développement d'applications dans SAP BTP, exécution Cloud Foundry

Introduction

Votre entreprise a décidé de moderniser son processus de développement d'applications en passant à des solutions natives du Cloud. Dans le cadre de cette initiative, vous avez été chargé de comprendre l'écosystème de développement dans SAP Business Technology Platform (BTP), en vous concentrant spécifiquement sur l'exécution Cloud Foundry. Ces connaissances vous permettront de prendre des décisions éclairées sur l'architecture d'application et les méthodologies de développement dans un environnement natif du Cloud.

Synthèse

L'environnement d'exécution SAP BTP, Cloud Foundry offre une solution PaaS (Platform-as-a-Service) robuste, adaptée au développement et à l'orchestration d'applications natives du Cloud. En exploitant des normes ouvertes, les développeurs peuvent créer, déployer et faire évoluer efficacement des applications dans un environnement polyglotte.

Présentation des options de développement

L'exécution Cloud Foundry offre aux développeurs une flexibilité dans le choix de leur chemin de développement. Que ce soit en exploitant l'approche recommandée par SAP basée sur SAP Cloud Application Programming Model (CAP) ou en optant pour des solutions personnalisées, les développeurs peuvent choisir parmi une gamme de langages de programmation et d'outils de développement.

Sélectionner votre propre chemin

Dans la nature polyglotte de l'exécution Cloud Foundry, les développeurs ne sont pas limités à des langages ou outils de programmation spécifiques. Ils ont la flexibilité de choisir leurs outils de développement et de déploiement préférés. Les trois langages pris en charge par SAP sont Java, Node.js et Python. Cependant, il existe des buildpacks disponibles pour de nombreux autres langages de programmation, y compris Golang, ASP.NET, PHP, et plus encore. Sélectionnez les buildpacks appropriés en fonction des exigences de votre application.

Vous trouverez de plus amples informations sur les trois langues prises en charge par SAP à l'aide des liens suivants :

Remarque

Java, Node.js et Python bénéficient du support d'entreprise de SAP. Notez que les problèmes liés aux buildpacks non pris en charge doivent être résolus par vous-même. Vous devez également vous assurer que le fournisseur et le buildpack sont dignes de confiance.

Le chemin recommandé

SAP recommande de suivre une approche de développement structurée basée sur SAP Cloud Application Programming Model (CAP). En utilisant Java et Node.js, les développeurs peuvent bénéficier d'une prise en charge étendue des outils et des meilleures pratiques adaptées au développement d'applications natives du Cloud. Cependant, l'ordre des étapes de développement est flexible, ce qui permet de s'adapter à des cas d'utilisation spécifiques.

Développement d'applications multi-locataires dans l'exécution Cloud Foundry

Dans l'exécution Cloud Foundry de SAP BTP, vous pouvez développer et exécuter des applications multi-locataires auxquelles accèdent plusieurs consommateurs via une URL dédiée.

Quel est le modèle d'architecture mutualisée recommandé ?

L'architecture mutualisée permet aux fournisseurs d'applications de posséder, déployer et exploiter des applications tenant compte des locataires pour plusieurs consommateurs, réduisant ainsi les coûts en partageant les ressources et en mettant à jour les applications en une seule étape. Dans Cloud Foundry, le concept de multi-location privilégié exploite le fait que chaque consommateur accède à l'application via une URL dédiée, garantissant ainsi la séparation et la sécurité des données. Vous trouverez des informations détaillées sur l'architecture mutualisée, les rôles et son fonctionnement dans la documentation SAP ici.

Directives de développement

Lors du développement d'applications tenant compte des locataires, suivez ces directives :

  • Évitez les données in-memory partagées (par exemple, les zones statiques Java).
  • Empêcher les utilisateurs d'exécuter un code personnalisé ou d'accéder au système de fichiers.
  • Implémentez Subscription rappels pour l'intégration du locataire avec le service SAP SaaS Provisioning (saas-registry).

Procédure

Vous trouverez des procédures d'implémentation détaillées dans la documentation SAP ici.

Informations liées

Applications multicibles dans l'exécution Cloud Foundry

Une application multicible (MTA) est essentiellement une application unique qui se compose de plusieurs parties. Ces parties sont créées à l'aide de différentes technologies et partagent le même cycle de vie.

Les développeurs de MTA décrivent les résultats prévus en utilisant le modèle MTA. Ce modèle se compose de modules MTA, de ressources MTA et des interdépendances entre eux. Ensuite, le service SAP Cloud Deployment le valide, orchestre les actions nécessaires et automatise le déploiement MTA. Le résultat est la formation d'applications Cloud Foundry, de services et la génération de contenu spécifique à SAP. L'exécution SAP BTP Cloud Foundry est spécifiquement conçue pour prendre en charge le déploiement de telles applications. Pour plus d'informations sur le modèle d'application multicible, voir les documents de spécification officiels : The Multitarget Application Model v.2 et The Multitarget Application Model v.3.

Remarque

Notez que MTA n'est pas lié à Cloud Foundry. Il s'agit d'un concept inconnu dans Cloud Foundry qui a été créé séparément par SAP. C'est la raison pour laquelle les clients ne trouvent pas la commande "cf deploy" dans la CLI CF. Pour utiliser "cf deploy", vous devez installer un plug-in CF CLI respectif.

Concepts clés et terminologie

  • Descripteur MTA (mta.yaml)

    Un fichier YAML qui répertorie tous les composants du MTA, tels que les modules, les ressources, les propriétés et leurs interdépendances. Ce fichier est essentiel pour définir la manière dont le MTA est structuré et déployé. Un exemple de descripteur MTA est fourni ici.

  • Module

    Chaque partie autonome d'un MTA, comme un module Java ou HTML5, représentant différents niveaux ou composants de l'application.

  • Ressource

    Services externes ou propriétés requis par un module au moment de l'exécution, qui ne font pas partie du module lui-même.

  • Propriété

    Paires clé-valeur utilisées lors du déploiement ou de l'exécution pour configurer des modules ou des ressources.

  • Dépendance

    Liens entre les modules et les ressources, essentiels pour résoudre les dépendances d'exécution et de déploiement.

Différentes approches pour créer une application multicible

Vous pouvez créer et déployer une application multicible dans l'exécution Cloud Foundry en sélectionnant parmi plusieurs approches décrites ci-dessous, chacune pouvant obtenir le même résultat :

  • En utilisant SAP Web IDE Full-Stack comme décrit dans Développement d'applications multicibles, le descripteur de développement mta.yaml et le descripteur de déploiement mtad.yaml sont créés automatiquement. Le mta.yaml est généré lorsque vous créez le projet d'application et le fichier mtad.yaml est créé lorsque vous compilez le projet.

    Remarque

    Il peut être nécessaire de modifier le descripteur de développement.

    Les descripteurs de développement sont utilisés pour générer des descripteurs de déploiement MTA, qui définissent les données de déploiement requises. En d'autres termes, les données du descripteur de développement MTA spécifient ce que vous souhaitez créer et comment les créer, tandis que les données du descripteur de déploiement spécifient ce qui doit être déployé et comment le déployer.

  • Utilisation de SAP Business Application Studio : le flux est similaire à WebIDE, mais le développement est effectué à partir de SAP Business Application Studio, comme décrit ici.

  • Utilisation de l'outil de création MTA Cloud. Vous déployez ensuite le MTA à l'aide de l'interface de ligne de commande Cloud Foundry.

    Remarque

    Un descripteur de développement MTA mta.yaml est requis. Vous devez le créer manuellement.
  • Manuellement : créez les fichiers requis manuellement et déployez-les à l'aide de l'interface de ligne de commande Cloud Foundry.

    Remarque

    Un descripteur de développement MTA mta.yaml n'est pas explicitement requis. Dans ce cas, un descripteur de déploiement est géré à la place.

    1. Créez les fichiers requis à l'aide d'un IDE de votre choix.
    2. Pour produire vos artefacts personnalisés, utilisez une technologie de build de votre choix.
    3. Gérez votre document descripteur de déploiement (mtad.yaml).
      1. (Facultatif) Si vous souhaitez disposer d'un package d'archive MTA, utilisez le mbt assemble.
      2. Sinon, déployez le mtad.yaml directement en poussant vos fichiers individuellement.

Meilleures pratiques pour le développement d'applications modernes pour SAP BTP, exécution Cloud Foundry

Cloud Foundry prend en charge les meilleures applications natives Cloud. Les meilleurs principes pour la création d'applications Cloud natives sont décrits dans la méthodologie des applications à 12 facteurs. Les développeurs sont encouragés à consulter ces principes pour obtenir des conseils sur le développement d'applications robustes et évolutives dans l'exécution Cloud Foundry.

Évitez d'écrire dans le système de fichiers local

Les applications exécutées sur Cloud Foundry doivent éviter d'écrire des fichiers dans le système de fichiers local en raison de leur nature courte et non persistante et de leur manque de partage de fichiers entre les instances. À la place, utilisez des services de stockage Cloud tels que SAP HANA Cloud ou d'autres bases de données relationnelles, ou des solutions hyperscaler pour le stockage persistant des données.

Cookies accessibles dans toutes les applications

Remarque

Considérez que tous les principaux navigateurs s'éloignent de l'utilisation des cookies et, par conséquent, ont limité leur fonctionnalité au cours des dernières années. Par conséquent, il peut être dangereux d'utiliser des cookies ici.

Dans les environnements avec des domaines partagés, les cookies peuvent être accessibles dans toutes les applications. Les développeurs doivent décider de définir ou non les cookies dans le domaine le plus élevé disponible pour garantir un comportement cohérent dans toutes les applications.

Considérations relatives au port

Les clients se connectent aux applications Cloud Foundry via des URL associées à l'application. Les requêtes HTTP sont autorisées sur les ports 80 et 443, avec prise en charge des connexions WebSocket.

Haute disponibilité

Pour éviter une indisponibilité temporaire, vous devez exécuter plusieurs instances de l'application. Cloud Foundry utilise un processus appelé évacuation pour déplacer les instances d'application, qui se produit fréquemment et est une opération courante du système interne.

Il recrée des instances sur une autre machine virtuelle (VM), puis arrête les anciennes. Les instances d'application Singleton peuvent être temporairement indisponibles si la nouvelle instance ne devient pas saine pendant le délai d'expiration de l'évacuation (par défaut, 12 minutes). De plus, pendant une courte période, votre singleton peut avoir deux instances, ce qui peut entraîner des problèmes s'il n'est pas correctement géré.

Pour minimiser les temps d'arrêt, il est essentiel d'exécuter plusieurs instances de votre application. Cliquez ici pour en savoir plus sur : la haute disponibilité au niveau de la plateforme et de l'application et le cycle de vie du conteneur d'applications sur l'architecture Diego.

Ignorer les fichiers inutiles lors du push

Par défaut, tous les fichiers du répertoire de projets d'une application sont chargés dans Cloud Foundry lors du déploiement. Exclure les fichiers inutiles à l'aide d'un fichier .cfignore pour améliorer l'efficacité du déploiement.

Délais d'expiration de l'application : considérations clés

Dans SAP BTP, Cloud Foundry, votre application doit respecter des limites de temps strictes :

  • Téléchargement : terminé dans les 15 minutes.
  • Mise à disposition : doit se terminer dans 15 minutes.
  • Démarrage : l'application doit démarrer dans les 60 minutes (configurable).

Délai d'expiration d'arrêt critique

Lorsqu'une application reçoit un signal d'arrêt (SIGTERM), elle dispose de 60 secondes pour se fermer gracieusement avant d'être terminée de force par SIGKILL. Le fait de ne pas s'arrêter correctement peut entraîner une corruption des données ou d'autres problèmes, en particulier avec la persistance. Il est essentiel de s'assurer que votre application peut gérer cela dans la fenêtre de 60 secondes.

Application Autoscaler

Configurez le service SAP BTP, exécution Cloud Foundry App Autoscaler, qui vous permet d'augmenter ou de réduire automatiquement le nombre d'instances de votre application en fonction des stratégies que vous avez définies. Le service ajustera alors automatiquement le nombre d'instances d'application en fonction de la charge actuelle, garantissant ainsi des applications plus résilientes et évolutives.

Journalisation Cloud

Utilisez les fonctionnalités de journalisation de SAP BTP pour une meilleure observabilité. Utilisez des services de journalisation centralisés tels que la journalisation Cloud pour surveiller et analyser les performances et le comportement de l'application.

Service de notification d'alerte

Configurez le service Alert Notification de SAP BTP, exécution Cloud Foundry pour recevoir des notifications en temps réel sur les événements critiques, ce qui améliore la capacité à répondre rapidement aux problèmes.

Synthèse

Dans cette leçon, vous avez exploré les principaux aspects du développement d'applications dans SAP BTP, exécution Cloud Foundry. Vous avez découvert les chemins de développement flexibles, y compris l'utilisation du Cloud Application Programming Model (CAP) et les options Java, Node.js et Python, prises en charge par SAP. La leçon a également porté sur le développement d'applications mutualisées et du modèle d'application multicible. En outre, il a abordé les stratégies de migration et les meilleures pratiques pour le développement natif du Cloud. Ces connaissances vous aideront à concevoir et développer efficacement des applications natives du Cloud.