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