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.
| 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:
| 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 |
| 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 |
| 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 |
| 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 |
| 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.