Economía para aplicaciones en la nube

Completado

Los proveedores de soluciones en la nube están realizando grandes esfuerzos para atraer a los usuarios desde sus implementaciones tradicionales. Los precios de la nube IaaS pública han ido bajando de forma constante y pronunciada desde el lanzamiento de sus servicios. Los precios de la mayoría de los principales proveedores de soluciones en la nube han disminuido de media entre un 20 % y un 30 % al año desde 2013.

Pero, a pesar de estos precios decrecientes, todavía hay que realizar con cuidado la adopción de la nube. Para obtener realmente las ventajas de costos de la nube, es importante comprender, presupuestar, planear, supervisar y analizar detenidamente el uso. Además, es difícil elegir entre los proveedores de soluciones en la nube para los casos de uso individuales, ya que la manera en la que los proveedores de soluciones en la nube empaquetan los recursos no está estandarizada, y no siempre siguen los mismos modelos de precios.

Modelos de precios

Normalmente, los proveedores de nube cobran por recursos basados en uno de los tres tipos de parámetros siguientes:

  • Basado en tiempos: Los recursos se cobran en función de la cantidad de tiempo que se aprovisionan al usuario. Por ejemplo, usted paga una cantidad determinada por hora/día/mes/año para que una máquina virtual se ejecute en una nube IaaS. La granularidad del período de carga varía entre un proveedor de la nube y otro. Amazon, por ejemplo, cobra a los usuarios por hora con una base no prorrateada.
  • Basado en la capacidad: Se cobra a los usuarios en función de la cantidad de un recurso concreto que se utiliza o se consume. Se trata de un modelo de carga popular para los sistemas de almacenamiento en la nube. Por ejemplo, a los usuarios se les cobra cierta cantidad por almacenar un Gigabyte en sistemas de almacenamiento de objetos en la nube, como Azure Blob Storage.
  • Basado en el rendimiento: En muchos proveedores de nube, los usuarios pueden seleccionar un nivel de rendimiento superior para los recursos pagando una tarifa mayor. En el caso de las máquinas virtuales, las máquinas más grandes y eficaces con más CPU, memoria y capacidad de disco se pueden aprovisionar a una tarifa por hora mayor.

En función de estos parámetros de carga, los proveedores de soluciones en la nube usan uno de los siguientes modelos de precios comunes:

  • Precios a petición y de pago por uso: Este suele ser el modelo de precios más caro para el uso a largo plazo. Los pagos se realizan durante un breve período de uso (generalmente medido en minutos u horas). La ventaja es que no hay necesidad de un contrato a largo plazo, por lo que es muy flexible para escalar y reducir horizontalmente en función de la necesidad actual. Aunque no es habitual, es posible que los proveedores de soluciones en la nube aumenten los costos cuando haya una alta demanda y lo disminuyan cuando esta sea baja. Se trata de un modelo excelente para los proveedores de servicios, así como para los usuarios de la nube que están empezando a usar la nube.
  • Precios de instancias reservadas y basados en suscripciones: En lugar de pagar una tarifa por hora o por minuto, un usuario puede elegir pagar por adelantado y reservar un recurso durante un período de tiempo bastante largo (semanas o meses). Esto suele dar lugar a grandes descuentos (entre un 20 % y un 50 %) pero requiere un compromiso a largo plazo. Dentro de los modelos de precios reservados, los esquemas de pago pueden variar de prepago a pagos periódicos por obligación contractual.
  • Precios puntuales: Los precios puntuales son una forma que tienen los proveedores de soluciones en la nube de ocuparse de la capacidad sobrante no utilizada, la cual ponen a la venta con un precio significativamente menor que los recursos a petición. Los precios vienen determinados por una subasta de usuarios, en la que los usuarios ofrecen el importe máximo que están dispuestos a pagar por un recurso. El mayor inconveniente es que a menudo los recursos pueden finalizar en cualquier momento si el precio puntual aumenta más que el precio real de la oferta. Los recursos puntuales son ideales para trabajos de ejecución breve y que no son críticos que se pueden ejecutar de forma especulativa.

