Comment tirer le meilleur parti des systèmes de gestion des configurations

Toutes les entreprises peuvent tirer parti des systèmes de gestion des configurations. Voici comment ces outils peuvent aider votre entreprise à suivre la cadence, voire à garder une longueur d'avance.

Cet article est le deuxième d'une série de quatre portant sur la gestion des configurations. La première partie explique ce qu'est la gestion des configurations.

Ai-je besoin d'un système de gestion des configurations (ou CMS, Configuration Management System) ? La réponse en un mot : « Oui ».

Pourquoi ? Considérons l'aspect le plus simple de la gestion des configurations : la découverte et la gestion des ressources. Prenez l'infrastructure IT de votre entreprise : connaissez-vous vraiment tous les éléments qui composent vos systèmes et, si oui, comment en assurez-vous la surveillance et le suivi ?

Par le passé, l'écart moyen entre le parc informatique que les entreprises étaient censées détenir et leurs actifs réels se montait à plus ou moins 20 %, (d'après une étude du cabinet Quocirca).

Vous découvrez que vous avez 20 % d'équipement informatique de plus que vous ne le pensiez ; est-il entièrement couvert par des licences et des contrats de maintenance ? Dans la négative, quel serait l'impact sur votre activité si cet équipement tombait en panne ou si vous deviez subir un audit informatique externe ?

A l’inverse, une entreprise dont l'équipement informatique est inférieur d'environ 20 % aux évaluations débourse sans doute trop en licences et en maintenance alors qu'elle demande à son personnel de réduire les coûts.

Il en va de même pour les logiciels. Si vous sous-estimez l'importance de votre environnement logiciel, vous risquez de devoir payer des frais supplémentaires de licence, ainsi que des amendes ; si vous la surestimez, en revanche, les différentes plateformes logicielles finiront par vous revenir plus cher.

Dans le cas du Cloud hybride, il importe moins de savoir quel matériel vous utilisez que de connaître les services auxquels il est fait appel et leurs coûts respectifs.

Pour maîtriser les coûts de votre plateforme informatique, il est essentiel de disposer d'un système qui rassemble toutes ces informations et vous indique exactement les ressources matérielles et logicielles dont vous disposez, ainsi que le contexte dans lequel elles s'articulent.

Les logiciels de gestion des configurations informatiques et l'environnement DevOps

Bien que la gestion des ressources et la gestion des configurations soient deux choses différentes, il vous sera impossible de tirer le meilleur parti de votre plateforme CMS sans connaître les ressources matérielles et logicielles disponibles dans votre parc.

Par ailleurs, les systèmes de gestion des configurations comportent divers degrés de granularité et de subtilité qui permettent d'optimiser leur fonctionnement et les avantages qu'ils procurent.

Un autre facteur à prendre en compte est le délai nécessaire pour qu'une nouvelle application ou une nouvelle fonctionnalité devienne disponible après qu'une entreprise en a fait la demande. Cela est en grande partie déterminé par les approches en cascade de la gestion de projet, mais avec l'accélération du mouvement DevOps, la gestion des configurations devrait devenir le facteur principal déterminant le calendrier de livraison.

C'est là qu'interviennent les outils récents de gestion des configurations. Leur capacité à intégrer de façon transparente, contrôlée et gérable les environnements de développement, de test et de production permet à la structure DevOps de s'épanouir, apportant une valeur ajoutée à l'entreprise.

Avec un outil CMS efficace et complet, il est possible de packager du code en fonction des besoins et de le provisionner au cours des différentes étapes du processus. Les développeurs peuvent s'en servir pour assurer une parfaite cohérence de la tâche répétitive consistant à élaborer de nouvelles applications groupées ; l'outil CMS se charge alors de transférer ce package dans l'environnement de test dès que le développeur le décide. Une fois les tests terminés, l'outil sait quelles ressources physiques et logiques sont nécessaires et connaît les dépendances entre le code packagé et l'environnement physique. Ces connaissances peuvent alors être gérées automatiquement.

