❄️Faites hiberner vos VMs ⛄

Peu importe l’architecture IT choisie, celle-ci coûtera toujours « trop cher » aux yeux de clients potentiels. Le Cloud n’échappe pas à cette règle, et demande donc tous les efforts possibles pour maitriser au mieux les coûts des ressources déployées. Microsoft annonce en préversion publique une fonctionnalité dédiée à la mise en veille des machine virtuelles : l’hibernation.

Qu’est-ce que l’hibernation ?

Hibernation : état d’hypothermie régulée, durant plusieurs jours ou semaines qui permet aux animaux de conserver leur énergie pendant l’hiver. Durant l’hibernation, les animaux ralentissent leur métabolisme jusqu’à des niveaux très bas, abaissant graduellement la température de leur corps et leur taux respiratoire, et puisent dans les réserves de graisse du corps qui ont été stockées pendant les mois actifs.

Wikipedia

Azure voit les VMs de la même manière que les mammifères 🤣:

  • Lorsqu’on hiberne une VM Azure : ce dernier échange avec l’OS afin de stocker le contenu de la mémoire de la VM sur le disque du système d’exploitation, puis désalloue la VM.
  • Lorsque la VM est redémarrée et sort d’hibernation : le contenu de la mémoire est retransféré du disque OS vers la mémoire. Cela permet alors de retrouver les applications et processus en cours d’exécution.

Combien coûte une machine virtuelle démarrée ?

Pour rappel, les coûts d’une machine virtuelle avaient déjà été détaillés dans cet article : Comprenez les coûts d’une ressource Azure.

En quelques lignes, une machine virtuelle allumée regroupe les principaux coûts suivants :

  • Le Calcul (CPU/Mémoire): le coût du service calcul va dépendre de sa taille, donc de sa technologie, de son nombre de coeurs et de sa taille de mémoire.
  • Le Stockage (Disques): Bien souvent, de l’information a besoin d’être stockée dans une architecture. Qu’elle soit utilisée par le service de calcul, mise à disposition pour des accès externes ou pour des besoins de sauvegarde, le stockage disposera généralement de 3 variables : taille (Go; To), débit (Mo/sec; Go/sec) et puissance transactionnelle (IOPS).
  • Le Réseau (Carte réseau): Une VM Azure a besoin de communiquer avec des utilisateurs ou d’autres ressources IT. Comme pour le stockage, la tarification réseau repose sur des variables : taille de la bande passante et le volume de données en transition.
  • La licence logicielle (OS): Là encore, la VM Azure sera souvent exploitée par un système d’exploitation et/ou logiciel, dont certains fonctionnent sous licence payante. Dans l’exemple des licences Microsoft, comme Windows Server ou SQL Server, la tarification Azure repose sur la taille du service de calcul, comme le nombre de coeurs des machines virtuelles.

Combien coûte une machine virtuelle éteinte ?

Une machine virtuelle même si les ressources sont désallouées coûte toujours :

  • Le Stockage (Disques) est une resource constamment allouée.
  • Le Réseau (Carte réseau): certaines ressources, comme les adresses IP publiques, peuvent être constamment allouées.

Combien coûte une machine virtuelle en hibernation ?

De la même manière que dans un état désalloué, la machine virtuelle continuera de coûter pour le stockage utilisé par les disques et aussi certaines ressources réseaux.

Pourquoi utiliser l’hibernation au lieu d’éteindre la VM ?

Microsoft nous détaille des scénarios envisageables pour ce mode Pause :

Les postes de travail virtuels, le développement/test et d’autres scénarios où les machines virtuelles n’ont pas besoin de fonctionner 24 heures sur 24 et 7 jours sur 7. Les systèmes dont les temps de démarrage sont longs en raison d’applications gourmandes en mémoire.

Microsoft Learn

Quelles sont les VMs compatibles avec le mode Hibernation ?

