El autoescalado (también escrito como auto scaling o escalado automático ) es un método utilizado en la computación en la nube que ajusta dinámicamente la cantidad de recursos computacionales en un clúster de servidores (normalmente medido por el número de servidores activos) de forma automática en función de la carga del clúster. Por ejemplo, el número de servidores que se ejecutan detrás de una aplicación web puede aumentarse o disminuirse automáticamente en función del número de usuarios activos en el sitio. Dado que estas métricas pueden cambiar drásticamente a lo largo del día, y los servidores son un recurso limitado que cuesta dinero mantener incluso cuando están inactivos, suele haber un incentivo para mantener en funcionamiento "justo" los servidores necesarios para soportar la carga actual, sin dejar de poder soportar picos de actividad repentinos y elevados. El autoescalado resulta útil para estas necesidades, ya que puede reducir el número de servidores activos cuando la actividad es baja y lanzar nuevos servidores cuando la actividad es alta. El autoescalado está estrechamente relacionado con el concepto de balanceo de carga y se basa en él . [ 1 ] [ 2 ]
Ventajas
El escalado automático ofrece las siguientes ventajas:
- Para las empresas que gestionan su propia infraestructura de servidores web , el autoescalado generalmente implica permitir que algunos servidores entren en modo de suspensión durante períodos de baja carga, lo que permite ahorrar en costos de electricidad (así como en costos de agua si se utiliza agua para enfriar las máquinas). [ 3 ]
- Para las empresas que utilizan infraestructura alojada en la nube, el autoescalado puede significar facturas más bajas, ya que la mayoría de los proveedores de nube cobran en función del uso total en lugar de la capacidad máxima. [ 4 ]
- Incluso para las empresas que no pueden reducir la capacidad de cómputo total que utilizan o pagan en un momento dado, el autoescalado puede ayudar al permitir que la empresa ejecute cargas de trabajo menos críticas en tiempo real en máquinas que se liberan mediante el autoescalado durante períodos de bajo tráfico. [ 5 ]
- Las soluciones de escalado automático, como la que ofrece Amazon Web Services, también pueden encargarse de reemplazar las instancias defectuosas y, por lo tanto, proteger en cierta medida contra fallos de hardware, red y aplicaciones. [ 6 ]
- El escalado automático puede ofrecer mayor tiempo de actividad y más disponibilidad en casos donde las cargas de trabajo de producción son variables e impredecibles.
El escalado automático se diferencia de tener un ciclo fijo diario, semanal o anual de uso de servidores en que responde a los patrones de uso reales y, por lo tanto, reduce el posible inconveniente de tener demasiados o muy pocos servidores para la carga de tráfico. Por ejemplo, si el tráfico suele ser menor a medianoche, una solución de escalado estático podría programar algunos servidores para que descansen por la noche, pero esto podría provocar una interrupción del servicio en una noche en la que la gente usa más Internet (por ejemplo, debido a una noticia viral). El escalado automático, en cambio, puede gestionar mejor los picos de tráfico inesperados. [ 3 ] [ 7 ]
Terminología
En la lista que aparece a continuación, utilizamos la terminología empleada por Amazon Web Services (AWS). [ 8 ] Sin embargo, se indican nombres alternativos y no se utiliza la terminología específica de los nombres de los servicios de Amazon.
Práctica
Servicios web de Amazon (AWS)

