¿Cuál es el significado de ‘cargas de trabajo’ en el contexto de la computación en la nube?

En informática, según Wikipedia, la abstracción es un “mecanismo para reducir y factorizar los detalles para que uno pueda centrarse en algunos conceptos a la vez”.

Cuando escuche sobre la abstracción en el contexto de la computación en la nube basada en virtualización IaaS, la abstracción más conocida son los recursos informáticos en sí (la encapsulación también está en juego aquí). No necesita saber el hardware exacto en el que se ejecuta su instancia, o la configuración exacta de la red; solo necesita poder tratar sus instancias de cómputo como unidades casi idénticas que responden a cierto conjunto de señales de una manera predecible.

Sin embargo, con la aparición de múltiples nubes IaaS, hay una segunda abstracción que desempeñará un papel importante: la carga de trabajo.

La carga de trabajo es una abstracción del trabajo real que realizará su instancia o un conjunto de instancias. Ejecutar un servidor web o una granja de servidores web, o ser un nodo de datos Hadoop: todas estas son cargas de trabajo válidas. Estoy tratando una carga de trabajo como una abstracción, porque intencionalmente omito un componente enorme: la forma exacta en que el trabajo en una carga de trabajo determinada se asigna a los recursos ofrecidos por una nube determinada. Cuando hablo en términos de cargas de trabajo, quiero centrarme en lo que hay que hacer, en lugar de cómo se hará en el contexto de una nube en particular (recuerde que desde la perspectiva de la arquitectura técnica, las nubes están lejos de ser idénticas).

Creo que tal abstracción es muy útil. La ejecución de este blog puede tomar 1 instancia pequeña en una nube, la mitad de una instancia pequeña en otra, un tercio de una instancia más un equilibrador de carga dedicado en la tercera. Como puede ver, una vez que asigna una carga de trabajo a un conjunto de recursos informáticos, de almacenamiento y de red ofrecidos por una nube, ya no puede moverla a otra nube: sus implementaciones no son transferibles de una nube a otra. Las cargas de trabajo aquí sirven como equivalentes transferibles de sus implementaciones en la nube.

En segundo lugar, las cargas de trabajo por sí mismas pueden tener propiedades o atributos que podrían dictar dónde se puede ejecutar o no la carga de trabajo. Esto justifica la existencia de una carga de trabajo como una entidad separada; en teoría, es posible construir una carga de trabajo para la cual no puede existir ninguna implementación en ninguna de las nubes disponibles en la actualidad.

Hay muchos ejemplos de qué tipo de atributos puede tener una carga de trabajo. Una carga de trabajo puede tener un atributo de cumplimiento, que dice que esta carga de trabajo debe ejecutarse en un entorno con una cierta certificación. Otro atributo puede ser un requisito de ubicación geográfica, mientras que debe ejecutarse dentro de una determinada región geográfica por una razón legal.

Una carga de trabajo puede tener un límite de tiempo (“se ejecuta durante 5 horas”) o un límite de tiempo. Una carga de trabajo puede tener un tiempo de inicio específico o un tiempo de inicio flexible, en cuyo caso puede tener un tiempo de parada difícil (por ejemplo, debe terminar en un momento determinado en el futuro). Puede ser interrumpible o debe ejecutarse sin interrupciones.

Una carga de trabajo puede tener un cierto límite inferior de recursos que necesita, expresado en forma independiente del trabajo. Por ejemplo, servir al blog de WordPress para 1 visitante por día en lugar de 100 visitantes por hora son dos cargas de trabajo muy distintas (tenga en cuenta que las cargas de trabajo son diferentes, mientras que la aplicación dentro de la carga de trabajo es la misma). Este último seguramente terminará consumiendo más recursos que el primero.

La carga de trabajo puede tener un presupuesto asociado, puede tener requisitos de redundancia. Puede requerir un determinado sistema operativo o distribución. Puede requerir una determinada función (por ejemplo, disco persistente o dirección IP no privada directamente conectada a eth0). Puede requerir una cierta velocidad de acceso mínima a alguna fuente de datos (por ejemplo, si mis datos están en S3 en la costa este, es posible que desee que mi carga de trabajo se ejecute en algún lugar cercano). Cada requisito es una restricción: cuantos más requisitos tenga una carga de trabajo, menos nubes pueden ejecutarla.

Conclusión

La respuesta a la pregunta “¿Dónde está el mejor lugar para ejecutar esta tarea?” Solía ​​tratarse como una decisión binaria (“en las instalaciones” frente a “en la nube”) pero ya no, porque hay muchas implementaciones diferentes e incompatibles del último. Examinar sus tareas a través de cargas de trabajo / implementaciones prism puede abrir nuevos horizontes para la movilidad informática. Hay un dicho que dice “seleccione la herramienta adecuada para el trabajo”. Ahora se puede ampliar para “seleccionar la herramienta correcta y la ubicación correcta para el trabajo”.

Las cargas de trabajo son los recursos que se ejecutan en la nube. Ex. Máquinas virtuales, bases de datos, aplicaciones, etc. Este término en los negocios generalmente se refiere a todo lo que el inquilino ejecuta en una nube como servicio