Consideración de los procedimientos recomendados para el desarrollo de aplicaciones

Completado

En esta unidad, explorará algunos procedimientos recomendados para aplicar al desarrollar aplicaciones con un servidor flexible de Azure Database for MySQL que pueda ayudar a garantizar un rendimiento, resistencia y seguridad mejores. Los procedimientos recomendados son los siguientes:

  • Colocando recursos.
  • Implementar la agrupación de conexiones
  • Elija el tamaño adecuado del contenedor de la aplicación.
  • Implementar el aislamiento de red y la conectividad SSL
  • Implementar la lógica de reintento para administrar errores transitorios
  • Elija el tamaño correcto de proceso y de almacenamiento para la base de datos.

Estos procedimientos recomendados entran en juego en varios puntos durante el proceso de desarrollo de aplicaciones con un servidor flexible de Azure Database for MySQL, como se muestra en el siguiente diagrama.

Diagrama que muestra seis procedimientos recomendados clave que se deben seguir para el desarrollo de aplicaciones.

Nota:

Esta lista de procedimientos recomendados no es exhaustiva. Asegúrese de consultar la documentación de Azure Database for MySQL para obtener guías detalladas sobre la implementación de procedimientos recomendados relacionados con las redes, la seguridad, la supervisión, la optimización del rendimiento, la continuidad empresarial y recuperación ante desastres, etc.

Colocar recursos

Al implementar la aplicación en Azure, asegúrese de que todas las dependencias de recursos estén hospedadas en la misma región. La propagación de instancias de recursos entre regiones o zonas de disponibilidad puede crear latencia de red, lo que puede afectar al rendimiento general de la aplicación.

Implementación de la agrupación de conexiones

La administración de conexiones de base de datos dentro de una aplicación puede afectar significativamente al rendimiento general de la aplicación. Para mejorar el rendimiento y la resistencia de las aplicaciones, considere la posibilidad de implementar la agrupación de conexiones a fin de conectarse a un servidor flexible de MySQL. Un agrupador de conexiones (como ProxySQL) puede reducir el número de conexiones inactivas y reutilizar las conexiones existentes.

Sugerencia

Para optimizar el rendimiento en las rutas de acceso al código principales, debe reducir el número de veces que se establecen las conexiones y el tiempo para establecerlas.

Elección del tamaño adecuado del contenedor de la aplicación

Dado que seleccionar el tamaño adecuado para el contenedor de la aplicación es fundamental, asegúrese de que la aplicación tiene suficientes recursos de proceso y memoria para controlar las cargas esperadas. Puede usar herramientas como JMeter para ayudar con las pruebas de carga, lo que puede ayudarle a ajustar el tamaño correcto de los recursos en función de los resultados.

Implementación del aislamiento de red y la conectividad SSL

Servidor flexible de Azure Database for MySQL con integración con red virtual (el método de conectividad de acceso privado) ofrece seguridad y aislamiento de red. Puede usar la integración de red virtual para bloquear el acceso del servidor solo a la infraestructura de red virtual (VNet). Los puntos de conexión privados mejoran esta seguridad al permitirle conectarse al servidor flexible de forma segura a través de una red privada, evitando la exposición a la red pública de Internet. Puede proteger los recursos de la aplicación y de la base de datos en una sola red virtual o en distintas, en la misma región o en diferentes (y conectadas sin problemas con el emparejamiento de red virtual).

También se recomienda proteger los datos en tránsito asegurándose de que la aplicación se conecta a un servidor flexible de MySQL mediante Capa de sockets seguros (SSL).

Implementación de la lógica de reintento para administrar errores transitorios

Dado que es más probable que los entornos en la nube encuentren errores transitorios, como interrupciones de conectividad de red o tiempos de espera de servicio, debe asegurarse de que las aplicaciones implementen lógica para tratar estos problemas, normalmente reintentando solicitudes después de un retraso.

Es recomendable esperar cinco segundos antes de su primer reintento. A continuación, con cada reintento posterior, aumente el tiempo de espera gradualmente, hasta 60 segundos. Después de un número fijo de reintentos, la aplicación puede considerar el error de la operación y notificarle para que pueda investigar el error persistente.

Elección del tamaño correcto de proceso y almacenamiento para la base de datos

Es importante analizar la carga de trabajo y establecer el tamaño de las instancias de servidor flexible de MySQL correctamente para lograr un equilibrio aceptable entre el rendimiento y el costo de la aplicación.

Proceso

Puede crear un servidor flexible de MySQL en uno de los tres niveles de proceso: Ampliable, De uso general y Crítico para la empresa. Como punto de partida para elegir el nivel de proceso, tenga en cuenta los detalles de la tabla siguiente.