Amazon Web Services lanzó el servicio Amazon Elastic Compute Cloud (EC2) en agosto de 2006, que permitía a los desarrolladores crear y terminar instancias (máquinas) mediante programación. [ 11 ] [ 12 ] En el momento del lanzamiento inicial, AWS no ofrecía autoescalado, pero la capacidad de crear y terminar instancias mediante programación les dio a los desarrolladores la flexibilidad de escribir su propio código para el autoescalado.
El software de autoescalado de terceros para AWS comenzó a aparecer alrededor de abril de 2008. Entre ellos se encontraban herramientas de Scalr [ 13 ] y RightScale. RightScale fue utilizado por Animoto, que pudo gestionar el tráfico de Facebook mediante el autoescalado. [ 14 ] [ 15 ]
El 18 de mayo de 2009, Amazon lanzó su propia función de autoescalado junto con Elastic Load Balancing , como parte de Amazon Elastic Compute Cloud . [ 16 ] El autoescalado es ahora un componente integral de la oferta EC2 de Amazon. [ 2 ] [ 17 ] [ 18 ] El autoescalado en Amazon Web Services se realiza a través de un navegador web o la herramienta de línea de comandos. [ 19 ] En mayo de 2016, el autoescalado también se ofreció en el servicio AWS ECS. [ 20 ]
El proveedor de vídeo bajo demanda Netflix documentó su uso del escalado automático con Amazon Web Services para satisfacer las necesidades altamente variables de sus consumidores. Descubrieron que un escalado ascendente agresivo y un escalado descendente retardado y cauteloso eran la mejor manera de alcanzar sus objetivos de tiempo de actividad y capacidad de respuesta. [ 7 ]
En un artículo para TechCrunch , Zev Laderman, cofundador y director ejecutivo de Newvem, un servicio que ayuda a optimizar la infraestructura en la nube de AWS, recomendó que las startups utilicen el escalado automático para mantener bajos sus costos de Amazon Web Services. [ 4 ]
Varias guías de mejores prácticas para el uso de AWS sugieren usar su función de autoescalado incluso en casos donde la carga no es variable. Esto se debe a que el autoescalado ofrece otras dos ventajas: reemplazo automático de cualquier instancia que se vuelva inestable por cualquier motivo (como falla de hardware, falla de red o error de la aplicación) y reemplazo automático de instancias spot que se interrumpen por razones de precio o capacidad, lo que hace más factible usar instancias spot para fines de producción. [ 6 ] [ 21 ] [ 22 ] Las mejores prácticas internas de Netflix requieren que cada instancia esté en un grupo de autoescalado, y su sistema de cumplimiento termina cualquier instancia que no esté en un grupo de autoescalado para hacer cumplir esta mejor práctica. [ 23 ]
Windows Azure de Microsoft
El 27 de junio de 2013, Microsoft anunció que agregaría soporte para el escalado automático a su plataforma de computación en la nube Windows Azure . [ 24 ] [ 25 ] [ 26 ] La documentación de la función está disponible en Microsoft Developer Network . [ 10 ] [ 27 ]
Oracle Cloud
Oracle Cloud Platform permite que las instancias de servidor escalen automáticamente un clúster hacia adentro o hacia afuera definiendo una regla de autoescalado. [ 28 ] Estas reglas se basan en la utilización de CPU y/o memoria y determinan cuándo agregar o eliminar nodos.
Plataforma Google Cloud
El 17 de noviembre de 2014, Google Compute Engine anunció una versión beta pública de su función de autoescalado para su uso en aplicaciones de Google Cloud Platform . [ 29 ] [ 30 ] [ 31 ] [ 32 ] A marzo de 2015, la herramienta de autoescalado aún se encuentra en fase beta. [ 9 ]
En una publicación de blog de agosto de 2014, un ingeniero de Facebook reveló que la empresa había comenzado a utilizar el escalado automático para reducir sus costos de energía. La publicación reportó una disminución del 27 % en el consumo de energía durante las horas de menor tráfico (alrededor de la medianoche) y una disminución del 10-15 % en el consumo de energía durante el ciclo típico de 24 horas. [ 3 ] [ 33 ]
Escalador automático de pods horizontales de Kubernetes
Kubernetes Horizontal Pod Autoscaler escala automáticamente el número de pods en un controlador de replicación , despliegue o conjunto de réplicas en función de la utilización de CPU observada (o, con soporte beta, en alguna otra métrica proporcionada por la aplicación ) [ 34 ].
Enfoques alternativos para la toma de decisiones sobre el escalado automático
El escalado automático, por defecto, utiliza un enfoque de decisión reactivo para gestionar el escalado del tráfico: este solo se produce en respuesta a cambios en tiempo real en las métricas. En algunos casos, sobre todo cuando los cambios se producen muy rápidamente, este enfoque reactivo resulta insuficiente. A continuación, se describen otros dos enfoques de decisión para el escalado automático.
Enfoque de autoescalado programado
Este es un enfoque de autoescalado donde se realizan cambios en el tamaño mínimo, el tamaño máximo o la capacidad deseada del grupo de autoescalado en momentos específicos del día. El escalado programado es útil, por ejemplo, si se conoce un aumento o disminución de la carga de tráfico en momentos específicos del día, pero el cambio es demasiado repentino para que el autoescalado basado en un enfoque reactivo responda con la suficiente rapidez. Los grupos de autoescalado de AWS admiten el escalado programado. [ 35 ]
Escalado automático predictivo
Este enfoque de escalado automático utiliza análisis predictivos . La idea es combinar las tendencias de uso recientes con datos históricos de uso, así como con otros tipos de datos, para predecir el uso futuro y escalar automáticamente en función de estas predicciones.
Para partes de su infraestructura y cargas de trabajo específicas, Netflix descubrió que Scryer, su motor de análisis predictivo, ofrecía mejores resultados que el enfoque de autoescalado reactivo de Amazon. En particular, era mejor para: [ 36 ] [ 33 ]
- Identificar grandes picos de demanda en un futuro próximo y preparar la capacidad con un poco de antelación.
- Gestión de interrupciones a gran escala, como el fallo de zonas y regiones de disponibilidad completas.
- Gestionar patrones de tráfico variables, proporcionando mayor flexibilidad en la tasa de expansión o contracción en función del nivel y la tasa de cambio típicos de la demanda en diferentes momentos del día.
El 20 de noviembre de 2018, AWS anunció que el escalado predictivo estaría disponible como parte de su oferta de autoescalado. [ 37 ]
Véase también
- computación en la nube
- Balanceo de carga
- Servicios web de Amazon
- Escalado automático con Docker
Referencias
- ↑ "Por encima de las nubes: una visión de Berkeley sobre la computación en la nube" (PDF) . Berkeley EECS. 10 de febrero de 2009. Consultado el 21 de marzo de 2015 .
- 1 2 "Auto Scaling" . Amazon Web Services . Consultado el 21 de marzo de 2015 .
- 1 2 3 Wu, Qiang (8 de agosto de 2014). "Haciendo que la infraestructura de software de Facebook sea más eficiente energéticamente con Autoscale" . Blog de código de Facebook . Recuperado el 21 de marzo de 2015 .
- 1 2 Laderman, Zev (22 de abril de 2012). "Los 10 mayores errores cometidos con Amazon Web Services" . TechCrunch . Recuperado el 21 de marzo de 2015 .
- ↑ Park, Andrew; Denlinger, Darrell; Watson, Coburn (18 de septiembre de 2015). "Creando tu propio mercado spot EC2" . Netflix . Recuperado el 16 de diciembre de 2016 .
- 1 2 Wittig, Michael (26 de diciembre de 2015). "5 errores de AWS que debes evitar" . cloudonaut . Recuperado el 16 de diciembre de 2016 .
- 1 2 Orzell, Greg; Becker, Justin (18 de enero de 2012). "Auto Scaling in the Amazon Cloud" . Blog de tecnología de Netflix . Recuperado el 21 de marzo de 2012 .
- 1 2 "¿Qué es el escalado automático?" . Amazon Web Services . Consultado el 16 de diciembre de 2016 .
- 1 2 "Autoscaler" . Google Cloud Platform . Consultado el 21 de marzo de 2015 .
- 1 2 "Guía de escalado automático" . Red de desarrolladores de Microsoft . 26 de agosto de 2015.
- ↑ Cubrilovic, Nik (24 de agosto de 2006). "Casi exclusivo: Amazon prepara un servicio de computación de utilidad" . TechCrunch . Consultado el 4 de diciembre de 2016 .
- ↑ Barr, Jeff (25 de agosto de 2006). "Amazon EC2 Beta" . Blog de Amazon Web Services . Consultado el 31 de mayo de 2013 .
- ↑ Work, Henry (3 de abril de 2008). "Scalr: El esfuerzo de código abierto de escalado automático para Amazon EC2" . TechCrunch . Recuperado el 21 de marzo de 2015 .
- ↑ Howlett, Dennis (25 de junio de 2008). "RightScale Cloud Management se extiende a MySQL. RightScale, empresa especializada en la gestión de computación en la nube para la plataforma Amazon Web Services, anunció hoy su compatibilidad con MySQL Enterprise. El servicio, que se activará el 1 de julio, ofrece implementación, gestión y escalado automatizados, junto con soporte premium de MySQL Enterprise para aplicaciones de bases de datos de gran tamaño" . ZDNet . Consultado el 16 de diciembre de 2016 .
- ↑ von Eicken, Thorsten (23 de abril de 2008). "Animoto's Facebook Scale-Up" . Archivado del original el 20 de diciembre de 2016. Recuperado el 16 de diciembre de 2016 .
- ↑ Barr, Jeff (18 de mayo de 2009). "Nuevas características para Amazon EC2: Elastic Load Balancing, Auto Scaling y Amazon CloudWatch" . Amazon Web Services . Recuperado el 15 de junio de 2016 .
- ↑ "¿Qué es el autoescalado?" . TechTarget. Archivado del original el 29 de abril de 2019. Consultado el 21 de marzo de 2015 .
- ↑ Barr, Jeff (30 de julio de 2014). "Actualización de Auto Scaling: administración del ciclo de vida, estado de espera y desvinculación de instancias" . Amazon Web Services (blog oficial) . Consultado el 21 de marzo de 2015 .
- ↑ "Herramienta de línea de comandos de escalado automático" . Amazon Web Services (página editada por la comunidad) . Consultado el 21 de marzo de 2015 .
- ↑ "Escalado automático con Amazon ECS" . 18 de mayo de 2016. Archivado del original el 25 de septiembre de 2019. Consultado el 12 de febrero de 2019 .
- ↑ Adams, Rich (3 de febrero de 2014). "Consejos de AWS que me hubiera gustado saber antes de empezar. Una recopilación de consejos aleatorios sobre Amazon Web Services (AWS) que me hubiera gustado que me dijeran hace unos años, basados en lo que he aprendido al crear e implementar diversas aplicaciones en AWS" . Recuperado el 16 de diciembre de 2016 .
- ↑ "Cómo usar instancias spot de Amazon EC2" . wikiHow . Consultado el 16 de diciembre de 2016 .
- ↑ "El ejército de simios de Netflix" . Netflix . 19 de julio de 2011. Consultado el 5 de diciembre de 2016 .
- ↑ Lardinois, Frederic (27 de junio de 2013). "Microsoft agrega escalado automático a Windows Azure" . TechCrunch . Recuperado el 21 de marzo de 2015 .
- ↑ "Microsoft añadirá escalado automático y alertas a Windows Azure" . ZDNet . 27 de junio de 2013. Consultado el 21 de marzo de 2015 .
- ↑ Butler, Brandon (7 de agosto de 2013). "Google y Microsoft intentan alcanzar a Amazon, añadiendo equilibrio de carga y autoescalado a sus nubes" . Network World . Archivado del original el 18 de mayo de 2018. Consultado el 21 de marzo de 2015 .
- ↑ "El bloque de aplicación de escalado automático" . Microsoft Developer Network . Consultado el 21 de marzo de 2015 .
- ↑ "Administración de servicios PaaS" . Centro de ayuda de Oracle . Consultado el 16 de mayo de 2018 .
- ↑ Balejko, Filip (17 de noviembre de 2014). "Autoscaling, bienvenido a Google Compute Engine" . Blog de Google Cloud Platform . Consultado el 21 de marzo de 2015 .
- ↑ Protalinski, Emil (17 de noviembre de 2014). "Google Compute Engine consigue que Autoscaler ajuste los recursos de las aplicaciones en función del tráfico y las cargas de trabajo variables" . VentureBeat . Consultado el 21 de marzo de 2015 .
- ↑ Lardinois, Frederic (17 de noviembre de 2014). "Google incorpora el escalado automático a Compute Engine" . TechCrunch . Consultado el 21 de marzo de 2015 .
- ↑ Verge, Jason (17 de noviembre de 2014). "Google lanza la versión beta de Autoscaling en Compute Engine" . Data Center Knowledge . Recuperado el 21 de marzo de 2015 .
- 1 2 "Autoescalado: cómo la nube proporciona un impulso tremendo" . Morpheus. 2 de noviembre de 2016. Recuperado el 16 de diciembre de 2016 .
- ↑ "Tutorial sobre el escalador automático de pods horizontales" . Consultado el 21 de junio de 2018 .
- ↑ "Escalado programado" . Amazon Web Services . Consultado el 16 de diciembre de 2016 .
- ↑ Jacobson, Daniel; Yuan, Danny; Joshi, Neeraj. "Scryer: el motor de autoescalado predictivo de Netflix" . El blog de tecnología de Netflix . Netflix . Consultado el 28 de mayo de 2015 .
- ↑ Barr, Jeff (20 de noviembre de 2018). "Nuevo: Escalado predictivo para EC2, impulsado por aprendizaje automático" . Amazon Web Services . Recuperado el 23 de noviembre de 2018 .
- Gestión de redes
- Servidores (informática)
- computación en la nube