Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à cette recommandation de liste de contrôle d’efficacité des performances d’Azure Well-Architected Framework :
| PE :10 | Optimiser les tâches opérationnelles. Surveillez et réduisez les effets du cycle de vie du développement logiciel et d’autres opérations de routine sur les performances de la charge de travail. Ces opérations incluent l'analyse de virus, les rotations de secrets, les sauvegardes, les ré-indexages de bases de données et les déploiements. |
|---|
Ce guide décrit les recommandations relatives à l’optimisation des tâches opérationnelles. L’optimisation des tâches opérationnelles est le processus de réduction des effets des tâches que vous effectuez dans le cadre des opérations de charge de travail courantes. Les activités opérationnelles utilisent les mêmes ressources de calcul que la charge de travail elle-même. Ne pas prendre en compte les effets des tâches opérationnelles peut faire en sorte que la charge de travail ne parvienne pas à atteindre ses objectifs de performance. Elle peut également affecter négativement les performances de la charge de travail pour vos clients.
Définitions
| Terme | Définition |
|---|---|
| Déploiement bleu-vert | Stratégie de déploiement qui utilise deux environnements identiques et contrôle la direction du trafic vers de nouveaux déploiements (déploiements verts). |
| Reconstruction d’index de base de données | Activité de maintenance qui supprime et recrée un index. |
| Réorganisation des index de base de données | Activité de maintenance qui optimise l’index de base de données actuel. |
| Schéma de base de données | Structure générale d’une base de données et de ses relations avec d’autres données. |
| Emplacement de déploiement | Fonctionnalité d’Azure App Service qui vous permet de déployer des applications actives avec leurs propres noms d’hôte. |
| Mises à niveau sur place | Processus de mise à niveau d’un composant ou d’une application sans le remplacer ou le migrer vers un nouvel environnement. |
| Infrastructure en tant que code (IaC) | Modèle descriptif permettant de définir et de déployer l’infrastructure, notamment les réseaux, les machines virtuelles, les équilibreurs de charge et les topologies de connexion. |
Vous devez prendre des mesures pour réduire les effets du cycle de vie du développement logiciel et d’autres opérations de routine sur les performances de la charge de travail. L’objectif est de s’assurer que les opérations de routine, telles que les analyses antivirus, les rotations de secrets, les sauvegardes, l’optimisation des index (réorganisation ou reconstruction) et les déploiements, ne dégradent pas considérablement les performances de la charge de travail.
Prendre en compte les tâches opérationnelles
Il est important de prendre en compte les tâches opérationnelles lorsque vous définissez des cibles de performances. En incorporant des tâches courantes, régulières et ad hoc dans des cibles de performances, vous pouvez vous assurer que la charge de travail fonctionne efficacement. Pour tenir compte des tâches opérationnelles dans les cibles de performances, voici quelques points clés à prendre en compte :
Identifiez les tâches opérationnelles. Identifiez et incluez les tâches opérationnelles pertinentes dans les cibles de performances. Des exemples de tâches courantes peuvent inclure l’analyse antivirus, la réorganisation des index de base de données, la reconstruction d’index de base de données, les sauvegardes de disque ou de base de données, les rotations de certificats, la mise à jour corrective d’un système d’exploitation, la rotation des mots de passe, la rotation des clés API, les tests d’intrusion et les révisions d’audit en production.
Évaluez les cibles de performances. Évaluez les cibles de performances actuelles et ajustez-les pour tenir compte des tâches opérationnelles spécifiques à la charge de travail. Cela garantit que les objectifs de performances s’alignent sur les exigences opérationnelles de la charge de travail.
Optimiser les déploiements
L’optimisation des déploiements fait référence à l’affinement du processus de libération des ressources et du code pour garantir des performances transparentes et des interruptions minimales. Il implique la planification, la distribution efficace des ressources et des tests approfondis de l’infrastructure en tant que code (IaC) et du code d’application avant qu’ils ne soient introduits dans un environnement actif. Les insuffisances de déploiement peuvent entraîner une réduction de la vitesse et de l’efficacité d’une charge de travail, des contraintes de ressources potentielles et une expérience utilisateur compromise dans le paramètre opérationnel. Pour optimiser les déploiements, tenez compte de ces stratégies :
Évaluer les temps d’arrêt acceptables. Si le temps d’arrêt est acceptable, vous pouvez implémenter des stratégies de déploiement qui hiérarchisent la vitesse et l’efficacité. Toutefois, il est important d’évaluer soigneusement l’effet du temps d’arrêt sur les exigences de l’entreprise avant de prendre cette décision. En revanche, si le temps d’arrêt n’est pas acceptable, vous devez implémenter des stratégies de déploiement qui garantissent la disponibilité continue de la charge de travail. Envisagez d’utiliser des techniques telles que les déploiements bleu-vert ou les déploiements canary, où vous déployez progressivement de nouvelles versions de la charge de travail pendant que vous surveillez les problèmes. Ces stratégies permettent de réduire l’effet du temps d’arrêt et de garantir une expérience utilisateur transparente.
Déployer selon le nombre actuel d'instances. Vous devez également éviter les déploiements qui provoquent des opérations de mise à l’échelle immédiates. Vous ne devez pas déployer de ressources dans un système actif avec un nombre d’instances si faible qu’il force le système à effectuer immédiatement une opération de mise à l’échelle. Par exemple, votre modèle d’infrastructure en tant que code (IaC) peut ne pas correspondre au nombre d’instances dont vous avez besoin au moment du déploiement. Il peut avoir un nombre d’instances de deux, même si l’environnement déployé actuel exécute huit instances. Le déploiement supprimerait six instances et affecterait négativement les performances.
Utilisez une stratégie de déploiement bleu-vert. Les déploiements peuvent entraîner des interruptions de service et des temps d’arrêt. Pour atténuer ces problèmes, sélectionnez une stratégie de déploiement qui réduit l’impact sur les performances, comme un déploiement bleu-vert. Ces approches permettent des transitions transparentes entre les environnements et réduisent le risque d’interruptions de service. Lorsque vous utilisez l’approche de déploiement bleu-vert, vous avez deux environnements distincts : les environnements bleu et vert. Si des problèmes ou une dégradation des performances sont détectés dans l’environnement vert, vous pouvez facilement revenir à l’environnement bleu stable. Cette stratégie vous aide à garantir un temps d’arrêt minimal et vous permet de maintenir un niveau élevé de performances pour votre charge de travail. Pour effectuer un déploiement à l’aide de l’approche bleu-vert, procédez comme suit :
Déployez le nouvel environnement. Configurez le nouvel environnement (vert) en même temps que l’environnement existant (bleu) avec la version mise à jour de votre application.
Validez le nouvel environnement. Les déploiements peuvent introduire une latence et augmenter les temps de réponse. Envisagez d’utiliser des instances de préversion avant le basculement. Le préchauffage implique de préparer le nouvel environnement en simulant un trafic et une charge de travail semblables à ceux de la production pour s'assurer que l'environnement est prêt à gérer la charge attendue. Il permet de réduire les effets sur la latence et les temps de réponse. Testez et validez soigneusement le nouvel environnement pour vous assurer qu’il fonctionne correctement et répond aux attentes en matière de performances. Le test permet de réchauffer les caches, d’établir des connexions de base de données et de s’assurer que l’environnement est prêt à gérer la charge attendue.
Déplacez progressivement le trafic. Une fois que le nouvel environnement est prédéfinisé et validé, déplacez progressivement le trafic de production de l’ancien environnement (bleu) vers le nouvel environnement (vert). Initialement, dirigez un petit pourcentage de trafic vers l’environnement vert et augmentez-le progressivement après avoir vérifié sa stabilité et l’intégrité attendue de l’application. Vous pouvez utiliser un équilibreur de charge global ou un mécanisme de gestion du trafic. Le déplacement contrôlé du trafic vous permet d’identifier les problèmes de performances au début et de prendre des mesures correctives avant de passer entièrement la charge de travail à la nouvelle environnement.
Surveillez et optimisez. Les déploiements peuvent utiliser des ressources informatiques partagées. Surveillez en permanence les performances et l’intégrité du nouvel environnement après avoir déplacé le trafic. Effectuez toutes les optimisations ou ajustements nécessaires pour garantir les performances et l’expérience utilisateur souhaitées.
Supprimez l’ancien environnement. Une fois que vous avez correctement transféré tout le trafic vers l’environnement vert, supprimez l’environnement bleu des connexions existantes. Cette étape permet d’optimiser le coût de maintenance de l’ancien environnement et de s’assurer que de nouveaux environnements sont exempts de dérive de configuration.
Répétez le processus. Pour les déploiements futurs, inversez les rôles des environnements bleus et verts. Déployez des modifications dans le nouvel environnement bleu, validez-les, orchestrez la transition du trafic et désactivez l’ancien environnement vert.
Utilisez plusieurs builds. Différents types de builds peuvent vous aider à optimiser les temps de génération et à garantir la qualité des déploiements. Par exemple, vous pouvez avoir des builds d’intégration continue (CI) qui se déclenchent avec chaque validation de code. Vous pouvez avoir des builds nocturnes qui exécutent régulièrement des tests automatisés, et des builds utilisés pour le déploiement en production. Chaque type de build doit avoir un objectif spécifique, comme l’intégration continue, les tests automatisés ou le déploiement de production. Les tests et la validation de la charge de travail avant le déploiement permettent d’identifier et de résoudre les problèmes ou bogues au début du processus de développement.
Prenez en compte les indicateurs de fonctionnalité. Les indicateurs de fonctionnalité sont utilisés dans le développement logiciel pour contrôler la visibilité et le comportement de certaines fonctionnalités d’une application. En utilisant des indicateurs de fonctionnalité, les développeurs peuvent activer ou désactiver des fonctionnalités spécifiques sans avoir à redéployer l’application. Les indicateurs de fonctionnalité fonctionnent en introduisant une logique conditionnelle dans le code qui détermine si une fonctionnalité doit être activée ou désactivée. Cette logique peut être basée sur différents facteurs, tels que les rôles d’utilisateur, les préférences utilisateur ou des conditions spécifiques définies par l’équipe de développement. En utilisant des indicateurs de fonctionnalités, les développeurs peuvent progressivement déployer de nouvelles fonctionnalités sur un sous-ensemble d’utilisateurs ou activer des fonctionnalités pour des groupes spécifiques à des fins de test (test canary).
Optimiser les mises à niveau
Une mise à niveau sur place est une mise à niveau vers une ressource ou une application existante. Les mises à niveau sur place peuvent ralentir ou interrompre temporairement une charge de travail. Il est important de s’assurer que les mises à niveau sont compatibles avec la charge de travail. Avant d’appliquer une mise à niveau, nous vous recommandons de le tester dans un environnement distinct pour identifier les problèmes potentiels. Fournissez un plan de restauration en cas de problème lors du processus de mise à niveau. Il est essentiel d’effectuer une sauvegarde complète des données critiques et des configurations avant d’appliquer la mise à niveau. Surveillez étroitement le système mis à niveau après la mise à niveau pour vous assurer que tout fonctionne comme prévu. La sauvegarde vous permet de restaurer à un bon état si vous en avez besoin. Vous devez hiérarchiser la planification de la mise à niveau pendant les heures creuses pour réduire l’effet sur les performances des utilisateurs et des charges de travail. Informez les utilisateurs à l’avance de la mise à niveau planifiée, y compris le temps d’arrêt attendu et les actions nécessaires qu’ils doivent entreprendre.
Compromis : attendre pour effectuer des activités d'exploitation pendant les heures creuses peut affecter l'efficacité opérationnelle. Il peut être moins pratique d'avoir le personnel avec l'ensemble de compétences approprié pendant les heures creuses.
Optimiser les outils
Les outils essentiels pour la surveillance de l’intégrité des fichiers, l’analyse antivirus, la détection des intrusions et d’autres tâches opérationnelles peuvent affecter les performances de la charge de travail. Ils consomment des ressources de calcul et peuvent ajouter une latence et une surcharge de performances. Vous devez tester et comprendre les effets que vos outils ont sur les performances de la charge de travail. En fonction des résultats des tests, vous devez ajuster les configurations des outils, ajuster la fréquence d’analyse et réallouer les ressources de calcul. Pour l’analyse antivirus, vous pouvez créer une liste d’exclusions pertinente pour réduire la durée des analyses.
Optimiser les opérations de base de données
L’optimisation des opérations de base de données fait référence au processus d’affinement et de réglage des tâches de base de données pour garantir une efficacité maximale et une utilisation minimale des ressources. Ces opérations incluent des tâches telles que les sauvegardes, les modifications de schéma, le réglage des performances et la surveillance. Les opérations de base de données efficaces entraînent des réponses plus rapides aux requêtes, une surcharge système réduite et une expérience utilisateur plus fluide globale.
Les modifications de schéma impliquent la modification de la structure d’une base de données, comme l’ajout ou la modification de tables, de colonnes ou d’index. Ces modifications peuvent nécessiter un traitement supplémentaire et une utilisation des ressources pendant le processus de déploiement, ce qui peut affecter les performances globales de la charge de travail. Les modifications de schéma peuvent perturber les performances des requêtes actives, des index ou des transactions ou entraîner l’indisponibilité des données.
Pour réduire ces effets, vous devez planifier et tester les modifications de schéma dans un environnement hors production. Vous pouvez utiliser différentes techniques de déploiement pour implémenter des mises à jour de schéma. Vous devez également utiliser les outils de modification de schéma disponibles pour optimiser le processus. L’archivage des données et le partitionnement peuvent contribuer à réduire les effets des modifications de schéma.
Optimiser les sauvegardes
Les sauvegardes consomment des ressources de charge de travail telles que la puissance de traitement, la bande passante réseau et les E/S de disque. Vous devez tester et sélectionner une stratégie de sauvegarde qui réduit ces effets. Vous devez effectuer des sauvegardes pendant les heures creuses lorsque vous pouvez. Votre stratégie doit inclure des sauvegardes incrémentielles au lieu de sauvegardes complètes à chaque fois. Les instantanés peuvent être moins gourmands en ressources que les sauvegardes. Vous devez envisager des fonctionnalités intégrées de sauvegarde et de restauration de plateforme plutôt que de créer une solution personnalisée. Vous devez tester ces options et utiliser une combinaison qui offre les meilleures performances pour votre charge de travail.
Optimiser la surveillance et le débogage
La journalisation, la télémétrie, l’instrumentation et la capture et la collecte de suivi distribués excessives ou mal implémentées peuvent affecter les performances. De même, les fonctionnalités pratiques telles que le débogage à distance peuvent également affecter les performances. Vous devez mesurer et connaître leurs effets de performance sur l’environnement. Vous ne souhaitez pas que ces processus dégradent les performances. Vous devez configurer ou désactiver tous les processus dont les effets de performances l’emportent sur leurs avantages.
Facilitation Azure
Comptabilité des tâches opérationnelles : Azure DevOps est un ensemble d’outils et de services de développement qui permettent aux équipes de planifier, de développer, de tester et de fournir efficacement des logiciels. Il inclut des fonctionnalités telles que le contrôle de version, l’intégration et la livraison continues, la gestion des projets, etc.
Azure fournit une intégration de service à service qui réduit les effets de nombreuses tâches opérationnelles. Par exemple, les services qui s’intègrent à Azure Key Vault prennent souvent en charge la rotation transparente des certificats ou la rotation des secrets qui réduisent les effets sur les performances.
Optimisation des déploiements : App Service fournit des emplacements de déploiement. Vous pouvez utiliser des emplacements de déploiement pour déployer du code dans un environnement hors production. Vous pouvez échanger le contenu de l’application et les éléments de configuration entre deux emplacements de déploiement. Par exemple, vous pouvez basculer le contenu de l’application d’un emplacement hors production vers l’emplacement de production.
Azure Front Door et Azure Traffic Manager vous permettent d’implémenter une stratégie de déploiement bleu-vert. Certains services de calcul Azure prennent également en charge des stratégies de déploiement avancées comme les déploiements bleu-vert. Vous pouvez combiner ces services avec votre stratégie de redirection de trafic ou de réchauffement d’instance pour atténuer les effets sur les performances lors du déploiement.
Optimisation des opérations de base de données : Azure SQL Database effectue automatiquement des sauvegardes complètes, des sauvegardes différentielles et des sauvegardes de journal des transactions. Azure Cosmos DB effectue automatiquement des sauvegardes de vos données à intervalles réguliers. Les sauvegardes automatiques sont effectuées sans affecter les performances ou la disponibilité des opérations de base de données. Azure Cosmos DB stocke les sauvegardes dans un service de stockage distinct.
Optimisation des sauvegardes : certains services de données Azure prennent en charge un impact faibleto-no sur les performances pour la récupération et l’indexation à un point dans le temps. Sauvegarde Azure est une solution de sauvegarde cloud fiable et évolutive qui vous permet de protéger vos données et applications. Il fournit des fonctionnalités telles que les sauvegardes incrémentielles, la compression et le chiffrement pour réduire les effets sur les performances pendant les opérations de sauvegarde. Azure Site Recovery vous aide à protéger vos applications en les répliquant vers un emplacement secondaire. Il fournit des fonctionnalités de réplication continue et de basculement automatisé pour réduire les temps d’arrêt et les performances au cours des opérations de sauvegarde et de récupération d’urgence.
Gestion de la continuité d’activité et de la reprise d’activité : vous pouvez également utiliser Azure Business Continuity Center pour simplifier la gestion des sauvegardes et des récupérations d’urgence avec une interface web unifiée pour configurer des sauvegardes, définir des stratégies de protection, surveiller les opérations et examiner les configurations dans différents environnements.
Liens connexes
- Emplacements de déploiement
- Stratégie de déploiement bleu-vert
- Base de données SQL Azure
- Azure Cosmos DB
Liste de contrôle Efficacité des performances
Reportez-vous à l’ensemble complet de recommandations.