Système de gestion des configurations : utilité et fonctionnement
Quels sont les rouages d’un Configuration Management System (CMS) ? Et pourquoi sont-ils devenus essentiels pour les entreprises ? Deux questions auquel répond cet article.
Avec la complexité croissante des plateformes, les équipes IT doivent changer de mentalité pour suivre le rythme de plus en plus rapide des évolutions. Dans beaucoup de domaines, l'automatisation est devenue clé ; la gestion des configurations ne fait pas exception.
La gestion des configurations consiste à enregistrer et à mettre à jour de manière détaillée les informations qui décrivent les logiciels et le matériel d'une entreprise. Cette opération permet de provisionner correctement des mises à jour et des packages d'application, et de les gérer tout au long de leurs cycles de vie.
L'époque est révolue où un projet informatique se limitait à acheter un ou deux serveurs, à les configurer et à installer le logiciel approprié pour créer un environnement autonome et relativement étanche destiné à un groupe d'utilisateurs. Les entreprises se tournent désormais vers les plateformes virtualisées, dont l'administration exige un système de gestion des configurations tenant compte des environnements à la fois virtuels et physiques.
L'objectif principal de toute entreprise doit en effet être de provisionner, de gérer et de transférer des workloads entre des plateformes virtualisées, Clouds hybrides compris.
Ainsi, lorsqu'un nouveau système est créé, l'entreprise doit avoir défini au préalable les fonctionnalités nécessaires. Le stockage, la puissance de calculs (compute), la bande passante du réseau, la répartition des charges et le pare-feu sont quelques-uns des éléments requis pour créer un système fonctionnel.
Cependant, l'élaboration de ce système prend du temps et les besoins de l'entreprise peuvent évoluer dans l'intervalle. Un système de gestion des configurations regroupe tous les éléments nécessaires pour créer un système fonctionnel, les organiser de façon maîtrisée dans un environnement opérationnel, pour surveiller son bon fonctionnement et pour y appliquer les correctifs et les mises à niveau aussi rapidement et efficacement que possible.
Un système de gestion des configurations adapté contribuera à réduire les coûts de gestion de la plateforme IT d'une entreprise. Il assurera une plus grande disponibilité en évitant les erreurs humaines. Il offrira en outre une visibilité bien meilleure et bien plus détaillée des événements survenant, ce qui permettra d'identifier la cause première d'un incident. Enfin, un système de gestion des configurations fiable pourra présenter un tableau précis des éléments matériels et logiciels existants, évitant par conséquent le risque de sur- ou de sous-acquisition de licences et les coûts de maintenance excessifs.
Matériel et logiciels
La gestion des configurations se décline en deux parties, qui doivent être traitées en parallèle et de façon équilibrée.
La première se situe au niveau matériel, sous forme physique ou virtuelle. Toute plateforme informatique est tributaire de ses caractéristiques physiques : type et le nombre de serveurs, de systèmes de stockage, de commutateurs réseau, de routeurs et de câbles. Si ce matériel physique est regroupé en pools de ressources virtualisés, un outil de gestion des configurations pourra allouer les ressources en fonction des besoins réels, et non d'après une simple estimation.
Le second aspect est la gestion des configurations logicielles, qui peut s'avérer un peu plus complexe. Une entreprise qui utilise des progiciels, tels qu'un CRM ou un ERP, peut en posséder plusieurs instances, qui fonctionnent à des niveaux différents selon les correctifs et mises à jour appliqués. Ces applications sont installées sur des bases de données et des systèmes d'exploitation, et reliées à des outils analytiques et à d'autres logiciels via des solutions middlewares.
Pour que le système fonctionne, il faut d'identifier correctement ces différentes parties et en comprendre les interactions. Seul un outil de gestion des configurations adapté permettra de gérer un système logiciel aussi complexe, en garantissant par exemple que l'application A, qui exige un OS avec tel ou tel correctif, ne soit pas rendue inutilisable par l'installation d'un correctif impropre.
Auparavant, il était possible d’avoir des systèmes capables à la fois de créer des scripts et de configurer des logiciels, depuis l'installation des serveurs d'application et bases de données jusqu'à celle de l'application elle-même. Mais en général, une intervention humaine était toujours nécessaire : adresses IP et d’autres paramètres devaient souvent être définis manuellement.
De nos jours, la portabilité des workloads est un facteur déterminant. Personne ne sait quand une charge de travail devra être déplacée, que ce soit entre différentes parties d'une plateforme informatique ou dans un environnement hybride de Cloud privé/public. Par conséquent, toute intervention manuelle doit être limitée, voire éliminée.
C'est là qu'interviennent les outils modernes de gestion des configurations.
Les outils de gestion des configurations fournissent des ressources flexibles
Nombre d'entre eux sont capables d'évaluer la taille idéale des ressources virtuelles à allouer pour une charge de travail spécifique, sur la base des données initiales fournies par un architecte systèmes.
De fait, certains systèmes visent à calculer les ressources requises pour une charge de travail en fonction des indicateurs de son environnement de test, du groupe d'utilisateurs défini et de la charge transactionnelle. Même si le système se trompe un peu, l'utilisation de ressources flexibles dynamiques (ressources qui peuvent augmenter et diminuer à la demande) permet de corriger le tir.
Une fois la taille des ressources définie, il est possible de créer le package global des logiciels nécessaires. Pour cela, deux méthodes existent à l'heure actuelle : les machines virtuelles ou les conteneurs.
Bien que très différentes dans leur mode opératoire, ces techniques font appel aux mêmes capacités de l'outil de gestion des configurations : le logiciel concerné doit être assemblé correctement puis provisionné sur la plateforme informatique de façon à optimiser les ressources utilisées. Il convient alors de surveiller et de gérer la charge de travail, ainsi que de lui appliquer les mises à jour et correctifs nécessaires.
Lors de la recherche d'outils de gestion des configurations, il est essentiel de choisir un système prenant en charge les deux méthodes de travail : VM et conteneurs. Le marché des conteneurs étant beaucoup plus dynamique que celui des VM, l'outil retenu doit être suffisamment souple pour intégrer les nouveautés au fur et à mesure.
Le choix d'un outil dépendant uniquement des VM ou uniquement des conteneurs entraînera des problèmes lors de l'apparition de nouvelles méthodes de traitement des workloads.
La gestion des configurations est indispensable dans DevOps
Les fonctionnalités apportées par un processus solide de gestion des configurations sont essentielles pour les entreprises souhaitant adopter une approche DevOps.
DevOps peut être défini comme une philosophie opérationnelle visant à promouvoir une meilleure communication entre les équipes chargées du développement et de l'exploitation. Comme dit précédemment, les outils de gestion des configurations ne se bornent pas à piloter un système au cours du développement et des tests. Ils doivent également surveiller et gérer la charge de travail une fois dans l'environnement de production, facilitant l'application de correctifs et de mises à niveau ainsi que la portabilité.
C'est pourquoi un outil de gestion des configurations est indispensable dans l'approche DevOps. La maîtrise totale du cycle de vie, du développement aux tests puis à l'exécution en production, exige un outil unique assurant une gestion complète et constante. Ce rôle doit également inclure la capacité à remanier un code qui fonctionnait bien au cours des phases de développement et de test, mais qui provoque des erreurs dans l'environnement de production.
Les outils de gestion des configurations doivent donc être complets. Les acheteurs ont intérêt à étudier ce qui leur convient le mieux : la création d'un système de gestion des configurations à partir de composants indépendants, ou une plateforme de gestion des configurations universelle proposée par un fournisseur unique, dont les lacunes au niveau de certaines fonctionnalités critiques pourront être comblées par le recours à des outils ponctuels.
Dans l'article suivant de cette série, nous verrons comment utiliser les outils de gestion des configurations pour obtenir les meilleurs résultats et examinerons les offres open source et commerciales.