Migrar do Cloud Life Sciences para o Batch

Nesta página, descrevemos como migrar para o Batch Cloud Life Sciences.

Em 17 de julho de 2023, o Google Cloud anunciou que o Cloud Life Sciences, que estava na versão Beta, foi descontinuado. O serviço não estará mais disponível no Google Cloud após 8 de julho de 2025. No entanto, o Batch tem disponibilidade geral e é um sucessor abrangente que dá suporte a todos os casos de uso para o Cloud Life Sciences.

Saiba mais sobre o Batch, Cloud Life Sciences e lançamento de produtos em fases.

Cloud Life Sciences versus Batch

Como migrar do Cloud Life Sciences para o Batch envolve principalmente entender como é possível usar o Batch para as cargas de trabalho que você executa atualmente ao executar pipelines do Cloud Life Sciences.

Para entender como é possível executar seu projeto do Cloud Life Sciences cargas de trabalho no Batch, consulte todas as seções a seguir:

Visão geral

Um pipeline do Cloud Life Sciences descreve uma sequência de ações (contêineres) a serem executadas e o ambiente para executar os contêineres.

Um job em lote descreve uma matriz de uma ou mais tarefas e a para executar essas tarefas. A carga de trabalho de um job é definida como sequência de um ou mais executáveis (contêineres e/ou scripts) a serem executados. Cada tarefa de um job representa uma execução da sequência de executáveis.

Os pipelines do Cloud Life Sciences podem ser expressos como jobs em lote de tarefa única.

Por exemplo, os exemplos a seguir descrevem um exemplo Pipeline do Cloud Life Sciences e equivalente Job em lote:

Pipeline do Cloud Life Sciences Job em lote
  {
    "actions": [
      {
        "imageUri": "bash",
        "commands": [
          "-c",
          "echo Hello, world!"
        ]
      }
    ]
  }
  
    {
      "taskGroups" : [{
        "taskSpec" : {
          "runnables" : [{
            "container":{
              "imageUri": "bash",
              "commands": [
                "-c",
                "echo Hello, world!"
              ]
            }
          }]
        }
      }]
    }
    

Os jobs em lote de várias tarefas são semelhantes aos pipelines copiados do Cloud Life Sciences.

Ao contrário do Cloud Life Sciences, o Batch permite programe automaticamente várias execuções da carga de trabalho. Você indica o número de vezes que deseja executar a sequência de executáveis para um job definindo o número de tarefas. Quando um job tem várias tarefas, você especifica como deseja que cada execução varie referenciando o índice da tarefa nos seus executáveis. Além disso, é possível configurar as programações relativas às tarefas de uma tarefa, por exemplo, permite que várias tarefas sejam executadas em paralelo ou exijam tarefas sejam executados em ordem sequencial e um de cada vez. O Batch gerencia a programação das tarefas do job: quando uma tarefa termina, o job inicia automaticamente a próxima tarefa, se houver.

Por exemplo, consulte o job do Batch a seguir. Neste exemplo, tem 100 tarefas executadas em 10 Compute Engine virtuais de máquina virtual (VM), portanto, há aproximadamente 10 tarefas em execução em paralelo a qualquer momento. Cada tarefa neste job de exemplo executa apenas um executável: um script que exibe uma mensagem e o índice da tarefa, que é definido pelo BATCH_TASK_INDEX variável de ambiente predefinida.

{
  "taskGroups" : [{
    "taskSpec" : {
      "runnables" : [{
        "script":{
          "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}."
        }
      }]
    },
    "taskCount": 100,
    "parallelism": 10
  }]
}

Workflows que envolvem a criação e o monitoramento de vários fluxos de trabalho Às vezes, os pipelines do Cloud Life Sciences podem ser simplificados aproveitar a programação integrada do Batch.

Operações básicas

Nesta seção, descrevemos as operações básicas no Cloud Life Sciences e em lote.

A tabela a seguir resume as opções de operações básicas para Cloud Life Sciences e Batch.

