Los grupos elásticos ayudan a administrar y escalar varias bases de datos de Azure SQL Database

SE APLICA A: Azure SQL Database

Los grupos elásticos de Azure SQL Database son una solución simple y rentable para la administración y escalado de varias bases de datos que tienen distintas e imprevisibles demandas de uso. En un grupo elástico, las bases de datos se encuentran en un único servidor y comparten un número establecido de recursos a un precio establecido. Los grupos elásticos en Azure SQL Database permiten a los desarrolladores de SaaS optimizar el rendimiento del precio para un grupo de bases de datos dentro de un presupuesto prescrito a la vez que se ofrece elasticidad de rendimiento para cada base de datos.

¿Qué son los grupos elásticos de SQL?

Los desarrolladores de SaaS crean aplicaciones en los niveles superiores de datos de la escala que constan de varias bases de datos. Un patrón de aplicación común es aprovisionar una base de datos única para cada cliente. Sin embargo, cada cliente suele tener patrones de uso variables e impredecibles y resulta difícil predecir los requisitos de recursos de cada usuario de bases de datos individuales. Tradicionalmente, había dos opciones:

  • Aprovisionar recursos en exceso basándose en el uso máximo y pagando de más, o
  • Aprovisionar por debajo de lo necesario para ahorrar costos a expensas del rendimiento y satisfacción del cliente durante las horas de máxima actividad.

Los grupos elásticos solucionan este problema y se aseguran de que las bases de datos obtengan los recursos de rendimiento que necesitan y en el momento en que los necesitan. Proporcionan un mecanismo de asignación de recursos simples dentro de un presupuesto predecible. Para más información acerca de los modelos de diseño de las aplicaciones SaaS que usan grupos elásticos, consulte Modelos de diseño para aplicaciones SaaS multiinquilino con Azure SQL Database.

Importante

No se realizan cargos por base de datos para los grupos elásticos. Se le cobra por cada hora que un grupo exista en la eDTU o los núcleos virtuales más altos, con independencia del uso o de si el grupo estuvo activo durante menos de una hora.

Los grupos elásticos permiten al desarrollador adquirir recursos para un grupo compartido entre varias bases de datos con el fin de hacer frente a periodos impredecibles de uso por bases de datos individuales. Puede configurar los recursos para el grupo según el modelo de compra basado en DTU o el modelo de compra basado en núcleo virtual. El requisito de recursos para un grupo viene determinado por el uso agregado de sus bases de datos. La cantidad de recursos disponibles para el grupo se determina mediante el presupuesto del desarrollador. El desarrollador simplemente agrega bases de datos al grupo, opcionalmente establece los recursos mínimos y máximos para las bases de datos (DTU mínimas o máximas o núcleos virtuales mínimos y máximos, según la elección del modelo de recursos) y, a continuación, establece los recursos del grupo en función de su presupuesto. Un desarrollador puede usar grupos para aumentar de forma eficiente su servicio a partir de un método Lean Startup hasta un negocio con madurez a una escala cada vez mayor.

Dentro del grupo, a las bases de datos individuales se les proporciona la flexibilidad de escalarse automáticamente dentro de unos parámetros establecidos. Con cargas elevadas, una base de datos puede consumir más recursos para satisfacer la demanda. Las bases de datos con cargas ligeras consumen menos y las bases de datos sin carga no consumen ningún recurso. El aprovisionamiento de recursos para el grupo entero en lugar de para bases de datos únicas simplifica las tareas de administración. Además, cuenta con un presupuesto predecible para el grupo. Se pueden agregar recursos adicionales a un grupo existente con un tiempo de inactividad mínimo. De manera similar, si ya no se necesitan recursos adicionales, se pueden quitar de un grupo existente en cualquier momento dado. Puede agregar o quitar las bases de datos del grupo. Si una base de datos infrautiliza recursos de forma predecible, sáquela del grupo.

Nota:

Al mover las bases de datos dentro o fuera de un grupo elástico, no hay tiempo de inactividad, aparte de un breve período de tiempo (del orden de segundos) al final de la operación cuando se descartan las conexiones de base de datos.

¿Cuándo se debe usar un grupo elástico de SQL Database?

Los grupos son apropiados para un amplio número de bases de datos con patrones de utilización específicos. Para una base de datos determinada, este patrón está caracterizado por una utilización media baja con picos de utilización relativamente poco frecuentes. Por el contrario, no se deben colocar en el mismo grupo elástico varias bases de datos con un uso persistente de medio a alto.

