Compartir a través de


Creación de contenedores y bases de datos de Azure Cosmos DB con rendimiento de escalabilidad automática

SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table

En Azure Cosmos DB, puede configurar el rendimiento aprovisionado estándar (manual) o de escalado automático en las bases de datos y los contenedores. El rendimiento aprovisionado de escalado automático de Azure Cosmos DB permite escalar el rendimiento (RU/s) de la base de datos o el contenedor de forma automática e instantánea. El rendimiento se escala en función del uso, sin afectar a la disponibilidad, la latencia o el rendimiento de la carga de trabajo.

El rendimiento aprovisionado con escalabilidad automática es adecuado para cargas de trabajo críticas que tienen patrones de tráfico variables o imprevisibles y requieren SLA para el alto rendimiento y la escala. Se recomienda el escalado automático dinámico para escalar el rendimiento (RU/s) de las cargas de trabajo de forma independiente en función del uso, en cada región y por nivel de partición. En este artículo se describen las ventajas y los casos de uso del rendimiento aprovisionado con escalabilidad automática.

Ventajas del escalado automático

Las bases de datos y los contenedores de Azure Cosmos DB que se han configurado con rendimiento aprovisionado con escalabilidad automática tienen las ventajas siguientes:

  • Simple: La escalabilidad automática elimina la complejidad de la administración de RU/s con scripting personalizado y del escalado manual de la capacidad.

  • Escalable: Las bases de datos y los contenedores escalan automáticamente el rendimiento aprovisionado según sea necesario. No hay ninguna interrupción en las conexiones de cliente ni en las aplicaciones y no afectan a los SLA de Azure Cosmos DB.

  • Rentable: La escalabilidad automática ayuda a optimizar el uso de RU/s y el costo por uso mediante la reducción vertical cuando no está en uso. Solo paga por los recursos que necesitan las cargas de trabajo por hora. De todas las horas de un mes, si establece el valor de RU/s (Tmax) y usa toda la cantidad durante el 66 % de las horas o menos, ahorrará con el escalado automático. Además del escalado dinámico, agregar una región secundaria para alta disponibilidad es más rentable, ya que cada región y partición se escalan de forma independiente en función del uso real. Para obtener más información, consulte el artículo de procedimientos para elegir entre el rendimiento aprovisionado estándar (manual) y el de escalabilidad automática.

  • Alta disponibilidad: Las bases de datos y los contenedores que usan la escalabilidad automática usan el mismo back-end de Azure Cosmos DB distribuido globalmente, tolerante a errores y de alta disponibilidad para garantizar la durabilidad de los datos y la alta disponibilidad.

Casos de uso de la escalabilidad automática

Los casos de uso de la escalabilidad automática incluyen:

  • Cargas de trabajo impredecibles o variables: cuando las cargas de trabajo tienen picos variables o imprevisibles en su uso, la escalabilidad automática ayuda a escalar y reducir verticalmente en función del uso. Entre los ejemplos se incluyen sitios web minoristas que tienen diferentes patrones de tráfico en función de la estacionalidad, cargas de trabajo de IOT que tienen picos en varias ocasiones durante el día, aplicaciones de línea de negocio que tienen su uso máximo varias veces al mes o al año y muchos más. Con la escalabilidad automática, ya no es necesario aprovisionar manualmente para los casos de capacidad máxima o media.

  • Aplicaciones nuevas: Si va a desarrollar una nueva aplicación y no está seguro del rendimiento (RU/s) que necesita, la escalabilidad automática le ayuda a empezar a trabajar. Puede empezar con un punto de entrada de escalabilidad automática de 100 a 1000 RU/s, supervisar el uso y determinar las RU/s correctas a lo largo del tiempo.

  • Aplicaciones usadas con poca frecuencia: si tiene una aplicación que solo se usa durante unas horas varias veces al día, la semana o el mes —como un sitio web, un blog o una aplicación de bajo volumen—, la escalabilidad automática ajusta la capacidad para administrar el pico de uso y la reduce verticalmente cuando finaliza.

  • Cargas de trabajo de desarrollo y pruebas: si usted o su equipo usan bases de datos y contenedores de Azure Cosmos DB durante las horas de trabajo, pero no las necesitan por las noches o los fines de semana, la escalabilidad automática ayuda a ahorrar costos al reducirse verticalmente al mínimo cuando no hay uso.

  • Cargas de trabajo o consultas de producción programadas: si tiene una serie de solicitudes, operaciones o consultas programadas que desea ejecutar durante períodos de inactividad, puede hacerlo fácilmente con la escalabilidad automática. Cuando necesite ejecutar la carga de trabajo, el rendimiento se escala automáticamente al valor necesario y se reduce verticalmente después.