Operação básica Opções do Cloud Life Sciences Opções de lote
Executar uma carga de trabalho.
  • Executar um pipeline.
  • Criar e executar um job.
Confira todas as cargas de trabalho.
  • Listar operações de longa duração.
  • Confira uma lista dos seus jobs.
Visualize os detalhes e o status de uma carga de trabalho.
  • Receba detalhes de uma operação de longa duração.
  • Pesquise uma operação de longa duração.
  • Visualizar os detalhes de um job.
  • Veja uma lista de tarefas de um job.
  • Veja os detalhes de uma tarefa.
Interrompa e remova uma carga de trabalho.
  • Cancelar uma operação de longa duração.
  • Excluir e cancelar um job.
  • Verificar o status de uma solicitação de exclusão de job.

As operações básicas do Cloud Life Sciences e do Batch têm algumas diferenças importantes.

Primeiro, os recursos operação de longa duração não desempenham o mesmo papel em lote que eles fazem no Cloud Life Sciences. Recursos de operação de longa duração (LROs, na sigla em inglês) no Cloud Life Sciences são os principais recursos usados para listar e visualizar seus pipelines. Porém, recursos de operação de longa duração em Batch e outras APIs do Google Cloud são usadas apenas para monitorar o status de uma solicitação que leva muito tempo para concluído. Especificamente, no Batch, a única solicitação retorna um recurso de operação de longa duração que está excluindo um job. Para mais informações sobre recursos operação de longa duração para Batch, consulte Documentação de referência da API Batch para o recurso REST projects.locations.operations. Em vez de usar recursos de operação de longa duração, o Batch job que você visualiza e exclui para suas cargas de trabalho.

Em segundo lugar, visualizar os detalhes de uma carga de trabalho no Batch envolve operações diferentes do Cloud Life Sciences. É possível visualizar um job para os detalhes e o status. Mas cada uma das tarefas de um trabalho também tem detalhes e status próprios, que podem ser consultados ao visualizar uma lista de tarefas de um job e visualizar os detalhes de uma tarefa.

Para ajudar você a entender melhor as operações básicas do Cloud Life Sciences versus Batch, as seções fornecem exemplos de comandos da Google Cloud CLI e caminhos de solicitações de API para algumas dessas operações básicas.

Exemplos de comandos da CLI gcloud

Para a CLI gcloud, os comandos do Cloud Life Sciences comece com os comandos gcloud beta lifesciences e Batch comece com gcloud batch. Por exemplo, consulte os comandos da CLI gcloud a seguir.

  • Exemplos de comandos da CLI gcloud do Cloud Life Sciences:

    • Execute um pipeline:

      gcloud beta lifesciences pipelines run \
        --project=PROJECT_ID \
        --regions=LOCATION \
        --pipeline-file=JSON_CONFIGURATION_FILE
      
    • Veja detalhes de uma operação de longa duração:

      gcloud beta lifesciences operations describe OPERATION_ID
      

    Substitua:

    • PROJECT_ID: o ID do projeto do seu projeto.
    • LOCATION: o local do pipeline.
    • JSON_CONFIGURATION_FILE: a configuração JSON. de configuração do pipeline.
    • OPERATION_ID: o identificador do operação de longa duração retornada pela solicitação para executar o pipeline.
  • Exemplos de comandos da CLI gcloud em lote:

    • Crie e execute um job:

      gcloud batch jobs submit JOB_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
        --config=JSON_CONFIGURATION_FILE
      
    • Visualizar os detalhes de uma tarefa:

      gcloud batch jobs describe JOB_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
      
    • Para ver a lista de tarefas de um job:

      ​​gcloud batch tasks list \
        --project=PROJECT_ID \
        --location=LOCATION \
        --job=JOB_NAME
      
    • Visualizar os detalhes de uma tarefa:

      gcloud batch tasks describe TASK_INDEX \
        --project=PROJECT_ID \
        --location=LOCATION \
        --job=JOB_NAME \
        --task_group=TASK_GROUP
      
    • Excluir e cancelar um job:

      gcloud batch jobs delete JOB_NAME \
        --project=PROJECT_ID \
        --location=LOCATION
      

    Substitua:

    • JOB_NAME: o nome do job.
    • PROJECT_ID: o ID do projeto do seu projeto.
    • LOCATION: o local do trabalho.
    • JSON_CONFIGURATION_FILE: o caminho para um JSON. com os detalhes de configuração do job.
    • TASK_INDEX: o índice da tarefa que você quer visualizar. os detalhes. Em um grupo de tarefas, o índice da tarefa começa em 0 para a primeira tarefa e aumenta em 1 a cada tarefa adicional. Por exemplo, uma tarefa O grupo que contém quatro tarefas tem os índices 0, 1, 2 e 3.
    • TASK_GROUP_NAME: o nome do grupo de tarefas que sobre os quais você deseja visualizar os detalhes. O valor precisa ser definido como group0.

