Cette page explique comment migrer vers Batch depuis Cloud Life Sciences.
Le 17 juillet 2023, Google Cloud a annoncé l'abandon de Cloud Life Sciences, qui était en version bêta. Le service ne sera plus disponible sur Google Cloud après le 8 juillet 2025. Cependant, Batch est en disponibilité générale et constitue un successeur complet prenant en charge tous les cas d'utilisation de Cloud Life Sciences.
Apprenez-en plus sur Batch, Cloud Life Sciences et les étapes de lancement des produits.
Comparaison entre Cloud Life Sciences et Batch
Migrer 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.
Une tâche par lot décrit un tableau d'une ou plusieurs tâches et l'environnement dans lequel les exécuter. Vous définissez la charge de travail d'une tâche en fonction 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 forme de tâches par lot à tâche unique.
Les exemples suivants décrivent un pipeline Cloud Life Sciences simple et son job par lot équivalent:
Pipeline Cloud Life Sciences | Tâche par lot |
---|---|
{ "actions": [ { "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } ] } |
{ "taskGroups" : [{ "taskSpec" : { "runnables" : [{ "container":{ "imageUri": "bash", "commands": [ "-c", "echo Hello, world!" ] } }] } }] } |
Les jobs par lot multitâches sont semblables 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 la manière dont vous souhaitez que chaque exécution varie en référençant l'index de la tâche dans vos exécutables. En outre, vous pouvez configurer les planifications relatives des tâches d'un job (par exemple, pour autoriser l'exécution de plusieurs tâches en parallèle ou exiger l'exécution des tâches dans un ordre séquentiel et une par une). Batch gère la planification des tâches du job : lorsqu'une tâche se termine, la tâche suivante démarre automatiquement, le cas échéant.
Par exemple, reportez-vous au job Batch suivant. Cet exemple de tâche comporte 100 tâches qui s'exécutent sur 10 instances de machines virtuelles (VM) Compute Engine. Environ 10 tâches s'exécutent donc en parallèle à un moment donné. Chaque tâche de cet exemple de tâche n'exécute qu'un seul exécutable : un script qui imprime un message et l'index de la tâche, qui est 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 qui impliquent la création et la surveillance de plusieurs pipelines Cloud Life Sciences similaires peuvent parfois être simplifiés grâce à 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.
Opération de base | Options de Cloud Life Sciences | Options de traitement par lot |
---|---|---|
Exécuter une charge de travail |
|
|
Affichez toutes vos charges de travail. |
|
|
Affichez les détails et l'état d'une charge de travail. |
|
|
Arrêter et supprimer une charge de travail |
|
|
Les opérations de base pour Cloud Life Sciences et 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 (LRO) dans Cloud Life Sciences constituent la principale ressource utilisée pour répertorier et afficher vos pipelines. Toutefois, les ressources d'opérations de longue durée dans Batch et d'autres API Google Cloud 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 est la suppression d'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 vous permet d'afficher et de supprimer des ressources de tâches pour vos charges de travail.
Ensuite, 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 consulter ses détails et son état. Cependant, chacune des tâches d'une tâche possède également ses propres détails et état. Vous pouvez les consulter en affichant la liste des tâches d'une tâche et en affichant les détails d'une tâche.
Pour vous aider à mieux comprendre les opérations de base entre Cloud Life Sciences et Batch, les sections suivantes fournissent des exemples de commandes de la Google Cloud CLI et de chemins de requêtes API pour certaines de ces opérations de base.
Exemples de commandes de gcloud CLI
Dans la gcloud CLI, les commandes Cloud Life Sciences commencent par gcloud beta lifesciences
, tandis que les commandes par lot commencent par gcloud batch
.
Par exemple, consultez les commandes de gcloud CLI suivantes.
Exemples de commandes de gcloud CLI pour Cloud Life Sciences:
Exécutez 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 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
Afficher les détails d'une mission:
gcloud batch jobs describe JOB_NAME \ --project=PROJECT_ID \ --location=LOCATION \
Afficher la liste des tâches d'une mission:
gcloud batch tasks list \ --project=PROJECT_ID \ --location=LOCATION \ --job=JOB_NAME
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 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
: index de la tâche dont vous souhaitez afficher les détails. Dans un groupe de tâches, l'index de la tâche commence à 0 pour la première tâche et augmente de 1 à chaque tâche supplémentaire. Par exemple, un groupe de tâches contenant quatre tâches possède les index0
,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 utilise des chemins de requête batch.googleapis.com
.
Par exemple, consultez les chemins de requête API suivants. Contrairement à Cloud Life Sciences, Batch ne dispose pas d'API RPC. Il ne dispose que d'une API REST.
Exemples de chemins de requête de l'API Cloud Life Sciences:
Exécutez 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 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
Afficher les détails d'une mission:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
Afficher la liste des tâches d'une mission:
GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP/tasks
Supprimer une offre d'emploi
DELETE https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
Vérifiez l'état de la demande de suppression de 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 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 de rôles et d'autorisations dans Identity and Access Management pour Cloud Life Sciences et Batch. Pour en savoir plus sur les rôles et les autorisations associées, consultez la documentation de référence sur les rôles de base et prédéfinis pour IAM.
Le tableau suivant décrit les rôles prédéfinis et les autorisations requises 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 nécessite que vous accordiez des autorisations aux utilisateurs et au compte de service pour une tâche. Pour en savoir plus sur les exigences IAM, consultez la section Conditions préalables pour Batch.
Attribuer des rôles aux utilisateurs par lot | Autorisations |
---|---|
Éditeur de jobs par lot (roles/batch.jobsEditor ) sur le projet |
|
Lecteur de jobs 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 |
Batch Agent Reporter (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 caractéristique est représentée 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. Toutefois, notez que vous pouvez également utiliser les fonctionnalités Batch via d'autres méthodes, telles que les champs de la console Google Cloud, les options gcloud CLI et les bibliothèques clientes, qui sont décrites dans la documentation Batch.
Pour en savoir plus sur chaque fonctionnalité et sa syntaxe JSON, consultez les pages 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 traitement par lot | Détails |
---|---|---|
pipeline (pipeline ) |
Job (job ) et ses tâches (taskGroups[] ) |
Une tâche par lot se compose d'un tableau d'une ou de plusieurs tâches qui exécutent chacune les mêmes exécutables. Un pipeline Cloud Life Sciences est semblable à un job par lot avec une tâche. Cependant, Cloud Life Sciences n'a pas de concept équivalent pour les tâches (tâches avec plusieurs) tâches, qui ressemblent un peu aux répétitions d'un pipeline. Pour en savoir plus sur les tâches et les tâches, consultez la page Présentation de Batch. |
d'actions (actions[] ) pour un pipeline |
exécutables (runnables[] ) pour les tâches d'un job |
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 conteneur exécutable: |
Dans Cloud Life Sciences, les identifiants d'une action doivent correspondre à un dictionnaire chiffré Cloud Key Management Service contenant 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 conteneur exécutable se trouvent dans des champs distincts. L'un ou l'autre des champs peut être spécifié en texte brut ou avec 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 sous forme de dictionnaire chiffré.
Dans Batch, cela revient à faire en sorte que l'environnement d'un exécutable (champ Toutefois, Batch dispose également d'autres options pour spécifier des variables d'environnement:
Pour en savoir plus, consultez la section Utiliser des variables d'environnement. |
étiquettes d'une requête pour exécuter un pipeline (labels dans le corps de la requête) |
Étiquettes pour une tâche (labels dans la ressource de job) |
Contrairement à Cloud Life Sciences, Batch n'inclut pas de champ d'étiquettes dans la requête de création de tâche. L'option la plus proche pour Batch consiste à utiliser des étiquettes qui ne sont associées qu'à la tâche. Batch comporte plusieurs types d'étiquettes (champs |
des régions (regions[] ) et des zones (zones[] ) pour les ressources d'un pipeline (resources ) |
emplacements autorisés (allowedLocations ) pour la règle 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 un job, que vous pouvez définir comme une ou plusieurs régions ou zones et spécifie où les VM d'un job peuvent être créées. Toutes les VM d'un même job Batch appartiennent à un seul groupe d'instances géré (MIG), qui existe dans une région particulière. Cependant, les VM individuelles peuvent se trouver dans différentes zones de cette région. Il est à noter que la spécification du champ "Allowed locations" (Emplacements autorisés) pour une mission est facultative, car ce champ est distinct du lieu de l'emploi. Contrairement à l'emplacement de la tâche, l'emplacement autorisé n'a aucune incidence sur l'emplacement utilisé pour créer un job par lot et stocker les métadonnées de la tâche. Pour en savoir plus, consultez la section Emplacements des lots. |
pour les ressources d'un pipeline (
|
pour la stratégie de ressources d'un job (
|
Dans Cloud Life Sciences, vous pouvez configurer la (une) VM sur laquelle s'exécute un pipeline. Dans Batch, les mêmes options pour les VM sont disponibles dans les champs de la règle d'allocation de ressources d'un job (
|
pour une action:
|
pour un exécutable:
|
Ces différents indicateurs de commodité 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) plutôt que pour chaque action (conteneur). |
pour une action:
|
Options (options ) pour un conteneur exécutable |
Ces options Cloud Life Sciences (et d'autres) sont compatibles avec Batch via le champ d'options ( |
pour une action:
|
aucun équivalent |
Batch précharge les images et traite les sorties de tous les exécutables de manière identique conformément à la règle de journaux du job ( |
option permettant 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 qui permet de bloquer les réseaux externes pour une action est semblable à l'option "Par lot" qui permet de bloquer les réseaux externes d'un conteneur. Batch offre également de nombreuses autres options de mise en réseau, telles que le blocage des réseaux externes pour toutes les VM d'un job. Pour en savoir plus, consultez la section Présentation de la mise en réseau par lots. |
Installation (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 accepte les options de volume explicites sur les exécutables de conteneurs à l'aide du champ Pour en savoir plus sur l'utilisation de volumes de stockage avec Batch, consultez la page Créer et exécuter une tâche utilisant des volumes de stockage. |
option permettant d'activer Cloud Storage FUSE (enableFuse ) pour une action |
aucun équivalent |
Batch 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 la page 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 (
|
Batch permet une plus grande personnalisation des mises à jour de l'état que Cloud Life Sciences. Par exemple, les utilisateurs Batch peuvent être avertis sur un sujet Pub/Sub lorsque des tâches individuelles changent d'état ou uniquement lorsque l'état de la tâche globale change. |
Services de workflow
Si vous utilisez un service de workflow avec Cloud Life Sciences, votre processus de migration implique également la configuration d'un service de workflow pour qu'il fonctionne avec Batch. Cette section récapitule les services de workflow que vous pouvez utiliser avec Batch.
Batch est compatible avec Workflows, un service de workflow de Google Cloud. Si vous souhaitez utiliser des workflows avec Batch, consultez la page Exécuter un job Batch à l'aide de Workflows. Sinon, le tableau suivant décrit d'autres services de workflows que vous pouvez utiliser pour Cloud Life Sciences et également avec Batch. Ce tableau présente les principales différences d'utilisation de chaque service de workflow avec Batch au lieu de Cloud Life Sciences, ainsi que des informations détaillées sur l'utilisation de chaque service avec Batch.
Service de workflow | Principales différences | Détails |
---|---|---|
Cromwell |
Si vous souhaitez utiliser un fichier de configuration Cromwell pour l'API Cloud Life Sciences v2beta avec l'API Batch, 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 |
Si vous souhaitez plutôt exécuter votre pipeline dsub pour Cloud Life Sciences avec Batch, apportez les modifications suivantes:
|
Pour en savoir plus sur l'utilisation de Batch avec dsub, consultez la documentation dsub pour Batch. |
Nextflow |
Si vous souhaitez utiliser un fichier de configuration Nextflow pour Cloud Life Sciences avec Batch, apportez les modifications suivantes:
|
Pour en savoir plus sur l'utilisation de Batch avec Nextflow, consultez le tutoriel Batch ou le tutoriel Nextflow. Pour en savoir plus sur les options de configuration, consultez la documentation de Nextflow. |
Marque de serpent |
Si vous souhaitez utiliser un pipeline Snakemake pour l'API Cloud Life Sciences v2beta avec l'API Batch, apportez les modifications suivantes:
|
Pour en savoir plus sur l'utilisation de Batch avec Snakemake, consultez la documentation de Snakemake pour Batch. |
Étapes suivantes
- Pour configurer Batch pour de nouveaux utilisateurs et projets, consultez la page Premiers pas.
- Pour apprendre à exécuter des charges de travail à l'aide de Batch, consultez la page Créer une tâche.