Ajuste de escala automático - Autoscaling

Ajuste de escala automático , también escrito escalado auto o auto-escala , y algunas veces también llamada escala automática , es un método utilizado en la nube de computación que ajusta dinámicamente la cantidad de recursos computacionales en una granja de servidores - típicamente medido por el número de servidores activos - automáticamente en función de la carga en la granja. Por ejemplo, la cantidad de servidores que se ejecutan detrás de una aplicación web se puede aumentar o disminuir automáticamente en función de la cantidad 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 para funcionar incluso cuando están inactivos, a menudo existe un incentivo para ejecutar servidores "suficientes" para soportar la carga actual sin dejar de ser capaz de hacerlo. soporta picos repentinos y grandes en la actividad. El ajuste de escala automático es útil para tales necesidades, ya que puede reducir la cantidad de servidores activos cuando la actividad es baja y lanzar nuevos servidores cuando la actividad es alta. El ajuste de escala automático está estrechamente relacionado con la idea del equilibrio de carga y se basa en ella .

Ventajas

El ajuste de escala automático ofrece las siguientes ventajas:

  • Para las empresas que ejecutan su propia infraestructura de servidor web, el ajuste de escala automático generalmente significa permitir que algunos servidores entren en suspensión durante momentos de baja carga, lo que ahorra costos de electricidad (así como costos de agua si se usa agua para enfriar las máquinas).
  • Para las empresas que utilizan infraestructura alojada en la nube, el ajuste de escala automático puede significar facturas más bajas, porque la mayoría de los proveedores de la nube cobran según el uso total en lugar de la capacidad máxima.
  • Incluso para las empresas que no pueden reducir la capacidad informática total que ejecutan o pagan en un momento dado, el escalado automático puede ayudar al permitir que la empresa ejecute cargas de trabajo menos urgentes en máquinas que se liberan mediante el escalado automático en momentos de poco tráfico.
  • Las soluciones de ajuste de escala automático, como la que ofrece Amazon Web Services, también pueden encargarse de reemplazar instancias en mal estado y, por lo tanto, proteger de alguna manera contra fallas de hardware, red y aplicaciones.
  • El ajuste de escala automático puede ofrecer un mayor tiempo de actividad y más disponibilidad en los casos en que las cargas de trabajo de producción son variables e impredecibles.

El ajuste de escala automático difiere de tener un ciclo fijo diario, semanal o anual de uso del servidor en que responde a los patrones de uso reales y, por lo tanto, reduce la posible desventaja de tener muy pocos o demasiados servidores para la carga de tráfico. Por ejemplo, si el tráfico suele ser menor a la medianoche, entonces una solución de escalado estático podría programar algunos servidores para que duerman por la noche, pero esto podría resultar en un tiempo de inactividad en una noche en la que la gente usa más Internet (por ejemplo, debido a un virus evento de noticias). El ajuste de escala automático, por otro lado, puede manejar mejor los picos de tráfico inesperados.

Terminología

En la siguiente lista, utilizamos la terminología utilizada por Amazon Web Services (AWS). Sin embargo, se anotan nombres alternativos y no se utiliza terminología específica para los nombres de los servicios de Amazon para los nombres.