Plusieurs limitations à l’hibernation sont ainsi actuellement en vigueur, et vont certainement évoluer par la suite :

  • Ne s’active pas sur des VMs déjà déployées
  • Aucun redimensionnement SKU possible sur des VMs ayant la fonctionnalité hibernation
  • Fonction d’hibernation est non désactivable après l’activation
  • Limitations de compatibilité selon l’OS :
    • Linux (dépourvue de Trusted Lunch) :
      • Ubuntu 22.04 LTS
      • Ubuntu 20.04 LTS
      • Ubuntu 18.04 LTS
      • Debian 11
      • Debian 10 selon noyau
    • Windows (page file hors disque D):
      • Windows Server 2022
      • Windows Server 2019
      • Windows 10/11 (Pro / Enterprise / multisession)
  • Uniquement certains SKUs supportent actuellement l’hibernation :
    • Dasv5-series
    • Dadsv5-series
    • Dsv5-series
    • Ddsv5-series

Important : Comme pour une VM désallouée, le risque est toujours présent lors du redémarrage si la VM hibernée, car elle nécessite des ressources potentiellement non disponibles à l’instant T.

Afin de se faire une meilleure idée sur l’hibernation d’Azure, je vous propose de réaliser un petit exercice combinant 2 exemples de VMs. Nous allons détailler toutes les étapes nécessaires, de la configuration aux tests :

Etape 0 – Rappel des prérequis :

Pour réaliser cet exercice sur l’hibernation de machines virtuelles Azure, il vous faudra disposer des éléments suivants :

  • Un tenant Microsoft
  • Une souscription Azure valide

Etape I – Préparation de l’environnement Azure :

Avant de pouvoir tester cette fonctionnalité toujours en préversion, il est nécessaire d’activer cette dernière sur la souscription Azure concernée.

Pour cela, rendez-vous dans le portail Azure, sur la page des fonctionnalités en préversion de votre souscription, puis effectuez une activation en recherchant celle-ci comme ci-dessous :

Attendez environ une minute que votre demande soit acceptée par Microsoft :

La notification suivante vous indique alors le succès de l’opération :

La suite consiste maintenant à créer une première machine virtuelle compatible et avec l’hibernation activée.

Etape II – Création d’une machine virtuelle compatible :

Pour cela, rechercher le service Machines virtuelles sur le portail Azure :

Cliquez-ici pour commencer la création de la première machine virtuelle :

Renseignez les informations de base relatives à votre VM en choisissant bien une image OS Windows 11 Pro, puis cliquez ici pour afficher les tailles de VMs :

Choisissez la taille de votre VM parmi l’une des séries suivantes :

  • Dasv5-series
  • Dadsv5-series
  • Dsv5-series
  • Ddsv5-series

Si la case d’hibernation est toujours grisée, attendez encore 10-20 minutes avant de retenter l’opération de création :

Si la case d’hibernation est disponible, cochez celle-ci, définissez un compte administrateur local, bloquer les ports entrants, cochez la case concernant le droit de licence, puis cliquez sur Suivant :

Aucune modification n’est à faire sur cet onglet, cliquez sur Suivant :

Créez un nouveau réseau virtuel, retirez l’adresse IP publique, puis cliquez sur Suivant :

Décochez l’extinction automatique de la machine virtuelle, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création de la première VM, puis attendez environ 3 minutes :

Une fois le déploiement terminé, cliquez-ici pour consulter votre première machine virtuelle :

Consultez l’extension automatiquement installée sur votre VM pour rendre fonctionnel l’Hibernation d’Azure :

Cliquez-ici pour déclencher le déploiement du service Azure Bastion :

Attendez environ 5 minutes qu’Azure Bastion soit déployé pour continuer cet exercice :

La notification suivante vous indique alors le succès de la création d’Azure Bastion :