Cuantas más bases de datos pueda agregar a un grupo, mayores ahorros habrá. Según su patrón de uso de la aplicación, es posible ver los ahorros con tan solo dos bases de datos S3.

En las secciones siguientes, obtendrá ayuda para evaluar si resulta beneficioso que la colección específica de bases de datos se incluya en un grupo. Los ejemplos usan grupos Estándar, pero también se aplican los mismos principios a grupos Básico y Premium.

Evaluación de los patrones de utilización de base de datos

La siguiente ilustración muestra un ejemplo de una base de datos que está mucho tiempo inactiva, pero que también tiene picos periódicos de actividad. Se trata de un patrón de uso que es apropiado para un grupo:

a single database suitable for a pool

El gráfico muestra el uso de DTU durante un período de una hora de 12:00 a 1:00, donde cada punto de datos tiene una granularidad de 1 minuto. A las 12:10, DB1 llega a las 90 DTU, pero su uso medio general es inferior a cinco DTU. Se requiere un tamaño de proceso S3 para ejecutar esta carga de trabajo en una base de datos única, pero esto deja a la mayoría de los recursos sin usar durante los períodos de baja actividad.

Con un grupo, estas DTU sin usar pueden compartirse entre varias bases de datos, lo que permite reducir el número total de DTU necesarias y el costo general.

Según el ejemplo anterior, suponga que existen bases de datos adicionales con patrones de utilización similares como DB1. En las siguientes dos ilustraciones, la utilización de 4 bases de datos y 20 bases de datos se estratifican en el mismo gráfico para mostrar la naturaleza de no solapamiento de su utilización con el paso del tiempo mediante el modelo de compra basado en DTU.

four databases with a utilization pattern suitable for a pool

twenty databases with a utilization pattern suitable for a pool

En la ilustración anterior, el uso total de DTU en las 20 bases de datos está representado por la línea negra. Esto muestra que la utilización de DTU agregada nunca supera las 100 DTU e indica que las 20 bases de datos pueden compartir 100 eDTU en este período. El resultado es una reducción en un factor de 20 en las DTU y una reducción del precio 13 veces menor si se compara con la colocación de cada base de datos en los tamaños de proceso S3 para bases de datos únicas.

Este ejemplo es ideal por las siguientes razones:

  • Existen grandes diferencias entre la utilización de picos y la utilización media por base de datos.
  • La utilización de picos para cada base de dato se produce en puntos de tiempo distintos.
  • Las eDTU se comparten entre varias bases de datos.

En el modelo de compra basado en DTU, el precio de un grupo es una función de las eDTU del grupo. Aunque el precio unitario de una eDTU para un grupo es 1,5 veces mayor que el de una DTU para una base de datos única, las eDTU de grupo pueden compartirse entre muchas bases de datos, por lo que el número total de eDTU que se necesitan es menor. Estas distinciones de precio y uso compartido de la eDTU son la base de la posibilidad de ahorro en el precio que pueden proporcionar los grupos.

En el modelo de compra de núcleo virtual, el precio por unidad de núcleo virtual para los grupos elásticos es el mismo que el de la unidad de núcleo virtual para las bases de datos únicas.

¿Cómo se elige el tamaño de grupo correcto?

El mejor tamaño para un grupo depende de los recursos agregados necesarios para todas las bases de datos del grupo. Esto implica determinar lo siguiente:

  • Número máximo de recursos de proceso que todas las bases de datos del grupo utilizan. Los recursos de proceso se indexan mediante eDTU o núcleos virtuales, en función del modelo de compra elegido.
  • Número máximo de bytes de almacenamiento utilizado por todas las bases de datos en el grupo.

Para obtener información sobre los niveles de servicio y los límites de recursos de cada modelo de compra, consulte los artículos acerca del modelo de compra basado en DTU o del modelo de compra basado en núcleo virtual.

Los siguientes pasos pueden ayudarle a calcular si un grupo es más rentable que las bases de datos únicas:

  1. Calcule las eDTU o los núcleos virtuales necesarios para el grupo de la siguiente forma:
    • Para el modelo de compra basado en DTU:
      • MAX(<< × promedio de uso de DTU por base de datos, << × Uso de picos de DTU por base de datos)
    • Para el modelo de compra basado en núcleo virtual:
      • MAX(<< × promedio de uso de núcleos virtuales por base de datos, << × Uso de picos de núcleo virtual por base de datos)
  2. Calcule el espacio de almacenamiento total necesario para el grupo agregando el tamaño de datos necesarios para todas las bases de datos del grupo. Para el modelo de compra basado en DTU, determine después el tamaño del grupo de eDTU que proporciona esta cantidad de almacenamiento.
  3. El modelo de compra basado en DTU toma las estimaciones de eDTU más grandes del paso 1 y el paso 2. El modelo de compra basado en núcleo virtual toma la estimación de núcleos virtuales del paso 1.
  4. Consulte la página de precios de SQL Database y busque el tamaño de grupo más pequeño que sea mayor que la estimación del paso 3.
  5. Compare el precio del grupo del paso 4 con el precio que supone usar los tamaños de proceso adecuados para bases de datos únicas.

