El auto-scaling, conocido ocasionalmente como "escalado automático", es una característica de computación en la nube que asigna automáticamente los recursos computacionales en función de la demanda del sistema.
El auto-scaling se utiliza para garantizar que las aplicaciones tengan los recursos que necesitan para mantener una disponibilidad constante y alcanzar los objetivos de rendimiento, así como para promover el uso eficiente de los recursos de la nube y minimizar los costos de esta.
Según un informe técnico de 2023 de Infosys, las organizaciones que migran a la nube desperdician alrededor del 32% de su costo en la nube.1 Debido a su enfoque en la utilización eficiente de los Recursos, el Auto-Scaling es un componente útil en una práctica exitosa de FinOps.
Cuando las organizaciones configuran la infraestructura en la nube, proveen recursos de acuerdo con una “línea base” de cómputo, almacenamiento de información y necesidades de recursos de red. Pero la demanda fluctúa, por ejemplo, con picos o caídas en el tráfico de la red o en el uso de aplicaciones. Las características de auto-scaling permiten que los recursos se escalen para satisfacer la demanda en tiempo real según métricas específicas, como la utilización de CPU o la disponibilidad de ancho de banda, sin intervención humana.
El auto-scaling se puede utilizar para optimizar la asignación de recursos a través de una variedad de medios. Por ejemplo, el escalado predictivo utiliza datos históricos para predecir la demanda futura. O el escalado dinámico, que reacciona a las necesidades de Recursos en tiempo real según lo determinen las políticas de auto-scaling de una organización.
Estas automatizan los ciclos de vida de las instancias de computación en la nube, lanzando y terminando máquinas virtuales según sea necesario para ayudar con la demanda de recursos. El auto-scaling a menudo se utiliza en conjunto con el equilibrio de carga elástico para aprovechar al máximo los recursos disponibles en la nube.
Si bien el auto-scaling está relacionado con el equilibrio de carga, no son iguales. Ambos procesos afectan la asignación de recursos de backend, y se utilizan para optimizar el rendimiento y evitar el sobreaprovisionamiento. A menudo se usan juntos.
Los equilibradores de carga distribuyen el tráfico entrante entre varios servidores para reducir la carga en cualquier servidor en particular. Los equilibradores de carga suelen ofrecer características como comprobaciones de estado, que ayudan a dirigir el tráfico lejos de las instancias no saludables y hacia las saludables. Equilibrar la carga de tráfico ayuda a mejorar el rendimiento de las aplicaciones en un entorno de nube.
El auto-scaling por el contrario, ajusta la capacidad del sistema en función de la demanda para mantener un rendimiento constante y evitar el aprovisionamiento excesivo de recursos (es decir, usar solo lo necesario). Agrega nuevos servidores o instancias informáticas (o los termina) de acuerdo con la demanda de recursos y las políticas de auto-scaling que ha establecido una organización.
La mayoría de los proveedores de nube, como IBM Cloud®, Amazon Web Services (a veces, denominados AWS Cloud), Microsoft Azure y Oracle Cloud Infrastructure ofrecen servicios de auto-scaling en sus plataformas en la nube. Estos servicios pueden ayudar a las organizaciones a configurar políticas de auto-scaling para satisfacer las necesidades y los objetivos de computación en la nube de la organización.
Los distintos proveedores y plataformas ofrecen diferentes características, capacidades y precios, y las organizaciones tendrán diferentes recursos disponibles y diferentes casos de uso, pero, en general, el auto-scaling funciona de la siguiente manera:
El proceso comienza con una configuración de lanzamiento, o despliegue de línea de base, en la que se despliegan uno o más tipos de instancia con una capacidad y características de rendimiento específicas. Este despliegue a menudo se realiza mediante llamadas a la API e infraestructura como código (IaC), un proceso que aprovecha el código para aprovisionar y configurar elementos de infraestructura de TI según especificaciones predefinidas.
Las organizaciones determinan la capacidad deseada y qué tipo de atributos necesita la instancia en función de la carga de trabajo esperada para esa instancia. Al configurar una política de Auto-Scaling, las organizaciones pueden establecer objetivos y umbrales para el uso de proceso, almacenamiento o red. Cuando se alcanzan estos umbrales, puede desencadenar automáticamente una acción específica para adaptar a las demandas de recursos actuales con mayor precisión. Si se desea, las políticas se pueden configurar para que se envíen notificaciones cada vez que se inicie una acción de escalado.
Las organizaciones también pueden configurar grupos de instancias que mantengan un número mínimo o máximo de instancias para cargas de trabajo específicas, o agrupar diferentes tipos de instancias para manejar diferentes tipos de cargas de trabajo. Los tipos de instancias incluyen:2
Los tipos de instancias de propósito general están diseñados para una variedad de cargas de trabajo, como servidores web, bases de datos pequeñas y entornos de desarrollo y pruebas.
Estas instancias están optimizadas para cargas de trabajo de computación intensiva, como computación de alto rendimiento, procesamiento por lotes y modelado científico. Estas instancias maximizan la potencia de cálculo con GPU y CPU de alto número de núcleos.
Estas instancias de alta memoria están optimizadas para cargas de trabajo que requieren mucha memoria, como bases de datos de alto rendimiento, cachés en memoria distribuidos y procesamiento de datos en tiempo real, y analytics de big data.
Estas instancias están optimizadas para cargas de trabajo de almacenamiento intensivo, como big data, almacenamiento de datos y procesamiento de registros. Aprovechan el almacenamiento en caché de alta capacidad y las unidades de estado sólido (SSD) para admitir las intensas actividades de lectura y escritura de las cargas de trabajo.
Los grupos de auto-scaling con tipos de instancias mixtas permiten a los equipos de CloudOps y DevOps satisfacer las demandas de recursos de manera más precisa y eficiente. Por ejemplo, si las necesidades de ancho de banda se satisfacen adecuadamente, pero el uso de la CPU supera el umbral establecido en las políticas de Auto-Scaling, el sistema puede activar más instancias específicas de cómputo. Mientras tanto, las instancias dedicadas a manejar el tráfico de red permanecen como están.
Una vez que los equipos comprenden la demanda de cargas de trabajo, incluso pueden crear plantillas de configuración de lanzamiento para nuevas instancias. Estas plantillas definen el tipo de instancia, los parámetros de configuración y otras políticas para la puesta en marcha de nuevas instancias y cómo contribuyen al entorno general de la nube. Esto permite a las organizaciones automatizar por completo los ciclos de vida de las máquinas virtuales.
Existen varios tipos diferentes de escalado, así como diferentes métodos de auto-scaling:
El escalado horizontal implica agregar más máquinas o nodos a un entorno de computación en la nube. También puede escalar reduciendo el número de nodos en el entorno.
El escalado vertical es el proceso de agregar más energía (RAM, CPU, almacenamiento, por ejemplo) a los nodos existentes en su entorno de computación en la nube actual.
Las políticas de autoescalado pueden ser predictivas, dinámicas o programadas.
Las políticas de escalado predictivo utilizan inteligencia artificial (IA) y machine learning para anticipar futuras necesidades de recursos antes de que ocurran en función de la utilización histórica.
Por ejemplo, una política de Auto-Scaling predictivo podría identificar la probabilidad de un aumento del tráfico web para una empresa de comercio electrónico antes de una temporada de compras navideñas. Puede escalar horizontal o verticalmente de acuerdo con la política establecida. Este enfoque puede ayudar a minimizar de forma proactiva la latencia y el tiempo de inactividad de la red.
Las políticas de escalado dinámico reaccionan a las necesidades de recursos a medida que ocurren, ajustando la asignación de recursos en función de la utilización en tiempo real. Con una política de escalado dinámico, las organizaciones pueden enviar más Recursos a un nodo concreto o a un grupo de Auto-Scaling. También pueden activar instancias adicionales cuando se alcanza un umbral específico, como un porcentaje de uso de la CPU.
Por ejemplo, si una organización ejecuta una aplicación web que consume recursos significativos en una programación irregular, se podría usar una política de escalado dinámico para ajustar la disponibilidad de recursos según sea necesario. El escalado dinámico suele ir acompañado de un periodo de enfriamiento, en el que los recursos aumentados permanecen disponibles en caso de que se produzcan picos de tráfico adicionales.
Las políticas de autoescalado programado asignan recursos según un horario predeterminado. Por ejemplo, si una organización sabe que la demanda de tráfico o recursos es mucho mayor por las tardes que por la mañana, se puede establecer una política de autoescalado para adaptarse a esa demanda.
Cuando se implementa de manera eficaz, el autoescalado puede desempeñar un papel importante en la optimización del entorno de computación en la nube de una organización y la reducción de los costos generales de la nube.
Al establecer políticas sólidas de auto-scaling, las organizaciones pueden reducir su dependencia del aprovisionamiento manual y garantizar un rendimiento más constante del sistema.
El auto-scaling permite que un entorno en la nube reaccione en tiempo real a la demanda de recursos sin necesidad de intervención humana. Esto es más eficaz que el escalado manual. Ayuda a reducir el agotamiento de los empleados, mejorar la congruencia de configuración y aprovisionamiento, y liberar tiempo de los empleados para tareas más valiosas.
El autoescalado permite a las organizaciones expandir su entorno de computación en la nube y sus capacidades perfectamente, sin tener que dedicar personal adicional al monitoreo y aprovisionamiento de recursos.
Al garantizar que un entorno en la nube tenga los recursos informáticos, de red y de almacenamiento que requiere, independientemente de la actividad o la demanda, el autoescalado ayuda a mantener el rendimiento constante y confiable de los servicios en la nube.
Un rendimiento más constante de las aplicaciones web y de la red significa un nivel de servicio más constante para el usuario.
Cuando se confía en el aprovisionamiento manual de recursos, las organizaciones a menudo sobreaprovisionan por precaución, solo para asegurarse de que los recursos están disponibles para los momentos de mayor demanda. Al utilizar una plataforma que puede escalar automáticamente los recursos informáticos, de red y de almacenamiento para satisfacer la demanda en tiempo real, las organizaciones pueden evitar el aprovisionamiento excesivo. Este enfoque garantiza que utilicen solo lo que necesitan, lo que se traduce en una menor factura de la nube y un mayor retorno de la inversión (ROI).
Descubra cómo Cloud Paks puede transformar sus operaciones comerciales e impulsar resultados más rápidos e inteligentes de innovación y eficiencia en un entorno de nube híbrida.
Utilice nuestros servicios en la nube, impulsados por nuestra plataforma IBM Consulting Advantage, para acelerar su transición hacia la nube híbrida, generar rentabilidad, aumentar la productividad y la sostenibilidad y acelerar el tiempo de comercialización.
Optimice su transformación digital con las soluciones de nube híbrida de IBM, creadas para optimizar la escalabilidad, la modernización y la integración perfecta en toda su infraestructura de TI.
1 “Cloud cost optimization", Sarika Nandwani, Infosys.com, 2023.
2 “AWS EC2 instance types: Challenges and best practices for hosting your application in AWS”, Christopher Graham, 23 de agosto de 2023.