Notre première machine virtuelle est enfin prête. Afin de bien mesurer l’impact de l’hibernation d’Azure, connectons-nous à la VM pour y ouvrir différents programmes.

Etape III – Test de l’hibernation :

Ouvrez une session de bureau à distance via Azure Bastion en utilisant les identifiants administrateurs renseignés lors de la création de la VM :

Attendez que la session Windows 11 s’ouvre avec le compte local :

Cliquez sur Suivant :

Cliquez sur Accepter :

Ouvrez plusieurs applications sans enregistrer les travails effectués :

Rendez-vous sur la page Azure de votre machine virtuelle, puis cliquez sur Hiberner :

Confirmez votre choix en cliquant sur Oui :

Attendez environ 1 minute :

La session ouverte via Bastion se retrouve alors automatiquement déconnectée, cliquez sur Fermer :

La notification suivante vous indique alors le succès de l’opération d’hibernation :

Un nouveau statut apparaît alors sur votre première machine virtuelle :

Afin de redémarrer la première VM, cliquez-ici :

Attendez environ 1 minute que la première VM soit redémarrée :

Réouvrez à nouveau une session via Azure Bastion avec les mêmes identifiants :

Constatez la réapparition des applications ouvertes avec les travails non enregistrés :

Cette première étape nous montre la facilité de mise en place de l’hibernation et l’intérêt potentiel pour les charges de travail variables ou discontinues.

Continuons cet exercice avec une seconde machine virtuelle créée cette fois-ci sans l’option d’hibernation.

Etape IV – Création d’une machine virtuelle incompatible :

Renseignez les informations de base relatives à votre seconde VM en choisissant bien une image OS Windows 11 Pro, puis en ne cochant pas la case hibernation :

Une fois la seconde VM créée, vérifiez que la fonction Hiberner est bien grisée pour celle-ci :

Ouvrez la page Azure du disque OS de celle-ci afin de créer un snapshot de ce dernier :

Renseignez les informations de base relatives à votre snapshot, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création du snapshot, puis attendez environ 1 minute :

Une fois le déploiement terminé, cliquez-ici pour consulter le snapshot de votre disque :

Cliquez-ici pour créer un nouveau disque OS à partir de ce snapshot :

Renseignez les informations de base relatives à ce nouveau disque OS, puis lancez la validation Azure :

Une fois la validation Azure réussie, lancez la création du disque OS, puis attendez environ 1 minute :

Continuons avec une troisième machine virtuelle créée cette fois-là avec l’option d’hibernation :

Arrêtez cette troisième machine virtuelle via la fonction d’arrêt :

Confirmez votre choix en cliquant sur Oui :

Toujours sur cette troisième VM, allez sur la page des disques afin de basculer vers le disque précédemment généré depuis le snapshot de la seconde VM :

Choisissez le seul disque disponible et issu du snapshot, puis cliquez sur OK :

La notification suivante vous indique alors le succès de l’opération de bascule des disques OS :

Redémarrer la troisième machine virtuelle Azure :

Une fois redémarrée, vérifiez la présence de la fonctionnalité Hiberner :

Consultez l’extension installée sur votre troisième VM :

Afin de vérifier que l’hibernation Azure fonctionne bien sur cette nouvelle VM issue du snapshot de la seconde, connectons-nous à celle-ci pour y ouvrir différents programmes.

Etape V – Test de l’hibernation :

Ouvrez une session de bureau à distance via Azure Bastion en utilisant les identifiants administrateurs renseignés lors de la création de la seconde VM :

Attendez que la session Windows 11 s’ouvre avec le compte local :

Cliquez sur Suivant :

Cliquez sur Accepter :

Ouvrez une ou plusieurs applications sans enregistrer les travails effectués :

De retour sur la page Azure de votre troisième machine virtuelle, puis cliquez sur Hiberner :

Confirmez votre choix en cliquant sur Oui :

Encore une fois, la session ouverte via Bastion se retrouve automatiquement déconnectée, cliquez sur Fermer :