Exemplos de caminhos de solicitação de API

Para APIs, o Cloud Life Sciences usa Caminhos de solicitação lifesciences.googleapis.com e usos em lote batch.googleapis.com caminhos de solicitação. Por exemplo, consulte os caminhos de solicitação de API a seguir. Não gostei O Cloud Life Sciences, o Batch, não tem uma API RPC. ele tem apenas uma API REST.

  • Caminhos de solicitação da API de exemplo do Cloud Life Sciences:

    • Execute um pipeline:

      POST https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/pipelines:run
      
    • Veja detalhes de uma operação de longa duração:

      GET https://lifesciences.googleapis.com/v2beta/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
      

    Substitua:

    • PROJECT_ID: o ID do projeto do seu projeto.
    • LOCATION: o local do pipeline.
    • OPERATION_ID: o identificador do operação de longa duração retornada pela solicitação para executar o pipeline.
  • Exemplos de caminhos de solicitação de API em lote:

    • Crie e execute um job:

      POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME
      
    • Visualizar os detalhes de uma tarefa:

      GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
      
    • Para ver a lista de tarefas de um job:

      GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP/tasks
      
    • Excluir um job

      DELETE https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME
      
    • Verifique o status da solicitação de exclusão do job:

      GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
      

    Substitua:

    • PROJECT_ID: o ID do projeto do seu projeto.
    • LOCATION: o local do trabalho.
    • JOB_NAME: o nome do job.
    • TASK_GROUP_NAME: o nome do grupo de tarefas que sobre os quais você deseja visualizar os detalhes. O valor precisa ser definido como group0.
    • OPERATION_ID: o identificador do operação de longa duração retornada pela solicitação para excluir o trabalho.

Permissões e papéis do IAM

Esta seção resume as diferenças no Identity and Access Management e permissões do Cloud Life Sciences e em lote. Para mais informações sobre as funções as permissões, consulte a Referência dos papéis básicos e predefinidos do IAM.

A tabela a seguir descreve os papéis predefinidos e as permissões deles que são necessários para os usuários do Cloud Life Sciences.

Papéis do Cloud Life Sciences Permissões

Qualquer um dos seguintes:

  • Administrador do Cloud Life Sciences (roles/lifesciences.admin) no projeto
  • Editor do Cloud Life Sciences (roles/lifesciences.editor) no projeto
  • Executor de fluxos de trabalho do Cloud Life Sciences (roles/lifesciences.workflowsRunner) no projeto
  • lifesciences.workflows.run
  • lifesciences.operations.cancel
  • lifesciences.operations.get
  • lifesciences.operations.list
Leitor do Cloud Life Sciences (roles/lifesciences.viewer) no projeto
  • lifesciences.operations.get
  • lifesciences.operations.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

A tabela a seguir descreve alguns dos papéis predefinidos e as permissões deles. para o Batch. Ao contrário do Cloud Life Sciences, O Batch exige que você conceda permissões a usuários e a conta de serviço para um job. Para mais informações sobre o requisitos do IAM, consulte Pré-requisitos do Batch.