Nivel de proceso Carga de trabajo objetivo
Flexible Lo mejor para las cargas de trabajo que no necesitan la CPU completa continuamente. Rentable para aplicaciones web más pequeñas y cargas de trabajo de desarrollo.
Uso general Mejor para la mayoría de las cargas de trabajo de empresa que requieren un equilibrio entre proceso y memoria con rendimiento de E/S escalable. Por ejemplo, los servidores que hospedan aplicaciones web y móviles, y otras aplicaciones empresariales.
Crítico para la empresa Mejor para las cargas de trabajo de base de datos de alto rendimiento que requieren rendimiento en memoria para un procesamiento de transacciones más rápido y una mayor simultaneidad. Por ejemplo, servidores para procesar datos en tiempo real y aplicaciones de análisis y transacciones de alto rendimiento.

Aunque también puede cambiar el tamaño de los servidores flexibles de MySQL después de la creación, solo puede escalar o reducir verticalmente entre los niveles De uso general o Crítico para la empresa.

Storage

En términos de almacenamiento, puede escalar verticalmente cuando se acerca a los límites de capacidad de almacenamiento. También puede habilitar la característica de crecimiento automático del almacenamiento para que el servicio escale automáticamente el almacenamiento cuando se acerque a los límites del almacenamiento.

Para tomar decisiones fundamentadas sobre el proceso y el almacenamiento de forma oportuna, supervise las métricas clave de Azure Monitor, como el porcentaje de CPU del host, el porcentaje de memoria del host, el porcentaje de almacenamiento, el porcentaje de E/S, las conexiones activas, etc. constantemente o configure alertas para notificarle cuando la solución se acerque a los límites de la implementación.

Ajuste de IOPS para obtener un rendimiento óptimo

Una mejora significativa disponible en el servidor flexible de Azure Database for MySQL es la característica IOPS (operaciones de entrada y salida por segundo) de escalabilidad automática, que complementa la característica de IOPS aprovisionada previamente existente. Esta sección explora cómo se pueden usar las opciones de IOPS aprovisionadas previamente e IOPS de escalabilidad automática para optimizar el rendimiento de la base de datos en función de los distintos requisitos de la carga de trabajo.

IOPS aprovisionadas previamente

Puede asignar un número específico de IOPS a la instancia de base de datos mediante IOPS aprovisionadas previamente. Esta característica es fundamental para las cargas de trabajo que requieren un rendimiento coherente y predecible. Al establecer un límite de IOPS, puede asegurarse de que la base de datos pueda controlar un número establecido de solicitudes por segundo, manteniendo así un rendimiento estable y confiable. También tiene la flexibilidad de ajustar el número de IOPS aprovisionadas a medida que cambia la carga de trabajo, lo que permite una escalabilidad y un control preciso sobre el rendimiento de la base de datos.

IOPS de escalado automático

El escalado automático de IOPS ofrece escalado dinámico del rendimiento, una característica esencial para administrar eficazmente las cargas de trabajo fluctuantes. Con esta característica habilitada, el servidor de bases de datos ajusta automáticamente las IOPS en función de la demanda en tiempo real sin necesidad de aprovisionamiento previo. Tener esta flexibilidad es especialmente beneficioso para las aplicaciones críticas de nivel 1 que podrían experimentar necesidades de rendimiento variables.

Entre las principales ventajas del uso de la funcionalidad de IOPS de escalabilidad automática se incluyen las siguientes:

  • Escalado dinámico: La característica de IOPS de escalabilidad automática ajusta automáticamente los límites de IOPS en función de la demanda real de la carga de trabajo. Este ajuste dinámico ayuda a garantizar que la base de datos funcione de forma coherente en niveles óptimos de rendimiento sin intervención manual.

  • Control de picos de carga de trabajo: Esta característica permite que la base de datos controle sin problemas los aumentos repentinos de carga, garantizando que el rendimiento de la aplicación siga siendo coherente durante los períodos máximos. Esta funcionalidad es fundamental para mantener la disponibilidad del servicio y la satisfacción del usuario.

  • Rentabilidad: A diferencia de las IOPS aprovisionadas previamente, donde se paga por un límite especificado independientemente del uso real, las IOPS de escalabilidad automática garantiza que solo paga por las operaciones de E/S que realmente se usan. Esto puede dar lugar a un ahorro significativo de costos, especialmente para las bases de datos con necesidades de E/S variables.

  • Administración simplificada: Al reducir la necesidad de escalado manual y planeamiento de la capacidad, las IOPS de escalabilidad automática liberan recursos administrativos, lo que permite al equipo centrarse en iniciativas más estratégicas en lugar de mantenimiento rutinario.