tiero - Fotolia
Comment calculer le coût exact des machines virtuelles
Savoir estimer le coût réel d’une machine virtuelle est indispensable dans les scénarios de refacturation du datacenter aux métiers.
Combien coûte une machine virtuelle ? Si la question paraît simple, la réponse peut être étonnamment complexe. Elle nécessite de faire un calcul d’après le coût des serveurs, leur capacité et leur durée de vie.
L’analyse des coûts est d’ordinaire du ressort des métiers. Néanmoins, les informaticiens ont généralement sous le coude tous les éléments pour faire eux-mêmes des évaluations simples qui guideront leurs dépenses. Ce calcul leur est par ailleurs très utile dans les scénarios de refacturation des ressources utilisées, qu’il s’agisse d’une facturation réelle entre directions ou d’une simulation pour rendre compte de la productivité d’un datacenter. L’exercice que nous présentons ici consiste à calculer le tarif des VMs qu’une DSI propose aux métiers de son entreprise.
Le calcul du coût de déploiement d’après des frais fixes et récurrents
Une évaluation du coût à la machine virtuelle doit démarrer par l’estimation du total des coûts fixes et récurrents des serveurs virtuels à déployer. Les coûts fixes comprennent le coût à l’achat des serveurs, des baies de stockage, de la licence de l’hyperviseur (VMware vSphere...), de la licence des systèmes embarqués (Windows Server 2019 Datacenter Edition...) et de la licence du logiciel d’administration (VMware vCenter...). Les coûts annuels récurrents par serveur sont la connectivité réseau, la connectivité au stockage, ainsi que la maintenance des OS, des logiciels d’administration et du matériel.
Il faut ensuite multiplier ces coûts annuels récurrents par le nombre de serveurs et par le nombre estimé d’années d’exploitation. Il s’agit du délai durant lequel les matériels et logiciels seront exploités dans un projet donné, et au terme duquel ils seront soit recyclés dans un autre projet, soit tout simplement décommissionnés. Prenons un exemple : un coût fixe de 10.000€ - qui correspond par exemple au prix d’achat du serveur rack Dell PowerEdge R940xa – restera le même tout au long du projet. En revanche, un coût annuel de 500€ pour mettre un serveur en réseau avec le reste du datacenter coûtera 1500€ par serveur dans le cas d’un projet de trois ans. Idem, un coût annuel de 2000€ pour gérer une base de données coûtera 6000€ sur trois ans.
Il convient d'additionner les coûts d'achat par serveur à la multiplication des coûts récurrents d’un serveur par année d’exploitation, puis de multiplier l'ensemble par le nombre de serveurs pour obtenir le coût total d’un déploiement de machines virtuelles. Dans le tableau suivant, nous prenons l’exemple d’un déploiement de dix serveurs physiques, accompagnés d’une baie de stockage de 512 To – par exemple la 3PAR StoreServ 9000 de HPE – et d’un seul logiciel d’administration mis à jour chaque année. Les coûts sont donnés à titre d’exemple génériques ; ils varient selon les modèles et les tarifs du revendeur.
Équipement |
Coût à l'achat |
Coût récurrent (annuel) |
Durée de vie (3 ans) |
Total |
Serveur |
14 000€ |
- |
14 000€ |
140 000€ |
Baie de stockage |
20 000€ |
- |
20 000€ |
20 000€ |
Hyperviseur |
4 000€ |
4000€ |
40 000€ |
|
Maintenance hyperviseur |
- |
1000€ |
3000€ |
30 000€ |
OS |
6 000€ |
- |
6000€ |
60 000€ |
Maintenance serveurs |
- |
1000€ |
3000€ |
30 000€ |
Connectivité réseau |
- |
500€ |
1500€ |
15 000€ |
Outil d'administration |
10 000€ |
- |
10 000€ |
10 000€ |
Maintenance outils |
- |
2000€ |
6000€ |
6000€ |
Coût total |
|
|
|
351 000€ |
Le calcul de la capacité de traitement... utile
Maintenant que l’on connaît le coût du déploiement d’un datacenter virtualisé, il faut déterminer la capacité utile que les machines virtuelles vont exploiter pour leurs traitements. En effet, certains serveurs ne vont servir qu’à des fins de redondance et ne seront donc pas utilisés par les applications, minorant de fait la capacité totale disponible. Dans notre exemple précédent, si trois serveurs sont déployés en guise d’unités de secours, la capacité de traitement reposera en définitive sur sept serveurs.
Pour ce calcul, il faut prendre note des quantités de mémoire, de processeur et de cycles de processeurs offertes sur chaque serveur. Ce sont les caractéristiques des machines : partons du principe que nos machines physiques contiennent chacune 2 To de RAM et deux processeurs 12 cœurs à 2,3 GHz (soit 24 cœurs par serveur).
Mais ce n’est pas tout : il faut aussi considérer que, parmi ces capacités, un certain pourcentage doit être réservé, afin d’avoir sous le coude des capacités disponibles pour soutenir les pics d’activité, ou pour des développements futurs. Cette réservation des ressources va de pair avec la sur-allocation.
Il s’agit d’attribuer aux machines virtuelles un total de capacités (RAM, cœurs..) qui dépasse d’un certain pourcentage les capacités réellement disponibles, de sorte qu’une VM puisse ponctuellement exécuter plus de traitements en utilisant les ressources que les autres VMs n’utilisent pas. Par exemple, 16 Go de mémoire physiques pourraient servir à faire fonctionner cinq VMs configurées pour utiliser chacune un maximum de 4 Go de RAM (soit un total de 20 Go théoriques), en pariant qu’elles ne se serviront jamais toutes en même temps du maximum de leur capacité.
La sur-allocation est une manière d’optimiser les ressources et elle a donc une influence sur le coût de notre datacenter virtuel, tout comme la réservation des ressources qui, outre soutenir la sur-allocation, peut aussi servir à lancer ponctuellement des VMs supplémentaires ou afin d’exécuter des tâches ponctuelles d’administration. Supposons que l’on réserve 15 % de la mémoire et que l’on sur-alloue 5 % de sa capacité, tandis que l’on réserve 15 % des coeurs et que l’on en sur-alloue 60 %.
En matière de virtualisation, on ne fixe pas véritablement le nombre de cœurs d’une machine virtuelle selon le nombre de cœurs physiques présents, mais plutôt selon la puissance globale du processeur. Le calcul exact devrait donc plutôt se baser sur la fréquence du processeur appliquée à un ratio par cœur. Mais d’une manière plus simple, nous pouvons considérer que ce calcul donnerait de toutes façons un résultat proche du même calcul effectué sur le nombre de cœurs.
Voici dans le tableau suivant, la capacité utile de notre datacenter virtuel :
Ressource |
Par serveur |
Réserve |
Disponible |
Sur-allocation |
Par serveur |
Groupe total* |
Mémoire |
2048 Go |
15 % |
1,740.8 Go |
5 % |
1 827,8 Go |
12 794,8 Go |
Processeurs |
24 |
15 % |
20,4 |
60 % |
32,64 |
228,48 |
Cycles d'horloge |
2,3 GHz |
- |
2,3 GHz |
- |
2,3 GHz |
2,3 GHz |
*Dans cet exemple, nous considérons que seuls sept serveurs sur dix sont utilisés pour la production. |
Le calcul du coût global d’un datacenter virtualisé
Nous connaissons à présent combien nous coûte le déploiement de notre datacenter virtuel et quelle capacité utile il nous apporte. A partir de ces éléments, il nous est désormais possible de calculer combien les ressources de traitement coûtent au mois, ou à l’heure.
Il faut commencer par déterminer combien d’heures par mois la capacité utile sera disponible. Dans la majorité des cas, on part du principe que la solution est utilisable 24 heures sur 24 pendant 31 jours, soit 744 heures par mois.
Il faut ensuite prendre en compte le nombre maximal de machines virtuelles en production. Dans le cadre de cet exercice, supposons donc qu’il est de 200. Il convient ensuite d’attribuer arbitrairement des pourcentages de coûts à la mémoire et aux processeurs. Sur un serveur physique, il est courant de dire que la mémoire représente 70 % du prix et la puissance processeur 30 %. En tout état de cause, l’ensemble doit faire 100 %.
Dans notre exemple, nos dix serveurs nous ont coûté à l’achat 140.000 € et leur capacité mémoire utile de 12.794,8 Go représente 70 % de ce prix. Sur trois ans, cela signifie que la mémoire coûte (140.000 € / 12.794,8 Go) x 0,7, soit un coût total de 10,94€/Go. Cela revient à 3,65€/Go par an, 0,304€/Go par mois ou encore 0,000408€/Go par heure.
Faisons le même calcul avec la puissance processeur utile, qui est dans notre solution de 228,48 cœurs. Nous avons donc (140.000 € / 228,48 cœurs) x 0,3, soit un coût de 183,82€/cœur sur trois ans. Cela revient à 61,2745€/cœur par an, 5,1062€/cœur par mois, ou encore 0,0069€/cœur par heure.
Passons à présent au calcul du coût du stockage. Dans notre exemple, notre baie de 512 To utilisable pendant trois ans a coûté à l’achat 20.000€. Cela nous fait donc 20.000€ / 512 To, soit 39,06€/To sur trois ans, soit 13,02€/To par an, 1,086€/To par mois, ou encore 0,00145€/To par heure. L’ensemble est résumé dans le tableau ci-dessous :
Ressource |
Coût % |
Capacité |
Coût sur 3 ans |
Coût annuel |
Coût mensuel |
Coût horaire |
Mémoire |
70 % |
12,794 Go |
10,94€ / Go |
3,65€ / Go |
0,304€ / Go |
0,0004€ / Go |
Calcul |
30 % |
228,48 coeurs |
183,82€ / coeur |
61,2745€ / coeur |
5,1062€ / coeur |
0,0069€ / coeur |
Stockage* |
100 % |
512 To |
39,06€ / To |
13,02€ / To |
1,086€ / To |
0,0015€ / To |
*Pour convertir les coûts au Go, il suffit de diviser la valeur indiquée par 1000. |
Ce n’est pas fini. Nous n’avons pour l’instant déterminé que le coût des traitements d’après les coûts du matériel à l’achat. Il faut maintenant tenir compte des autres investissements, comme le prix de la connectivité, des licences logicielles, de la maintenance, etc. En partant du principe que nous avons 200 VMs dans notre datacenter virtuel, voici dans le tableau suivant ce que ces dépenses coûtent chaque mois, rapportées à la VM :
Ressource |
Coût sur 3 ans |
Coût annuel |
Coût mensuel |
Coût mensuel par |
Hyperviseur |
70 000€ |
23 333,33€ |
1 944,44€ |
9,72€ |
OS |
60 000€ |
20 000€ |
1 666,67€ |
8,33€ |
Maintenance serveur |
30 000€ |
10 000€ |
833,33€ |
4,17€ |
Connectivité réseau |
15 000€ |
5 000€ |
416,67€ |
2,08€ |
Outil d'administration* |
10 000€ |
3 333,33€ |
277,78€ |
1.39€ |
Maintenance outil* |
6 000€ |
2 000€ |
166,67€ |
0,83€ |
Total des coûts |
191 000€ |
63 666,66€ |
5 305,56€ |
26,52€ par VM |
*Ces chiffres sont par licence. Plusieurs licences peuvent être nécessaires selon la tarification de l'outil d'administration. |
Le calcul du tarif mensuel d’une VM
En résumé, la DSI doit facturer tous les mois aux utilisateurs de machines virtuelles 0,304€ par Go de mémoire, 5,1062€ par cœur, 1,086€ par To de stockage et 26,52€ par VM pour les frais de fonctionnement. La pratique veut que la DSI facture en plus une prestation de 500 à 1000€ pour configurer une machine virtuelle et la mettre en production. Au-delà de l’aspect financier, facturer cette prestation permet de limiter les demandes sans véritable intérêt.
Du côté des métiers, le coût de leur VM va donc dépendre des quantités de mémoire, de cœurs et de stockage qu’ils lui allouent. En général, la DSI propose trois modèles de machine virtuelle : petite taille, taille moyenne, grande taille. Par exemple, la petite VM aura 2 Go de RAM, 2 cœurs et 100 Go de stockage (soit 0,1 To). La VM de taille moyenne aura 4 Go de RAM, 4 cœurs et 200 Go de stockage (soit 0,2 To). La VM de grande taille, enfin, aura 8 Go de RAM, 6 cœurs et 400 Go de stockage (soit 0,4 To). Voici donc le tableau des coûts pour de telles caractéristiques :
VM |
Memoire |
Processeur |
Stockage |
Puissance |
Stockage |
Frais |
Total |
Mise en |
Petite |
2 Go |
2 coeurs |
100 Go |
10,8204€ |
0,1086€ |
26,52€ |
37,449€ |
500€ |
Moyenne |
4 Go |
4 coeurs |
200 Go |
21,6408€ |
0,2172€ |
26,52€ |
48,378€ |
500€ |
Grande |
8 Go |
6 coeurs |
400 Go |
33,0692€ |
0,4344€ |
26,52€ |
60,0236€ |
500€ |
*Le coût d'installation ne sera refacturé que le premier mois. |
Un modèle pour une grande variété de calculs
Les chiffres donnés ici ne sont qu’un exemple simple. Une DSI peut injecter dans ces calculs d’autres facteurs, comme la prise en compte de l’hyper-threading qui double potentiellement le nombre de cœurs, la bande passante du réseau ou, bien entendu les coûts liés aux dépenses énergétiques. Mais on se rendra compte que modifier les facteurs clés – à savoir le prix des serveurs suite à une promotion ou le nombre de VMs que l’on souhaite mettre en production – change radicalement le prix final de la VM.
De plus, cet exemple a été conçu dans l’idée que la DSI rembourse le coût de son infrastructure grâce à la refacturation ; nous avons volontairement exclu toute possibilité de profit. Il faut cependant noter qu’ajouter une marge sur le prix des machines virtuelles n’est pas compliqué et sera même conseillé dans le cas où la DSI devrait commercialiser ses VM pour des acteurs extérieurs à l’entreprise.
Enfin, la DSI gagnerait à refaire régulièrement ses calculs sur la base des améliorations qu’elle apporte à son datacenter, afin de proposer aux métiers une offre qui reste la plus compétitive possible.