Papéis em lote para usuários Permissões
Editor de jobs em lote (roles/batch.jobsEditor) no projeto
  • batch.jobs.create
  • batch.jobs.delete
  • batch.jobs.get
  • batch.jobs.list
  • batch.locations.get
  • batch.locations.list
  • batch.operations.get
  • batch.operations.list
  • batch.tasks.get
  • batch.tasks.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Leitor de jobs em lote (roles/batch.jobsViewer) no projeto
  • batch.jobs.get
  • batch.jobs.list
  • batch.locations.get
  • batch.locations.list
  • batch.operations.get
  • batch.operations.list
  • batch.tasks.get
  • batch.tasks.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Usuário da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço do job
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list
Papéis em lote para contas de serviço Permissões
Batch Agent Reporter (roles/batch.agentReporter) no projeto
  • batch.states.report

Atributos correspondentes

A tabela a seguir descreve os recursos o Cloud Life Sciences, os recursos equivalentes Batch e detalhes sobre as diferenças entre eles.

Cada recurso é representado por uma descrição e sua sintaxe JSON. Você pode usar a sintaxe JSON ao acessar Agrupar usando a API ou ao especificar uma configuração JSON pela Google Cloud CLI. No entanto, você também pode usar atributos em lote por meio outros métodos, como campos do console do Google Cloud, flags CLI gcloud e bibliotecas de cliente, que são descritas nas Documentação do Batch.

Para mais informações sobre cada recurso e a sintaxe JSON, consulte:

Recursos do Cloud Life Sciences Atributos em lote Detalhes
pipeline (pipeline) job (job) e as tarefas dele (taskGroups[])

Um job em lote consiste em uma matriz de uma ou mais tarefas que executam todos os mesmos executáveis. Um pipeline do Cloud Life Sciences é semelhante para um job em lote com uma tarefa. No entanto, o Cloud Life Sciences não tem um conceito equivalente para (trabalhos com várias) tarefas, que são como repetições de um pipeline.

Para mais informações sobre jobs e tarefas, consulte Visão geral do Batch.

ações (actions[]) para um pipeline executáveis (runnables[]) para as tarefas de um job.

Uma ação do Cloud Life Sciences descreve um contêiner, mas um Os executáveis em lote podem conter um contêiner ou script.

credenciais (credentials) para uma ação

para um contêiner executável:

No Cloud Life Sciences, as credenciais de uma ação precisam ser um Cloud Key Management Service criptografado dicionário com pares de chave-valor de nome de usuário e senha.

Em lote, o nome de usuário e a senha de um contêiner executável estão em campos separados. Qualquer um dos campos pode ser especificado com texto simples ou com o nome de um Secret do Secret Manager.

para uma ação:

para um ambiente:

ambientes possíveis:

O Cloud Life Sciences permite especificar as variáveis de ambiente para uma ação formatada como texto simples ou como um dicionário criptografado. No Batch, isso é semelhante a ter o ambiente para um executável (campo environment em runnables[]) incluem variáveis formatadas como texto simples (variables) ou uma dicionário criptografado (encryptedVariables).

Porém, o Batch também tem mais opções variáveis de ambiente:

  • Como alternativa à especificação de variáveis como texto simples ou um dicionário criptografado, é possível especificar variáveis usando secrets do Secret Manager uma variável do secret (secretVariables).
  • Como alternativa à especificação de uma variável de ambiente para um executável, você pode especificar uma variável de ambiente para todos os executáveis ao usando o campo environment em taskSpec.
  • Como alternativa à especificação de uma variável de ambiente com o mesmo valor para cada tarefa, é possível especificar uma variável de ambiente que tem um valor diferente para cada tarefa usando o Campo taskEnvironments[] em taskGroups[].

Para mais informações, consulte Use variáveis de ambiente.

rótulos de uma solicitação para executar um pipeline (labels no corpo da solicitação) rótulos de um job (labels no recurso do job)

Ao contrário do Cloud Life Sciences, O lote não inclui um campo de rótulos na solicitação para criar uma nova vaga. A opção mais próxima para o Batch é usar rótulos associados apenas ao job.