Importante

Si el número de bases de datos de un grupo se aproxima al máximo admitido, asegúrese de consultar Administración de recursos en grupos elásticos densos.

Propiedades por base de datos

Opcionalmente, puede establecer propiedades "por base de datos" para modificar patrones de consumo de recursos en los grupos elásticos. Para obtener más información, consulte la documentación sobre los límites de recursos para los grupos elásticos de DTU y núcleos virtuales.

Empleo de otras características de SQL Database con grupos elásticos

Trabajos elásticos y grupos elásticos

Con un grupo, las tareas de administración se simplifican al ejecutarse los scripts en trabajos elásticos. Un trabajo elástico elimina la mayoría de las tediosas tareas asociadas con un gran número de bases de datos.

Para más información sobre otras herramientas de bases de datos para trabajar con varias bases de datos, consulte Escalado horizontal con Azure SQL Database.

Opciones de continuidad de negocio para bases de datos de un grupo elástico

Las bases de datos agrupadas suelen ser compatibles con las mismas características de continuidad empresarial que encontrará en las bases de datos únicas.

Creación de un nuevo grupo elástico de SQL Database mediante Azure Portal

Hay dos maneras de crear un grupo elástico en Azure Portal.

  1. Vaya a Azure Portal para crear un grupo elástico. Busque y seleccione Azure SQL.

  2. Seleccione + Agregar para abrir la página Select SQL deployment option (Seleccionar la opción de implementación de SQL). Para ver más información acerca de los grupos elásticos, seleccione Mostrar detalles en el icono Bases de datos.

  3. En el icono Bases de datos, seleccione Grupo elástico en la lista desplegable Tipo de recurso y, después, seleccione Crear:

    Create an elastic pool

  4. O bien, puede crear un grupo elástico; para ello, vaya a un servidor existente y haga clic en + Nuevo grupo para crear un grupo directamente en ese servidor.

Nota:

Puede crear varios grupos a un servidor, pero no puede agregar bases de datos de servidores diferentes al mismo grupo.

El nivel de servicio del grupo determina las características disponibles para las bases de datos elásticas del grupo y la cantidad máxima de recursos disponibles para cada base de datos. Para más información, consulte los límites de recursos para los grupos elásticos en el modelo de DTU. Para conocer los límites de recursos basados en núcleos virtuales, consulte Límites de recursos basados en núcleos virtuales para grupos elásticos.

Para configurar los recursos y fijar el precio del grupo, haga clic en Configurar grupo. A continuación, seleccione un nivel de servicio, agregue las bases de datos al grupo y configure los límites de recursos para el grupo y sus bases de datos.

Después de terminar de configurar el grupo, puede hacer clic en "Aplicar", asignar un nombre al grupo y hacer clic en "Aceptar" para crear el grupo.

Supervisión de un grupo elástico y sus bases de datos

En Azure Portal puede supervisar el uso de un grupo elástico y las bases de datos de ese grupo. También puede realizar un conjunto de cambios en el grupo elástico y enviar todos los cambios a la vez. Estos cambios incluyen agregar o quitar bases de datos, cambiar la configuración del grupo elástico o cambiar la configuración de la base de datos.

Puede utilizar las herramientas integradas de supervisión de rendimiento y de alertas en combinación con las clasificaciones del rendimiento. Además, SQL Database puede emitir métricas y registros de recurso para facilitar la supervisión.

Casos prácticos de clientes

  • SnelStart

    SnelStart usó grupos elásticos con Azure SQL Database para expandir rápidamente sus servicios de negocio a una velocidad de 1000 bases de datos de Azure SQL nuevas cada mes.

  • Umbraco

    Umbraco usa grupos elásticos con Azure SQL Database para aprovisionar y escalar rápidamente servicios para miles de inquilinos en la nube.

  • Daxko/CSI

    Daxko/CSI usa grupos elásticos con Azure SQL Database para acelerar su ciclo de desarrollo y mejorar sus servicios al cliente y el rendimiento.

Pasos siguientes