Nombre (utilizado en AWS, a menos que se indique lo contrario) Sentido Nombres alternativos (utilizados en Google Cloud Platform, Microsoft Azure u otras plataformas)
Ejemplo Un solo servidor o máquina que forma parte del grupo de máquinas sujetas a ajuste de escala automático
Grupo de ajuste de escala automático La colección de instancias sujetas a ajuste de escala automático, junto con todas las políticas asociadas y la información de estado. Grupo de instancias administrado (Google Cloud Platform)
Tamaño La cantidad de instancias que actualmente forman parte del grupo de ajuste de escala automático
Capacidad deseada (o tamaño deseado) La cantidad de instancias que debe tener el grupo de ajuste de escala automático en un momento dado. Si el tamaño es menor que el tamaño deseado, el grupo de ajuste de escala automático intentará lanzar (aprovisionar y adjuntar) nuevas instancias. Si el tamaño es mayor que el tamaño deseado, el grupo de ajuste de escala automático intentará eliminar (desvincular y finalizar) instancias
Talla minima Varios casos por debajo de los cuales no se permite que caiga la capacidad deseada
Talla máxima Varios casos por encima de los cuales no se permite que la capacidad deseada aumente
Métrico Una medida (como la utilización de la CPU, el uso de la memoria, el uso de la red) asociada con el grupo de autoescalado, para la cual se genera regularmente una serie temporal de puntos de datos. Los umbrales de métricas se pueden usar para establecer políticas de ajuste de escala automático. Las métricas se pueden basar en agregados de métricas para instancias del grupo de ajuste de escala automático o en balanceadores de carga asociados con el grupo de ajuste de escala automático.
Política de escala (o política de escala automática) Una política que especifica un cambio en la capacidad deseada del grupo de ajuste de escala automático (o, a veces, su tamaño mínimo y máximo) en respuesta a métricas que cruzan umbrales específicos. Las políticas de escalado pueden tener períodos de recuperación asociados, que evitan que se produzcan acciones de escalado adicionales inmediatamente después de una acción de escalado específica. Los cambios en la capacidad deseada podrían ser incrementales (aumentar o disminuir en un número específico) o podrían especificar un nuevo valor de la capacidad deseada. Las políticas que aumentan la capacidad deseada se denominan políticas de "ampliación" o "ampliación", y las políticas que reducen la capacidad deseada se denominan políticas de "ampliación" o "reducción".
Chequeo de salud Una forma para que el grupo de ajuste de escala automático determine si las instancias adjuntas a él funcionan correctamente. Una verificación de estado puede basarse en si la instancia todavía existe y es accesible, o podría basarse en si la instancia todavía está registrada y en servicio con un balanceador de carga asociado
Configuración de lanzamiento Una descripción de los parámetros y las secuencias de comandos que se utilizan al lanzar una nueva instancia. Esto incluye el tipo de instancia, las opciones de compra (como spot versus on-demand en el caso de AWS), posibles zonas de disponibilidad para el lanzamiento, imagen de la máquina y scripts para ejecutar en el lanzamiento. Plantilla de instancia (Google Cloud Platform)
Escalado manual Una acción de escalado ejecutada manualmente
Escalado programado Una política de escalado que se ejecuta en un momento específico, por ejemplo, la hora del día, la semana, el mes o el año. Consulte la escala #Scheduled para obtener más información.

Práctica

Servicios web de Amazon (AWS)

Escalado automático

Amazon Web Services lanzó el servicio Amazon Elastic Compute Cloud (EC2) en agosto de 2006, que permitió a los desarrolladores crear y terminar instancias (máquinas) mediante programación. En el momento del lanzamiento inicial, AWS no ofrecía ajuste de escala automático, pero la capacidad de crear y finalizar instancias mediante programación les dio a los desarrolladores la flexibilidad de escribir su propio código para el ajuste de escala automático.

El software de ajuste de escala automático de terceros para AWS comenzó a aparecer alrededor de abril de 2008. Estos incluían herramientas de Scalr y RightScale. RightScale fue utilizado por Animoto, que pudo manejar el tráfico de Facebook mediante la adopción de autoescalado.

El 18 de mayo de 2009, Amazon lanzó su propia función de ajuste de escala automático junto con Elastic Load Balancing , como parte de Amazon Elastic Compute Cloud . El ajuste de escala automático es ahora un componente integral de la oferta EC2 de Amazon. El ajuste de escala automático en Amazon Web Services se realiza a través de un navegador web o la herramienta de línea de comandos. En mayo de 2016, el ajuste de escala automático también se ofreció en AWS ECS Service.

El proveedor de video bajo demanda Netflix documentó su uso del autoescalado con Amazon Web Services para satisfacer sus necesidades de consumidores altamente variables. Descubrieron que la ampliación agresiva y la reducción retardada y cautelosa sirvieron mejor a sus objetivos de tiempo de actividad y capacidad de respuesta.

En un artículo para TechCrunch , Zev Laderman, cofundador y director ejecutivo de Newvem, un servicio que ayuda a optimizar la infraestructura de la nube de AWS, recomendó que las nuevas empresas utilicen el ajuste de escala automático para mantener bajos los costos de Amazon Web Services.

