Partager via


Recommandations pour l’optimisation des tâches opérationnelles

S’applique à cette recommandation de liste de vérification de l’efficacité des performances d’Azure Well-Architected Framework :

PE :10 Optimiser les tâches opérationnelles. Surveillez et réduisez au minimum 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 les analyses antivirus, les rotations de secrets, les sauvegardes, la réindexation des bases de données et les déploiements.

Ce guide décrit les recommandations pour optimiser les 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 de routage. Les activités d’opérations utilisent les mêmes ressources de calcul que la charge de travail elle-même. Si vous ne tenez pas compte des effets des tâches opérationnelles, la charge de travail peut ne pas atteindre ses objectifs de performances. Cela 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 les nouveaux déploiements (déploiements verts).
Reconstruction de l’index de base de données Activité de maintenance qui supprime et recrée un index.
Réorganisation de l’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 ses relations avec d’autres données.
Emplacement de déploiement Fonctionnalité de Azure App Service qui vous permet de déployer des applications actives avec leurs propres noms d’hôte.
Mises à niveau en place Processus de mise à niveau d’un composant ou d’une application sans le remplacer ni le migrer vers un nouvel environnement.
Infrastructure as code (IaC) Modèle descriptif pour la définition et le déploiement de l’infrastructure, y compris les réseaux, les machines virtuelles, les équilibreurs de charge et les topologies de connexion.

Stratégies de conception

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 d’index (réorganisation ou reconstruction) et les déploiements, ne dégradent pas considérablement les performances de la charge de travail.

Compte pour les tâches opérationnelles

Il est important de prendre en compte les tâches opérationnelles lorsque vous définissez des objectifs de performances. En incorporant des tâches de routine, régulières et ad hoc dans des cibles de performances, vous pouvez vous assurer que la charge de travail fonctionne efficacement. Pour prendre en compte les tâches opérationnelles dans les cibles de performances, voici quelques points clés à prendre en compte :

  • Identifier les tâches opérationnelles. Identifiez et incluez les tâches opérationnelles pertinentes dans les cibles de performances. Des exemples de tâches de routine peuvent inclure l’analyse antivirus, la réorganisation d’index de base de données, la reconstruction d’index de base de données, les sauvegardes de disques ou de bases 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 cadre opérationnel. Pour optimiser les déploiements, envisagez les stratégies suivantes :

Évaluez les temps d’arrêt acceptables. Si les temps d’arrêt sont acceptables, vous pouvez implémenter des stratégies de déploiement qui donnent la priorité à la vitesse et à l’efficacité. Toutefois, il est important d’évaluer soigneusement l’effet des temps d’arrêt sur les besoins de l’entreprise avant de prendre cette décision. En revanche, si les temps d’arrêt ne sont pas acceptables, 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 canari, 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 des temps d’arrêt et de garantir une expérience utilisateur transparente.

Déployer au nombre de instance actuel. Vous devez également éviter les déploiements qui provoquent des opérations de mise à l’échelle immédiates. Vous ne devez pas déployer des ressources dans un système actif dont le nombre de instance est 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 de instance 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 bleus et verts. 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 permet d’assurer un temps d’arrêt minimal et 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 de préchauffer des instances avant le basculement. La préparation consiste à préparer le nouvel environnement en simulant le trafic et la charge de travail de type 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 minutieusement le nouvel environnement pour vous assurer qu’il fonctionne correctement et répond aux attentes en matière de performances. Les tests permettent de préchauffer les caches, d’établir connexions aux bases de données et de s’assurer que l’environnement est prêt à gérer la charge attendue.

  • Déplacer progressivement le trafic. Une fois le nouvel environnement pré-optimisé et validé, déplacez progressivement le trafic de production de l’ancien environnement (bleu) vers le nouvel environnement (vert). Au départ, dirigez un petit pourcentage du 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 rapidement les problèmes de performances et de prendre des mesures correctives avant de transférer entièrement la charge de travail vers le nouvel environnement.

  • Surveiller et optimiser. Les déploiements peuvent utiliser des ressources informatiques partagées. Surveillez en continu les performances et l’intégrité du nouvel environnement après le déplacement du trafic. Effectuez les optimisations ou les 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 les 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 les modifications apportées au nouvel environnement bleu, validez-les, orchestrez la transition du trafic et désaffectez 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 à chaque validation de code. Vous pouvez avoir des builds nocturnes qui exécutent régulièrement des tests automatisés et publient des builds utilisées 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. Le test et la validation de la charge de travail avant le déploiement permettent d’identifier et de résoudre les problèmes ou les bogues au début du processus de développement.

Tenez compte des indicateurs de fonctionnalité. Les indicateurs de fonctionnalité sont utilisés dans le développement de logiciels pour contrôler la visibilité et le comportement de certaines fonctionnalités dans 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 de l’utilisateur ou des conditions spécifiques définies par l’équipe de développement. À l’aide d’indicateurs de fonctionnalités, les développeurs peuvent déployer progressivement 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 temporairement ralentir ou interrompre 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 la tester dans un environnement distinct pour identifier les problèmes potentiels. Fournissez un plan de restauration en cas de problème pendant le processus de mise à niveau. Il est essentiel d’effectuer une sauvegarde complète des données et configurations critiques 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 de la charge 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 prendre.

Compromis : l’attente d’effectuer des activités opérationnelles pendant les heures creuses peut affecter l’efficacité opérationnelle. Il peut être moins pratique de faire travailler le personnel ayant les compétences appropriées 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 de vos outils sur les performances de la charge de travail. En fonction des résultats des tests, vous devez affiner 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 appropriée 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. Des opérations de base de données efficaces entraînent des réponses plus rapides aux requêtes, une réduction de la surcharge système et une expérience utilisateur globalement plus fluide.

Les modifications de schéma impliquent la modification de la structure d’une base de données, par exemple 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, des index ou des transactions actives ou rendre les données indisponibles.

Pour réduire ces effets, vous devez planifier et tester les modifications de schéma dans un environnement de non-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 aider à 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 le 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 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 sur les performances 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 sur les performances l’emportent sur leurs avantages.

Animation 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, développer, tester et fournir des logiciels efficacement. Il inclut des fonctionnalités telles que le contrôle de version, l’intégration et la livraison continues, la gestion de projet, 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, ce qui réduit 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 de non-production. Vous pouvez échanger le contenu et les éléments de configuration de l’application entre deux emplacements de déploiement. Par exemple, vous pouvez basculer le contenu de l’application d’un emplacement de non-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 telles que les déploiements bleu-vert. Vous pouvez combiner ces services avec votre stratégie de changement de trafic ou de réchauffement instance pour atténuer les effets du déploiement sur les performances.

Optimisation des opérations de base de données : Azure SQL Base de données prend automatiquement des sauvegardes complètes, des sauvegardes différentielles et des sauvegardes du 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 faible ou nul sur les performances pour la récupération et l’indexation à un instant dans le temps. Sauvegarde Azure est une solution de sauvegarde basée sur le cloud fiable et évolutive qui vous permet de protéger vos données et vos 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 l’impact sur les performances pendant les opérations de sauvegarde et de récupération d’urgence.

Liste de contrôle d’efficacité des performances

Reportez-vous à l’ensemble complet de recommandations.