Cargas de trabajo de las flotas

IBM Cloud® Code Engine es una plataforma sin servidor totalmente gestionada que ejecuta sus cargas de trabajo en contenedores, incluidas las cargas de trabajo de flota. Aprenda a gestionar flotas en Code Engine.

¿Qué son las flotas?

Una flota, también llamada flota sin servidor, es un componente informático de Code Engine que ejecuta una o más instancias de código de usuario en paralelo para completar una gran cola de tareas de cálculo intensivo. Las flotas pueden conectarse a nubes privadas virtuales para intercambiar de forma segura los datos de los usuarios cuando se conectan a otros servicios. A diferencia de los trabajos por lotes, las flotas proporcionan colas de tareas dinámicas y aislamiento de un único inquilino, y son compatibles tanto con vCPU como con GPU.

¿Cómo funcionan las flotas?

Las flotas tienen tres elementos principales: tareas, instancias y nodos trabajadores. Una única tarea es completada por una única instancia de código de usuario, que se ejecuta en un nodo trabajador. Cada nodo trabajador puede ejecutar varias tareas simultáneamente, lo que permite completar muchas tareas en paralelo. Cuando se completa una tarea, se crea una nueva instancia en el nodo trabajador para completar la siguiente tarea disponible en la cola. Este proceso se repite en cada nodo trabajador hasta que se completan todas las tareas, momento en el que los nodos trabajadores se desaprovisionan automáticamente.

¿En qué se diferencian las flotas de los puestos de trabajo?

A diferencia de los trabajos por lotes, que se destinan principalmente a tareas pequeñas o medianas, las flotas están diseñadas para completar tareas de gran envergadura y con un uso intensivo de la informática. Revise la tabla siguiente para conocer las diferencias específicas entre empleos y flotas.

Comparación de flotas y puestos de trabajo en Code Engine
Característica Flotas Trabajos
Aislamiento De un solo arrendatario Varios arrendatarios
Tamaño de la tarea Grandes tareas Tareas pequeñas y medianas
Implementación Cola dinámica Matriz estática
Configuración de la máquina Control total del perfil de la máquina Sin control sobre el perfil de la máquina
Conexión de VPC Se conecta de forma nativa a la VPC existente Requiere ruta privada

¿Cuáles son las principales características de trabajar con flotas de Code Engine?

Revise los siguientes temas para saber más sobre cómo trabajar con flotas en Code Engine.

Escalado automático

Con una flota, puede aprovechar el paralelismo a gran escala para llevar a cabo tareas de cálculo intensivo de gran tamaño. Code Engine escala automáticamente los nodos de trabajo de su flota para satisfacer las necesidades de recursos de la forma más eficiente. Puede dejar que Code Engine determine los perfiles de los trabajadores que se despliegan, o puede elegir un perfil específico, como un tipo de GPU. En cualquier caso, Code Engine escala automáticamente el número de trabajadores para obtener el mayor nivel de eficiencia.

El número de trabajadores desplegados se basa en el número de tareas a completar, los recursos necesarios para una instancia de su código y el número máximo de instancias concurrentes que desea ejecutar a la vez. Ajustando estas opciones, puede ampliar su flota para completar desde 1 hasta varios millones de tareas.

Por ejemplo, imagina que tienes que completar 4 tareas. Cada instancia de código para completar una tarea requiere 1 vCPU and 2 GB memory, para un requisito total de 4 vCPU and 8GB memory. Si establece el número máximo de instancias concurrentes en 2, Code Engine puede desplegar 1 nodo trabajador con 2 vCPU and 4 GB memory para ejecutar 2 instancias a la vez. Si establece el número máximo de instancias concurrentes en 4, Code Engine puede desplegar 2 de los mismos nodos trabajadores para ejecutar las 4 instancias al mismo tiempo en ambos trabajadores. En el segundo escenario, la flota termina más rápidamente pero requiere el despliegue de más trabajadores. Ten en cuenta que existe un número infinito de combinaciones para el despliegue automático de nodos trabajadores, y que podrían desplegarse nodos trabajadores de varios perfiles.

El escalado automático no está disponible para las GPU. Para desplegar GPUs para una flota, debes especificar el tipo de trabajador GPU a desplegar.

Especificación de tareas e instancias

Al desplegar una flota, los usuarios pueden especificar el número de tareas que deben completarse, el número de instancias que deben ejecutarse a la vez y el orden en que deben completarse las tareas. Las flotas pueden trabajar en muchas tareas en paralelo iniciando varias instancias simultáneamente. Todas las instancias se crean con la misma cantidad de vCPU y memoria que en la especificación de la flota. Además, los usuarios pueden crear un archivo de especificación de tareas para proporcionar comandos y argumentos específicos para cada tarea o para crear índices de tareas personalizados.

Almacenamiento de tareas en COS

Puede utilizar un cubo COS para proporcionar las tareas de su flota especificando un almacén de datos persistente y una ruta secundaria del cubo al crear la flota. Cada objeto del cubo COS representa una única tarea.

Aislamiento

A diferencia de los trabajos por lotes, las flotas proporcionan aislamiento de un único inquilino. Los trabajadores de tu flota no se comparten con otros usuarios.

Reintentos

Cada instancia de flota se ejecuta hasta su finalización. Sin embargo, en caso de error, Code Engine reinicia la instancia. Puedes limitar el número máximo de reintentos para evitar reiniciar instancias fallidas.

Estado

Una flota está en el estado Running cuando al menos un nodo trabajador está aprovisionado. Cuando la flota deja de funcionar, se encuentra en el estado Succeeded si todas las tareas se completaron con éxito, o Failed si una o más tareas fallaron. También puedes cancelar una flota.

Para más información, consulte Conocer el estado de su flota.

Perfil del trabajador

Puede elegir opcionalmente el perfil de su Fleet Worker. Si no especifica un perfil, Code Engine elegirá uno por usted.

Code Engine admiten las siguientes familias de perfiles:

Equilibrado
Perfil de instancia
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 instancia
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
Memoria
Perfil de instancia
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 instancia
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
Perfil de instancia
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

Es posible que algunos perfiles no estén disponibles en todas las zonas de red de la VPC. Puede utilizar el siguiente comando de la CLI para enumerar los perfiles de trabajador compatibles con las flotas sin servidor de Code Engine en una región.

ibmcloud ce fleet worker profiles
  • Si desea conocer la disponibilidad zonal y la capacidad de determinados perfiles, como H100 y L40s, abra un caso de soporte y seleccione "Virtual Private Cloud (VPC)" como tema.
  • Si necesita un determinado perfil de VPC que las flotas no admiten actualmente, abra un caso de asistencia y seleccione " Code Engine " como tema.

¿Cómo puedo empezar con las flotas?

Para crear y ejecutar una flota Code Engine sencilla con la imagen de muestra icr.io/codeengine/helloworld, consulte Ejecución de su primera flota Code Engine.