Varias guías de mejores prácticas para el uso de AWS sugieren el uso de su función de ajuste de escala automático incluso en los casos en que la carga no es variable. Esto se debe a que el ajuste de escala automático ofrece otras dos ventajas: el reemplazo automático de las instancias que se vuelven insalubres por cualquier motivo (como falla de hardware, falla de red o error de aplicación) y reemplazo automático de instancias puntuales que se interrumpen por razones de precio o capacidad, lo que hace es más factible utilizar instancias puntuales con fines de producción. Las mejores prácticas internas de Netflix requieren que cada instancia esté en un grupo de autoescalado, y su mono de conformidad termina cualquier instancia que no esté en un grupo de autoescalado para hacer cumplir esta mejor práctica.

Windows Azure de Microsoft

El 27 de junio de 2013, Microsoft anunció que estaba agregando soporte de autoescalado a su plataforma de computación en la nube Windows Azure . La documentación de la función está disponible en Microsoft Developer Network .

Oracle Cloud

Oracle Cloud Platform permite que las instancias de servidor escalen automáticamente un clúster hacia adentro o hacia afuera mediante la definición de una regla de escalado automático. Estas reglas se basan en el uso de la CPU y / o la memoria y determinan cuándo agregar o eliminar nodos.

Google Cloud Platform

El 17 de noviembre de 2014, Google Compute Engine anunció una versión beta pública de su función de ajuste de escala automático para su uso en aplicaciones de Google Cloud Platform . En marzo de 2015, la herramienta de ajuste de escala automático todavía se encuentra en versión Beta.

Facebook

En una publicación de blog en agosto de 2014, un ingeniero de Facebook reveló que la empresa había comenzado a utilizar el autoescalado para reducir sus costos de energía. La publicación del blog informó una disminución del 27% en el uso de energía durante las horas de poco tráfico (alrededor de la medianoche) y una disminución del 10-15% en el uso de energía durante el ciclo típico de 24 horas.

Escalador automático de pod horizontal de Kubernetes

El escalador automático de pods horizontal de Kubernetes escala automáticamente la cantidad de pods en un controlador de replicación , implementación o conjunto de réplicas en función de la utilización de CPU observada (o, con compatibilidad beta, en algunas otras métricas proporcionadas por la aplicación )

Enfoques alternativos de decisión de autoescalado

El ajuste de escala automático de forma predeterminada utiliza un enfoque de decisión reactiva para lidiar con el escalado del tráfico: el escalado solo ocurre en respuesta a cambios en las métricas en tiempo real. En algunos casos, particularmente cuando los cambios ocurren muy rápidamente, este enfoque reactivo para escalar es insuficiente. A continuación se describen otros dos tipos de enfoques de decisión de autoescalado.

Enfoque de ajuste de escala automático programado

Este es un enfoque del ajuste de escala automático en el que se realizan cambios en el tamaño mínimo, el tamaño máximo o la capacidad deseada del grupo de ajuste de escala automático en momentos específicos del día. El escalado programado es útil, por ejemplo, si hay un aumento o disminución de la carga de tráfico conocida en momentos específicos del día, pero el cambio es demasiado repentino para que el escalado automático basado en el enfoque reactivo responda lo suficientemente rápido. Los grupos de escalado automático de AWS admiten el escalado programado.

Autoescalado predictivo

Este enfoque del ajuste de escala automático utiliza análisis predictivos . La idea es combinar las tendencias de uso recientes con los datos de uso históricos, así como otros tipos de datos para predecir el uso en el 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, dio mejores resultados que el enfoque de autoescalado reactivo de Amazon. En particular, fue mejor para:

  • Identificar grandes picos de demanda en un futuro cercano y preparar la capacidad con un poco de anticipación.
  • Manejo de interrupciones a gran escala, como fallas de zonas y regiones de disponibilidad completas
  • Manejo de patrones de tráfico variables, proporcionando más flexibilidad en la tasa de escalamiento hacia afuera o hacia adentro según el nivel típico y la tasa de cambio en la demanda en varios 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 escalado automático.

Ver también

Referencias