stringtranslate.com

Escalado automático

El escalado automático , también escrito como escalado automático o escalado automático , y a veces también llamado 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 una granja de servidores (normalmente medidos por la cantidad 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 puede aumentar o disminuir automáticamente en función de la cantidad de usuarios activos en el sitio. Dado que dichas métricas pueden cambiar drásticamente a lo largo del día y los servidores son un recurso limitado que cuesta dinero ejecutar incluso cuando están inactivos, a menudo existe un incentivo para ejecutar "solo los servidores suficientes" para soportar la carga actual y al mismo tiempo poder soportar picos repentinos y grandes en la actividad. El escalado 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 escalado automático está estrechamente relacionado con la idea del equilibrio de carga y se basa en ella . [1] [2]

Ventajas

El escalado automático ofrece las siguientes ventajas:

El escalado automático se diferencia 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 el potencial inconveniente de tener muy pocos o demasiados servidores para la carga de tráfico. Por ejemplo, si el tráfico suele ser menor a 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 evento noticioso viral). El escalado automático, por otro lado, puede manejar mejor los picos de tráfico inesperados. [3] [7]

Terminología

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

Práctica

Servicios web de Amazon (AWS)

Escalado automático
Escalado automático

Amazon Web Services lanzó el servicio Amazon Elastic Compute Cloud (EC2) en agosto de 2006, que permitía a los desarrolladores crear y finalizar instancias (máquinas) de manera programada. [11] [12] En el momento del lanzamiento inicial, AWS no ofrecía escalamiento automático, pero la capacidad de crear y finalizar instancias de manera programada les dio a los desarrolladores la flexibilidad de escribir su propio código para el escalamiento automático.

El software de escalado automático de terceros para AWS comenzó a aparecer alrededor de abril de 2008. Entre ellos se encontraban herramientas de Scalr [13] y RightScale. RightScale era utilizado por Animoto, que podía gestionar el tráfico de Facebook al adoptar el escalado automático. [14] [15]

El 18 de mayo de 2009, Amazon lanzó su propia función de escalado automático junto con Elastic Load Balancing , como parte de Amazon Elastic Compute Cloud . [16] El escalado automático es ahora un componente integral de la oferta EC2 de Amazon. [2] [17] [18] El escalado automático 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 escalado automático también se ofreció en AWS ECS Service. [20]

El proveedor de videos a pedido Netflix documentó el uso de escalamiento automático con Amazon Web Services para satisfacer las necesidades altamente variables de sus consumidores. Descubrieron que una ampliación agresiva y una reducción demorada y cautelosa servían mejor a 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 de la nube de AWS, recomendó que las empresas emergentes 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 utilizar su función de escalado automático incluso en casos en los que la carga no es variable. Esto se debe a que el escalado automático ofrece otras dos ventajas: el reemplazo automático de cualquier instancia que deje de funcionar por cualquier motivo (como una falla de hardware, una falla de red o un error de aplicación) y el reemplazo automático de instancias puntuales que se interrumpan por razones de precio o capacidad, lo que hace que sea más factible usar instancias puntuales para fines de producción. [6] [21] [22] Las mejores prácticas internas de Netflix requieren que cada instancia esté en un grupo de escalado automático, y su mono de conformidad finaliza cualquier instancia que no esté en un grupo de escalado automático para hacer cumplir esta mejor práctica. [23]

Windows Azure de Microsoft

El 27 de junio de 2013, Microsoft anunció que agregaría compatibilidad con escalamiento automático a su plataforma de computación en la nube Windows Azure . [24] [25] [26] La documentación para esta función está disponible en Microsoft Developer Network . [10] [27]

Nube de Oracle

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 escalamiento automático. [28] Estas reglas se basan en la utilización de CPU o memoria y determinan cuándo agregar o eliminar nodos.

Plataforma de Google Cloud

El 17 de noviembre de 2014, Google Compute Engine anunció una versión beta pública de su función de escalamiento automático para su uso en aplicaciones de Google Cloud Platform . [29] [30] [31] [32] A marzo de 2015, la herramienta de escalamiento automático todavía se encuentra en versión beta. [9]

