Une question que je vois posée régulièrement : comment améliorer la productivité des départements IT ? En notre époque de crise économique, de compétitivité accrue, de globalisation, comment réduire encore les coûts, où trouver de nouvelles sources d’optimisation ? Bref, comment faire « plus avec moins » ?
Je suis sûr que beaucoup vont instantanément penser à « comment améliorer la productivité des développeurs et des projets ? » mais je crois que, de plus en plus, ce sont les départements de Production qui sont à même de mieux répondre à cette question, et ce grâce à la virtualisation.
Auparavant, la Production était vue comme une contrainte, parce qu’il fallait une bonne dose de bureaucratie, de procédures et de patience pour pouvoir disposer de la moindre ressource, serveur ou espace disque.
Et lorsque survenait un problème dans l’environnement de production, il fallait vraiment que ce soit sérieux pour que quelqu’un se décide à investiguer. Je veux dire, si votre serveur de développement ou de QA était lent, personne n’allait vraiment se pencher dessus.
Maintenant, lorsque vous avez besoin d’une machine, ou de plus de CPU ou d’espace disque, vous envoyez un mail et vous vous attendez à voir votre demande satisfaite ASAP, le plus souvent en moins de 48 heures, voire la veille pour le lendemain. La réponse de la Production aux besoins des utilisateurs s’est réellement améliorée. Grâce à la virtualisation, une nouvelle VM (Virtual Machine ou machine virtuelle) s’installe en 3 clicks de souris, et l’ajout de ressources dans votre VM actuelle en encore moins de temps.
Voilà pour la partie « plus » de l’équation.
Mais il existe une loi naturelle selon laquelle plus il est facile d’obtenir une ressource et plus le niveau de gaspillage de celle-ci augmente. Et cette loi se vérifie encore avec la virtualisation, sous la forme d’un phénomène connu sous le nom de ‘prolifération des VM’, principale préoccupation des départements de Production à l’heure actuelle, car principale source de coûts, avec la croissance exponentielle du stockage (en moyenne 30% chaque année).
Comment éviter l’inflation des budgets et faire « plus avec moins » ? La réponse se trouve dans la Gestion de la Capacité (Capacity Management), dont nous allons présenter les principaux axes tels que définis par ITIL.
Connaître ce que l’on a
La virtualisation est un marché nouveau, en forte croissance et la compétition est très forte entre ses différents acteurs pour obtenir des parts plus importantes de ce marché. Les directions de Production le savent bien qui font jouer la concurrence au maximum, afin d’acquérir aux meilleurs coûts les ressources hardware (CPU, mémoire, cabines de disques, etc.) et logicielles (OS, solutions de virtualisation, etc.) nécessaires à leurs infrastructures.
Ces dernières, en contrepartie, se scindent dés lors en silos technologiques différents. On va fréquemment trouver au sein d’un même département des serveurs Solaris, IBM, x86, des OS AIX, Linux, Windows, etc. et des solutions de virtualisation VmWare ou HyperV ou autres selon que telle ou telle offre s’avère plus intéressante d’une année sur l’autre. Sans parler de solutions de stockage SAN, NAS, etc. Certainement, le segment de marché où les avancées technologiques sont les plus importantes et la compétition la plus féroce. Si ce dernier sujet vous intéresse, vous connaissez certainement le blog de mon ex-collègue et néanmoins ami Philippe Nicolas.
Cette multiplication des technologies permet également de mieux répondre aux besoins des départements Etudes et Développement. Une base de données Oracle critique, avec un volume de transactions très élevé sera plus à l’aise sur un serveur Unix alors que pour un serveur de mails non critique, une machine virtuelle sous Windows fera l’affaire. Et l’on trouvera probablement une solution de stockage hautement performante mais également coûteuse pour la base de données et des disques moins rapides mais également moins chers pour le serveur de mails.
Gérer un tel parc hétérogène nécessite dés lors une solution de Capacity Management, capable de reconnaître ces différentes technologies et de fournir des métriques normalisées : la valeur d’un MIPS varie selon les constructeurs et éditeurs.
Connaître l’état de ce que l’on a
Connaître son infrastructure n’est pas suffisant, il faut également connaître son état : quels sont les serveurs et les machines virtuelles en saturation, les contentions de ressources, bref les incidents. Mieux encore, il est crucial de pouvoir identifier les risques sur ces ressources avant que ne survienne une anomalie qui va mettre en défaut la base de données critique ou toute autre application indispensable à la bonne marche de l’entreprise. Lorsqu’un système de paiements bancaires ne peut pas respecter les échéances en attente parce qu’un backup ne s’est pas terminé à l’heure, il vaut mieux le savoir le plus tôt possible avant que le téléphone ne commence à sonner.
La première tâche d’un Capacity Manager, lorsqu’il arrive au travail le matin, consiste à vérifier l’état de son infrastructure. Là encore, une solution de Capacity management doit :
- Donner une vue d’ensemble qui permette d’identifier immédiatement si une machine a connu ou va connaître un problème (alerte sur un seuil de ressources).
- Permettre un drill-down, depuis le CPD, le cluster, le serveur, la machine virtuelle au sein du serveur, la ressource en problème sur cette VM, etc.
Répondre aux demandes des utilisateurs
Nous l’avons déjà dit, la virtualisation amène un niveau d’exigence plus élevé des utilisateurs, et la réponse à une demande de ressources de la part du ‘business’ doit être satisfaite le plus rapidement possible. Il ne s’agit pas seulement de faire plus, mais aussi mieux et plus vite.
Il faut donc pouvoir identifier les ressources inutilisées qu’il est possible d’employer à cet effet, par exemple :
- Une machine virtuelle inactive ou éteinte, mais qui consomme de l’espace disque.
- Une machine virtuelle dormante, inutilisée depuis plus de 20 semaines : un environnement de tests mis à disposition de tel projet, qui a terminé sa QA mais a ‘oublié’ de le signaler.
Un autre défi consiste également à répondre rapidement aux demandes correspondant à une hausse de l’activité, par exemple, une application qui voit son nombre d’utilisateurs augmenter brusquement, évènement dont la Production est rarement informée á l’avance. Dans ce cas, le Capacity Manager doit être capable d’identifier quel cluster est disponible pour héberger une machine virtuelle avec un profil de consommation de ressources plus élevée. Tout en respectant les seuils de disponibilité HA (High Availability), bien sûr.
Capacity Planning
Le Capacity Planning constitue la forme la plus avancée de la gestion de la capacité, lorsque le Capacity Manager doit être capable, non plus seulement de réagir à des incidents ou des demandes utilisateurs, mais de planifier de manière proactive la consommation de ressources futures.
Généralement, il s’agira de fournir au Directeur de Production une prévision des besoins futurs pour élaborer le budget de l’année ou la période suivante. La solution consiste alors à utiliser les données historiques dont on dispose afin de pouvoir en dégager des tendances et planifier l’évolution de la demande de ressources.
Mais il existe aussi des cas particuliers plus complexes : suite à la fusion avec une autre entité, il va falloir gérer 400 nouveaux utilisateurs. Comment chiffrer ce besoin en ressources, en plus de la croissance organique habituellement constatée ?
Autres cas plus fréquents : la période de soldes sur un site web marchand entraîne une augmentation du nombre de visiteurs et de transactions sur le site. Comment faire en sorte que celui-ci tienne le choc et éviter des temps de réponse dégradés, voire même l’indisponibilité du site ? Ces surcroîts d’activité en période atypique surviennent dans tous les secteurs : vacances scolaires dans le domaine des transports, un événement climatique ou un désastre pour une entreprise d’assurances, voire tout simplement la fin de mois ou d’années pour les ressources humaines ou le département comptable.
Il faut alors pouvoir utiliser les informations dont on dispose afin d’effectuer une simulation et fournir au management des données les plus objectives possibles lui permettant de prendre les décisions appropriées.
Quand on regarde ces différentes activités de la Gestion de la Capacité selon ITIL, il est intéressant d’effectuer un parallèle en matière de qualité des applications. Ce sera l’occasion d’un prochain post, afin de répondre à des questions telles que :
- Comment connaître son patrimoine applicatif ?
- Quelle est la qualité de ce patrimoine ?
- Comment répondre aux demandes des utilisateurs ?
- Comment planifier l’évolution du patrimoine applicatif ?
Comment faire plus et mieux avec moins, pour vos applications ?
Cette publication est également disponible en Leer este articulo en castellano : liste des langues séparées par une virgule, Read that post in english : dernière langue.