Share via


Recommandations pour activer l’automatisation

S’applique à cette recommandation de liste de contrôle Azure Well-Architected Framework Operation Excellence :

OE :10 Concevez et implémentez l’automatisation à l’avance pour les opérations telles que les problèmes de cycle de vie, le démarrage et l’application de garde-fous de gouvernance et de conformité. N’essayez pas de moderniser l’automatisation ultérieurement. Choisissez les fonctionnalités d’automatisation fournies par votre plateforme.

Ce guide décrit les recommandations relatives à la conception et à l’implémentation de votre charge de travail pour activer l’automatisation. Concevez votre charge de travail avec l’automatisation à l’esprit pour vous assurer que les tâches de routine telles que l’approvisionnement des ressources, la mise à l’échelle et les déploiements sont effectuées rapidement et de manière fiable. L’automatisation simplifie les tâches de maintenance et vous permet de mettre à jour, de corriger et de mettre à niveau vos systèmes plus efficacement.

Stratégies de conception

Conception de la charge de travail

Vous pouvez concevoir votre charge de travail pour prendre en charge l’automatisation de la phase d’idéation à la phase d’amélioration en cours. Tout d’abord, réfléchissez à la façon dont vous souhaitez appliquer l’automatisation à votre charge de travail pour vous assurer que vous mettez en place les éléments nécessaires. Réfléchissez à votre charge de travail en fonction des piliers Well-Architected Framework pour vous aider à planifier les types d’automatisation que vous utiliserez. Vous pouvez automatiser de nombreuses fonctions de sécurité, de fiabilité, de performances, d’opérations et de contrôle des coûts.

Concevez avec l’automatisation à l’esprit pour réduire la refactorisation après l’exécution de votre charge de travail. Tenez compte des exigences de votre charge de travail lors du choix des outils d’automatisation à utiliser. Il existe peut-être des outils d’automatisation prêts à l’emploi que votre équipe connaît déjà. L’adoption de ces outils peut faciliter l’automatisation de votre charge de travail, mais gardez à l’esprit leurs limitations et leur compatibilité avec votre plateforme cloud. Par exemple, certains outils d’automatisation peuvent s’intégrer correctement aux outils Azure CLI, tandis que d’autres peuvent nécessiter des interfaces REST. Examinez toujours les outils fournis par votre plateforme cloud pour vous assurer qu’ils sont compatibles et fournir les fonctionnalités dont vous avez besoin. Voici des exemples de façons de planifier de manière proactive l’automatisation :

  • Déploiement : automatisez vos déploiements d’applications et d’infrastructure pour garantir une norme prévisible. Planifiez un déploiement automatisé en développant des normes de déploiement, en formant votre équipe sur les outils que vous utiliserez et en implémentant l’infrastructure nécessaire.

  • Validation : validez automatiquement les exigences de conformité par rapport à votre charge de travail à l’aide d’outils d’orchestration ou de stratégie. Identifiez l’outil de validation approprié pour votre charge de travail et prévoyez d’implémenter les systèmes requis, par exemple, les serveurs d’orchestration.

  • Mise à l’échelle automatique : utilisez la mise à l’échelle automatique dans toute votre infrastructure pour vous aider à répondre à vos exigences de fiabilité et de performances. Vous devez allouer de l’espace d’adressage IP et des sous-réseaux dans votre charge de travail à l’avance pour prendre en compte les opérations de mise à l’échelle, en plus de planifier la redondance et la croissance naturelle.

Compromis : Lorsque vous concevez votre charge de travail pour activer l’automatisation, tenez compte du degré de contrôle que vous souhaitez maintenir par rapport à l’efficacité que vous pouvez obtenir grâce à l’automatisation. Dans certains cas, votre charge de travail peut ne pas être suffisamment mature pour automatiser certaines fonctions ou vous pouvez avoir besoin d’un niveau de flexibilité que l’automatisation n’offre pas.

Tenez également compte des compétences de votre équipe lors de la conception de votre charge de travail. Si un degré élevé d’automatisation nécessite des outils que votre équipe n’est pas équipée pour prendre en charge, vous devrez peut-être utiliser une conception moins complète comme étape intermédiaire.

Améliorations continues de la charge de travail

