Comprendre la portabilité des données pour Code Engine
La portabilité des données implique un ensemble de commandes qui permettent aux clients d'exporter les artefacts numériques nécessaires à la mise en œuvre d'une charge de travail et d'un traitement de données similaires sur différents fournisseurs de services ou logiciels sur site. Il comprend des commandes permettant d'exporter le contenu du service client, y compris la configuration connexe utilisée par le service pour stocker et traiter les données, sur le site du client.
Responsabilités
les services IBM Cloud fournissent des interfaces et des instructions pour guider le client dans la copie et le stockage du contenu du client du service, y compris la configuration correspondante, à l'endroit qu'il a choisi.
Le client est responsable de l'utilisation des données exportées et de la configuration de la portabilité des données vers d'autres infrastructures, ce qui inclut :
- La planification et l'exécution de la mise en place d'une infrastructure alternative sur différents fournisseurs de cloud ou de logiciels sur site qui fournissent des capacités similaires aux services IBM
- La planification et l'exécution du portage du code d'application requis sur l'infrastructure alternative, y compris l'adaptation du code d'application du client, l'automatisation du déploiement, etc.
- La conversion des données et de la configuration exportées au format requis par l'infrastructure alternative et les applications adaptées.
Pour plus d'informations sur vos responsabilités concernant Code Engine, voir Comprendre vos responsabilités lors de l'utilisation de Code Engine
Procédures d'exportation de données
Code Engine fournit des mécanismes pour construire des images de conteneurs à partir du code source. Le code source peut être stocké localement ou sur Github. Code Engine ne fournit pas de commandes ou d'outils pour télécharger de telles images de conteneurs. Au lieu de cela, les clients doivent télécharger et stocker ces images en suivant les procédures d'exportation de données pour IBM Cloud Container Registry
Code Engine fournit des mécanismes pour exporter les paramètres et les configurations utilisés pour traiter le contenu du client.
Les données de configuration des entités Code Engine suivantes peuvent être exportées à l'aide des commandes spécifiées plus loin dans cette section :
- Projets
- Applications
- Révisions d'application
- Générations
- Exécutions de génération
- Mappes de configuration
- Secrets
- Mappages de domaine
- Abonnements aux événementsIBM Cloud Object Storage, '
cron, et Kafka) - Fonctions
- Travaux
- Exécutions de travail
Outils nécessaires à l'exportation des données
Pour exporter les données de Code Engine, vous devez télécharger et installer les outils de ligne de commande suivants :
- Le client CLI IBM Cloud CLI
- Visitez la page IBM Cloud Pour installer le client CLI pour votre système d'exploitation.
- Le plug-in CLI " Code Engine
- Visitez le site " page CLI Code Engine qui contient des instructions sur l'installation du plug-in " Code Engine pour l'interface de programmation " IBM Cloud.
- Le client CLI de Kubernetes
- Visitez la page d'installation des outilsKubernetes pour installer le client CLI "
kubectlpour votre système d'exploitation.
- Visitez la page d'installation des outilsKubernetes pour installer le client CLI "
Exportation de la configuration " project
Un projet dans Code Engine est un conteneur de configurations et de charges de travail connexes. Si vous souhaitez exporter un projet, utilisez les commandes " ibmcloud resource suivantes :
Pour lister tous les projets Code Engine, utilisez :
ibmcloud resource service-instances --service-name codeengine
Pour lister tous les projets Code Engine dans une région spécifique, utilisez :
ibmcloud resource service-instances --service-name codeengine --location us-south
Lorsque vous avez identifié le projet Code Engine que vous souhaitez exporter, utilisez-le :
ibmcloud resource service-instance <project-name> -o json >project-name.json
L'exportation d'un projet Code Engine n'exporte que la configuration de l'entité projet elle-même. Les entités de configuration et les entités de charge de travail doivent être exportées séparément.
Exportation d'un " KUBECONFIG pour exporter des entités de projet
Lorsque vous avez identifié un projet que vous souhaitez exporter, vous devez exporter une variable d'environnement " KUBECONFIG pour que les commandes " kubectl décrites dans ce document puissent s'appliquer
à ce projet.
Pour obtenir cette variable d'environnement " KUBECONFIG, exécutez les commandes suivantes
ibmcloud code-engine project select -n <project-name>
ibmcloud code-engine project current
Cette opération permet de sélectionner le projet et d'imprimer une déclaration similaire à la suivante :
Getting the current project context...
OK
Name: <project-name>
ID: 123a4cbc-567d-8e90-1f2b-032d33d931ba
Subdomain: 1abc2defi34
Domain: us-south.codeengine.appdomain.cloud
Region: us-south
Kubernetes Config:
Context: 1abc2defi34
Environment Variable: export KUBECONFIG="/Users/<username>/.bluemix/plugins/code-engine/<project-name>-123a4cbc-567d-8e90-1f2b-032d33d931ba.yaml"
Copiez la déclaration " export KUBECONFIG=xxx dans votre terminal et exécutez-la. Toutes les commandes " kubectl suivantes sont désormais liées à ce projet.
Exportation de la configuration " application
Pour exporter la configuration de toutes les applications de votre projet, exécutez la commande 'kubectl suivante :
kubectl get service -o json >project-name_application-configurations.json
Si vous souhaitez exporter la configuration d'une seule application, utilisez la commande 'kubectl suivante :
kubectl get service <application-name> -o json >project-name-application-name_application-configuration.json
Exportation de la configuration " application revision
Pour exporter la configuration de toutes les révisions d'applications de votre projet, exécutez la commande " kubectl suivante :
kubectl get revision -o json >project-name_application-revisions.json
Si vous souhaitez exporter la configuration d'une seule révision d'application, utilisez la commande 'kubectl suivante :
kubectl get revision <application-revision-name> -o json >project-name-application-revision-name_revision.json
Exportation de la configuration " build
Pour exporter la configuration de tous les builds de votre projet, exécutez la commande 'kubectl suivante :
kubectl get build -o json >project-name_build-configurations.json
Si vous souhaitez exporter la configuration d'une seule version, utilisez la commande 'kubectl suivante :
kubectl get build <build-name> -o json >project-name-build-name_build-configuration.json
Exportation de la configuration " build run
Pour exporter la configuration de tous les processus de construction de votre projet, exécutez la commande suivante : kubectl:
kubectl get buildrun -o json >project-name_buildrun-configurations.json
Si vous souhaitez exporter la configuration d'une seule exécution, utilisez la commande 'kubectl suivante :
kubectl get buildrun <buildrun-name> -o json >project-name-buildrun-name_buildrun-configuration.json
Exportation de la configuration " configmap
Pour exporter le contenu de toutes les cartes de configuration de votre projet, exécutez la commande " kubectl suivante :
kubectl get configmap -o json >project-name_configmaps.json
Si vous souhaitez exporter le contenu d'une seule carte de configuration, utilisez la commande 'kubectl suivante :
kubectl get configmap <configmap-name> -o json >project-name-configmap-name_configmap.json
Exportation de la configuration " secret
N'exportez pas le contenu des secrets vers un fichier sur un support de stockage permanent.
Pour exporter le contenu de tous les secrets de votre projet, exécutez la commande " kubectl suivante :
kubectl get secret -o json >project-name_secrets.json
Si vous souhaitez exporter le contenu d'un seul secret, utilisez la commande " kubectl suivante :
kubectl get secret <secret-name> -o json >project-name-secret-name_secret.json
Les valeurs stockées dans les secrets Code Engine sont généralement des copies des valeurs gérées dans d'autres systèmes, comme IBM Cloud Secrets Manager. Par conséquent, la plupart du temps, il n'est pas nécessaire d'exporter des secrets. Si vous avez toujours besoin d'exporter des secrets à partir de Code Engine, vous devez choisir d'exporter un seul secret plutôt que tous les secrets afin d'éviter la divulgation involontaire d'informations sensibles.
Exportation de la configuration " domain mapping
Pour exporter la configuration de tous les mappages de domaines de votre projet, exécutez la commande 'kubectl suivante :
kubectl get domainmapping -o json >project-name_domainmappings.json
Si vous souhaitez exporter la configuration d'un seul mappage de domaine, utilisez la commande 'kubectl suivante :
kubectl get domainmapping <domainmapping-name> -o json >project-name-domainmapping-name_domainmapping.json
Exportation de la configuration " IBM Cloud Object Storage event subscription
Pour exporter la configuration de tous les abonnements aux événements IBM Cloud Object Storage de votre projet, exécutez la commande " kubectl suivante :
kubectl get cossource -o json >project-name_cos-event-subscriptions.json
Si vous souhaitez exporter la configuration d'un seul abonnement à un événement IBM Cloud Object Storage, utilisez la commande 'kubectl suivante :
kubectl get cossource <cos-event-subscription-name> -o json >project-name-cos-event-subscription-name_cos-event-subscription.json
Exportation de la configuration " cron event subscription
Pour exporter la configuration de tous les abonnements aux événements " cron de votre projet, exécutez la commande " kubectl suivante :
kubectl get pingsource -o json >project-name_cron-event-subscriptions.json
Si vous souhaitez exporter la configuration d'un seul abonnement à un événement " cron, utilisez la commande " kubectl suivante :
kubectl get pingsource <cron-event-subscription-name> -o json >project-name-cron-event-subscription-name_cron-event-subscription.json
Exportation de la configuration " Kafka event subscription
Pour exporter la configuration de tous les abonnements aux événements Kafka dans votre projet, exécutez la commande 'kubectl suivante :
kubectl get kafkasource -o json >project-name_kafka-event-subscriptions.json
Si vous souhaitez exporter la configuration d'un seul abonnement à des événements Kafka, utilisez la commande " kubectl suivante :
kubectl get kafkasource <cron-event-subscription-name> -o json >project-name-kafka-event-subscription-name_kafka-event-subscription.json
Exportation de la configuration " function
Pour exporter la configuration de toutes les fonctions de votre projet, exécutez la commande " kubectl suivante :
kubectl get function -o json >project-name_functions.json
Si vous souhaitez exporter la configuration d'une seule fonction, utilisez la commande 'kubectl suivante :
kubectl get function <function-name> -o json >project-name-function-name_function.json
Exportation de la configuration " job
Pour exporter la configuration de tous les travaux de votre projet, exécutez la commande " kubectl suivante :
kubectl get jobdefinition -o json >project-name_jobs.json
Si vous souhaitez exporter la configuration d'un seul travail, utilisez la commande " kubectl suivante :
kubectl get jobdefinition <function-name> -o json >project-name-job-name_job.json
Exportation de la configuration " job run
Pour exporter la configuration de tous les jobruns de votre projet, exécutez la commande 'kubectl suivante :
kubectl get jobrun -o json >project-name_jobruns.json
Si vous souhaitez exporter la configuration d'un seul jobrun, utilisez la commande 'kubectl suivante :
kubectl get jobrun <function-name> -o json >project-name-jobrun-name_jobrun.json
Formats des données exportées
Code Engine prend en charge le format de données et le schéma suivants pour les données, la configuration et l'application exportées :
- JSON
Exemple : L'exportation d'un ConfigMap avec le nom " export-sample et le format " JSON produit la sortie JSON suivante :
Commande :
kubectl get configmap export-sample -o json
Sortie :
{
"apiVersion": "v1",
"data": {
"APP_OWNER": "John Doe",
"NUM_DATASETS": "24",
"foo": "bar"
},
"kind": "ConfigMap",
"metadata": {
"creationTimestamp": "2024-10-15T09:12:47Z",
"name": "export-sample",
"namespace": "7yuw2furi55",
"resourceVersion": "9162003517",
"uid": "12962640-a294-4e1f-a006-a875f119df43"
}
}
Toutes les commandes qui utilisent la commande " kubectl avec l'option " -o json produisent une sortie JSON compatible avec Kubernetes. Le JSON produit par d'autres commandes, comme 'ibmcloud resource ou 'ibmcloud code-engine ne peut pas être considéré comme compatible avec Kubernetes tel quel.
Code Engine ne prend pas en charge l'exportation des données suivantes format et schéma des données, de la configuration et de l'application exportées :
- YAML
Propriété des données
Toutes les données exportées sont classées comme du contenu client. Appliquer l'intégralité des droits de propriété et de licence du client, comme indiqué dans le IBM Cloud Accord de service.