La creación de una solución personalizada para estos problemas no solo requiere una cantidad enorme de tiempo, sino que también presenta complejidad en la configuración y el código de la aplicación. La escalabilidad automática permite los escenarios anteriores de forma integrada y elimina la necesidad de un escalado personalizado o manual de la capacidad.

Cómo funciona el rendimiento aprovisionado de escalabilidad automática

Al configurar contenedores y bases de datos con escalabilidad automática, se especifica el rendimiento máximo Tmax requerido. Azure Cosmos DB escala el rendimiento T en intervalos de 0.1*Tmax <= T <= Tmax. Por ejemplo, si establece el rendimiento máximo en 20 000 RU/s, el rendimiento se escala entre 2000 y 20 000 RU/s. Dado que el escalado es automático e instantáneo, puede consumir en cualquier momento hasta el valor de Tmax aprovisionado sin ningún retraso.

Cada hora, se le facturará el mayor rendimiento T al que se escaló el sistema en dicha hora. Cuando se habilita el escalado dinámico, el escalado se basa en el uso de RU/s en cada partición física y región. A medida que cada partición y región se escalan de forma independiente, esto puede dar lugar a un ahorro de costos para cargas de trabajo no uniformes, ya que se evitan los escalados verticales innecesarios.

El punto de entrada para el rendimiento máximo de la escalabilidad automática, Tmax, comienza en 1000 RU/s, que se escalan entre 100 y 1000 RU/s. Puede establecer Tmax en incrementos de 1 000 RU/s y cambiar el valor en cualquier momento.

Habilitación de la escalabilidad automática en recursos existentes

Use Azure Portal, la CLI o PowerShell para habilitar la escalabilidad automática en una base de datos o un contenedor existente. Puede cambiar entre la escalabilidad automática y el rendimiento aprovisionado estándar (manual) en cualquier momento. Para obtener más información, consulte esta documentación.

Límites de rendimiento y almacenamiento para Escalabilidad automática

Para cualquier valor de Tmax, la base de datos o el contenedor pueden almacenar un total de 0.1 * Tmax GB. Una vez alcanzada esta cantidad de almacenamiento, el número máximo de RU/s se incrementará automáticamente en función del nuevo valor del almacenamiento, sin afectar a la aplicación.

Por ejemplo, si comienza con un máximo de 50 000 RU/s (que se escalan entre 5000 y 50 000 RU/s), puede almacenar hasta 5000 GB de datos. Si supera los 5000 GB; por ejemplo, el almacenamiento ahora es de 6000 GB, las nuevas RU/s máximas se convierten en 60 000 RU/s (escala entre 6000 y 60 000 RU/s).

Si usa el rendimiento de nivel de base de datos con escalabilidad automática, puede hacer que los primeros 25 contenedores compartan un número máximo de 1000 RU/s de escalabilidad automática (que se escalan entre 100 y 1000 RU/s), siempre que no supere los 100 GB de almacenamiento. Para obtener más información, consulte esta documentación.

Comparación: contenedores configurados con rendimiento manual frente a la escalabilidad automática

Para más información, consulte esta documentación sobre cómo elegir entre el rendimiento estándar (manual) y la escalabilidad automática.

Contenedores con rendimiento estándar (manual) Contenedores con rendimiento de escalabilidad automática
Rendimiento aprovisionado (RU/s) Aprovisionada manualmente. Escalado automático e instantáneo en función de los patrones de uso de la carga de trabajo.
Limitación de velocidad de las solicitudes o las operaciones (429) Puede ocurrir si el consumo supera la capacidad aprovisionada. No ocurre si consume RU/s dentro del intervalo de rendimiento de escalabilidad automática que se configuró.
Planificación de capacidad Debe realizar un planeamiento de la capacidad y establecer el rendimiento exacto que necesita. El sistema se encarga automáticamente del planeamiento y la administración de la capacidad.
Precios Se paga por las RU/s aprovisionadas manualmente, con la tarifa de RU/s estándar (manual) por hora. Se paga por hora por el número mayor de RU/s a las que se ha escalado verticalmente el sistema en dicha hora.

En el caso de las cuentas de una sola región de escritura, se paga por las RU/s utilizadas en una hora, con la tarifa de RU/s por hora de la escalabilidad automática.

En el caso de las cuentas con varias regiones de escritura, no se aplica ningún cargo adicional por Escalabilidad automática. Se paga por el rendimiento usado por hora con la misma tarifa de RU/s por hora de escritura en varias regiones.

Adecuado para los tipos de carga de trabajo Cargas de trabajo predecibles y estables Cargas de trabajo impredecibles y variables

Migración del rendimiento aprovisionado estándar al escalado automático

Los usuarios que quieran migrar un gran número de recursos del rendimiento aprovisionado estándar al escalado automático pueden usar un script de la CLI de Azure que migre todos los recursos de rendimiento de una suscripción de Azure al escalado automático. Para obtener más información, consulte Convertir a escalado automático.

Pasos siguientes