Qu'est-ce que la gestion de configuration ? Guide complet
La gestion de configuration, ou CM, est un processus de gouvernance et d'ingénierie des systèmes utilisé pour suivre et contrôler les ressources, les services et les applications informatiques au sein d'une entreprise. Lorsqu'elle est correctement mise en œuvre, la gestion de configuration permet à une organisation de savoir quels sont les actifs technologiques disponibles, comment ils sont configurés et comment ils sont liés les uns aux autres.
Le processus CM vise à identifier et à suivre les éléments de configuration individuels (CI) et à documenter leurs capacités fonctionnelles et leurs interdépendances. Un outil CM aide une entreprise à appliquer l'état de configuration souhaité pour chaque élément et fournit des alertes en temps opportun en cas de problèmes ou de modifications de configuration, qu'ils soient autorisés ou non.
Les organisations s'appuient sur la gestion de la configuration, car elle permet aux administrateurs et aux développeurs de logiciels de comprendre comment une modification apportée à un élément de configuration affectera les autres éléments. Pour les chefs d'entreprise, la gestion de la configuration est un outil précieux dans le cadre des efforts de gouvernance, de sécurité et de conformité.
La gestion de la configuration est généralement mise en œuvre sous la forme d'outils logiciels, mais il s'agit d'une approche globale de l'ingénierie et de la gouvernance des systèmes, qui peut être codifiée dans des cadres normalisés en tant que processus de gestion de la configuration. Par exemple, le cadre ITIL v3 comprend un traitement détaillé de la gestion des actifs de service et de la configuration.
Les rôles et les utilisations de la gestion de la configuration ont évolué et se sont développés au fil du temps. Le processus a dépassé le cadre de la gestion traditionnelle des systèmes informatiques physiques, du stockage et du matériel réseau des entreprises pour englober des pratiques en constante évolution telles que les infrastructures pilotées par des logiciels, l'infrastructure en tant que code (IaC), la gestion de la configuration logicielle et les pratiques DevOps.
Pourquoi la gestion de la configuration est-elle importante ?
La configuration informatique est un concept général qui comprend trois couches principales :
- Quelles sont les ressources, services et applications informatiques disponibles ?
- Comment ces éléments sont-ils déployés et configurés ?
- Comment ces éléments sont-ils liés ou interagissent-ils entre eux ?
Prenons un exemple simple. Un centre de données peut posséder de nombreux serveurs, chacun fournissant des ressources informatiques, de stockage et de réseau physique. Ces ressources sont fournies afin d'offrir un environnement d'exploitation clairement défini pour les services et les applications, tels que les pare-feu réseau, les systèmes d'exploitation, les portails et sites Web, les bases de données, les API, les programmes CRM et ERP et d'innombrables autres plateformes commerciales. Chaque plateforme métier déployée dans ces environnements d'exploitation doit être configurée pour utiliser des chemins d'accès, des volumes de stockage, des machines virtuelles ou des conteneurs et des segments de réseau spécifiques. La plupart des plateformes métier interagissent entre elles, comme les frameworks CRM et les bases de données, et chaque dépendance doit être soigneusement configurée afin que les ressources, les services et les applications puissent fonctionner ensemble.
Tous les détails liés à l'approvisionnement, à la configuration et aux dépendances constituent la configuration, et une entreprise peut avoir de nombreuses configurations différentes en fonction de la taille de l'organisation et des besoins informatiques.
Une configuration est importante car elle établit un environnement connu et fiable. Une entreprise sait que lorsqu'un environnement (ressources, services et applications) est configuré d'une certaine manière, cet environnement et les éléments qui y opèrent offriront la stabilité, les performances et la sécurité attendues par l'entreprise. Si la configuration s'écarte de la norme établie, l'environnement et ses éléments constitutifs peuvent également s'écarter de leur comportement normal. Cela peut entraîner des failles de sécurité, une baisse des performances, des perturbations et des temps d'arrêt dans l'environnement de production.
Par conséquent, la pratique de la gestion de la configuration sert à surveiller l'environnement informatique par rapport à une configuration de référence établie. Un processus de contrôle de la configuration signale et alerte les administrateurs de tout changement dans la configuration et empêche même les changements sans autorisation appropriée. Chaque modification est enregistrée, créant ainsi une piste d'audit qui détaille ce qui a été modifié, quand et par qui. Les alertes et les rapports en temps réel permettent d'identifier précisément les modifications, ce qui permet aux administrateurs ou aux systèmes automatiques de localiser et de corriger les modifications afin de restaurer la configuration établie, simplifiant ainsi considérablement le dépannage.
La gestion de la configuration n'empêche pas les modifications planifiées et autorisées. Les modifications de configuration sont généralement gérées par un processus de gestion des changements bien défini, destiné à tester, valider, examiner et documenter toute modification, ce qui permet souvent aux changements réussis de devenir la nouvelle configuration de référence.
Comment fonctionne la gestion de configuration ?
Pour fonctionner, un système de gestion de configuration a besoin d'un mécanisme permettant de stocker les informations qu'il gère. À l'origine, ce mécanisme était appelé « base de données de gestion de configuration » (CMDB) ; ITIL v3 a introduit le concept de « système de gestion de configuration » (CMS) pour remplacer la CMDB. Une CMDB promeut le concept d'un référentiel monolithique unique, tandis que le CMS fournit un système conceptualisé de CMDB qui agissent ensemble pour répondre aux besoins de ce processus de gouvernance. Les deux présentent des avantages par rapport à un tableur CM statique ou à un fichier texte qui nécessite une maintenance manuelle importante et ne peut pas intégrer les workflows de base et les meilleures pratiques.
Chaque outil de gestion des services est déployé avec un référentiel de données associé. Sans le processus de gouvernance de la gestion de la configuration qui valide son contenu, le référentiel n'est qu'une base de données opérationnelle contenant des données non vérifiées, et non une CMDB ou un CMS. Les composants automatisés d'audit et de vérification de la configuration permettent à un référentiel d'être utilisé comme source d'or autorisée pour les actifs. Un audit manuel est également possible.
Un processus CM et son référentiel associé (CMDB ou CMS) sont confrontés au défi des données redondantes et contradictoires provenant de différentes sources au sein de l'entreprise. Un plan de gestion de la configuration doit inclure un moyen de fusionner et de rapprocher les CI afin de présenter un point de référence unique ou une source unique de vérité.
À mesure que la CMDB s'enrichit et contient davantage d'informations de configuration, il devient possible de prédire l'effet des changements de configuration, ce qui joue un rôle clé dans la gestion des changements. En suivant les dépendances, par exemple, les administrateurs peuvent déterminer l'effet qu'une panne matérielle, logicielle, réseau ou autre pourrait avoir sur d'autres systèmes ou ressources. Cela permet de prédire les problèmes potentiels avant de mettre en œuvre les changements de configuration et de dépanner ou de corriger rapidement les changements de configuration si des problèmes surviennent.
Même lorsque les configurations sont bien documentées et rigoureusement appliquées, la gestion des configurations doit tenir compte de la réalité des changements périodiques, tels que les mises à niveau logicielles et les renouvellements matériels. Des modifications de l'infrastructure et de l'architecture peuvent être nécessaires pour renforcer la sécurité et améliorer les performances. Les demandes de modification et un processus complet de gestion des changements font donc partie intégrante de la pratique de la gestion de configuration. Il peut s'agir simplement d'ouvrir un certain port sur un pare-feu pour prendre en charge une nouvelle fonctionnalité d'une application ou de déplacer un ou plusieurs serveurs très sollicités sur le réseau local afin d'améliorer les performances d'autres applications sur le sous-réseau.
Historique de la gestion de la configuration
Au sens large, la gestion de configuration trouve ses origines dans les années 1960, lorsque le ministère américain de la Défense a instauré des normes militaires pour la gestion générale du matériel et des configurations. Ces normes ont évolué et ont été consolidées pour devenir la norme ANSI/EIA-649-1998.
Le modèle CM de base a été adapté et mis en œuvre pour une multitude de disciplines techniques, notamment l'ingénierie des systèmes, la gestion du cycle de vie des produits et la gestion du cycle de vie des applications, ainsi que pour des normes ultérieures telles que ISO 9000, COBIT et Capability Maturity Model Integration. Le cadre ITIL, apparu dans les années 1980, a introduit des principes et des pratiques permettant aux entreprises de sélectionner, planifier, fournir et maintenir des services informatiques. Ceux-ci permettent à l'informatique de fonctionner comme un service commercial plutôt que comme un simple centre de coûts, un concept qui continue de faire écho aujourd'hui. ITIL a intégré la gestion de la configuration comme élément central de son cadre grâce à sa mise à jour ITIL v4.
Les responsables informatiques et commerciaux ont rapidement adopté la gestion de configuration avec l'explosion de l'informatique d'entreprise dans les années 1970 et 1980. Les opérateurs de centres de données ont compris que des pratiques standardisées étaient essentielles au bon fonctionnement des serveurs et des systèmes dans un environnement de production. Le service informatique a encore affiné le processus de gestion de configuration afin d'y inclure des activités spécifiques, telles que le contrôle ou la gestion des changements, afin de garantir que les changements soient documentés et validés.
Le passage généralisé des ordinateurs centraux à l'informatique basée sur serveur au début des années 1990 a multiplié le volume de matériel et d'appareils dans les centres de données. Les ordinateurs centraux centralisés ont cédé la place à des racks de serveurs individuels, de sous-systèmes de stockage, d'équipements et d'appareils réseau, ainsi qu'à des systèmes terminaux complets tels que les ordinateurs de bureau.
Les pratiques de gestion de la configuration continuent d'évoluer et englobent désormais les ressources et services à distance. Par exemple, les utilisateurs du cloud utilisent ces pratiques et outils pour surveiller les ressources, les services et les charges de travail déployés dans le cloud public.
De plus, la gestion de la configuration s'est diversifiée dans le domaine du développement logiciel, aidant les développeurs à suivre les composants logiciels, les bibliothèques, les versions de compilation et d'autres éléments logiciels utilisés dans les initiatives de développement agile ou continu. Cela s'inscrit dans le prolongement des pratiques DevOps, d'intégration continue et de livraison continue (CI/CD) et des domaines connexes, tels que l'IaC et l'infrastructure définie par logiciel.
À mesure que l'apprentissage automatique et l'IA continuent de développer leurs capacités, la gestion de la configuration intégrera systématiquement davantage de fonctionnalités automatiques, permettant à la CM de fonctionner de manière plus autonome, souvent capable d'apporter des modifications de configuration de manière dynamique avec peu, voire aucune intervention humaine.
Principaux avantages de la gestion de la configuration
Depuis ses premières applications dans le domaine informatique, la gestion de configuration a rempli quatre fonctions essentielles :
- Cohérence.
- Sécurité.
- Prestation de services.
- Conformité ou continuité des activités.
Examinons chacun de ces avantages plus en détail.
Cohérence. Prenons l'exemple d'un centre de données traditionnel équipé de dizaines, voire de centaines de serveurs physiques, de commutateurs réseau et de périphériques de stockage. Il est essentiel que le personnel informatique et les dirigeants comprennent précisément ce qui se trouve dans l'environnement et s'assurent que chaque périphérique, service, système d'exploitation et application est configuré d'une manière connue et acceptable. Ils peuvent même mettre en œuvre des mesures pour appliquer une configuration établie. Par conséquent, la gestion de la configuration assure une cohérence sous-jacente à l'environnement informatique. Lorsqu'un périphérique doit être réparé ou remplacé, une configuration établie fournit une base de référence qui peut être conservée et appliquée aux périphériques de remplacement. Même lorsque des technologies nouvelles et en constante évolution exigent des modifications de la configuration, ces modifications éprouvées deviennent une nouvelle base de référence. De même, les configurations sont souvent documentées de manière similaire au contrôle de version des logiciels, ce qui permet de revenir rapidement à une configuration connue et fonctionnelle si une modification provoque une erreur inattendue.
Sécurité. Les centres de données s'appuient depuis longtemps sur des configurations matérielles et logicielles pour garantir la sécurité des entreprises. Les configurations ont une incidence sur la sécurité de multiples façons : des identifiants de connexion sont nécessaires, les API exigent une authentification, des changements de mot de passe périodiques sont obligatoires, les ports du pare-feu s'ouvrent et se ferment tout en bloquant le trafic suspect, et des sous-réseaux sont mis en place. La documentation et la cohérence grâce à la gestion des configurations contribuent à établir et à maintenir la sécurité.
Prestation de services. La cohérence influe également directement sur la qualité et la prestation des services, et la gestion de la configuration joue ici un rôle central. La prestation de services permet de garantir que l'environnement, ainsi que le matériel et les logiciels qui le composent, fonctionnent de manière connue et validée. Les cadres de gestion des services informatiques (ITSM), tels que l'ITIL, poussent ce concept encore plus loin en décrivant les processus, les personnes et les produits impliqués dans la prestation de services. Les administrateurs informatiques utilisent la gestion de la configuration et l'ITSM pour appliquer les approches acceptées tout en se prémunissant contre les approches interdites. L'objectif est de garantir que tous les services fournis par l'informatique sont disponibles, fiables et sécurisés.
Conformité. Enfin, la gestion de la configuration est un facteur majeur dans la gouvernance d'entreprise, la continuité des activités et la conformité réglementaire. La conformité impose le respect des directives, des spécifications ou des mesures établies par une autorité compétente, qu'il s'agisse d'un organisme de normalisation reconnu tel que l'ANSI ou l'ISO, d'une organisation industrielle ou d'un gouvernement. La gestion de la configuration en soi ne démontre pas la conformité, mais la capacité d'une organisation à montrer qu'un mécanisme de gestion de la configuration est en place pour découvrir, préserver, appliquer et auditer une configuration à travers l'infrastructure peut soutenir les efforts de conformité de l'organisation. De même, la présence d'un mécanisme de gestion de la configuration pour documenter et appliquer une configuration établie renforce la confiance dans les opérations commerciales, telles que le dépannage ou la reprise après sinistre, et garantit que l'entreprise peut continuer à fonctionner normalement.
Bien que les outils de gestion de contenu soient devenus plus sophistiqués et que les meilleures pratiques aient élargi leur champ d'application, ces quatre objectifs restent plus importants que jamais.
La gestion de la configuration présente également des avantages secondaires, tels que les suivants :
- Réduction des coûts. La gestion de la configuration évite les erreurs et réduit les opérations de dépannage longues et coûteuses. La capacité à prévenir les problèmes est presque toujours supérieure au coût de mise en œuvre et de maintenance de la gestion de la configuration.
- Documentation. La gestion traditionnelle des configurations impliquait une quantité importante de travail manuel, comme la collecte de données et l'organisation des informations de configuration dans des feuilles de calcul. Grâce à l'avènement de puissants outils de gestion des configurations, les organisations peuvent désormais découvrir automatiquement les informations de configuration, préparer des rapports détaillés sur la configuration et garantir que la configuration documentée est à jour et appliquée.
- Moins de dépendance vis-à-vis du personnel. La disponibilité d'informations de configuration à jour et bien documentées élimine la dépendance vis-à-vis des connaissances institutionnelles du personnel. Tout administrateur peut consulter la configuration actuelle et complète, sans se soucier de qui sait quoi.
Risques liés à la gestion de la configuration
Bien que les avantages de la gestion de configuration puissent être convaincants, cette technologie n'est pas parfaite. Les plateformes et les pratiques de gestion de configuration posent des défis, à commencer par leur adoption et leur intégration.
Le processus CM traditionnel exige qu'une organisation identifie chaque élément de l'environnement informatique, comprenne ses détails de configuration spécifiques, saisisse ces détails avec précision dans une plateforme de documentation, puis gère ces données. Décider quelles données de configuration collecter et comment gérer ces données au fil du temps, en particulier lorsque des changements matériels et logiciels sont nécessaires, impose une charge de travail supplémentaire au personnel informatique.
Les anciennes plateformes CM n'étaient guère plus que des tableurs qui nécessitaient un travail manuel considérable pour être remplis et gérés. Les plateformes CM ont ensuite offert des niveaux toujours plus élevés de découverte et d'automatisation pour aider les organisations à remplir les blancs de la configuration et des dépendances de chaque élément. Mais les services informatiques ne peuvent pas gérer ce qu'ils ne voient pas, et les éléments qui ne peuvent pas être détectés ou qui ne sont pas adaptés à un outil CM spécifique peuvent nécessiter des outils supplémentaires, des feuilles de calcul ou d'autres documents. Cela divise effectivement la CMDB et comporte un risque important d'erreurs et d'omissions dans la gestion de la configuration. Même si les outils CM modernes offrent des fonctionnalités de découverte et d'automatisation, il ne faut pas supposer que chaque élément est parfaitement représenté.
Une gestion efficace de la configuration doit être une démarche globale. Les équipements matériels et logiciels négligés réduisent la visibilité des processus de gestion de la configuration, ce qui diminue la capacité du personnel informatique à gérer l'environnement. Un seul ordinateur de bureau oublié, équipé d'un système d'exploitation non mis à jour, peut exposer l'ensemble de l'entreprise à des failles de sécurité catastrophiques.
Le partage, l'intégrité et la protection des données sont également essentiels. La configuration d'une infrastructure informatique d'entreprise implique des informations sensibles, telles que l'adresse IP d'un serveur. Ces informations doivent être sécurisées, mais elles doivent également être accessibles à d'autres parties prenantes, telles que les responsables de la conformité de l'entreprise qui effectuent des audits. Décider quelles parties prenantes ou quels membres du personnel peuvent accéder aux données CM et les modifier est une question délicate.
L'évolution des technologies des centres de données pose des défis en matière de gestion de la configuration. Prenons l'exemple des pipelines IaC, où les ressources des centres de données entièrement virtualisées sont mises en commun, provisionnées et gérées sous forme de machines virtuelles, de conteneurs, d'instances cloud et d'autres constructions virtuelles. La gestion de la configuration est essentielle pour gérer les environnements virtualisés, mais des erreurs dans la définition des configurations virtuelles peuvent entraîner de nouveaux risques de sécurité et un gaspillage de ressources, également appelé « sprawl ».
Par conséquent, toute initiative de gestion de la configuration doit être abordée avec un niveau élevé de tests, d'audits et de validations afin de garantir que les outils de gestion de la configuration détectent tous les éléments de manière fiable, génèrent une documentation et des rapports pertinents, offrent une sécurité adéquate et puissent s'adapter aux changements inévitables des configurations au fil du temps.
Quels sont les risques liés à la non-utilisation de la gestion de configuration ?
En renonçant aux avantages que la gestion de la configuration peut apporter en termes de cohérence, de sécurité, de prestation de services et d'aide à la conformité, une entreprise qui fonctionne sans plan de gestion de la configuration s'expose à de nombreux risques.
Imaginez un environnement informatique sans gestion de la configuration. C'est plus courant que vous ne le pensez : un centre de données gère les charges de travail, mais les administrateurs informatiques et les dirigeants d'entreprise ne disposent d'aucune source unique d'informations fiables sur la composition matérielle et logicielle de l'ensemble de l'entreprise. Le personnel connaît certaines configurations matérielles et logicielles, mais doit inspecter directement chaque élément du centre de données pour déterminer la configuration existante. Il n'existe aucune méthode commune pour déterminer quelle était, quelle est ou quelle devrait être la configuration.
- Sans index clair et complet du matériel et des logiciels, le service informatique ne peut pas savoir avec certitude ce qui est présent et fonctionne dans l'environnement.
- Tout doit être fait manuellement : identification des éléments matériels et logiciels, vérification et gestion de leur configuration, ce qui est pratiquement impossible dans les environnements informatiques modernes.
- En l'absence de norme de configuration documentée établie, une organisation ne peut garantir une sécurité, des performances de service ou une conformité adéquates sans procéder à des audits manuels fastidieux et souvent sujets à erreurs.
- Les connaissances institutionnelles détenues par le personnel expérimenté peuvent facilement être perdues lorsque les employés vieillissants quittent leur emploi pour occuper d'autres postes, prennent leur retraite ou oublient tout simplement des détails importants liés à la configuration après de longues périodes.
Gestion du changement et des actifs
La discussion sur la gestion de la configuration implique généralement les notions de gestion du changement et de gestion des actifs. Ces notions complètent la gestion de la configuration, mais il est important de comprendre les différences.
Gestion du changement. La gestion du changement est un processus qui oriente l'approche de l'organisation face au changement. Elle s'applique aux objectifs commerciaux et aux flux de travail, aidant les employés et les clients à s'adapter au changement dans leur environnement de travail. Mais les services informatiques ont également recours à la gestion du changement pour formaliser l'approche du changement au sein du centre de données ou de l'environnement informatique de l'entreprise. Cela peut inclure des protocoles sur la manière dont les changements sont demandés et sur la manière de définir l'approvisionnement, le déploiement, l'installation/la configuration, les tests et même le dépannage. Une entreprise souhaitera également organiser les approbations et les validations des changements.
Prenons l'exemple d'une charge de travail exécutée sur un serveur. Les mises à jour des applications ne sont pas appliquées à l'environnement sans discernement ; une modification non gérée entraînera un changement de configuration qui pourrait affecter l'environnement de production. La gestion des changements est le processus par lequel la nouvelle version peut être identifiée, examinée, testée, approuvée pour déploiement, déployée, configurée et validée, voire surveillée de manière continue. Les changements doivent être enregistrés dans le CMS, bien que l'automatisation moderne puisse généralement faciliter la découverte, l'évaluation, les mises à jour et la création de rapports. La gestion des changements peut également détailler toute formation ou directive nécessaire aux utilisateurs afin de faciliter la transition ou de minimiser les perturbations.
Par conséquent, la gestion du changement diffère de la gestion de la configuration, mais la gestion du changement (c'est-à-dire la reconnaissance des effets potentiels du changement sur un environnement de production) est un élément essentiel de la gestion de la configuration. Le niveau de détail et de formalité d'un processus de gestion du changement peut varier en fonction de la taille et du type d'organisation. Une grande entreprise fortement réglementée utilisera généralement un processus détaillé de gestion du changement et de reporting.
Gestion des actifs. La gestion des actifs informatiques repose sur l'utilisation commune de données permettant d'identifier la présence de matériel, de logiciels et d'autres actifs tangibles dans l'ensemble de l'entreprise. La gestion des actifs est axée sur les applications commerciales et comptables, mais les responsables informatiques reconnaissent que la clé de toute gestion réside dans la connaissance préalable de ce qui est disponible : si vous ne voyez pas ce dont vous disposez, vous ne pouvez pas le gérer.
Par exemple, la gestion des actifs prend en compte les serveurs, les équipements de stockage, les équipements réseau, les terminaux et autres actifs informatiques de l'entreprise. Cependant, elle s'intéresse davantage au coût et à la validité des licences matérielles et logicielles, aux contrats de service ou de maintenance, à l'emplacement physique et au coût de chaque actif, ainsi qu'à la manière dont ces éléments sont acquis et finalement éliminés. En comparaison, la gestion de la configuration ne s'intéresse généralement qu'à un actif pendant son fonctionnement.
Prenons un autre exemple : un serveur acheté dans un but précis. Ce serveur sera soumis à la fois à la gestion des actifs et à la gestion de la configuration. Si ce serveur est réutilisé à un moment donné de son cycle de vie, il fera l'objet d'une nouvelle entrée dans la gestion de la configuration, car il sera configuré différemment pour effectuer une autre tâche. Mais sa présence restera la même dans la gestion des actifs.
Gestion de la configuration logicielle
La gestion de la configuration logicielle s'est diversifiée en deux aspects distincts : la configuration opérationnelle et la configuration de compilation (développement).
En termes de configuration opérationnelle, les logiciels conservent bon nombre des caractéristiques associées aux configurations des périphériques matériels. Par exemple, un produit logiciel peut nécessiter une configuration approfondie lors de son déploiement afin de définir des éléments configurables, tels que les volumes et chemins de stockage, les identifiants utilisateur, les autorisations de licence et d'innombrables préférences ou détails de configuration.
Cependant, la gestion de configuration s'est également étendue au domaine du développement et du déploiement de logiciels, où elle est connue sous le nom de gestion de configuration logicielle (SCM) ou gestion de configuration unifiée. Bien qu'elle trouve ses racines dans la gestion de configuration au sens large, la SCM se concentre sur la gestion des nombreux artefacts et composants impliqués dans le développement de logiciels, notamment le code source, les modules, les bibliothèques, les composants et les API, ainsi que les éléments connexes tels que la documentation, les demandes de modification et les tickets d'incident.
La gestion du cycle de vie des logiciels (SCM) peut être utilisée à tous les niveaux de la pile logicielle. Elle apporte une structure et une normalisation supplémentaires au processus de développement logiciel, ce qui peut aider les organisations à établir des bases de référence, à améliorer et à organiser le reporting, à gérer les changements et à superviser les ressources allouées à un projet de développement. La SCM est codifiée dans des normes telles que IEEE 828-2012.
Les organisations entreprennent souvent plusieurs projets, chacun impliquant une multitude de composants et plusieurs développeurs ou équipes. Sans une méthode cohérente pour mettre de l'ordre dans le processus, la création et le test de logiciels sombreraient dans le chaos. Lorsque plusieurs développeurs travaillent simultanément sur le même code source, les différentes modifications ne s'intègrent pas correctement et le logiciel cesse de fonctionner. Pour éviter cela, le SCM crée plusieurs lignes de développement (branches) et réconcilie chaque ligne (fusionne les branches testées) en une source finale pour une compilation, permettant ainsi à de nombreux développeurs de travailler simultanément sur le même code.
Gestion de la configuration dans DevOps
La gestion de la configuration est essentielle aux paradigmes de développement logiciel collaboratif et rapide, tels que DevOps. Grâce à la gestion de la configuration, les développeurs de logiciels peuvent créer, tester et déployer des versions vers les environnements de test et de production avec un minimum de supervision informatique.
Les composants logiciels doivent être rassemblés et intégrés dans une version, et chaque version résultante porte également des désignations de version uniques avant d'être testée et déployée. La gestion de la configuration suit les composants impliqués dans la version et garantit que la version souhaitée n'utilise que certains composants.
De plus, chaque version doit être testée de manière approfondie, et la gestion de la configuration peut être utilisée pour spécifier les outils et les fichiers de test nécessaires à la validation d'une version donnée. Associées à l'automatisation, les techniques de gestion de la configuration peuvent accélérer les processus de test et de publication.
Du côté des opérations, la gestion de la configuration permet aux développeurs de définir un environnement de déploiement approprié pour une build. Cela peut impliquer la création et la configuration de machines virtuelles, mais c'est aussi un moyen puissant de créer et de configurer des conteneurs virtuels à l'aide d'outils de gestion/orchestration de conteneurs, tels que Kubernetes. D'autres problèmes opérationnels peuvent concerner l'approvisionnement et la configuration du stockage, des réseaux, des services (tels que les pare-feu et les équilibreurs de charge) et d'autres éléments nécessaires pour obtenir un environnement opérationnel adapté au logiciel.
À chaque étape, la gestion de la configuration fournit des journaux permettant de suivre les modifications, de contrôler les accès, d'appliquer les configurations établies (telles que des composants de version spécifiques) et de maintenir la sécurité au sein de la bibliothèque de composants et de versions.
CI/CD et gestion de la configuration. La gestion de la configuration (CM) est utilisée tout au long de la chaîne d'outils CI/CD. Grâce à l'automatisation de la compilation et à la gestion du code source, la CM permet d'établir et d'appliquer le contrôle des versions et le suivi des modifications. Elle facilite également le contrôle des versions et le suivi des modifications afin d'enregistrer toute activité au sein du référentiel et d'appliquer les restrictions de version.
Le déploiement des applications et la gestion de la configuration définissent et appliquent les ressources nécessaires pour exécuter la compilation dans la configuration souhaitée. La dernière étape est le déploiement proprement dit, au cours duquel la compilation est transmise pour validation au déploiement ou automatiquement déployée sur les serveurs en production et connectée aux services en cours d'exécution, selon les besoins. Les outils de gestion de la configuration, tels qu'Ansible, Puppet et Chef, sont généralement orientés vers la dernière partie de la chaîne d'outils CI/CD, où les charges de travail sont déployées dans l'environnement matériel du centre de données.
Gestion de la configuration et infrastructure en tant que code. Les principes IaC s'appuient sur une virtualisation étendue pour découvrir et regrouper les ressources dans l'environnement du centre de données, puis provisionner et gérer ces ressources sur la base d'actions pilotées ou définies par logiciel. DevOps est l'un des principaux moteurs de l'IaC, car l'utilisation de code pour créer et gérer l'infrastructure nécessaire au déploiement d'une version est une extension naturelle des processus de développement et de test de logiciels. L'IaC intègre le code dans les opérations et permet aux développeurs de déployer facilement des versions sans jamais toucher ni configurer le matériel physique.
En termes plus pratiques, l'IaC permet de définir un environnement matériel exclusivement à l'aide d'un logiciel qui respecte les principes du SCM. Les fichiers de description IaC peuvent être écrits, testés, validés, contrôlés et déployés comme n'importe quel autre logiciel. Cela signifie également que divers processus de test sont essentiels pour un déploiement IaC. Il s'agit notamment des tests statiques, des tests unitaires, des tests système, des tests d'intégration et des tests bleu/vert (ou A/B). La sécurité IaC doit également être prise en compte.
La gestion de la configuration s'appuie sur des techniques programmatiques telles que des instructions ou du code pour créer, tester et déployer des versions logicielles et gérer l'infrastructure. L'écriture du code permettant de piloter les processus CM dans DevOps peut utiliser des techniques de programmation impératives ou déclaratives.
La programmation impérative se concentre sur la manière dont quelque chose est fait. Elle a tendance à être plus littérale et détaillée ; par exemple, si quelqu'un vous demande l'itinéraire pour se rendre à un magasin Best Buy, la réponse impérative inclurait tous les virages et distances spécifiques pour atteindre la destination. En comparaison, la programmation déclarative se concentre sur ce qui est fait. Elle est davantage axée sur les objectifs finaux. Pour se rendre dans un magasin Best Buy, la réponse déclarative consisterait à fournir l'adresse du magasin ; peu importe l'itinéraire emprunté pour s'y rendre. La gestion de la configuration adopte la programmation déclarative, qui permet de définir les objectifs de manière plus claire et concise.
Outils de gestion de configuration
Il existe un large éventail d'outils permettant d'effectuer les tâches de gestion de configuration. Parmi les tâches importantes de gestion de configuration, on peut citer les suivantes :
- Découverte. L'outil CM détecte le matériel et les logiciels présents dans le périmètre de gestion, tel que le centre de données. Il recueille les informations pertinentes sur les CI et les organise dans une base de données.
- États de configuration. L'outil CM établit et applique les états de configuration souhaités pour les CI matériels ou logiciels sélectionnés. Cela s'effectue généralement à l'aide de politiques et d'automatisation. Les écarts par rapport à l'état souhaité (la base de référence) sont signalés et consignés, ce qui permet aux administrateurs d'enquêter et de corriger les tentatives de modification non autorisées.
- Contrôle de version. Les outils de gestion de configuration garantissent que des versions ou des composants logiciels spécifiques sont déployés ou compilés. Dans le développement logiciel, le contrôle de version garantit qu'une compilation donnée est assemblée à partir de composants spécifiques. Différentes compilations, ou versions, peuvent utiliser différents composants.
- Contrôle des modifications. L'outil CM contrôle la configuration et met en œuvre un processus qui coordonne, autorise, documente, enregistre et signale les modifications autorisées dans le cadre de la gestion. Dans certains cas, l'outil CM peut être en mesure de prédire les conflits ou de générer des avertissements liés aux modifications proposées, alertant ainsi les administrateurs des problèmes potentiels avant qu'une modification autorisée ne soit mise en œuvre.
- Audit. L'outil CM analyse l'environnement, vérifie que les configurations actuelles sont en place, identifie et signale toute dépendance et s'assure que l'environnement global est configuré comme prévu. Il peut s'agir d'une fonctionnalité importante pour la gouvernance d'entreprise et le respect des réglementations.
Les outils CM étant très différents les uns des autres, le choix du bon outil de gestion de configuration peut faire ou défaire une initiative CM. Voici quelques-unes des nombreuses fonctionnalités et caractéristiques à prendre en compte :
- Flexibilité. L'outil doit être facile à utiliser, extensible et facilement intégrable à d'autres outils, tels que ceux utilisés pour la gestion des systèmes ou le service d'assistance. Un outil flexible permet de détecter et de gérer davantage de choses qu'un outil qui ne l'est pas. Idéalement, un seul outil de gestion de configuration devrait suffire. L'utilisation de plusieurs outils de gestion de configuration est généralement déconseillée, car elle peut entraîner des oublis et des erreurs inutiles.
- Rapports complets. La journalisation et la création de rapports sur les activités permettent aux administrateurs et aux auditeurs d'obtenir une vue d'ensemble complète de l'environnement et de toutes les modifications qui y ont été apportées au fil du temps, telles que les actions effectuées, à quel moment et par qui.
- Collaboration et communication. L'outil doit regrouper la gestion de la configuration et d'autres fonctions de gestion afin que les administrateurs soient informés des demandes de modification, des tentatives de modification et des modifications effectuées, en particulier celles qui ont une incidence sur la sécurité ou la conformité.
- Évolutivité et extensibilité. Des outils CM simples devraient suffire aux petites et moyennes entreprises. Les grandes entreprises auront toutefois besoin d'outils sophistiqués capables de prendre en charge des environnements complexes et en pleine expansion, ainsi qu'un plus grand nombre d'intégrations avec d'autres outils au sein de l'entreprise.
- Prise en charge du cloud. Le champ d'application du processus CM s'élargit. Les environnements peuvent être hétérogènes ou homogènes. Les centres de données uniques sont désormais souvent complétés par des centres de données secondaires, des services de colocation, des fournisseurs SaaS, des déploiements de cloud privé et des infrastructures de cloud public. Les outils doivent pouvoir fonctionner dans plusieurs environnements.
- Coût. Les outils CM peuvent être coûteux, mais leur coût est facilement justifié par les risques qu'ils permettent d'atténuer.
Les principaux outils de gestion de configuration varient en termes de portée et d'objectif. Les outils généraux, tels que SolarWinds Server Configuration Monitor, CFEngine, Puppet, Chef Infra, Ansible, Juju, Octopus Deploy et Rudder, peuvent gérer le matériel des centres de données et la gestion des configurations logicielles (SCM) avec un certain degré d'automatisation. Les utilisateurs du cloud peuvent tirer parti des services proposés par les fournisseurs, tels que AWS Config et AWS OpsWorks. Il convient de noter qu'une consolidation active du secteur est en cours autour des fournisseurs de CM, ce qui complique la disponibilité des produits et les feuilles de route.
Les développeurs de logiciels peuvent utiliser bon nombre de ces outils pour les tâches de gestion du cycle de vie logiciel (SCM), mais ils ont également recours à d'autres outils, tels qu'Atlassian Bamboo pour la livraison continue et la gestion des versions ; JetBrains TeamCity, Jenkins, Vagrant et Apache Maven pour la gestion de la configuration et l'intégration continue ; Git, Bazaar, Apache Subversion et Mercurial pour la gestion du code source ; des wikis simples pour la documentation ; et JFrog Artifactory, Cloudsmith, MyGet, Yarn, Sonatype Nexus et Apache Archiva pour les référentiels d'artefacts utilisés dans le contrôle de version.
Processus de gestion de la configuration
La gestion de la configuration est un élément central de toute organisation informatique, mais sa mise en place peut s'avérer difficile. Son déploiement réussi à l'échelle d'une entreprise nécessite une planification minutieuse et des efforts continus. Les étapes distinctes du déploiement d'une gestion de la configuration peuvent varier, mais doivent inclure les six phases suivantes :
- Sélectionnez un outil de gestion de configuration adapté. Cette première étape est souvent la plus difficile, car le choix d'un outil de gestion de configuration représente un investissement coûteux qui, une fois mis en œuvre et établi, sera très perturbateur à modifier. Comprenez les besoins spécifiques de l'entreprise en matière de gestion de configuration, ainsi que les nuances des environnements (locaux et cloud) dans lesquels l'outil doit fonctionner. Choisissez un outil capable de gérer l'ensemble de l'environnement étendu, offrant flexibilité et évolutivité, et prenant en charge des niveaux élevés d'automatisation, d'application et d'alerte et de reporting détaillés. Testez plusieurs candidats dans le cadre de projets de validation de principe, puis faites votre choix final en vous basant sur les commentaires détaillés du personnel. L'outil doit répondre à tous les critères de l'entreprise. Cela peut nécessiter la contribution des responsables des opérations, des DevOps, des services juridiques et des dirigeants.
- Établissez une base de référence. Au cours de la phase de découverte de la gestion de la configuration, un outil ou une plateforme examine l'environnement informatique, interroge et découvre le matériel, les logiciels, les services et d'autres éléments de l'environnement. Ce processus établit une base de référence actuelle des éléments, ainsi que leurs configurations et dépendances. Une organisation saura alors ce qui est présent et comment tout fonctionne ensemble. La base de référence est le fondement des changements futurs et de la gestion du changement. Par conséquent, un outil doit voir l'ensemble de l'environnement, y compris les éléments physiques, virtuels et parfois même cloud. Les outils identifient rarement tous les détails de chaque élément, le personnel informatique doit donc combler les lacunes ou les incertitudes de la base de référence. Cette phase de CM peut prendre un temps considérable. Un certain niveau de connaissances institutionnelles du personnel peut être nécessaire ici.
- Élaborez un processus ou un flux de travail CM. Réfléchissez aux étapes ou au processus nécessaires pour prendre en charge la gestion de la configuration et des changements, ainsi qu'au personnel et aux responsables impliqués. Des outils CM appropriés doivent être sélectionnés, déployés et entretenus. Un système régulier de découverte, d'enregistrement, d'audit et de reporting doit être mis en place. L'automatisation et l'orchestration sont des éléments importants de ce processus et doivent être utilisées dans la mesure du possible, mais elles ne doivent en aucun cas remplacer ou présumer les meilleurs résultats pour l'entreprise et ses besoins spécifiques.
- Maintenez cette base de référence. Une fois la base de référence établie, elle doit être activement maintenue. L'outil détectera, enregistrera et signalera généralement les changements, qui devront tous être approuvés, validés et documentés. Les changements et leur gestion doivent suivre des politiques et des pratiques clairement définies afin d'éviter les changements accidentels, non approuvés ou ponctuels. Les outils dotés de solides fonctionnalités de mise en œuvre de la gestion des changements peuvent empêcher activement les changements jusqu'à ce que les étapes d'approbation et de validation soient terminées. Les changements qui ont lieu doivent être soigneusement documentés afin de maintenir l'outil de gestion des changements à jour. De nombreuses initiatives de gestion des changements échouent lorsque l'environnement s'écarte de la base de référence sans contrôle ni rapport adéquats.
- Auditez la base de données. Même avec une maintenance active et des politiques complètes pour régir les processus de gestion de configuration, l'outil et l'environnement doivent toujours être soumis à des audits périodiques afin de valider la configuration et de s'assurer que l'environnement actuel correspond à la base de référence établie. Toute différence doit être corrigée, et les raisons derrière ces différences doivent être comprises et corrigées. Par exemple, si un certain serveur ou une application particulière reste indétectable, il peut être nécessaire de mettre à jour l'agent de gestion de configuration ou d'apporter d'autres corrections. L'audit est un élément central de tout processus de gouvernance d'entreprise ou de conformité réglementaire.
- Testez votre outil pour vous assurer qu'il fonctionne comme prévu. Enfin, il est important d'utiliser l'outil CM de manière productive. Par exemple, demandez à l'outil CM d'implémenter un correctif du système d'exploitation ou une mise à niveau du pilote sur un sous-ensemble de l'environnement. Vérifiez que l'outil peut accomplir ces tâches dans le respect des directives de gestion des changements. Prévoyez un moyen de revenir en arrière en cas de changements indésirables. Assurez-vous que les rapports et les mises à jour de la CMDB se comportent comme prévu.
La gestion de la configuration dépend fortement des politiques, des processus et de l'automatisation, qui doivent être intégrés à l'outil ou à la plateforme de gestion de la configuration. Mais ces trois facteurs ne constituent pas des étapes distinctes. Tout comme une configuration doit être régulièrement réexaminée, auditée et testée, les politiques, processus et éléments d'automatisation liés à la gestion de la configuration doivent également être régulièrement revus et mis à jour afin de garantir que l'outil, et son utilisation, restent conformes aux objectifs informatiques et commerciaux.
L'avenir de la gestion de configuration
L'un des principaux moteurs du modèle CM de demain réside dans les environnements définis par logiciel. De plus en plus d'environnements informatiques d'entreprise utilisent la virtualisation, l'automatisation et la gestion pour provisionner, déployer et gérer les ressources et les services via des logiciels. Avec l'essor des technologies de centre de données, telles que le stockage défini par logiciel, les réseaux définis par logiciel, le SDDC et l'IaC, les outils et pratiques CM futurs doivent être capables de détecter et d'interagir avec des environnements logiciels flexibles et virtuels.
Considérez l'effet de l'IaC, également appelé « configuration en tant que code ». Les ressources sont généralement virtualisées et mises en commun, et un ensemble prédéfini d'instructions est utilisé pour provisionner ces ressources, configurer l'instance, déployer une charge de travail dans l'instance, connecter les services associés tels que les équilibreurs de charge ou le stockage, configurer la charge de travail et gérer le déploiement au fil du temps. La gestion de la configuration doit être capable de détecter les nouveaux déploiements dès leur apparition, d'intégrer ces nouvelles instances dans les rapports et de superviser la gestion des changements. Cela signifie que les outils de gestion de la configuration doivent être capables d'ajouter, de supprimer et de gérer des instances de manière ad hoc.
Une autre technologie émergente à prendre en considération est GitOps, qui permet à une équipe de centre de données de déployer des clusters de conteneurs à l'aide du système de gestion de code et de contrôle de version Git. Cela fusionne efficacement l'utilisation de conteneurs, les paradigmes de développement logiciel et les capacités SDDC afin de garantir qu'un conteneur peut être déployé à l'aide des composants logiciels souhaités dans un environnement défini par logiciel adapté.
Les futurs outils CM doivent également être capables de gérer les aspects logiciels d'un environnement aussi éphémère, dans lequel les conteneurs n'existent généralement que pendant quelques minutes, voire quelques secondes. Cela met particulièrement l'accent sur les outils d'orchestration des conteneurs pour la gestion de la configuration.
L'adoption du cloud se poursuit dans de nombreux types d'entreprises, et les outils et pratiques de gestion des services cloud doivent s'adapter pour offrir un meilleur contrôle et une meilleure supervision du cloud, ainsi qu'une meilleure prise en charge des environnements mixtes où les clouds doivent de plus en plus fonctionner ensemble, comme les environnements multicloud, et offrir un soutien plus solide aux infrastructures traditionnelles des centres de données physiques.
Enfin, attendez-vous à voir une utilisation plus large du machine learning et de l'IA dans la gestion de la configuration. L'objectif principal est d'améliorer l'automatisation du processus CM, afin de mieux prévoir les effets des changements et d'apporter des réponses plus dynamiques et en temps réel aux exigences de changement dès qu'elles se présentent.
Stephen J. Bigelow, rédacteur technique senior chez TechTarget, possède plus de 30 ans d'expérience dans la rédaction technique dans le secteur des ordinateurs personnels et des technologies.