Une fois que votre charge de travail s’exécute dans le cloud, il est important de hiérarchiser l’amélioration continue. Observez votre charge de travail en action, analysez les modèles d’utilisation et passez en revue le comportement des clients lié à votre charge de travail pour identifier les domaines dans lesquels vous pouvez améliorer l’automatisation. Recherchez des moyens d’améliorer l’automatisation existante ou d’introduire une nouvelle automatisation pour améliorer votre expérience client. Par exemple, vous pouvez avoir activé la mise à l’échelle automatisée, mais l’augmentation de charge de travail est de courte durée. Vous pouvez intégrer l’automatisation de la mise à l’échelle pour réduire l’utilisation du processeur lorsque la charge descend en dessous du seuil.

Les sections suivantes de ce guide proposent des recommandations sur des domaines spécifiques de l’automatisation qui peuvent vous aider dans la conception et l’implémentation de votre charge de travail.

Amorçage

Le démarrage fait référence aux mises à jour de configuration d’une ressource qui doivent être effectuées après son provisionnement, mais avant qu’elle soit disponible dans le cadre du pool de charges de travail. Le démarrage est souvent associé à des machines virtuelles, mais de nombreuses autres ressources doivent être configurées dans le cadre du processus de déploiement, y compris les technologies PaaS (Platform as a Service) et les technologies d’hébergement de conteneurs comme Azure Kubernetes Service (AKS).

Votre plateforme cloud peut vous fournir des solutions d’amorçage, que vous devez utiliser si possible. Par exemple, vous pouvez utiliser des extensions de machine virtuelle dans Azure pour apporter des modifications de configuration prédéfinies pendant le processus de déploiement et personnaliser vos modifications de configuration en injectant des scripts PowerShell.

Authentification et autorisation

Prenez en compte l’automatisation lors de la conception de votre stratégie d’authentification et d’autorisation. Il est important de maintenir le niveau de sécurité le plus élevé dans les charges de travail de production, mais cela peut affecter l’automatisation. Par exemple, l’utilisation de la biométrie ou de l’authentification multifacteur ajoute une complexité qui doit être prise en compte dans votre conception d’automatisation. Utilisez des comptes sécurisés non humains pour l’authentification automatisée, comme les identités managées, les identités de charge de travail ou les certificats. Assurez-vous d’avoir inclus la gestion des secrets et des clés dans votre automatisation pour une sécurité d’authentification accrue.

Variabilité de conception dans votre charge de travail

Évitez de déployer inutilement une nouvelle infrastructure lorsque de petites modifications sont apportées en créant de la flexibilité dans vos artefacts. Par exemple, plutôt que de redéployer votre infrastructure lorsqu’un indicateur de fonctionnalité change, vous pouvez utiliser des paramètres qui sont définis pour mettre à jour des composants comme les configurations d’application. Veillez à définir et documenter clairement la façon dont la variabilité est utilisée pour éviter la surutilisation et la dérive de la configuration.

Créer un plan de contrôle

Un plan de contrôle est le système principal ou la suite d’outils que vous utilisez pour gérer l’application et ses dépendances via une interface unifiée. Créez votre plan de contrôle comme une interface REST, une interface CLI ou un webhook pour prendre en charge l’automatisation par des outils externes.

Exposez les opérations de maintenance via le plan de contrôle qui vous permettent de coordonner les composants de charge de travail, par exemple la sauvegarde et la restauration ordonnées, le démarrage, la configuration, l’importation/exportation et les opérations de traitement par lots. Veillez à choisir le bon niveau de granularité lorsque vous décidez des opérations à exposer via le plan de contrôle.

Superviser et journaliser

Développez une stratégie de surveillance pour capturer des métriques qui déterminent le type d’automatisation dont vous avez besoin. Utilisez la journalisation structurée et les métriques personnalisées pour fournir les informations requises par l’automatisation dans un format facile à reconnaître avec les outils d’automatisation. Les métriques que vous capturez doivent être associées à des seuils définis dans le système de surveillance qui déclenchent des alertes et des actions automatisées, telles que des notifications ou des mécanismes d’auto-réparation, le cas échéant. Pour plus d’informations, consultez Recommandations pour l’auto-guérison et l’auto-conservation.

Cycle de vie utilisateur

Concevez votre application et votre infrastructure pour permettre l’intégration et le retrait automatisés des utilisateurs, pour les particuliers ou les clients multilocataires. Planifiez les mises à jour automatisées des bases de données via des scripts, l’approvisionnement et le déprovisionnement de l’infrastructure, ainsi que la gestion des informations d’identification et des secrets.

Orchestration et utilisation des stratégies

