Problema: Nos gustaría escalar automáticamente nuestra base de datos de Azure SQL a un nivel de cómputo superior durante los fines de semana durante aproximadamente 5 horas. Sé que podemos hacerlo manualmente desde el portal de Azure. ¿Existe alguna forma de automatizar este proceso cada semana?
Solución: Hay ciertos escenarios en nuestras aplicaciones cuando hay una mayor carga en los sistemas y el rendimiento puede verse afectado durante ese tiempo. En Azure, podemos escalar fácilmente la base de datos de Azure SQL a un nivel de cómputo superior para cumplir con los requisitos de rendimiento. Podemos escalar la base de datos de Azure SQL en cualquier momento utilizando el portal. Puede consultar estos consejos (consejo1, consejo2) para obtener más información sobre los diferentes niveles de cómputo disponibles.
Actualización del nivel de cómputo de la base de datos de Azure SQL utilizando el portal
Utilizando la opción de configuración en la sección de ajustes de la base de datos de Azure SQL en el portal de Azure, puede actualizar o degradar el nivel de cómputo para la base de datos de Azure SQL. Aquí, puede ver que la base de datos de Azure SQL está en el nivel “Básico”. Si desea cambiarlo a “Estándar”, simplemente haga clic en la opción y seleccione los tamaños requeridos y haga clic en “Aplicar”. La escalabilidad hacia arriba o hacia abajo suele ser rápida. Sin embargo, según Microsoft, se realizan los siguientes pasos:
- Se crea una nueva instancia de cómputo para la base de datos
- Las conexiones se enrutan a la nueva instancia
Principalmente durante el proceso de cambio, hay una breve interrupción. Esto puede llevar más tiempo según la actividad en la base de datos. Una buena cosa a tener en cuenta es que nunca habrá pérdida de datos.
Beneficios de escalar la base de datos de Azure SQL según los requisitos comerciales
Puede estimar el costo de los diferentes niveles de cómputo utilizando el enlace de precios de Azure. Por ejemplo, si está ejecutando la base de datos en el nivel de cómputo P15, le costará USD $23.8087/hora. Durante todo el mes, serán USD $17,380. Si tiene que ejecutar la base de datos durante todo el año en P15, le costará una fortuna. Pero en cambio, puede escalar la base de datos a un nivel de cómputo superior solo según sus requisitos. Otra buena cosa es que solo se le cobrará por hora por el tiempo que la base de datos se haya ejecutado en el nivel de cómputo superior. Por ejemplo, si la base de datos estuvo en P15 durante 4 horas y 25 minutos, se le cobrará por 5 horas. No importa si ejecutó la base de datos durante 10 minutos o 15 minutos en el nivel de cómputo superior, se redondeará a la hora.
Realización de estos pasos utilizando Azure Logic Apps
Azure Logic Apps es un servicio en la nube que nos ayuda a automatizar, orquestar tareas, etc. Puede buscar “Logic Apps” en el portal y comenzar con el proceso de diseño de la aplicación. Una vez hecho esto, haga clic en la opción “Agregar” para iniciar el proceso de creación de la aplicación.
Implementación de Logic App
Una vez que haga clic en “Crear”, comenzará el proceso de implementación y finalizará en unos segundos. Verá esta pantalla. Haga clic en “Ir al recurso” y verá esta pantalla. Haga clic en “Diseñador de Logic App”. Verá esta pantalla donde puede realizar algunas selecciones.
Recurrencia
Desde la pantalla, seleccione un desencadenador común “Recurrencia” ya que necesitamos que este proceso se active todos los fines de semana. Una vez hecho esto, verá una pantalla con opciones para que seleccione los parámetros requeridos. Para esta demostración, como queremos que la escalabilidad automática ocurra los fines de semana, haremos esta selección. Después de revisar, haga clic en “Nuevo paso”.
Ejecutar una consulta SQL
En el siguiente paso, realizaremos la actualización del nivel de cómputo. Seleccione la opción que se muestra para “Ejecutar una consulta SQL (V2)”. Una vez que haga clic en “Ejecutar una consulta SQL (V2)”, verá esta opción donde debe ingresar los detalles requeridos para el nombre del servidor y el nombre de la base de datos. Utilizaremos la siguiente consulta SQL para actualizar el nivel de cómputo.
ALTER DATABASE [mo] MODIFY (SERVICE_OBJECTIVE = ‘S0’);
Retraso
Una vez que la base de datos de Azure SQL se haya escalado, nos gustaría dejarla en el nivel de cómputo superior durante aproximadamente 5 horas. Entonces, llamaremos a una acción para establecer un temporizador de retraso. Busque la acción “Retraso” como se muestra. En el paso “Retraso”, puede establecer el contador en horas como se muestra. Una vez hecho esto, haga clic en “Nuevo paso”.
Escalado hacia abajo
En el siguiente paso, puede reducir el nivel de cómputo de la base de datos de Azure SQL de nuevo al nivel original. En nuestro caso, es el nivel “Básico”. Puede utilizar el mismo paso que se realizó para la escalabilidad hacia arriba. Utilice el siguiente script para reducir el nivel de cómputo.
ALTER DATABASE [mo] MODIFY (SERVICE_OBJECTIVE = ‘Basic’);
Una vez hecho esto, guarde los flujos de trabajo que creó en el diseñador de la aplicación de lógica. Una vez que se guarda el flujo de trabajo, puede iniciar una ejecución para validar que el diseño funcione como se esperaba. Puede reducir el tiempo de “Retraso” a algo como 10 minutos en lugar de las 5 horas originales.
Pruebas
Para verificar el nivel de cómputo actual, puede utilizar esta consulta:
SELECT Edition = DATABASEPROPERTYEX(‘mo’, ‘Edition’), serviceobjective = DATABASEPROPERTYEX(‘mo’, ‘serviceobjective’)
Puede ver que el nivel de cómputo es básico. Una vez que ejecute los flujos de trabajo, utilice la consulta anterior para validar que el nivel de cómputo realmente está cambiando. Durante la fase de ejecución, las tareas del flujo de trabajo progresarán como se muestra. Puede ver la marca de verificación en las tareas del flujo de trabajo. Para la acción “Retraso”, puede ver un temporizador. Además, una vez que verifique el estado del nivel de cómputo, verá que ha cambiado a “Standard S0”.
Verificación del estado de todas las tareas
Puede verificar el estado de los trabajos desencadenados haciendo clic en la sección de resumen de las aplicaciones de lógica. Puede ver que el desencadenador se ejecutó correctamente y se completó en 5.01 minutos. Puede hacer clic en “Estado” para ver detalles adicionales. Aquí, puede ver que cada uno de los pasos se completó correctamente. Puede verificar el nivel de cómputo en la base de datos para validar que la base de datos ha vuelto al nivel de cómputo básico original.
Con esto, puede ver lo fácil que es escalar hacia arriba y hacia abajo una base de datos de Azure SQL utilizando Azure Logic Apps.