La notification suivante vous indique alors le succès de l’opération d’hibernation :

Le statut apparaît alors sur votre troisième machine virtuelle, cliquez-ici afin de la redémarrer :

Attendez environ 1 minute que la VM soit redémarrée :

Réouvrez à nouveau une session via Azure Bastion avec les mêmes identifiants :

Constatez là encore la réapparition des applications ouvertes et les travails non enregistrés :

Conclusion

La fonction d’hibernation marque ici une vraie différence dans la gestion offline de machine virtuelle. Plus pratique que l’arrêt complet dans bon nombre de situations, l’hibernation pourrait devenir la norme en s’intégrant de la manière native dans beaucoup de service Azure, comme les groupe de machines virtuelles identiques ou encore Azure Virtual Desktop.

Attendons de voir la suite 😎💪

Optimisez votre Azure : 1/4 – Les Coûts

Me revoilà après plusieurs semaines d’absence. Pour vous expliquer simplement, la New Commerce Expérience (NCE) de Microsoft, aussi détaillée dans mon blog sur cet article, nous a beaucoup sollicité chez Tech Data. De plus, j’ai eu la bonne idée de me casser des doigts, ce qui ne m’a pas empêché de travailler, mais m’a demandé quelques efforts pour le clavier. Tout ça pour vous dire que ceux ne sont que des petits soucis ????.

Je suis donc très content de commencer l’écriture d’une nouvelle série d’articles, dédiée l’optimisation de votre environnement Cloud. A travers ces derniers, je souhaite vous parler d’optimisations d’architectures Azure déjà en production sur 4 axes :

  • Coûts : Analyse pure et simple des coûts Azure pour comprendre la répartition des sommes dépensées.
  • Sécurité : Sans rentrer dans les détails maintenant, la sécurité reste toujours un axe d’amélioration constant.
  • SLAs : Mis de côté par moment, cet indice doit être pris en compte lors de l’établissement de services auprès des clients finaux ou lors d’appels d’offre.
  • Performances : Travailler avec les outils de monitoring Azure pour traquer les ressources Azure sous-utilisées, et donc inutilement coûteuses. Mais aussi de manière inverse, mettre en lumière le manque de performances pouvant justifier un changement d’approche.

Je me doute qu’il existe encore d’autres axes, manières ou approches pour retravailler une architecture Cloud. Gardez toujours en tête que toutes les solutions Cloud sont des produits en évolutions constantes ????.

Axe 1 : Les coûts

J’ai choisi cet axe dans mon premier article car c’est pour moi une demande récurrente dans beaucoup de projets Cloud sur lesquels je travaille :

Comment faire la même chose pour moins cher ?

Cette question n’a rien d’idiote ou de contre-productive. Gardez toujours l’esprit ouvert sur l’arrivée de nouveaux services Azure, ou sur la création par Microsoft de nouvelles offres aux grilles tarifaires encore plus attrayantes.

Pour rester dans le concret, mon approche repose simplement sur plusieurs questions :

  • Le projet Azure dispose-t-il d’une estimation de tarif pouvant servir de référence ?
  • Le projet Azure a-t-il fait l’objet d’une phase de preuve de concept (POC) ?
  • Ai-je créé les bonnes ressources pour les bons besoins ?
  • L’analyse des coûts est-elle faite de manière périodique ?
  • Ai-je consulté récemment Azure Advisor ?
  • Les ressources Azure en place ont-elles été optimisées contractuellement ?

Le projet Azure dispose-t-il d’une estimation de tarif pouvant servir de référence ?

Pas de mystère, une maison se construit avec un plan et un budget des matériaux nécessaires à sa construction. Microsoft propose l’outil de calcul, Azure Pricing Calculator, pour établir au plus près les coûts d’une infrastructure Azure. Gardons en tête qu’il ne s’agit que d’une estimation de tarif, basée sur les données entrées par l’utilisateur.

