Tenir compte des meilleures pratiques pour le développement d’applications

Effectué

Dans cette unité, vous explorez certaines bonnes pratiques de développement d’applications avec Azure Database pour MySQL – Serveur flexible, qui peuvent vous aider à améliorer le niveau de performance, la résilience et la sécurité. Voici quelques-unes des meilleures pratiques :

  • Colocalisation des ressources.
  • Implémentation du regroupement de connexions.
  • Choisissez la bonne taille de conteneur d’application.
  • Implémentation de l’isolement réseau et de la connectivité SSL.
  • Implémentation de la logique de nouvelle tentative pour gérer les erreurs temporaires.
  • Choix de la taille de calcul et de stockage appropriée pour la base de données.

Ces meilleures pratiques entrent en jeu à différents moments pendant le processus de développement d’applications avec Azure Database pour MySQL – Serveur flexible, comme illustré dans le diagramme suivant.

Diagramme montrant les six meilleures pratiques à suivre pour le développement d’une application.

Remarque

Cette liste de bonnes pratiques n’est pas exhaustive. Veillez à consulter la Documentation Azure Database pour MySQL pour avoir des guides détaillés sur l’implémentation de bonnes pratiques liées au réseau, à la sécurité, au monitoring, à l’optimisation des performances, à la continuité d’activité et reprise d’activité, etc.

Colocaliser des ressources

Lorsque vous déployez votre application sur Azure, assurez-vous que toutes les dépendances de vos ressources sont hébergées dans la même région. La répartition des instances de ressources dans des régions ou des zones de disponibilité peut entraîner une latence du réseau, ce qui risque d’affecter le niveau de performance global de votre application.

Implémenter le regroupement de connexions

La gestion des connexions aux bases de données au sein d’une application peut avoir un impact significatif sur le niveau de performance globale de l’application. Pour améliorer le niveau de performance et la résilience de l’application, envisagez d’implémenter le pooling de connexions pour vous connecter à un serveur flexible MySQL. Un utilitaire de regroupement de connexions (comme ProxySQL) peut réduire le nombre de connexions inactives et réutiliser les connexions existantes.

Conseil

Pour optimiser le niveau de performance, dans les chemins de code clés, réduisez le nombre de fois où les connexions sont établies et le temps nécessaire à l’établissement de ces connexions.

Choisir la bonne taille de conteneur d’application

Étant donné que la sélection de la taille appropriée pour votre conteneur d’application est essentielle, assurez-vous que l’application dispose de suffisamment de ressources de calcul et de mémoire pour gérer les charges attendues. Vous pouvez utiliser des outils tels que JMeter pour faciliter le test de charge, ce qui peut vous aider à dimensionner correctement vos ressources en fonction des résultats.

Implémenter l’isolement réseau et la connectivité SSL

Azure Database pour MySQL – Serveur flexible avec intégration VNet (la méthode de connectivité d’accès privé) offre une sécurité et une isolation du réseau. Vous pouvez utiliser l’intégration au réseau virtuel pour verrouiller l’accès au serveur uniquement à votre infrastructure de réseau virtuel. Les points de terminaison privés améliorent cette sécurité en vous permettant de vous connecter à votre serveur flexible en toute sécurité sur un réseau privé, ce qui évite l’exposition à l’Internet public. Vous pouvez sécuriser vos ressources d’application et de base de données dans un seul VNet ou différents VNet de la même région ou de régions différentes (et les connecter de manière fluide avec l’appairage de réseaux virtuels).

Il est également recommandé de sécuriser les données en transit en vérifiant que votre application se connecte à un serveur flexible MySQL avec le protocole SSL (Secure Sockets Layer).

Implémenter la logique de nouvelle tentative pour gérer les erreurs temporaires

Les environnements cloud étant plus susceptibles de rencontrer des défauts transitoires tels que des interruptions de connectivité réseau ou des dépassements de délai, vous devez vous assurer que vos applications mettent en œuvre une logique permettant de traiter ces problèmes, généralement en réessayant les requêtes après un certain temps.

Il est conseillé d’attendre cinq secondes avant la première tentative. Ensuite, avec chaque nouvelle tentative suivante, augmentez progressivement le temps d’attente, jusqu’à 60 secondes. Après un nombre fixe de tentatives, l’application peut considérer que l’opération a échoué et vous avertir afin que vous puissiez examiner plus avant l’erreur persistante.

Choisir la taille de calcul et de stockage appropriée pour votre base de données

Il est important d’analyser votre charge de travail et de dimensionner correctement vos instances de serveur flexible MySQL afin d’atteindre un équilibre acceptable entre la performance et le coût de l’application.

Compute

Vous pouvez créer un serveur flexible MySQL dans l’un des trois niveaux de calcul suivants : Burstable, usage général et critique pour l’entreprise. Comme point de départ pour choisir le niveau de calcul, tenez compte des détails du tableau suivant.