Le rôle que jouent les logiciels de gestion des configurations dans DevOps est illustré par l'exemple d'un développeur travaillant avec l'ensemble d'outils Open Source Jenkins en même temps qu'avec Puppet ou Chef. Bien qu'ils n'appartiennent pas à un même ensemble, ces outils démontrent le fonctionnement de la gestion des configurations dans l'environnement DevOps. Le développeur contrôle ses builds de code à l'aide de Jenkins, puis utilise Chef ou Puppet pour automatiser la livraison du code dans les phases de test et de production.

Chef et Puppet, ainsi que d'autres outils CMS, peuvent se comporter comme un produit de provisioning en packageant le code, en le préparant pour la phase d'exécution et en le déployant sous la forme d'un système fonctionnel complet.

Ce type de système permet de contrôler les dépendances entre différents progiciels, les dépendances par rapport au matériel physique et la gestion des ressources requises.

Avec les dépendances, il est également possible d'effectuer une recherche automatique dans une plateforme informatique multi-site complexe, afin d'identifier les meilleurs emplacements de déploiement. Les opérations manuelles, souvent fastidieuses et sources d'erreurs, sont ainsi en grande partie éliminées.

Le processus de gestion des configurations et l'environnement IT

Ces systèmes de gestion des configurations peuvent se révéler complexes, mais il ne faut pas en faire un argument de vente.

Pour de nombreux informaticiens, la complexité n'est pas un problème : ils mettent un point d'honneur à utiliser une interface de ligne de commande, même s'il existe des méthodes plus simples. Cependant, une entreprise n'attache guère d'importance à ce genre d'honneur car, pour elle, efficacité et rentabilité sont les caractéristiques essentielles à prendre en compte en informatique.

En outre, tout ce qui favorise l'automatisation des processus de gestion des configurations et les rend plus accessibles aux utilisateurs moins expérimentés ne peut qu'améliorer le fonctionnement de ces systèmes.

Ainsi, un administrateur système peut très bien être un as de la programmation, capable d'écrire à toute vitesse des lignes entières de code, sans presque jamais commettre d'erreur. Mais c'est le « presque » qui pose problème : une seule erreur peut suffire à compromettre un script entier. Il est donc nettement préférable que cet administrateur se contente de vérifier que le script fonctionne correctement et de faire en sorte qu'il continue à s'exécuter efficacement.

De bons outils CMS facilitent également le suivi des environnements dynamiques actuels.

En effet, les plateformes relativement statiques d'autrefois ne donnent plus guère signe de vie aujourd'hui ; les plateformes fortement virtualisées et dans le Cloud exigent des outils capables de mieux cerner et prendre en charge la variabilité des systèmes hôtes physiques utilisés par une charge de travail.

Il serait dangereux de demander aux développeurs, administrateurs systèmes et autres intervenants dans la chaîne du processus de modifier constamment leur code et leurs scripts pour les adapter à un environnement aussi dynamique. Les systèmes CMS capables de gérer automatiquement le changement et d'orchestrer le processus en harmonie avec la dynamique de la plateforme constituent la clé de la réussite d'un environnement virtualisé.

Des outils CMS efficaces seront également en mesure de gérer dynamiquement le provisioning en créant des systèmes capables de traiter des tâches cycliques de façon optimale, y compris lors des pics de charge.

Quelle que soit la voie choisie par votre entreprise, le but doit être de créer de la valeur. Dans cette optique, il ne faut pas négliger l'utilisation d'outils CMS pour renforcer et mieux gérer un environnement DevOps tout en créant un cadre de développement continu entièrement contrôlé.

Conclusion

La gestion des configurations n'est pas un processus simple, unique et facile à automatiser. Il s'agit d'une série de processus différents qui, même s'ils paraissent souvent sans rapport les uns avec les autres, doivent fonctionner ensemble au service d'une entreprise moderne. Alors, si nous reposons la question initiale : avez-vous besoin de la CM ? La réponse est un « Oui » sans équivoque.

Pour approfondir sur DevOps et Agilité