Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Sugerencia
Este contenido es un extracto del libro electrónico, Arquitectura de aplicaciones .NET nativas de nube para Azure, disponible en .NET Docs o como un PDF descargable gratuito que se puede leer sin conexión.
Hay dos maneras de escalar una aplicación: vertical o horizontal. El primero hace referencia a agregar capacidad a un único recurso, mientras que este último hace referencia a agregar más recursos para aumentar la capacidad.
La solución sencilla: ampliar
La actualización de un servidor host existente con mayor rendimiento de CPU y memoria, así como un mejor rendimiento de E/S de disco y E/S de red, se conoce como escalado vertical. El escalado vertical de una aplicación nativa de la nube implica elegir recursos más capaces del proveedor de nube. Por ejemplo, puede crear un nuevo grupo de nodos con máquinas virtuales más grandes en el clúster de Kubernetes. A continuación, migre los servicios contenedorizados al nuevo grupo.
Para escalar las aplicaciones sin servidor, elija el plan premium de Functions o los tamaños de instancia premium de un plan dedicado de servicio de aplicaciones.
Escalamiento de aplicaciones nativas en la nube
Las aplicaciones nativas de la nube suelen experimentar grandes fluctuaciones en la demanda y requieren escala en un momento dado. Favorecen el escalado horizontal. El escalado horizontal se realiza mediante la adición de máquinas adicionales (denominadas nodos) o instancias de aplicación a un clúster existente. En Kubernetes, puede escalar manualmente ajustando las opciones de configuración de la aplicación (por ejemplo, escalando un grupo de nodos) o mediante el escalado automático.
Los clústeres de AKS pueden escalar automáticamente de una de estas dos maneras:
En primer lugar, Horizontal Pod Autoscaler supervisa la demanda de recursos y escala automáticamente las réplicas de POD para satisfacer dicha demanda. Cuando aumenta el tráfico, se aprovisionan automáticamente réplicas adicionales para escalar horizontalmente los servicios. Del mismo modo, cuando la demanda disminuye, se quitan para ajustar los servicios. Defina la métrica en la que se va a escalar, por ejemplo, el uso de cpu. También puede especificar el número mínimo y máximo de réplicas que se van a ejecutar. AKS supervisa esa métrica y escala en consecuencia.
A continuación, la característica Escalador automático de clústeres de AKS permite escalar automáticamente los nodos de proceso en un clúster de Kubernetes para satisfacer la demanda. Con ella, puede agregar automáticamente nuevas máquinas virtuales al conjunto de escalado de máquinas virtuales de Azure subyacente siempre que se requiera más capacidad de proceso. También quita los nodos cuando ya no son necesarios.
En la figura 3-11 se muestra la relación entre estos dos servicios de escalado.
Figura 3-11. Escalado horizontal de un plan de App Service.
Trabajando juntos, garantizan un número óptimo de instancias de contenedor y nodos de cálculo para admitir la demanda fluctuante. El escalador automático horizontal de pods optimiza el número de pods necesarios. El escalador automático del clúster optimiza el número de nodos necesarios.
Escalado de las funciones de Azure
Azure Functions se escala horizontalmente de forma automática bajo demanda. Los recursos del servidor se asignan y quitan dinámicamente en función del número de eventos desencadenados. Solo se le cobra por los recursos de proceso consumidos cuando se ejecutan las funciones. La facturación se basa en el número de ejecuciones, el tiempo de ejecución y la memoria usadas.
Aunque el plan de consumo predeterminado proporciona una solución económica y escalable para la mayoría de las aplicaciones, la opción Premium permite a los desarrolladores flexibilidad para los requisitos personalizados de Azure Functions. La actualización al plan Premium proporciona control sobre los tamaños de instancia, las instancias previamente activadas (para evitar retrasos en el arranque en frío) y las máquinas virtuales dedicadas.