¿Qué es una carga de trabajo?

Una carga de trabajo se refiere al conjunto de tareas, procesos o trabajos que un sistema o aplicación ejecuta

¿Qué es una carga de trabajo?

En computación, una carga de trabajo se refiere a las tareas, procesos o trabajos que ejecuta un sistema, servicio o aplicación. Las cargas de trabajo no se tratan solo de aplicaciones; representan la actividad o la demanda sobre la infraestructura subyacente.

En el resto de este recurso, exploraremos la diferencia entre cargas de trabajo y aplicaciones, los tipos comunes de cargas de trabajo y cómo administrar, automatizar y proteger las cargas de trabajo en entornos de TI modernos. También destacaremos ejemplos del mundo real para hacer que estos conceptos sean concretos. Continúe leyendo para obtener más información.

Cargas de trabajo vs. aplicaciones

A primera vista, las cargas de trabajo y las aplicaciones pueden parecer intercambiables, pero cumplen propósitos distintos en el diseño de sistemas. Una aplicación se refiere al software en sí, ya sea una aplicación web, móvil o de escritorio. La carga de trabajo, sin embargo, es lo que la aplicación exige al sistema subyacente, como unidades centrales de procesamiento (CPU), memoria o espacio en disco.

Piensa en un aplicación de comercio electrónico. La carga de trabajo de la aplicación está determinada por la cantidad de transacciones (o pedidos) procesadas por minuto, los usuarios concurrentes y los procesos de backend que gestionan las actualizaciones de inventario., sesiones de usuarioo motores de recomendación. La aplicación es estática en su concepto, pero su carga de trabajo fluctúa según la demanda.

Comprender esta diferencia es fundamental al diseñar sistemas, especialmente para escalabilidad y rendimiento. Si bien la aplicación puede crearse con una cierta cantidad de funciones, su carga de trabajo cambiará a medida que aumente la actividad de los usuarios, se lancen nuevas funciones y evolucione la infraestructura.

Tipos de cargas de trabajo

Aquí hay algunos tipos comunes:

1. Cargas de trabajo transaccionales: Se refiere a sistemas que procesan altos volúmenes de transacciones, como bases de datos o plataformas de pago en línea. Estas cargas de trabajo se caracterizan por sus requisitos de baja latencia y alta confiabilidad.

2. Cargas de trabajo por lotes: Estas cargas de trabajo ejecutan una serie de trabajos que pueden procesado en lotes. Los canales de análisis de datos, los informes nocturnos y los trabajos de extracción, transformación y carga (ETL) son buenos ejemplos de cargas de trabajo por lotes.

3. Cargas de trabajo interactivas: Estas cargas de trabajo implican actividad en tiempo real, como la interacción con los usuarios finales, tanto en aplicaciones web como móviles. Exigen tiempos de respuesta rápidos a las entradas de los usuarios.

4. Cargas de trabajo con uso intensivo de cómputo: Se refiere a aplicaciones que requieren una potencia de procesamiento significativa, como el entrenamiento de modelos de aprendizaje automático, renderizado de video o simulaciones.

5. Cargas de trabajo con uso intensivo de datos: Sistemas que deben procesar, almacenar y recuperar cantidades masivas de datos, como bases de datos a gran escala o plataformas de macrodatos.

Ejemplos de cargas de trabajo

  • Sitios web de comercio electrónico: Esta carga de trabajo implica solicitudes de usuarios de productos, consultas a bases de datos para obtener detalles del inventario, procesamiento de transacciones de pago y actualizaciones de envío.
  • Entrenamiento de modelos de aprendizaje automático: Requiere recursos intensivos de la unidad central de procesamiento (CPU) o de la unidad de procesamiento gráfico (GPU) para entrenar modelos con grandes conjuntos de datos. Esto suele clasificarse como una carga de trabajo con uso intensivo de computación.
  • Servicios de streaming Plataformas como Netflix manejan cargas de trabajo interactivas donde el video se transmite bajo demanda a los usuarios. Esto implica un backend con uso intensivo de datos que almacena grandes archivos multimedia.
  • Detección de fraude en tiempo real: Un caso de uso común para una aplicación financiera implica analizando transacciones en tiempo real para detectar posibles fraudes – esta carga de trabajo de transmisión procesa miles de transacciones por segundo durante los momentos de mayor actividad.

Gestión de la carga de trabajo

La gestión de cargas de trabajo implica distribuir tareas dentro de un sistema de recursos disponible, como una CPU, memoria y almacenamiento, para garantizar un rendimiento eficiente. Una gestión adecuada de las cargas de trabajo es crucial para que las aplicaciones funcionen de manera eficiente y eficaz.

Herramientas como OpenPBS y Slurm le permiten administrar la carga de trabajo en un entorno de clúster, ya que programan tareas y asignan recursos de manera dinámica entre diferentes nodos. Estas herramientas optimizan los recursos de hardware mediante la programación de cargas de trabajo para que los trabajos de alta prioridad reciban recursos y las tareas menos importantes puedan retrasarse o ponerse en cola hasta que haya recursos disponibles.

Automatización de cargas de trabajo

La gestión de cargas de trabajo escalable requiere automatización. La automatización de cargas de trabajo se refiere al proceso de programar, ejecutar y gestionar automáticamente tareas dentro de una aplicación o sistema. Debido a su escalabilidad, favorece la optimización de recursos, minimiza el esfuerzo manual y ofrece un rendimiento consistente, particularmente en entornos dinámicos.