O lote tem vários tipos de rótulos (campos labels) que você pode usar ao criar um job. Para mais informações, consulte Organizar recursos usando rótulos.

regiões (regions[]) e zonas (zones[]) para os recursos de um pipeline (resources) locais permitidos (allowedLocations) para a política de localização de recursos de um job (locationPolicy)

No Cloud Life Sciences, um pipeline é executado em uma única VM, é possível especificar as regiões e/ou zonas desejadas.

No Batch, a opção equivalente são os locais permitidos para um job, que podem ser definidos como uma ou mais regiões ou zonas e especifica onde as VMs de um job podem ser criadas. Todas as VMs de um único job do Batch pertencem a um um grupo gerenciado de instâncias (MIG), que existe em uma região específica; No entanto, VMs individuais podem estar em zonas diferentes dessa região.

Especificar o campo de locais permitidos para uma vaga é opcional porque ele é separado do local da tarefa. Ao contrário do local da tarefa, o local permitido não afeta o local usado para criar uma Job em lote e armazenamento de metadados de jobs. Para mais informações, consulte Locais de lote.

para os recursos de um pipeline (resources):

para a política de recursos de um job (allocationPolicy):

No Cloud Life Sciences, é possível configurar a VM que um pipeline é executado.

Em Batch, o mesmas opções para VMs estão disponíveis nos campos de uma política de alocação de recursos do job (allocationPolicy):

  • A conta de serviço, os rótulos e a configuração de rede das VMs são definidos nos campos dedicados.
  • O campo da VM (instances), que você pode definir diretamente ou usando um modelo de instância, inclui as opções de configuração para o tipo de máquina, a plataforma mínima de CPU permitida, o disco de inicialização e quaisquer outros discos anexados e quaisquer GPUs e drivers de GPU.

para uma ação:

para um executável:

Essas várias sinalizações de conveniência do Cloud Life Sciences são equivalentes em Batch exceto que elas são especificadas (que pode conter um script ou contêiner) em vez de cada ação contêiner.

para uma ação:

  • opção para publicar portas expostas (publishExposedPorts)
  • opção para especificar o namespace do ID de processo (PID, na sigla em inglês) (pidNamespace)
  • e a opção para especificar mapeamentos de portas de contêiner para host (portMappings).
(options) para um contêiner executável

Essas opções do Cloud Life Sciences (e outras) são compatíveis com Agrupar o campo de opções (options) para um contêiner executável. Defina o campo de opções para quaisquer sinalizações que você quer que o Batch anexe ao comando docker run, por por exemplo, -P --pid mynamespace -p 22:22.

para uma ação:

sem equivalente

O lote pré-busca imagens e processa os as saídas de todos os executáveis de maneira idêntica, de acordo com o política de registros (logsPolicy).

opção para bloquear redes externas (blockExternalNetwork) para uma ação opção para bloquear redes externas (blockExternalNetwork) de um contêiner executável

A opção do Cloud Life Sciences para bloquear redes externas semelhante à opção em lote para bloquear redes para um contêiner.

O Batch também tem muitas outras opções de rede, como bloquear redes externas para todas as VMs de um job. Para mais informações, consulte Visão geral da rede em lote.

ativações (mounts[]) para uma ação volumes para todos os executáveis (volumes[] em taskSpec) e opções de volume para um contêiner (volumes[] em container)

No Batch, é possível usar Campo volumes[] em taskSpec para definir os volumes de um job e os caminhos de montagem deles. Monta volumes de armazenamento em lote nas VMs do job e volumes de armazenamento sejam acessíveis a todos os elementos executáveis do job (scripts ou contêineres). Essa montagem é feita antes da VM qualquer tarefa ou executável.

Além disso, o Batch oferece suporte a opções explícitas de volume em executáveis de contêiner usando o Campo volumes[] em container. Estas opções de montagem são passados para o contêiner como opções para o Flag --volume do comando docker run, para exemplo, o valor [ "/etc:/etc", "/foo:/bar" ] é traduzido para o comando docker run --volume /etc:/etc --volume /foo:/bar no contêiner.