Niveau de calcul Charges de travail cibles
Expansible Idéal pour les charges de travail qui n’ont pas besoin de l’UC complète en permanence. Économique pour les charges de travail de développement et les applications web plus petites.
Usage général Meilleur pour la plupart des charges de travail professionnelles qui nécessitent une capacité de calcul et de mémoire équilibrée avec un débit d’E/S extensible. Il peut s’agir, par exemple, de serveurs hébergeant des applications web et mobiles et d’autres applications d’entreprise.
Critique pour l’entreprise Meilleur pour les charges de travail de base de données haute performance qui nécessitent des performances en mémoire suffisantes pour un traitement plus rapide des transactions et une meilleure simultanéité. Il s’agit, par exemple, de serveurs destinés au traitement de données en temps réel et à des applications transactionnelles ou analytiques haute performance.

Même si vous pouvez également redimensionner des serveurs flexibles MySQL après la création, vous pouvez uniquement effectuer un scale-up ou un scale-down entre les niveaux Usage général ou Critique pour l’entreprise.

Stockage

En matière de stockage, vous pouvez effectuer un scale-up quand vous approchez des limites de capacité de stockage. Vous pouvez également activer la fonctionnalité de croissance automatique du stockage pour que le service mette automatiquement à l’échelle le stockage quand il approche de ses limites.

Pour prendre des décisions éclairées sur le calcul et le stockage en temps opportun, monitorez en permanence les métriques Azure Monitor clés comme le pourcentage du processeur hôte, le pourcentage de mémoire hôte, le pourcentage de stockage, le pourcentage d’E/S, les connexions actives, etc., ou configurez des alertes pour vous avertir quand la solution approche des limites de votre déploiement.

Ajuster l’IOPS pour un niveau de performance optimal

Une amélioration significative disponible dans Azure Database pour MySQL – Serveur flexible est la fonctionnalité d’IOPS de mise à l’échelle automatique (opérations d’entrée/sortie par seconde), qui complète la fonctionnalité d’IOPS préapprovisionnée existante. Cette section explique comment utiliser des options d’E/S par seconde préapprovisionnée et d’E/S par seconde de mise à l’échelle automatique pour optimiser le niveau de performance de la base de données en fonction des exigences de charge de travail variables.

IOPS par seconde préconfigurées

Vous pouvez allouer un nombre spécifique d’IOPS à votre instance de base de données à l’aide d’IOPS préapprovisionnée. Cette fonctionnalité est essentielle pour les charges de travail qui nécessitent un niveau de performance cohérent et prévisible. En définissant une limite d’IOPS définie, vous pouvez vous assurer que votre base de données peut gérer un nombre défini de requêtes par seconde, ce qui permet de maintenir un niveau de performance stable et fiable. Vous avez également la possibilité d’ajuster le nombre d’E/S par seconde approvisionnés en tant que modifications de charge de travail, ce qui permet à la fois la scalabilité et le contrôle précis du niveau de performance de votre base de données.

Mise à l’échelle automatique des E/S par seconde

L’IOPS de mise à l’échelle automatique apporte une mise à l’échelle dynamique du niveau de performance, une fonctionnalité essentielle pour gérer efficacement les charges de travail fluctuantes. Avec cette fonctionnalité activée, le serveur de base de données ajuste automatiquement les IOPS en fonction de la demande en temps réel sans avoir besoin de préapprovisionnement. Cette flexibilité est particulièrement bénéfique pour les applications de niveau 1, stratégiques qui peuvent rencontrer des besoins de niveau de performance variable.

Les principaux avantages de l’utilisation des fonctionnalités d’IOPS de mise à l’échelle automatique sont les suivants :

  • Mise à l’échelle dynamique : La fonctionnalité de mise à l’échelle automatique des IOPS ajuste automatiquement les limites d’IOPS en fonction de la demande réelle de charge de travail. Cet ajustement dynamique permet de garantir que votre base de données fonctionne de manière cohérente à des niveaux de performances optimaux sans intervention manuelle.

  • Gérer les pics de charge de travail : Cette fonctionnalité permet à votre base de données de gérer en toute transparence les augmentations soudaines de charge, ce qui garantit que le niveau de performance des applications restent cohérentes pendant les périodes de pointe. Cette fonctionnalité est essentielle pour maintenir la disponibilité du service et la satisfaction des utilisateurs.

  • Efficacité économique : Contrairement aux E/S par seconde préapprovisionnés, où vous payez pour une limite spécifiée indépendamment de l’utilisation réelle, l’E/S par seconde de mise à l’échelle automatique garantit que vous payez uniquement les opérations d’E/S réellement utilisées. Cela peut entraîner des économies importantes, en particulier pour les bases de données ayant des besoins en E/S variables.

  • Gestion simplifiée : En réduisant le besoin de mise à l’échelle manuelle et de planification de la capacité, autoscale IOPS libère des ressources administratives, ce qui permet à votre équipe de se concentrer sur des initiatives plus stratégiques que sur la maintenance de routine.