Pour rappel, cet outil vous permet de calculer le coûts via la mise à disposition d’un catalogue proposant un grand nombre de ressources Azure, elles-mêmes paramétrables.

Tous les projets sur Azure devraient passer par cette étape. L’idée n’est pas de viser la perfection tarifaire ou encore d’afficher le tarif le plus attractif possible, mais bien d’en faire sortir un ou plusieurs scénarios pour ensuite les comparer à d’autres méthodes d’architecture.

Dans le cas d’une analyse de coûts sur une architecture Azure déjà en place, je trouve pertinent de comparer l’offre initiale faite sur Azure Pricing Calculator avec la réalité de consommation de la souscription Azure.

Le projet Azure a-t-il fait l’objet d’une phase de preuve de concept (POC) ?

Après l’estimation des coûts et avant la mise en production, une phase de preuve de concept vous permet aussi d’aborder l’aspect financier. Le POC est principalement vu comme une étape de validation de faisabilité technique. Mais elle apporte aussi des indices de viabilité économique de l’architecture.

A ce titre, Microsoft recommande vivement cette étape pour l’estimation de certains coûts variables (bande passante sortante, transactions de stockage, volume de stockage ( sauvegardes ou journaux et métriques, …)). Cette étape est donc une composante dans le processus de calibrage financier.

Doit-on forcément dépenser de l’argent pour un POC Azure ?

Pas nécessairement. Microsoft propose plusieurs offres : des crédits Azure ou encore des conseils d’ingénieurs Microsoft Cloud. De nombreux programmes Azure propose une intégration de nouveaux projets Cloud sous différentes formes. Voici quelques exemples :

Microsoft for Startups : conçu pour vous aider à vous développer à votre propre rythme, vous pouvez débloquer jusqu’à 150 000 $ de crédits et du temps supplémentaire pour construire au fur et à mesure de la croissance de votre entreprise.

FastTrack for Azure : programme d’assistance technique qui aide à concevoir et à déployer rapidement et efficacement des solutions cloud. Il comprend des conseils personnalisés d’ingénieurs Azure pour fournir des pratiques éprouvées et des conseils en matière d’architecture.

Je pense aussi au statut partenaire, gold ou silver chez Microsoft. Ce dernier propose lui aussi de disposer de conseils d’ingénieurs avant-ventes pour choisir les bonnes ressources.

A-t-on créé les bonnes ressources pour les bons besoins ?

Cette question est déjà présente durant la phase de POC, mais elle doit être périodiquement reposée pendant toutes les phases de vie de l’architecture :

  • Une ressource créée temporairement est-elle bien systématiquement détruite ?
  • Les opérations de tests sont bien cataloguées comme telles et retirées des services Azure après coup ?
  • La région Azure utilisée est-elle en adéquation avec le projet et aux plus proches des utilisateurs finaux ?

Beaucoup de questions du même genre existent. La solution simple à ces questions est et reste la pratique de l’inventaire périodique des ressources Azure. Au risque d’en décevoir certains, je recommande simplement de dérouler la liste depuis le portail Azure afin de toutes les passer en revue.

Afin rendre cet exercice le plus rapide et efficace possible, le maintien à jour d’une cartographie facilite grandement l’analyse :

L’analyse des coûts est-elle faite de manière périodique ?

Comme l’inventaire des ressources Azure, son intérêt repose également sur sa récurrence. Mettre des alertes de coûts Azure est une bonne chose, mais elles ne sont déclenchées qu’après coup et ont toujours un risque d’être ignorées. Microsoft propose là encore un outil gratuit, intégré et très facile d’utilisation : Azure Cost Management.

Gardez en tête que les consommations réalisées sont affichées avec 24 heures de décalage. Malgré cela, l’outil propose des affichages réalisant des synthèses et des vues granulaires pour comprendre tous les coûts.

