Cargas de trabalho de frotas

IBM Cloud® Code Engine é uma plataforma sem servidor totalmente gerenciada que executa suas cargas de trabalho em contêineres, incluindo cargas de trabalho de frota. Saiba como administrar frotas em Code Engine.

O que são frotas?

Um fleet, também chamado de fleet sem servidor, é um componente de computação do Code Engine que executa uma ou mais instâncias de código de usuário em paralelo para concluir uma grande fila de tarefas de computação intensiva. As frotas podem se conectar a nuvens privadas virtuais para trocar dados de usuários com segurança ao se conectar a outros serviços. Diferentemente dos trabalhos em lote, os frotas oferecem enfileiramento dinâmico de tarefas e isolamento de locatário único, além de serem compatíveis com vCPU e GPUs.

Como funcionam as frotas?

As frotas têm três elementos principais: tarefas, instâncias e nós de trabalho. Uma única tarefa é concluída por uma única instância de código de usuário, que é executada em um nó de trabalho. Cada nó de trabalho pode executar várias tarefas ao mesmo tempo, permitindo que muitas tarefas sejam concluídas em paralelo. Quando uma tarefa é concluída, uma nova instância é ativada no nó de trabalho para concluir a próxima tarefa disponível na fila. Esse processo se repete em cada nó de trabalho até que todas as tarefas sejam concluídas, momento em que os nós de trabalho são automaticamente desprovisionados.

Como as frotas são diferentes dos empregos?

Ao contrário dos trabalhos em lote, que se destinam principalmente a tarefas de pequeno e médio porte, as frotas são projetadas para concluir tarefas grandes e com uso intensivo de computação. Analise a tabela abaixo para ver as diferenças específicas entre empregos e frotas.

Comparação de Code Engine Frotas e empregos
Característica Frotas Tarefas
Isolamento Locatário único Diversos locatários
Tamanho da tarefa Grandes tarefas Tarefas de pequeno a médio porte
implementação Fila dinâmica Matriz estática
Configuração da máquina Controle total sobre o perfil da máquina Sem controle sobre o perfil da máquina
Conexão VPC Conecta-se nativamente à VPC existente Requer caminho privado

Quais são os principais recursos do trabalho com as frotas do Code Engine?

Analise os tópicos a seguir para saber mais sobre como trabalhar com frotas em Code Engine.

Ajuste de escala automático

Com um fleet, você pode aproveitar o paralelismo em grande escala para concluir tarefas grandes e de computação intensiva. O site Code Engine dimensiona automaticamente os nós de trabalho em seu fleet para atender aos requisitos de recursos de forma mais eficiente. Você pode permitir que o site Code Engine determine os perfis dos trabalhadores implantados ou pode escolher um perfil específico, como um tipo de GPU. Em ambos os casos, o site Code Engine dimensiona automaticamente o número de trabalhadores para obter o maior nível de eficiência.

O número de workers implantados baseia-se no número de tarefas a serem concluídas, nos recursos necessários para uma instância do seu código e no número máximo de instâncias simultâneas que você deseja executar por vez. Ao ajustar essas configurações, você pode dimensionar sua frota para concluir apenas 1 ou até vários milhões de tarefas.

Por exemplo, imagine que você tenha 4 tarefas para concluir. Cada instância de código para concluir uma tarefa requer 1 vCPU and 2 GB memory, para um requisito total de 4 vCPU and 8GB memory. Se você definir o número máximo de instâncias simultâneas como 2, o site Code Engine poderá implantar 1 nó de trabalho com 2 vCPU and 4 GB memory para executar 2 instâncias ao mesmo tempo. Se você definir o número máximo de instâncias simultâneas como 4, o Code Engine poderá implantar 2 dos mesmos nós de trabalho para executar todas as 4 instâncias ao mesmo tempo em ambos os trabalhadores. No segundo cenário, a frota termina mais rapidamente, mas exige a mobilização de mais funcionários. Lembre-se de que há um número infinito de combinações para a implantação automática de nós de trabalho e que nós de trabalho de vários perfis podem ser implantados.

O dimensionamento automático não está disponível para GPUs. Para implantar GPUs em um fleet, você deve especificar o tipo de GPU worker a ser implantado.

Especificação de tarefas e instâncias

Ao implementar uma frota, os usuários podem especificar o número de tarefas a serem concluídas, o número de instâncias a serem executadas por vez e a ordem em que as tarefas são concluídas. Os Fleets podem trabalhar em muitas tarefas paralelamente, iniciando várias instâncias ao mesmo tempo. Todas as instâncias são criadas com a mesma quantidade de vCPU e memória que a especificação da frota. Além disso, os usuários podem criar um arquivo de especificação de tarefas para fornecer comandos e argumentos específicos para cada tarefa ou para criar índices de tarefas personalizados.

