Modelos de carga de proceso

Completado

Si el tráfico a un recurso en la nube, como una máquina virtual (o un conjunto de máquinas virtuales) o una aplicación web, fuera constante e invariable, no sería necesario escalar. Un administrador de la nube podría simplemente aprovisionar el número de instancias necesarias para controlar la carga, sin necesidad de hacer nada más. Pero los patrones de tráfico cambian con el tiempo, unas veces de manera predecible y otras, no. En el mundo real, un administrador debe diagnosticar la carga de los recursos que administra y usar el escalado para asegurarse de que el sistema puede mantener el ritmo de la demanda.

Antes de analizar cómo se escala, vamos a analizar por qué se hace. Para ello, examinaremos algunos de los modelos de carga comunes que experimentan las máquinas virtuales y otros recursos en la nube.

Crecimiento constante

Uno de los factores a los que suele deberse la necesidad de escalar es el crecimiento uniforme en la demanda. En la figura 1 se muestra el tráfico al sitio web de una empresa durante un período de 24 meses. La empresa crece rápidamente y el tráfico a su sitio web refleja claramente este hecho. Si suponemos que un servidor web puede controlar 5000 solicitudes por unidad de tiempo, la compañía comienza con quizás tres o cuatro servidores web, pero necesita aproximadamente 20 al cabo de dos años para seguir el ritmo de la demanda creciente y continuar atendiendo a los clientes.

Figura 1: Crecimiento constante

Figura 1: Crecimiento constante.

El crecimiento constante es uno de los modelos de carga más fáciles de compensar, ya que el cambio es estable y gradual. Probablemente podríamos realizar el escalado con servidores físicos, ya que es posible prever cuándo se necesitará el siguiente servidor (o conjunto de servidores) y tendremos semanas o incluso meses para prepararnos, pero la informática en la nube nos permite poner en línea nuevos servidores virtuales en cuestión de minutos. Mientras que la tendencia de 24 meses muestra un crecimiento estable y predecible, las cargas pueden fluctuar considerablemente en períodos de tiempo más cortos. La informática en la nube es mucho más adaptable a las microtendencias que el escalado con servidores físicos.

Cargas con fluctuación constante

La rápida elasticidad que ofrece la informática en la nube es fundamental cuando las cargas fluctúan de manera imprevisible durante períodos de tiempo relativamente cortos. En la figura 2 se muestra la carga en un sitio web durante un período de 24 horas. Una vez más, si suponemos que un servidor puede controlar 5000 solicitudes por unidad de tiempo, el número de servidores necesarios varía entre 2 y 16 en el transcurso del día. Podemos dar cabida a este tráfico si mantenemos 16 servidores web virtuales en línea en todo momento, pero conviene recordar que los proveedores de servicios en la nube cobran por las máquinas virtuales incluso cuando están inactivas. El exceso de capacidad no solo supone un desperdicio de energía, sino que prácticamente duplica el coste.

Figura 2: Carga con fluctuación constante.

Figura 2: Carga con fluctuación constante.

Cargas cíclicas

En la figura 3 se muestra una carga que aumenta y disminuye con un patrón normal y bastante predecible. Por ejemplo, la demanda incrementa en horario laboral y se reduce por la tarde y por la noche. En su punto máximo, la carga requiere aproximadamente 20 servidores para controlar la demanda, si suponemos que cada servidor se encarga de 5000 solicitudes por unidad de tiempo. No es razonable rotar los servidores físicos dentro y fuera las 24 horas del día, pero los servidores virtuales se pueden aprovisionar y desaprovisionar con facilidad según una programación para asegurarse de que la capacidad del servidor sea aproximadamente igual a la demanda. Los servidores físicos que están inactivos o que se usan poco durante 12 horas al día suponen un gasto de capital no deseado y un consumo de energía innecesario. Los servidores virtuales también tienen un coste, pero se pueden desaprovisionar cuando no sean necesarios y volver a crearse rápidamente cuando lo requiera la demanda.

Figura 3: Carga cíclica que se repite cada 24 horas.

Figura 3: Carga cíclica que se repite cada 24 horas.

Ráfagas impredecibles

Uno de los patrones más difíciles de tratar desde el punto de vista de los costes y el mantenimiento es aquel en el que se producen ráfagas impredecibles (figura 4). Si los picos son predecibles (por ejemplo, si el sitio web ofrece un servicio de entrega de pizzas que experimenta cargas más altas durante los fines de semana y los festivos), se puede planear una capacidad adicional. Pero si no son predecibles, debemos estar preparados para enfrentarnos a ellos en cualquier momento.

Figura 4: Ráfagas impredecibles.

Figura 4: Ráfagas impredecibles.

Podemos considerar el exceso del coste (es decir, el coste de los servidores aprovisionados para controlar las cargas máximas, pero que están relativamente inactivos durante los períodos de menos tráfico) como el área que se encuentra entre la parte superior de la curva y una línea horizontal trazada a través del punto más alto. En ese caso, el coste de proporcionar capacidad para 100 000 solicitudes por unidad de tiempo para la carga de la figura 4 es considerablemente mayor que el coste de proporcionar una capacidad equivalente en la figura 3.

Si podemos anticipar la magnitud de la demanda máxima (no necesariamente el momento en que se produce) y no nos preocupa el coste, podemos proporcionar la capacidad adecuada en todo momento mediante el aprovisionamiento de suficientes servidores para controlar las cargas más altas. La informática en la nube nos permite poner en línea los recursos cuando son necesarios y desconectarlos (y dejar de incurrir en cargos por su uso) cuando no hacen falta. La elasticidad se consigue mediante el escalado de recursos en la nube. Examinemos mejor el concepto de escalado y veamos por qué es un factor clave en el aspecto económico de la informática en la nube.

Comprobación de conocimientos

1.

Supongamos que un servidor puede controlar 5000 solicitudes por unidad de tiempo y que un sitio web experimenta cargas que varían con relativa uniformidad entre un mínimo de 5000 y un máximo de 25 000. El sitio está hospedado en la nube mediante máquinas virtuales, cada una de las cuales 4 USD al día. ¿Cuál es la diferencia anual aproximada del coste entre proporcionar capacidad elástica con un tamaño ajustado para satisfacer la demanda y capacidad constante con un tamaño para controlar las cargas máximas?