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 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. El escalado automático de forma predeterminada escala las cargas de trabajo en función de la región y la partición más activas. En el caso de las cargas de trabajo no uniformes que tienen patrones de carga de trabajo diferentes entre regiones y particiones, este escalado puede provocar escalados verticales innecesarios. Escalado dinámico o escalado automático dinámico es una mejora para el escalado automático aprovisionado en todo lo que ayuda a escalar estas cargas de trabajo no uniformes de forma independiente en función del uso, en cada región y por nivel de partición. El escalado dinámico le permite ahorrar costos si a menudo experimenta particiones activas o tiene varias regiones.
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, semana o mes, como una aplicación de bajo volumen,web o sitio de blog. El escalado automático ajusta la capacidad para controlar el uso máximo y se reduce verticalmente cuando ha terminado.
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.
Casos de uso del escalado dinámico
Los casos de uso del escalado dinámico incluyen:
- Cargas de trabajo de base de datos que tienen una región primaria muy transitada y una región pasiva secundaria para la recuperación ante desastres.
- Con el escalado dinámico, lograr una alta disponibilidad con varias regiones es más rentable. La región secundaria se reduce verticalmente de forma independiente y automática mientras está inactiva. La región secundaria también se escala verticalmente de manera automática a medida que se activa y al controlar el tráfico de replicación de escritura desde la región primaria.
- Cargas de trabajo de base de datos de varias regiones.
- Estas cargas de trabajo observan a menudo una distribución desigual de las solicitudes entre las regiones debido al crecimiento natural del tráfico y a las caídas a lo largo del día. Por ejemplo, una base de datos podría estar activa durante las horas laborables en zonas horarias distribuidas globalmente.
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 sin formato, ya que se evitan escalas verticales innecesarias.
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.
Por ejemplo, si tenemos una colección con 1 000 RU/s y 2 particiones, cada partición puede ir hasta 500 RU/s. Durante una hora de actividad, el uso tendría el siguiente aspecto:
Region | Partition | Throughput | Uso | Notas |
---|---|---|---|---|
Escribir | P1 | <= 500 RU/s | 100 % | 500 RU/s que constan de 50 RU/s usadas para operaciones de escritura y 450 RU/s para operaciones de lectura. |
Escribir | P2 | <= 200 RU/s | 40% | 200 RU/s que constan de todas las operaciones de lectura. |
Lectura | P1 | <= 150 RU/s | 30 % | 150 RU/s que constan de 50 RU/s usadas para escrituras replicadas desde la región de escritura. Se usan 100 RU/s para las operaciones de lectura en esta región. |
Lectura | P2 | <= 50 RU/s | 10 % |
Sin escalado dinámico, todas las particiones se escalan uniformemente en función de la partición más activa. En este ejemplo, dado que la partición más activa tenía un uso del 100 %, todas las particiones de las regiones de escritura y lectura se escalan a 1000 RU/s, lo que hace que el total de RU/s se escale a 2000 RU/s.
Con el escalado dinámico, dado que cada partición y el rendimiento de cada región se escalan de forma independiente, el total de RU/s escalado para ser 900 RU/s, lo que refleja mejor el patrón de tráfico real y reduce los costos.
Habilitación del escalado automático 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.
Habilitación del escalado dinámico
El escalado dinámico está habilitado de manera predeterminada para todas las cuentas de Azure Cosmos DB creadas después del 25 de septiembre de 2024. Los clientes que deseen habilitar esta característica para las cuentas anteriores pueden hacerlo mediante programación a través de Azure PowerShell, la CLI, la API REST o desde el panel de características de Azure Portal, como se muestra:
Vaya a la cuenta de Azure Cosmos DB en Azure Portal.
Vaya a la página Características.
Busque y habilite la característica Escalado dinámico (escalado automático por región y por partición).
Importante
La característica se habilita a nivel de cuenta, por lo que esta funcionalidad se aplicará automáticamente a todos los contenedores de escalado automático y bases de datos de rendimiento compartido de la cuenta. La habilitación de esta característica no afecta a los recursos de la cuenta que usan el rendimiento manual. Los recursos manuales deberán cambiarse a escalado automático para aprovechar el escalado dinámico. La habilitación de esta característica no genera ningún tiempo de inactividad ni impacto en el rendimiento. Esta característica no está disponible para las cuentas sin servidor.
Supervisión Métricas
Puede usar las siguientes métricas para supervisar el escalado automático y el escalado dinámico:
Nombre de la métrica | Definición | Uso de la métrica |
---|---|---|
Rendimiento aprovisionado | Muestra las RU/s más altas agregadas a lo largo de la hora y representa el total de RU/s que se escalaron durante la hora. | Puede usar la métrica Provisioned Throughput para ver las RU/s que se le facturan en cada hora. Con el escalado automático, se le factura en función de la partición más activa para cada hora y la misma se aplica a todas las particiones y regiones. Con el escalado automático dinámica, se le facturan las RU/s más altas agregadas que se escalaron a cada hora en cada nivel de partición y región. |
Consumo de RU normalizado | Esta métrica representa la proporción de RU/s consumidas frente a las RU/s aprovisionadas en cada nivel de partición y región. | Use esta métrica para determinar si el rendimiento máximo de escalado automático está subaprovisionado o sobreaprovisionado. Si el valor de la métrica se encuentra al 100 % de manera constante y la aplicación ve la limitación de volumen (código de error 429), es posible que necesite más RU/s. En cambio, si el valor de esta métrica es bajo y no hay ninguna limitación de volumen, es posible que haya espacio para optimizar y reducir verticalmente las RU/s. Aprenda cómo interpretar y depurar errores de limitación de frecuencia de código 429. La métrica Normalized RU Consumption refleja las RU/s consumidas en la región secundaria debido al tráfico de replicación de escritura desde la principal, además del tráfico de lectura en la secundaria. |
RU de escalado automático | Muestra el rendimiento aprovisionado escalado dinámicamente en cada nivel de partición y región solo para las cuentas habilitadas para el escalado automático dinámico. | Use esta métrica para ver cómo las particiones de cada región se escalan de forma independiente en función de su uso. Use métricas de Azure Monitor - Autoscaled RU para analizar cómo se aplica el nuevo escalado automático entre particiones y regiones. Filtre por la cuenta de base de datos y el contenedor deseados y, a continuación, filtre o divida por la métrica Physical PartitionID. Esta métrica muestra todas las particiones en sus distintas regiones. |
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
- Revise las preguntas más frecuentes sobre Escalabilidad automática.
- Obtenga información acerca de cómo elegir entre el rendimiento manual y de escalabilidad automática.
- Aprenda a aprovisionar el rendimiento de escalabilidad automática en una base de datos o contenedor de Azure Cosmos DB.
- Más información sobre la creación de particiones en Azure Cosmos DB.
- ¿Intenta planear la capacidad de una migración a Azure Cosmos DB? Para ello, puede usar información sobre el clúster de bases de datos existente.
- Si lo único que sabe es el número de núcleos virtuales y servidores del clúster de bases de datos existente, consulte la información sobre el cálculo de unidades de solicitud mediante núcleos virtuales o CPU virtuales.
- Si conoce las tasas de solicitudes típicas de la carga de trabajo de la base de datos actual, obtenga información sobre el cálculo de unidades de solicitud mediante la herramienta de planeamiento de capacidad de Azure Cosmos DB.