Facebook

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 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 al 15 % en el uso 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 la cantidad de pods en un controlador de replicación, implementación o conjunto de réplicas en función del uso de CPU observado (o, con soporte beta, en algunas otras métricas proporcionadas por la aplicación) [34]

Enfoques alternativos de toma de decisiones de escalamiento automático

De manera predeterminada, el escalamiento automático utiliza un enfoque de decisión reactiva para abordar el escalamiento del tráfico: el escalamiento solo se produce en respuesta a cambios en tiempo real en las métricas. En algunos casos, en particular cuando los cambios se producen muy rápidamente, este enfoque reactivo al escalamiento es insuficiente. A continuación, se describen otros dos tipos de enfoques de decisión de escalamiento automático.

Enfoque de escalamiento automático programado

Este es un enfoque de escalado 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 escalado automático en momentos específicos del día. El escalado programado es útil, por ejemplo, si hay un aumento o una disminución conocidos de la carga de tráfico en momentos específicos del día, pero el cambio es demasiado repentino para que el escalado automático basado en un enfoque reactivo responda con la suficiente rapidez. Los grupos de escalado automático 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 tendencias de uso recientes con 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.

En el caso de 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 escalado automático reactivo de Amazon. En particular, era mejor para: [36] [33]

El 20 de noviembre de 2018, AWS anunció que el escalamiento predictivo estaría disponible como parte de su oferta de escalamiento automático. [37]

Véase también