L’analyse des mois affiche la linéarité ou non des dépenses.
Comme dans mon exemple, l’utilisation des étiquettes est fort pratique dans cet outil.

Envie d’en savoir plus sur ses fonctionnalités ?

Merci Adam ????.
Rapport hebdomadaire de la consommation Azure reçu par mail.

Ai-je consulté récemment Azure Advisor ?

Voici une définition précise du service :

Azure Advisor est un conseiller personnalisé basé dans le cloud qui décrit les meilleures pratiques à suivre pour optimiser vos déploiements Azure. Il analyse votre télémétrie de configuration et d’utilisation des ressources, puis recommande des solutions qui peuvent vous aider à améliorer la rentabilité, les performances, la fiabilité (anciennement appelée haute disponibilité) et la sécurité de vos ressources Azure.

Microsoft Doc

Azure Advisor est le principal outil disponible sur Azure qui regroupe les axes cités au début de cet article. Pas besoin de connaissances précises pour commencer l’optimisation via cet outil car il analyse l’architecture pour vous !

Un clic dans la partie Coût vous affiche des recommandations actualisées régulièrement :

La seconde ligne de ce tableau nous montre une analyse télémétrique de l’utilisation CPU de la machine virtuelle. Autrement dit, Microsoft lui-même vous conseiller de prendre une taille de machine virtuelle plus petite et donc moins chère vous.

Pourquoi demander à un client de prendre un produit financièrement moins intéressant ?

Pour garantir des revenus stables et sur une plus longue période. Cet outil est disponible dans le menu de gauche des raccourcis Azure et doit être, comme le Cost Management, visité régulièrement.

Les ressources Azure en place ont-elles été optimisées contractuellement ?

Quel est le fond de ma pensée derrière cette phrase ?

Je veux bien sûr parler d’engagement. Saviez-vous qu’il vous est possible de vous engager pour des ressources Azure sur plusieurs années ? Le cloud est souvent perçu comme une dépense IT à la demande (Capex vs Opex) :

Mais Azure propose aussi des formules beaucoup plus avantageuses si l’on envisage la durée de son besoin sur une période plus longue.

Le tableau ci-dessus affiche des instances réservées pour des machines virtuelles. Comment fonctionne une instance réservée ? Il faut simplement voir celle-ci comme une place de parking, louée pour un ou trois ans chez Microsoft :

Comme le montre ce schéma, la taille de l’instance réservée doit être en relation avec la taille de la ressources Azure.

Cet engagement n’est pas uniquement disponible que pour les machines virtuelles. Microsoft propose cette formule pour beaucoup d’autres services Azure. Le rabais de réservation s’applique automatiquement à l’utilisation des ressources qui correspondent aux instances réservées.

L’engagement n’est pas uniquement présent pour les ressources Azure. Par exemple, les licences Microsoft sont aussi optimisables sur Azure. Je pense avant tout à Windows Server ou encore à SQL Server.

Qu’est-ce qu’Azure Hybrid Benefit ?

Azure Hybrid Benefit est un avantage en matière de licences qui vous permet de réduire considérablement les coûts d’exécution de vos charges de travail dans le cloud. Son fonctionnement consiste à vous autoriser à utiliser vos licences Windows Server et SQL Server compatibles sur Azure.

Il est donc possible d’acheter des licences en souscriptions annuelles ou pluriannuelles. Les économies représentent des sommes non négligeables.

Conclusion

Je suis content de vous parler de l’aspect financier des architectures Azure. Cela représente une partie non négligeable de mon travail au quotidien.

Comme je l’ai expliqué dans cet article, l’aspect Coût est systématiquement abordé durant toutes les phases d’un projet IT. Et il n’est pas rare de changer de stratégie en fonction de l’évolution de ce dernier.

Dans mon prochain article de la série Optimisez votre Azure, nous nous intéressons plus aux basiques de la sécurité ????.