Cette page explique comment migrer vers Batch à partir de Cloud Life Sciences.
Le 17 juillet 2023, Google Cloud a annoncé que Cloud Life Sciences, qui était en version bêta, était abandonné. Le service ne sera plus disponible sur Google Cloud après le 8 juillet 2025. Cependant, Batch est disponible en général et est un successeur complet qui prend en charge tous les cas d'utilisation de Cloud Life Sciences.
En savoir plus sur Batch, Cloud Life Sciences et les étapes de lancement de produit
Cloud Life Sciences par rapport à Batch
La migration de Cloud Life Sciences vers Batch implique principalement de comprendre comment utiliser Batch pour les charges de travail que vous exécutez actuellement en exécutant des pipelines Cloud Life Sciences.
Pour comprendre comment exécuter vos charges de travail Cloud Life Sciences sur Batch, consultez toutes les sections suivantes:
Présentation
Un pipeline Cloud Life Sciences décrit une séquence d'actions (conteneurs) à exécuter et l'environnement dans lequel exécuter les conteneurs.
Un job de traitement par lot décrit un tableau d'une ou de plusieurs tâches et l'environnement dans lequel exécuter ces tâches. Vous définissez la charge de travail d'une tâche comme une séquence d'un ou de plusieurs exécutables (conteneurs et/ou scripts) à exécuter. Chaque tâche d'une tâche représente une exécution de sa séquence d'exécutables.
Les pipelines Cloud Life Sciences peuvent être exprimés sous la forme de tâches Batch uniques.
Par exemple, les exemples suivants décrivent un pipeline Cloud Life Sciences simple et sa tâche de traitement par lot équivalente:
Pipeline Cloud Life Sciences | Job par lot |
---|---|
{ "actions": [ { "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } ] } |
{ "taskGroups" : [{ "taskSpec" : { "runnables" : [{ "container":{ "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } }] } }] } |
Les tâches par lots multitâches sont similaires aux pipelines Cloud Life Sciences copiés.
Contrairement à Cloud Life Sciences, Batch vous permet de planifier automatiquement plusieurs exécutions de votre charge de travail. Vous indiquez le nombre de fois que vous souhaitez exécuter la séquence d'exécutables pour une tâche en définissant le nombre de tâches. Lorsqu'une tâche comporte plusieurs tâches, vous spécifiez comment chaque exécution doit varier en référençant l'index de la tâche dans vos exécutables. De plus, vous pouvez configurer les planifications relatives des tâches d'un job. Par exemple, vous pouvez choisir d'autoriser l'exécution de plusieurs tâches en parallèle ou d'exiger que les tâches soient exécutées dans l'ordre séquentiel et une à la fois. Le traitement par lot gère la planification des tâches de la tâche : lorsqu'une tâche se termine, la tâche suivante (le cas échéant) démarre automatiquement.
Par exemple, consultez la tâche de traitement par lot suivante. Cet exemple de tâche comporte 100 tâches exécutées sur 10 instances de machine virtuelle (VM) Compute Engine. Par conséquent, environ 10 tâches s'exécutent en parallèle à tout moment. Chaque tâche de cet exemple d'ordre n'exécute qu'un seul exécutable : un script qui affiche un message et l'index de la tâche, défini par la variable d'environnement prédéfinie BATCH_TASK_INDEX
.
{
"taskGroups" : [{
"taskSpec" : {
"runnables" : [{
"script":{
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}."
}
}]
},
"taskCount": 100,
"parallelism": 10
}]
}
Les workflows impliquant la création et la surveillance de plusieurs pipelines Cloud Life Sciences similaires peuvent parfois être simplifiés en profitant de la planification intégrée de Batch.
Opérations de base
Cette section décrit les opérations de base dans Cloud Life Sciences par rapport à Batch.
Le tableau suivant récapitule les options d'opérations de base pour Cloud Life Sciences et Batch.
Fonctionnement de base | Options Cloud Life Sciences | Options de traitement par lot |
---|---|---|
Exécutez une charge de travail. |
|
|
Affichez toutes vos charges de travail. |
|
|
Afficher les détails et l'état d'une charge de travail |
|
|
Arrêtez et supprimez une charge de travail. |
|
|
Les opérations de base de Cloud Life Sciences et de Batch présentent quelques différences clés.
Tout d'abord, les ressources d'opération de longue durée ne jouent pas le même rôle dans Batch que dans Cloud Life Sciences.
Les ressources d'opérations de longue durée (LROs) dans Cloud Life Sciences sont la principale ressource utilisée pour lister et afficher vos pipelines. Toutefois, les ressources d'opérations de longue durée dans Batch et les autres API ne sont utilisées que pour surveiller l'état d'une requête qui prend beaucoup de temps. Plus précisément, dans Batch, la seule requête qui renvoie une ressource d'opération de longue durée consiste à supprimer une tâche.
Pour en savoir plus sur les ressources d'opération de longue durée pour Batch, consultez la documentation de référence de l'API Batch pour la ressource REST projects.locations.operations
.
Au lieu d'utiliser des ressources d'opération de longue durée, Batch dispose de ressources de tâche que vous pouvez afficher et supprimer pour vos charges de travail.
Deuxièmement, l'affichage des détails d'une charge de travail dans Batch implique des opérations différentes de celles de Cloud Life Sciences. Vous pouvez afficher une tâche pour voir ses détails et son état. Toutefois, chaque tâche d'un job possède également ses propres détails et son propre état, que vous pouvez consulter en affichant la liste des tâches d'un job et les détails d'une tâche.
Pour vous aider à mieux comprendre les opérations de base de Cloud Life Sciences par rapport à celles de Batch, les sections suivantes fournissent des exemples de commandes Google Cloud CLI et de chemins de requêtes d'API pour certaines de ces opérations de base.
Exemples de commandes de gcloud CLI
Pour gcloud CLI, les commandes Cloud Life Sciences commencent par gcloud beta lifesciences
et les commandes Batch commencent par gcloud batch
.
Par exemple, consultez les commandes gcloud CLI suivantes.
Exemples de commandes gcloud CLI pour Cloud Life Sciences:
Exécuter un pipeline:
gcloud beta lifesciences pipelines run \ --project=PROJECT_ID \ --regions=LOCATION \ --pipeline-file=JSON_CONFIGURATION_FILE
Obtenez les détails d'une opération de longue durée:
gcloud beta lifesciences operations describe OPERATION_ID
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement du pipeline.JSON_CONFIGURATION_FILE
: fichier de configuration JSON du pipeline.OPERATION_ID
: identifiant de l'opération de longue durée, renvoyé par la requête d'exécution du pipeline.
Exemples de commandes de gcloud CLI par lot:
Créez et exécutez un job:
gcloud batch jobs submit JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --config=JSON_CONFIGURATION_FILE
Pour afficher les détails d'une tâche:
gcloud batch jobs describe JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION \
Afficher la liste des tâches d'une tâche:
gcloud batch tasks list \ --project=PROJECT_ID \ --location=LOCATION \ --job=JOB_NAME
Pour afficher les détails d'une tâche:
gcloud batch tasks describe TASK_INDEX \ --project=PROJECT_ID \ --location=LOCATION \ --job=JOB_NAME \ --task_group=TASK_GROUP
Supprimer (et annuler) une tâche:
gcloud batch jobs delete JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION
Remplacez les éléments suivants :
JOB_NAME
: nom de la tâche.PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement de la tâche.JSON_CONFIGURATION_FILE
: chemin d'accès à un fichier JSON contenant les détails de configuration de la tâche.TASK_INDEX
: indice de la tâche dont vous souhaitez afficher les détails. Dans un groupe de tâches, l'indice de tâche commence à 0 pour la première tâche et augmente de 1 pour chaque tâche supplémentaire. Par exemple, un groupe de tâches contenant quatre tâches possède les indices0
,1
,2
et3
.TASK_GROUP_NAME
: nom du groupe de tâches dont vous souhaitez afficher les détails. La valeur doit être définie surgroup0
.
Exemples de chemins de requêtes API
Pour les API, Cloud Life Sciences utilise des chemins de requête lifesciences.googleapis.com
, et Batch des chemins de requête batch.googleapis.com
.
Par exemple, consultez les chemins de requêtes d'API suivants. Contrairement à Cloud Life Sciences, Batch ne dispose pas d'API RPC, mais uniquement d'une API REST.
Exemples de chemins de requêtes d'API Cloud Life Sciences:
Exécuter un pipeline:
POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/pipelines:run
Obtenez les détails d'une opération de longue durée:
GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement du pipeline.OPERATION_ID
: identifiant de l'opération de longue durée, renvoyé par la requête d'exécution du pipeline.
Exemples de chemins de requêtes API par lot:
Créez et exécutez un job:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
Pour afficher les détails d'une tâche:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
Afficher la liste des tâches d'une tâche:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP/tasks
Supprimer un job
DELETE https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
Vérifiez l'état de la demande de suppression de la tâche:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement de la tâche.JOB_NAME
: nom de la tâche.TASK_GROUP_NAME
: nom du groupe de tâches dont vous souhaitez afficher les détails. La valeur doit être définie surgroup0
.OPERATION_ID
: identifiant de l'opération de longue durée, renvoyé par la requête de suppression de la tâche.
Rôles et autorisations IAM
Cette section récapitule les différences entre les rôles et les autorisations Identity and Access Management (Gestion de l'identité et des accès) pour Cloud Life Sciences et Batch. Pour en savoir plus sur les rôles et leurs autorisations, consultez la documentation de référence sur les rôles IAM de base et prédéfinis.
Le tableau suivant décrit les rôles prédéfinis et les autorisations requis pour les utilisateurs de Cloud Life Sciences.
Rôles Cloud Life Sciences | Autorisations |
---|---|
Parmi les suivantes :
|
|
Lecteur Cloud Life Sciences (roles/lifesciences.viewer ) sur le projet |
|
Le tableau suivant décrit certains des rôles prédéfinis et leurs autorisations pour Batch. Contrairement à Cloud Life Sciences, Batch vous oblige à accorder des autorisations aux utilisateurs et au compte de service pour une tâche. Pour en savoir plus sur les exigences liées à l'IAM, consultez la section Conditions préalables pour Batch.
Attribuer des rôles par lot aux utilisateurs | Autorisations |
---|---|
Éditeur de tâches par lot (roles/batch.jobsEditor ) sur le projet |
|
Lecteur de tâches par lot (roles/batch.jobsViewer ) sur le projet |
|
Utilisateur du compte de service (roles/iam.serviceAccountUser ) sur le compte de service de la tâche |
|
Rôles par lot pour les comptes de service | Autorisations |
Responsable du signalement d'agent par lot (roles/batch.agentReporter ) sur le projet |
|
Fonctionnalités correspondantes
Le tableau suivant décrit les fonctionnalités de Cloud Life Sciences, les fonctionnalités équivalentes pour Batch et les différences entre elles.
Chaque élément est représenté par une description et sa syntaxe JSON. Vous pouvez utiliser la syntaxe JSON lorsque vous accédez à Batch via l'API ou lorsque vous spécifiez un fichier de configuration JSON via la Google Cloud CLI. Notez toutefois que vous pouvez également utiliser les fonctionnalités de traitement par lot via d'autres méthodes, telles que les champs de console Google Cloud , les indicateurs gcloud CLI et les bibliothèques clientes, qui sont décrits dans la documentation de traitement par lot.
Pour en savoir plus sur chaque fonctionnalité et sa syntaxe JSON, consultez les ressources suivantes:
Pour Cloud Life Sciences, consultez la documentation de référence de l'API Cloud Life Sciences pour la ressource REST
projects.locations.pipelines
.Pour Batch, consultez la documentation de référence de l'API Batch pour la ressource REST
projects.locations.jobs
.
Fonctionnalités de Cloud Life Sciences | Fonctionnalités de lot | Détails |
---|---|---|
pipeline (pipeline ) |
tâche (job ) et ses tâches (taskGroups[] ) |
Un job par lot comprend un tableau d'une ou de plusieurs tâches qui exécutent chacune tous les mêmes exécutables. Un pipeline Cloud Life Sciences est semblable à un job Batch avec une seule tâche. Toutefois, Cloud Life Sciences ne dispose pas d'un concept équivalent pour les tâches (tâches avec plusieurs jobs), qui sont un peu comme des répétitions d'un pipeline. Pour en savoir plus sur les jobs et les tâches, consultez la section Présentation de Batch. |
actions (actions[] ) pour un pipeline |
les exécutables (runnables[] ) pour les tâches d'une tâche |
Une action Cloud Life Sciences décrit un conteneur, mais un exécutable Batch peut contenir un conteneur ou un script. |
identifiants (credentials ) pour une action |
Pour un exécutable de conteneur: |
Dans Cloud Life Sciences, les identifiants d'une action doivent être un dictionnaire chiffré Cloud Key Management Service avec des paires clé-valeur de nom d'utilisateur et de mot de passe. Dans Batch, le nom d'utilisateur et le mot de passe d'un exécutable de conteneur se trouvent dans des champs distincts. L'un des champs peut être spécifié en texte brut ou par le nom d'un secret Secret Manager. |
pour une action:
|
Pour un environnement:
Environnements possibles:
|
Cloud Life Sciences vous permet de spécifier les variables d'environnement d'une action au format texte brut ou en tant que dictionnaire chiffré.
Dans Batch, cela revient à ce que l'environnement d'un exécutable (champ Toutefois, Batch propose également d'autres options pour spécifier des variables d'environnement:
Pour en savoir plus, consultez la section Utiliser des variables d'environnement. |
libellés d'une requête d'exécution d'un pipeline (labels dans le corps de la requête) ; |
libellés d'une tâche (labels dans la ressource de tâche) ; |
Contrairement à Cloud Life Sciences, Batch n'inclut pas de champ de libellés dans la requête de création d'une tâche. L'option la plus proche pour le traitement par lot consiste à utiliser des libellés uniquement associés à la tâche. Le traitement par lot comporte plusieurs types d'étiquettes (champs |
régions (regions[] ) et zones (zones[] ) pour les ressources (resources ) d'un pipeline |
emplacements autorisés (allowedLocations ) pour la stratégie d'emplacement des ressources d'un job (locationPolicy ) |
Dans Cloud Life Sciences, un pipeline s'exécute sur une seule VM, pour laquelle vous pouvez spécifier les régions et/ou les zones souhaitées. Dans Batch, l'option équivalente est les emplacements autorisés pour une tâche, que vous pouvez définir comme une ou plusieurs régions ou zones, et qui spécifie où les VM d'une tâche peuvent être créées. Toutes les VM d'un même job par lot appartiennent à un seul groupe d'instances géré (MIG), qui se trouve dans une région spécifique. Toutefois, les VM individuelles peuvent se trouver dans différentes zones de cette région. Notez que spécifier le champ des zones géographiques autorisées pour un emploi est facultatif, car il est distinct de l'emplacement de l'emploi. Contrairement à l'emplacement de la tâche, l'emplacement autorisé n'affecte pas l'emplacement utilisé pour créer une tâche par lot et stocker ses métadonnées. Pour en savoir plus, consultez la section Emplacements des lots. |
pour les ressources d'un pipeline (
|
pour la stratégie de ressources d'une tâche (
|
Dans Cloud Life Sciences, vous pouvez configurer la VM (une seule) sur laquelle s'exécute un pipeline. Dans Batch, les mêmes options pour les VM sont disponibles dans les champs de la stratégie d'allocation des ressources d'une tâche (
|
pour une action:
|
Pour un exécutable:
|
Ces différents indicateurs pratiques de Cloud Life Sciences sont équivalents dans Batch, sauf qu'ils sont spécifiés pour chaque exécutable (qui peut contenir un script ou un conteneur) au lieu de chaque action (conteneur). |
pour une action:
|
options (options ) pour un exécutable de conteneur |
Ces options Cloud Life Sciences (et d'autres) sont prises en charge dans Batch via le champ d'options ( |
pour une action:
|
aucun équivalent |
Le traitement par lot précharge les images et traite les sorties de tous les exécutables de manière identique, conformément aux règles de journalisation de la tâche ( |
Possibilité de bloquer les réseaux externes (blockExternalNetwork ) pour une action |
Option permettant de bloquer les réseaux externes (blockExternalNetwork ) pour un conteneur exécutable |
L'option Cloud Life Sciences permettant de bloquer les réseaux externes pour une action est semblable à l'option Batch permettant de bloquer les réseaux externes pour un conteneur. Le traitement par lot propose également de nombreuses autres options de mise en réseau, telles que le blocage des réseaux externes pour toutes les VM d'une tâche. Pour en savoir plus, consultez la section Présentation de la mise en réseau par lot. |
montages (mounts[] ) pour une action |
volumes pour tous les exécutables (volumes[] dans taskSpec ) et options de volume pour un conteneur (volumes[] dans container ) |
Dans Batch, vous pouvez utiliser le champ De plus, Batch est compatible avec les options de volume explicites sur les exécutables de conteneur à l'aide du champ Pour en savoir plus sur l'utilisation de volumes de stockage avec Batch, consultez Créer et exécuter un job qui utilise des volumes de stockage. |
option permettant d'activer Cloud Storage FUSE (enableFuse ) pour une action |
aucun équivalent |
Le traitement par lot gère l'installation de tous les volumes de stockage, tels qu'un bucket Cloud Storage, que vous spécifiez pour un job.
Par conséquent, vous n'activez aucun outil d'installation tel que Cloud Storage FUSE pour Batch. Toutefois, vous pouvez éventuellement spécifier des options d'installation pour vos volumes de stockage à l'aide du champ Pour en savoir plus sur l'utilisation de buckets Cloud Storage avec Batch, consultez Créer et exécuter une tâche qui utilise des volumes de stockage. |
Sujet Pub/Sub (pubSubTopic ) pour une requête d'exécution d'un pipeline |
pour les configurations de notification d'une tâche (
|
Le traitement par lot permet une personnalisation plus poussée des mises à jour d'état que Cloud Life Sciences. Par exemple, les utilisateurs de Batch peuvent être avertis sur un sujet Pub/Sub lorsque des tâches individuelles changent d'état ou uniquement lorsque le job global change d'état. |
Services de workflow
Si vous utilisez un service de workflow avec Cloud Life Sciences, votre processus de migration implique également de configurer un service de workflow pour qu'il fonctionne avec Batch. Cette section résume les services de workflow que vous pouvez utiliser avec Batch.
Batch est compatible avec les workflows, qui sont des services de workflow de Google Cloud. Si vous souhaitez utiliser Workflows avec Batch, consultez la section Exécuter un job Batch à l'aide de Workflows. Sinon, le tableau suivant décrit d'autres services de workflow que vous pouvez utiliser pour Cloud Life Sciences et avec Batch. Ce tableau présente les principales différences entre l'utilisation de chaque service de workflow avec Batch au lieu de Cloud Life Sciences, ainsi que des informations sur les ressources permettant d'en savoir plus sur l'utilisation de chaque service avec Batch.
Service de workflow | Différences principales | Détails |
---|---|---|
Cromwell |
Pour utiliser un fichier de configuration Cromwell pour l'API Cloud Life Sciences v2beta avec l'API Batch à la place, apportez les modifications suivantes:
|
Pour en savoir plus sur l'utilisation de Batch avec Cromwell, consultez la documentation Cromwell pour Batch et le tutoriel Cromwell pour Batch. |
dsub |
Pour exécuter votre pipeline dsub pour Cloud Life Sciences avec Batch, procédez comme suit:
|
Pour en savoir plus sur l'utilisation de Batch avec dsub, consultez la documentation dsub pour Batch. |
Nextflow |
Pour utiliser un fichier de configuration Nextflow pour Cloud Life Sciences avec Batch, procédez comme suit:
|
Pour en savoir plus sur l'utilisation de Batch avec Nextflow, consultez un tutoriel Batch ou un tutoriel Nextflow. Pour en savoir plus sur les options de configuration, consultez la documentation Nextflow. |
Snakemake |
Pour utiliser un pipeline Snakemake pour l'API Cloud Life Sciences v2beta avec l'API Batch à la place, apportez les modifications suivantes:
|
Pour en savoir plus sur l'utilisation de Batch avec Snakemake, consultez la documentation Snakemake pour Batch. |
Étape suivante
- Pour configurer Batch pour les nouveaux utilisateurs et projets, consultez la section Premiers pas.
- Pour savoir comment exécuter des charges de travail à l'aide de Batch, consultez la section Créer un job.