Referencias

  1. ^ "Above the Clouds: A Berkeley View of Cloud Computing" (PDF) . Berkeley EECS. 10 de febrero de 2009. Consultado el 21 de marzo de 2015 .
  2. ^ ab "Escalado automático". Amazon Web Services . Consultado el 21 de marzo de 2015 .
  3. ^ abc Wu, Qiang (8 de agosto de 2014). "Hacer que la infraestructura de software de Facebook sea más eficiente energéticamente con Autoscale". Blog de código de Facebook . Consultado el 21 de marzo de 2015 .
  4. ^ ab Laderman, Zev (22 de abril de 2012). "Los 10 errores más grandes cometidos con Amazon Web Services". TechCrunch . Consultado el 21 de marzo de 2015 .
  5. ^ Park, Andrew; Denlinger, Darrell; Watson, Coburn (18 de septiembre de 2015). "Creación de su propio mercado spot de EC2". Netflix . Consultado el 16 de diciembre de 2016 .
  6. ^ ab Wittig, Michael (26 de diciembre de 2015). "5 errores de AWS que debes evitar". cloudonaut . Consultado el 16 de diciembre de 2016 .
  7. ^ ab Orzell, Greg; Becker, Justin (18 de enero de 2012). "Escalado automático en la nube de Amazon". Blog tecnológico de Netflix . Consultado el 21 de marzo de 2012 .
  8. ^ ab "¿Qué es el escalado automático?". Amazon Web Services . Consultado el 16 de diciembre de 2016 .
  9. ^ ab "Autoscaler". Google Cloud Platform . Consultado el 21 de marzo de 2015 .
  10. ^ ab "Guía de escalado automático". Microsoft Developer Network . 26 de agosto de 2015.
  11. ^ 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 .
  12. ^ Barr, Jeff (25 de agosto de 2006). «Amazon EC2 Beta». Blog de Amazon Web Services . Consultado el 31 de mayo de 2013 .
  13. ^ Work, Henry (3 de abril de 2008). "Scalr: The Auto-Scaling Open-Source Amazon EC2 Effort". TechCrunch . Consultado el 21 de marzo de 2015 .
  14. ^ Howlett, Dennis (25 de junio de 2008). "La gestión de la nube de RightScale se extiende a MySQL. RightScale, que se especializa en la gestión de computación en la nube para la plataforma Amazon Web Services, anunció hoy el soporte para MySQL Enterprise. El servicio, que se lanzará el 1 de julio, proporciona implementación, gestión y escalado automatizados, junto con el soporte de nivel premium de MySQL Enterprise para aplicaciones de bases de datos de gran tamaño". ZDNet . Consultado el 16 de diciembre de 2016 .
  15. ^ von Eicken, Thorsten (23 de abril de 2008). «Animoto's Facebook Scale-Up». Archivado desde el original el 20 de diciembre de 2016. Consultado el 16 de diciembre de 2016 .
  16. ^ Barr, Jeff (18 de mayo de 2009). "Nuevas funciones para Amazon EC2: Elastic Load Balancing, Auto Scaling y Amazon CloudWatch". Amazon Web Services . Consultado el 15 de junio de 2016 .
  17. ^ "¿Qué es el escalado automático?". TechTarget. Archivado desde el original el 29 de abril de 2019. Consultado el 21 de marzo de 2015 .
  18. ^ Barr, Jeff (30 de julio de 2014). "Actualización de escalado automático: 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 .
  19. ^ "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 .
  20. ^ "Escalado automático con Amazon ECS". 18 de mayo de 2016. Archivado desde el original el 25 de septiembre de 2019. Consultado el 12 de febrero de 2019 .
  21. ^ Adams, Rich (3 de febrero de 2014). "Consejos sobre AWS que me hubiera gustado conocer antes de empezar. Una colección de consejos aleatorios sobre Amazon Web Services (AWS) que me hubiera gustado que me hubieran dicho hace unos años, basados ​​en lo que he aprendido al crear e implementar varias aplicaciones en AWS" . Consultado el 16 de diciembre de 2016 .
  22. ^ "Cómo usar instancias spot de Amazon EC2". wikiHow . Consultado el 16 de diciembre de 2016 .
  23. ^ "El ejército simio de Netflix". Netflix . 19 de julio de 2011 . Consultado el 5 de diciembre de 2016 .
  24. ^ Lardinois, Frederic (27 de junio de 2013). "Microsoft agrega escalado automático a Windows Azure". TechCrunch . Consultado el 21 de marzo de 2015 .
  25. ^ "Microsoft agregará escalado automático y alertas a Windows Azure". ZDNet . 27 de junio de 2013 . Consultado el 21 de marzo de 2015 .
  26. ^ Butler, Brandon (7 de agosto de 2013). «Google y Microsoft intentan alcanzar a Amazon y añaden equilibrio de carga y escalado automático a sus nubes». Network World . Archivado desde el original el 18 de mayo de 2018. Consultado el 21 de marzo de 2015 .
  27. ^ "El bloque de aplicación de escalado automático". Microsoft Developer Network . Consultado el 21 de marzo de 2015 .
  28. ^ "Administración de servicios PaaS". Centro de ayuda de Oracle . Consultado el 16 de mayo de 2018 .
  29. ^ Balejko, Filip (17 de noviembre de 2014). "Escalado automático, bienvenido a Google Compute Engine". Blog de Google Cloud Platform . Consultado el 21 de marzo de 2015 .
  30. ^ Protalinski, Emil (17 de noviembre de 2014). "Google Compute Engine obtiene Autoscaler para ajustar los recursos de la aplicación en función del tráfico y las cargas de trabajo variables". VentureBeat . Consultado el 21 de marzo de 2015 .
  31. ^ Lardinois, Frederic (17 de noviembre de 2014). "Google incorpora el escalado automático a Compute Engine". TechCrunch . Consultado el 21 de marzo de 2015 .
  32. ^ Verge, Jason (17 de noviembre de 2014). "Google lanza la versión beta de escalado automático en Compute Engine". Data Center Knowledge . Consultado el 21 de marzo de 2015 .
  33. ^ ab "Autoscaling: How the Cloud Provides a Tremendous Boost" (Escalamiento automático: cómo la nube proporciona un gran impulso). Morpheus. 2 de noviembre de 2016. Consultado el 16 de diciembre de 2016 .
  34. ^ "Tutorial del escalador automático de pods horizontales" . Consultado el 21 de junio de 2018 .
  35. ^ "Escalamiento programado". Amazon Web Services . Consultado el 16 de diciembre de 2016 .
  36. ^ Jacobson, Daniel; Yuan, Danny; Joshi, Neeraj. "Scryer: el motor de escalamiento automático predictivo de Netflix". The Netflix Tech Blog . Netflix . Consultado el 28 de mayo de 2015 .
  37. ^ Barr, Jeff (20 de noviembre de 2018). «New – Predictive Scaling for EC2, Powered by Machine Learning» (Nuevo escalamiento predictivo para EC2, impulsado por aprendizaje automático). Amazon Web Services . Consultado el 23 de noviembre de 2018 .