Dans le cadre de la gestion continue de votre charge de travail, vous pouvez automatiser les Desired State Configuration (DSC) dans vos ressources pour vous assurer qu’elles répondent aux exigences de conformité et d’entreprise. L’automatisation DSC permet de garantir que la dérive de configuration est interceptée et corrigée rapidement. Vous pouvez automatiser DSC à l’aide d’outils d’orchestration ou d’outils de gestion des stratégies. Considérez les outils d’orchestration, tels que les services Azure DevOps ou Jenkins, comme des mécanismes basés sur push. Les outils d’orchestration permettent d’envoyer des mises à jour de configuration par le biais d’un événement de flux de travail, comme un déploiement manuel ou automatisé. Ces mises à jour sont exécutées dans le cadre d’une séquence de tâches définie dans votre script de déploiement. Les outils de gestion des stratégies utilisent des mécanismes basés sur l’extraction, ce qui signifie qu’un système s’exécute au niveau fondamental de votre charge de travail qui interroge régulièrement la charge de travail pour case activée son état par rapport à votre DSC défini. Si le sondage identifie un mauvais alignement ou une dérive de configuration, l’outil prend des mesures correctives. Tenez compte des facteurs suivants pour choisir entre les outils d’orchestration et de gestion des stratégies :

  • Les outils d’orchestration ne disposent pas de fonctionnalités intégrées pour interroger de manière proactive votre charge de travail sur la dérive de configuration. Les outils d’orchestration doivent être intégrés à votre pipeline d’intégration continue et de livraison continue (CI/CD) pour maintenir une norme pour le déploiement et la gestion de l’infrastructure en tant que code (IaC). L’un des avantages de l’utilisation des outils d’orchestration est que les ressources sont toujours entièrement configurées lorsqu’elles sont déployées.

  • Les outils de gestion des stratégies vous permettent de définir des stratégies qui affectent un ou plusieurs groupes de ressources. Ces stratégies sont appliquées lorsque la ressource s’archive avec le système de gestion des stratégies. L’un des avantages de l’utilisation de la gestion des stratégies est que ces systèmes ne sont pas pilotés par le code, de sorte qu’ils peuvent être plus faciles à adopter pour les opérateurs de votre équipe.

Lorsque vous décidez entre les outils d’orchestration ou de stratégie, déterminez si les mises à jour de configuration que vous envisagez d’effectuer sur les nouvelles ressources doivent être effectuées au moment du déploiement. Déterminez également si la définition des mises à jour dans le code correspond à vos pratiques opérationnelles et au nombre de types de ressources que vous prévoyez de déployer. S’il existe de nombreuses configurations différentes selon les types de ressources, les outils de stratégie peuvent être un moyen plus facile de gérer les mises à jour.

Facilitation Azure

Gestion des stratégies

Azure Policy : à l’aide de Azure Policy, vous pouvez appliquer des normes et évaluer la conformité à grande échelle. Azure Policy fournit une vue agrégée pour évaluer l’état global de l’environnement de charge de travail dans le tableau de bord de conformité. Vous pouvez également utiliser Azure Policy pour évaluer chaque ressource et chaque stratégie à un niveau granulaire. Vous pouvez également utiliser Azure Policy pour corriger automatiquement de nouvelles ressources ou corriger des ressources existantes en bloc.

Compromis : le déchargement de l’automatisation de votre pipeline CI/CD vers des outils ou services de plateforme, comme Azure Policy, peut simplifier votre pipeline, mais présente des inconvénients tels que la charge de gestion supplémentaire liée à l’utilisation de plusieurs systèmes. Par exemple, les échecs d’exécution dans un service de plateforme ne seront pas interceptés dans vos journaux de pipeline et devront alimenter votre plateforme d’observabilité de manière intelligente afin que les parties appropriées soient averties.

automation du démarrage

Extensions Azure Machines Virtuelles : les extensions Machines Virtuelles sont de petits packages qui exécutent la configuration et l’automatisation post-déploiement sur des machines virtuelles. Plusieurs extensions sont disponibles pour différentes tâches de configuration, telles que l’exécution de scripts, la configuration de solutions anti-programme malveillant et la configuration de solutions de journalisation. Installez et exécutez ces extensions sur des machines virtuelles à l’aide d’un modèle Azure Resource Manager, d’Azure CLI, d’un module Azure PowerShell ou du Portail Azure. Chaque machine virtuelle dispose d’un agent de machine virtuelle qui gère le cycle de vie de l’extension.