Por lo general, se deben usar instancias reservadas para cumplir los requisitos básicos del sistema. Si una aplicación necesita 2 instancias el 80 % del tiempo, 3 instancias el 15 % del tiempo y 4 instancias el 5 % del tiempo, normalmente reservaría 2 instancias para la duración de la aplicación y realizaría un escalado horizontal mediante instancias a petición o puntuales. Como se ha mencionado, se deben elegir instancias a petición mientras se realiza el escalado horizontal solo si la aplicación es crítica para la empresa o si la diferencia entre el precio a petición y el precio puntual actual está compensado por el riesgo de una terminación repentina. Esta decisión suele ser específica del caso empresarial.

Optimización del uso de costos

Para usar la nube de una manera rentable, las empresas deben desarrollar un proceso maduro para elegir los recursos que se van a implementar, supervisar y visualizar el uso, así como un mecanismo claro para identificar los residuos y optimizar el uso.

Proceso de optimización de costos.

Figura 11: Proceso de optimización de costos

Antes de tener en cuenta los requisitos de costo, una organización debe planear la cantidad de trabajo que es capaz de completar en un período determinado en función de recursos fijos como la cantidad de personal, a la vez que se ocupa de restricciones físicas como la administración de inventario, la sobrecarga debida al transporte, el control de materiales, etc. El aprovisionamiento de recursos de TI debe estar diseñado para cumplir o superar la capacidad física de la organización. Esto es muy importante, ya que la elasticidad que proporciona la nube tienta a los equipos de desarrollo a simplemente agregar recursos a medida que se necesitan, sin tener en cuenta las implicaciones de costo de sus decisiones.

El primer paso para intentar reducir los gastos en la nube es hacer coincidir los tipos de recursos con el requisito real de la aplicación. Esto puede implicar elegir entre máquinas virtuales con diferentes configuraciones de memoria o número de núcleos. No hay ninguna forma sencilla de hacerlo, además de hacer pruebas y simulaciones de la aplicación en diferentes tipos de recursos.

Aunque una aplicación funcione mejor en una clase de recursos más costosa, es importante comprobar si la mejora del rendimiento es proporcional al aumento de costos. Por ejemplo, si hay una mejora de 1,2 veces en una aplicación que usa una máquina virtual 7,5 veces más cara que la base, puede que tenga más sentido escalar horizontalmente el recurso base para mejorar el rendimiento.

Es importante crear un sistema de supervisión y visualización para supervisar los distintos recursos que se usan. El sistema de supervisión debe estar diseñado para desencadenar eventos de escalado en respuesta a patrones observados de sobrecarga o inactividad. A menudo, los equipos de infraestructura optan por escalar vertical u horizontalmente de forma agresiva, mientras que reducen verticalmente y horizontalmente de manera más conservadora. Aunque este enfoque es más caro en cuanto al aprovisionamiento de recursos, proporciona teóricamente una mayor calidad de servicio que si se funciona casi a la máxima capacidad en todo momento.

Dicho esto, a menudo, las organizaciones subestiman la necesidad de reducir verticalmente y finalizar los recursos usados con poca frecuencia. En el planeamiento de la ejecución de los distintos componentes de una aplicación, es importante clasificar la utilización en diferentes ubicaciones, en función de la duración aproximada para la que se usará. Por ejemplo, los trabajos que se ejecutan durante un breve período de tiempo, de manera nocturna o semanal, no deben usar los recursos ininterrumpidos. El sistema de supervisión también debe marcar y finalizar los recursos inactivos, en función de ciertas reglas.

Una técnica importante que se asocia a la optimización de costos es la de etiquetado de los recursos. El etiquetado es el proceso por el que se asignan etiquetas a los recursos que permiten que sean identificados mediante herramientas de supervisión y análisis. El etiquetado también permite definir reglas personalizadas por etiqueta, incluidas listas de control de acceso a recursos, alertas de facturación y directivas de escalado específicas. Las etiquetas de uso frecuente especifican el propietario (usuario o grupo) de un recurso determinado, el entorno al que pertenece (por ejemplo, producción, copia de seguridad, ensayo y pruebas), el centro de costo a cargo de pagar la factura, etc. En el análisis de gastos, esto permite generar vistas agrupadas basadas en determinadas aplicaciones, así como en equipos de desarrollo o pruebas específicos.