Para mais informações sobre como usar volumes de armazenamento com Batch, consulte Criar e executar um job que usa volumes de armazenamento.

opção para ativar o Cloud Storage FUSE (enableFuse) para uma ação sem equivalente

A montagem em lote lida com a montagem de volumes de armazenamento, como um bucket do Cloud Storage, especificado para um job. Como resultado, você não ativa nenhuma ferramenta de montagem como o Cloud Storage FUSE para Batch No entanto, é possível especificar de suporte para os volumes de armazenamento usando o campo mountOptions[].

Para mais informações sobre como usar buckets do Cloud Storage com Batch, consulte Criar e executar um job que usa volumes de armazenamento.

Tópico do Pub/Sub (pubSubTopic) de uma solicitação para executar um pipeline

para as configurações de notificação de um job (notifications[]):

O Batch permite maior personalização das atualizações de status do que Cloud Life Sciences. Por exemplo, os usuários do Batch podem em um tópico do Pub/Sub quando tarefas individuais mudam de estado ou apenas quando o job geral muda de estado.

Serviços de fluxo de trabalho

Se você usar um serviço de fluxo de trabalho com o Cloud Life Sciences, o processo de migração também envolve a configuração de um serviço de fluxo de trabalho com o Batch. Esta seção resume os serviços de fluxo de trabalho que podem ser usados com o Batch.

O Batch é compatível com Workflows, que é uma serviço de fluxo de trabalho do Google Cloud. Se quiser usar o Workflows com Batch, consulte Executar um job em lote usando o Workflows. Caso contrário, a tabela a seguir descreve outros serviços de fluxos de trabalho que pode ser usado no Cloud Life Sciences com em lote. Esta tabela lista as principais diferenças para usar cada serviço de fluxo de trabalho com Batch em vez do Cloud Life Sciences e detalhes sobre onde aprender mais sobre como usar cada serviço com o Batch.

Serviço de fluxo de trabalho Principais diferenças Detalhes
Cromwell

Para usar um arquivo de configuração do Cromwell para o API Cloud Life Sciences v2beta com a API Batch Em vez disso, faça as seguintes alterações:

  1. No campo actor-factory, substitua cromwell.backend.google.pipelines.v2beta.PipelinesApiLifecycleActorFactory por cromwell.backend.google.batch.GcpBatchLifecycleActorFactory.
  2. Remova o campo genomics.endpoint-url.
  3. Gere um novo arquivo de configuração.
Para saber mais sobre como usar o Batch com o Cromwell, consulte a Documentação do Cromwell para o Batch (em inglês) e tutorial do Cromwell para o Batch.
dsub

Para usar um pipeline dsub para o Cloud Life Sciences com o Batch, faça as seguintes alterações:

  • No campo provider, substitua google-cls-v2 por google-batch.
Para saber mais sobre como usar o Batch com dsub, consulte Documentação do dsub para Batch.
Nextflow

Para usar um arquivo de configuração do Nextflow no o Cloud Life Sciences com Batch, faça as seguintes alterações:

  1. No campo executor, substitua google-lifesciences por google-batch.
  2. Para quaisquer prefixos config, substitua google.lifeScience por google.batch.
Para saber mais sobre como usar o Batch com o Nextflow, consulte a Tutorial em lote ou Tutorial do Nextflow Para mais informações sobre as opções de configuração, consulte a Documentação do Nextflow.
Snakemake

Para usar um pipeline Snakemake para a API Cloud Life Sciences v2beta com a API Batch, faça o seguinte: muda:

  1. Verifique se você está usando a versão 8 ou mais recente do Snakemake. Para mais informações, consulte Migração entre as versões do Snakemake.
  2. Faça as seguintes mudanças no comando snakemake:

    • Substitua a sinalização --google-lifesciences pelo sinalização --executor googlebatch.
    • Substitua outras flags que tenham a sinalização Prefixo --google-lifesciences- para usar o --googlebatch-.
Para saber mais sobre como usar o Batch com o Snakemake, consulte Documentação do Snakemake para Batch.

A seguir