En règle générale, les extensions de machine virtuelle utilisent une extension de script personnalisé pour installer des logiciels, exécuter des commandes et effectuer des configurations sur une machine virtuelle ou Azure Virtual Machine Scale Sets. Vous pouvez configurer ces extensions pour qu’elles s’exécutent dans le cadre de déploiements IaC afin qu’elles s’exécutent sur de nouvelles machines virtuelles à l’aide de l’agent de machine virtuelle Azure. Les extensions peuvent également être exécutées en dehors d’un déploiement Azure à l’aide d’Azure CLI, du module PowerShell ou du Portail Azure.

Cloud-init : Cloud-init est un outil du secteur qui permet de configurer des machines virtuelles Linux au premier démarrage. Tout comme les extensions de script personnalisé Azure, cloud-init vous permet d’installer des packages et d’exécuter des commandes sur des machines virtuelles Linux. Vous pouvez utiliser cloud-init pour l’installation de logiciels, la configuration système et la préproduction de contenu. Azure inclut de nombreuses images de machine virtuelle compatibles avec le cloud init dans des distributions Linux connues. Pour obtenir la liste complète, consultez Prise en charge de cloud-init pour les machines virtuelles dans Azure.

Ressource de script de déploiement Azure : Lorsque vous effectuez un déploiement à l’aide d’Azure, vous devrez peut-être exécuter du code arbitraire pour démarrer la gestion des comptes d’utilisateur, des pods Kubernetes ou interroger des données à partir d’un système non Azure. Étant donné qu’aucune de ces opérations n’est accessible via le plan de contrôle Azure, un mécanisme distinct est nécessaire. Pour plus d’informations, consultez Microsoft.Resources deploymentScripts. Comme toute autre ressource Azure, la ressource de script de déploiement :

  • Peut être utilisé dans un modèle de Resource Manager Azure.

  • Contient des dépendances de modèle Azure Resource Manager dans d’autres ressources.

  • Consomme l’entrée et produit une sortie.

  • Utilise une identité managée affectée par l’utilisateur pour l’authentification.

Une fois déployé, le script de déploiement exécute les commandes et scripts PowerShell ou Azure CLI. Les exécutions de scripts et la journalisation peuvent être observées dans le Portail Azure ou avec Azure CLI et le module PowerShell. Vous pouvez personnaliser les variables pour l’environnement d’exécution, les options de délai d’expiration et la gestion des ressources après un échec de script.

Démarrer des clusters AKS avec GitOps : vous pouvez démarrer un cluster AKS nouvellement provisionné à l’aide de GitOps et de l’extension de cluster Flux v2 en déclarant vos paramètres de configuration dans des référentiels GitHub. Étant donné que les fichiers de cluster AKS sont stockés dans un référentiel GitHub, ils sont avec version, et les modifications entre les versions sont facilement suivies. Les contrôleurs Kubernetes s’exécutent dans les clusters et rapprochent continuellement l’état du cluster avec l’état souhaité déclaré dans le dépôt Git en extrayant les fichiers du dépôt. Pour plus d’informations, consultez Architecture de référence de base AKS.

Gestion des configurations

Azure Automation State Configuration est un outil de gestion DSC géré par la fonctionnalité de configuration d’invité Azure Policy que vous pouvez utiliser pour écrire, gérer et compiler des configurations PowerShell DSC pour des nœuds dans n’importe quel centre de données cloud ou local. Vous pouvez également utiliser cet outil pour importer des ressources DSC et affecter des configurations aux nœuds cibles.

Azure App Configuration est un service que vous pouvez utiliser pour gérer de manière centralisée les paramètres de votre application et les indicateurs de fonctionnalités. Il fonctionne avec Azure Key Vault pour vous permettre de gérer en toute sécurité un large éventail de configurations d’applications dans votre environnement.

Suivi des modifications et inventaire

Suivi des modifications et inventaire à l’aide d’Azure Monitoring Agent suit la dérive de configuration du système d’exploitation dans les machines virtuelles. Cela automatise la détection de la dérive, les services d’inventaire en cours d’exécution et les packages installés sur les machines virtuelles de votre charge de travail. Les éléments suivis par le suivi des modifications et l’inventaire sont les suivants :

  • Logiciels Windows et Linux installés
  • Fichiers Windows et Linux clés
  • Clés de Registre Windows
  • Services Windows et démons Linux

Liste de contrôle de l’excellence opérationnelle

Reportez-vous à l’ensemble complet de recommandations.