Conceptos clave en la automatización de cargas de trabajo

  • Programación de tareas: La automatización a nivel de sistema operativo a menudo implica la programación de tareas. Una vez configurada con reglas, como horarios específicos, eventos o umbrales del sistema, puede invocar tareas automáticamente. Ejemplos de automatización simple a nivel de sistema operativo incluyen los trabajos cron en Linux o un programador de tareas en Windows.
  • Escalamiento de recursos: Las plataformas de automatización como Kubernetes escalan los recursos de forma dinámica debido a la demanda en tiempo real. Por ejemplo, si hay un aumento repentino de usuarios en una aplicación web, Kubernetes implementará automáticamente nuevas instancias (contenedores) para equilibrar la carga y distribuirla de manera uniforme.
  • Manejo de errores: Los sistemas automatizados pueden gestionar fallas en las tareas. Una vez que una tarea falla, las herramientas de automatización pueden reintentar, registrar un error o activar una alerta para intervención manual. De este modo, el tiempo de inactividad se reduce al mínimo y continúa sin interrupciones mientras el sistema hace lo que debe hacer.
  • Gestión de dependencias: Debido a que la automatización de cargas de trabajo permite especificar qué tareas dependen de cuáles, esto significa que puede garantizar que los procesos se ejecuten en la secuencia adecuada. Considere una canalización de procesamiento de datos donde los trabajos ETL deben ejecutarse en orden: la extracción debe preceder a la transformación y la carga.

Herramientas para la automatización de cargas de trabajo

1. Kubernetes: La plataforma líder para la gestión de cargas de trabajo en contenedores, Kubernetes automatiza el despliegue, el escalado y la gestión de aplicaciones en contenedores. Utiliza controladores para monitorear el estado del sistema y ajusta los recursos para coincidir con la demanda.

2. AWS (Amazon Web Services) Lambda: Plataformas sin servidor como AWS Lambda, le permite ejecutar código en respuesta a eventos sin necesidad de aprovisionar ni administrar servidores. Este modelo de automatización permite que las cargas de trabajo se escalen de manera automática y eficiente en respuesta a las interacciones de los usuarios, tareas programadas u otros activadores.

3. Apache Airflow: Airflow es una popular plataforma de código abierto para la creación, programación y monitoreo programático de flujos de trabajo. Es especialmente útil para cargas de trabajo por lotes donde las tareas deben ejecutarse en secuencia o en momentos específicos (por ejemplo, canales de datos y trabajos ETL).

4. Terraform: Terraform puede automatizar cargas de trabajo mediante el aprovisionamiento y la gestión de infraestructura como código (IaC). Puede integrarse con plataformas como AWS y Google Cloud para automatizar políticas de escalado, aprovisionar servidores y gestionar flujos de trabajo de infraestructura complejos.

Protección de cargas de trabajo

Con una complejidad cada vez mayor, las cargas de trabajo son cada vez más vulnerables a las amenazas de seguridad, lo que hace que la protección de las cargas de trabajo sea vital. La protección de las cargas de trabajo implica asegurar las aplicaciones, sus datos y la infraestructura que las respalda.

Una estrategia común implica el uso de modelos de seguridad de confianza cero, donde cada entidad que interactúa con una carga de trabajo (ya sea usuario o aplicación) es autenticada y autorizada antes de acceder a los recursos. Herramientas como AWS Shield puede ayudar a proteger las cargas de trabajo contra ataques de denegación de servicio distribuido (DDoS), mientras que las soluciones de seguridad de contenedores como Falcon monitorean las cargas de trabajo de Kubernetes en busca de anomalías.

La protección de cargas de trabajo en la nube (CWP) implica monitorear continuamente y eliminar amenazas de las cargas de trabajo y los contenedores en la nube. Una plataforma de protección de cargas de trabajo en la nube (CWPP) es una solución de seguridad que protege cargas de trabajo de todo tipo en cualquier ubicación, ofreciendo una protección unificada de las cargas de trabajo en la nube en múltiples proveedores. Los proveedores de la nube suelen ofrecer servicios nativos de protección de cargas de trabajo, como el cifrado de datos en reposo y en tránsito, la gestión de identidades y accesos (IAM) y el aislamiento de redes mediante nubes privadas virtuales (VPC).

Principales conclusiones y recursos adicionales

  • Carga de trabajo Hace referencia a la carga impuesta a un sistema, mientras que una aplicación es software.
  • Tipos de cargas de trabajo: Desde cargas de trabajo transaccionales e interactivas hasta por lotes, con uso intensivo de computación y de datos. Cada carga de trabajo debe manejarse según las demandas que se le impongan.
  • Gestión de la carga de trabajo: La gestión eficiente de las cargas de trabajo suele estar automatizada. El objetivo es utilizar los recursos según las demandas del sistema.
  • Protegiendo la carga de trabajo: La protección contra las amenazas a la carga de trabajo es importante, y las herramientas nativas de la nube y los modelos de seguridad ayudan a atender esto.

También te dejamos algunos recursos adicionales para ayudar a tu empresa a crear y administrar aplicaciones a escala.

Puedes visitar nuestro blog y centro de conceptos para obtener más información sobre los conceptos relacionados con las cargas de trabajo de Couchbase.

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.