Migration de votre liaison de service

Prenons une application cloud-native commune qui suit les principes de l'application à 12 facteurs, simplifie et met à jour le code, et crée à la fois une version de cloud et une version Code Engine. Ces versions servent d'exemple pour la discussion des étapes de migration et des aspects de déploiement.

L'exemple d'application est une application web typique écrite en Node.jsJavaScript et utilisant le framework web Express. Une base de données IBM Cloudant NoSQL sert de service de support pour stocker les données affichées par l'application. Comme typique pour les applications de type cloud, 12 facteurs, l'application exemple est basée sur des composants discres et réutilisables qui agissent comme des micro-services pour constituer l'application globale. Le programme Node.js déployé et la base de données peuvent être mis à l'échelle, améliorés ou même remplacés indépendamment. Les composants fonctionnent ensemble en raison de leur configuration et de l'utilisation d'API bien définies.

Application native cloud simple avec service de base de données de back end.
Simple cloud-native app with backend database service.

La base de données IBM Cloudant peut être configurée pour fonctionner comme une ressource attachée avec les versions d'applications qui sont déployées sur Cloud Foundry et Code Engine Par souci de simplicité, la solution est maintenue à ces deux composants.

Création de la liaison de service

Cet exemple d'application nécessite une base de données Cloudant pour stocker le contenu. Vous pouvez configurer l'accès à Cloudant en injectant manuellement des variables d'environnement, mais le processus classique passe par la liaison de service. La relation entre l'application et ses services de support est explicitement indiquée, de sorte que les données d'identification sont créées et automatiquement injectées dans l'environnement d'exécution. Cloud Foundry fournit les données d'identification dans le cadre de l'objet VCAP_SERVICES. Code Engine imite cet objet via sa variable d'environnement CE_SERVICES.

Les applications Cloud Foundry et Code Engine s'attachent au service de base de données. Le code déployé sur Code Engine peut être considéré comme une version différente, plus récente, de l'application Cloud Foundry. Il continue d'être lié au même service de base de données, mais par d'autres moyens.

Pour lier la version Code Engine de l'application à un service,

  1. Accédez à votre instance de base de donnéesCloudant. Si vous n'en avez pas, créez en un.
  2. Créez des données d'identification de service (clé de service IAM) pour votre instance Cloudant avec un nom descriptif. Spécifiez le rôle IAM Manager, Writer, ou Reader) pour votre application. Choisissez un rôle avec le niveau de privilège le moins élevé requis pour votre application.
  3. Liez le service à l'application en utilisant les données d'identification existantes. Code Engine peut créer des données d'identification pour vous lorsque vous liez un service. Toutefois, en créant vos propres données d'identification, vous pouvez suivre et même modifier le privilège indépendamment de Code Engine.

Pour cette application exemple avec Cloudant en tant que service de base de données, exécutez les commandes suivantes pour créer la clé de service Cloudant-CF2CE-Manageravec le rôleManager, puis l'utiliser pour lier le service.

ibmcloud resource service-key-create Cloudant-CF2CE-Manager Manager --instance-name Cloudant-CF2CE
ibmcloud ce app bind --name cf2ce-app --service-instance Cloudant-CF2CE --service-credential Cloudant-CF2CE-Manager

Si votre application Cloud Foundry se connecte à un service via un service fourni par l'utilisateur, créez une application qui utilise des secrets ou des configmaps pour Code Engine. En utilisant des secrets et des configmaps, vous pouvez injecter les informations d'identification du service dans l'environnement d'exécution et les gérer comme un objet nommé dans le projet Code Engine

Migration du code

Habituellement, la migration de code est simple. Par exemple, au lieu de lire une variable d'environnement appelée VCAP_SERVICES pour Cloud Foundry, votre code doit lire CE_SERVICES pour Code Engine En outre, soyez conscient des différences subtiles dans la façon dont les services sont nommés en raison de la méthode que les services sont mis à disposition par le biais de courtiers pour Cloud Foundry et par la gestion des ressources basée sur IAM pour Code Engine

En fonction du langage de programmation, votre code peut utiliser une bibliothèque de codes ou un module pour accéder à l'environnement d'exécution de Foundry Cloud, à la configuration injectée localement ("dotenv") et plus encore. Ces sections doivent être adaptées.

Comparez le code dans le fichier server.jsde ces deux exemples d'application.

Transfert de votre migration d'application

Si votre application ne peut pas être en panne pendant que vous la déplacez de Cloud Foundry vers Code Engine, envisagez d'effectuer la migration de code avec une étape intermédiaire.

  • 1cloudfoundry_base: base de code Cloud Foundry comme source initiale. Cette application s'exécute uniquement dans le Cloud Foundry.
  • 2cf_ce_intermediate_hybrid: ajoutez du code pour prendre également en charge un déploiement Code Engine. Cette application s'exécute dans Cloud Foundry et Code Engine.
  • 3codeengine_target: enfin, passez à une base de code Code Engineuniquement une fois la migration du projet terminée. Cette application s'exécute uniquement dans Code Engine.

Cette approche est bénéfique car vous pouvez continuer à maintenir ou à améliorer la base de code lors du processus de migration, indépendamment de l'environnement de déploiement.

Génération de votre code et exécution de votre application

Lorsque vous avez fini de configurer votre liaison de service, de migrer votre code et de vous préparer à l'étape de votre migration, il est temps de créer votre code. Suivez les étapes de la commande Premier tutoriel de migration pour générer votre code à partir d'une source locale. Si vous voulez utiliser la console pour construire votre code, votre code doit être dans Git. Pour plus d'informations, voir Déploiement de votre application à partir du code source.

Etapes suivantes

  1. Vous commencez juste votre migration ? Consultez Mise en route.
  2. Comparer la terminologie de Cloud Foundry avec Code Engine.
  3. Essayez Code Engine avec un tutoriel de génération local.
  4. Migration de votre liaison de service (page en cours)
  5. En savoir plus sur la mise à l'échelle et gestion du trafic.
  6. Recherchez Code Engine équivalents à des commandes de Cloud Foundry.
  7. D'autres questions ? Essayez Migration des applications Foundry Cloud vers la foire aux questions Code Engine.

Autres informations