Armazenamento de tarefas no COS

Você pode usar um bucket COS para fornecer as tarefas para seu fleet especificando um armazenamento de dados persistente e um subcaminho de bucket ao criar o fleet. Cada objeto no bucket do COS representa uma única tarefa.

Isolamento

Ao contrário dos trabalhos em lote, as frotas oferecem isolamento de locatário único. Seus funcionários da frota não são compartilhados com outros usuários.

Novas tentativas

Cada instância da frota é executada até a conclusão. No entanto, em caso de erro, o site Code Engine reinicia a instância. Você pode limitar o número máximo de novas tentativas para evitar a reinicialização de instâncias com falha.

Status

Uma frota está no status Running quando pelo menos um nó de trabalho é provisionado. Quando a frota não está mais em execução, ela está no status Succeeded se todas as tarefas foram concluídas com êxito, ou Failed se uma ou mais tarefas falharam. Você também pode cancelar uma frota.

Para obter mais informações, consulte Compreensão do status de sua frota.

Perfil do trabalhador

Opcionalmente, você pode escolher o perfil de seu Fleet Worker. Se você não especificar um perfil, o site Code Engine escolherá um perfil para você.

Code Engine as frotas suportam as seguintes famílias de perfis:

Balanceado
Perfil de instância
bx2-2x8
bx2-4x16
bx2-8x32
bx2-16x64
bx2-32x128
bx2-48x192
bx2-64x256
bx2-96x384
bx2-128x512
bx2a-2x8
bx2a-4x16
bx2a-8x32
bx2a-16x64
bx2a-32x128
bx2a-48x192
bx2a-64x256
bx2a-96x384
bx2a-128x512
bx2a-228x912
bx2d-2x8
bx2d-8x32
bx2d-16x64
bx3d-2x10
bx3d-4x20
bx3d-8x40
bx3d-16x80
bx3d-24x120
bx3d-32x160
bx3d-48x240
bx3d-64x320
Cálculo
Perfil de instância
cx2-2x4
cx2-4x8
cx2-8x16
cx2-16x32
cx2-32x64
cx2-48x96
cx2-64x128
cx2-96x192
cx2-128x256
cx3d-2x5
cx3d-4x10
cx3d-8x20
cx3d-16x40
cx3d-24x60
cx3d-32x80
cx3d-48x120
cx3d-64x160
Memória
Perfil de instância
mx2-2x16
mx2-4x32
mx2-8x64
mx2-16x128
mx2-32x256
mx2-48x384
mx2-64x512
mx2-96x768
mx2-128x1024
mx2d-16x128
mx2d-64x512
mx2d-96x768
mx3d-2x20
mx3d-4x40
mx3d-8x16
mx3d-16x160
mx3d-24x240
mx3d-32x320
mx3d-48x480
mx3d-64x640
GPU
Perfil de instância
gx3-16x80x1l4
gx3-32x160x2l4
gx3-64x320x4l4
gx3-24x120x1l40s
gx3-48x240x2l40s
gx2-8x64x1v100
gx2-16x128x1v100
gx2-16x128x2v100
gx2-32x256x2v100
gx3d-24x120x1a100p
gx3d-48x240x2a100p
gx3d-160x1792x8h100
gx3d-160x1792x8h200
gx4d-232x3840x8b300
Flexível
Perfil de instância
nxf-2x1
nxf-2x2
bxf-2x8
bxf-4x16
bxf-8x32
bxf-16x64
bxf-24x96
bxf-32x128
bxf-48x192
bxf-64x256
cxf-2x4
cxf-4x8
cxf-8x16
cxf-16x32
cxf-24x48
cxf-32x64
cxf-48x96
cxf-64x128
mxf-2x16
mxf-4x32
mxf-8x64
mxf-16x128
mxf-24x192
mxf-32x256
mxf-48x384
mxf-64x512

Alguns perfis podem não estar disponíveis em todas as zonas de rede VPC. Você pode usar o seguinte comando da CLI para listar os perfis de trabalhador compatíveis com as frotas sem servidor do Code Engine em uma região.

ibmcloud ce fleet worker profiles
  • Se você quiser saber a disponibilidade zonal e a capacidade de determinados perfis, como H100 e L40s, abra um caso de suporte e selecione "Virtual Private Cloud (VPC)" como tópico.
  • Se você precisar de um determinado perfil de VPC que não seja compatível com as frotas atualmente, abra um caso de suporte e selecione " Code Engine " como tópico.

Como posso começar a trabalhar com frotas?

Para criar e executar um fleet Code Engine simples com a imagem de amostra icr.io/codeengine/helloworld, consulte Executando seu primeiro fleet Code Engine.