Un peu d’hygiène dans mon stockage Azure

Fonctionnalité basique, sous la forme d’un PAAS, le compte de stockage Azure n’a pas toujours le (bon) traitement qu’il mérite.

J’ai déjà présenté en détail ce service managé dans une série en 5 articles (https://www.linkedin.com/pulse/compte-de-stockage-azure-il-y-beaucoup-%25C3%25A0-dire-part-15-thierry/?trackingId=5hJhxZBzQ2myyyfy0dU7ZA%3D%3D) en essayant de faire un tour assez complet sur le sujet. Pourtant, je voulais revenir sur un partie assez intéressante qui concerne deux options :

  • L’inventaire
  • Le cycle de vie

Car il se passe sur les comptes de stockage Azure ce qu’il se passe (souvent) sur le stockage on-prem, il est facile d’ajouter des données, beaucoup plus difficile d’en supprimer même si elles ne servent plus et ne serviront plus.
Même si le prix du stockage n’est pas exorbitant, ne pas s’occuper du volume stocké n’est pas une bonne idée (https://azure.microsoft.com/fr-fr/pricing/details/storage/blobs/?WT.mc_id=AZ-MVP-5003759).

Parce que ce n’est pas forcément la peine de payer pour rien, mais aussi parce que ce doit être bon pour la planète (en tous les cas, j’imagine que ce doit être bon) de ne pas conserver des Peta de données pour ne rien en faire. A ce sujet et pour une analyse fine, un dashboard PowerBI proposé par Microsoft (https://appsource.microsoft.com/en-us/product/power-bi/coi-sustainability.emissions_impact_dashboard?tab=Reviews).

Première étape, réaliser un inventaire pour mieux connaitre l’état de ses comptes de stockage. L’inventaire, c’est un ensemble de règles (jusqu’à 100 règles) pour analyser finement son stockage. Et il y a de tout pour pousser aller loin de cette connaissance du contenu. Comme le montre cette impression d’écran partielle.

Je renvois sur la doc éditeur pour le champ fields, un ensemble exhaustif sur ce que permet ce filtre : https://learn.microsoft.com/fr-fr/azure/storage/blobs/blob-inventory#custom-schema-fields-supported-for-blob-inventory
On retrouve dans ces filtres du très classique, comme les champs Last modified ou Last access time, mais on y trouve également des informations sur l’immutabilité des données avec les champs Immutability policy until date ou Immutability policy mode. Chacune / chacun trouvera dans ces nombreux filtres tous ce qui est nécessaire pour réaliser un inventaire qualitatif. Franchement, rien à dire sur les possibilités, je ne vois pas ce qu’il peut manquer pour aller + loin.

En sortie, du CSV ou de l’Apache Parquet, au choix.

Une fois ces données consolidées, il faut trouver du temps pour faire une analyse de contenu. Ce n’est pas toujours le plus facile, mais qu’elles autres solutions que celle là ? Je n’en connais pas, mais n’hésitez pas à partager votre expérience en commentaires.

Seconde étape, le Lifecycle management.
Comme présenté ci-dessus dans le tableau des prix, il y a des différences de prix entre les différents niveaux de stockage. Ce qu’il faut retenir de ce tableau, c’est tout d’abord la redondance du stockage. Elle est à ce niveau de prix dans un mode de redondance local appelé LRS. C’est le niveau le plus bas en terme de redondance et de prix, les données sont redondées 3 fois sur un même datacenter mais sur des baies différentes.
Le lien vers la calculatrice est dispo pour réaliser des simulations dans un autre mode de stockage et en parcourant toutes les options liées à la facturation beaucoup plus complète que ce que laisse penser le tableau joint . Ce que l’on voit pour la partie LRS (et c’est un ratio équivalent pour les autres niveaux de redondance), c’est la différence entre le stockage premium, le plus performant en terme d’accès et le stockage archive le moins performant en terme d’accès.
0,15 $ du Go => 0,00099 $ du Go.

Ce sont deux extrêmes qui illustrent parfaitement ce que peut apporter la fonctionnalité Lifecycle management.
Que doit devenir une donnée qui n’est jamais accédée, que doit devenir une donnée qui l’est très peu, que dois devenir une donnée qui est accédée constamment ?
Et ce n’est pas du tout la même chose ! Non seulement, ce n’est pas la même chose, mais c’est en plus une gestion assez fine qui doit être choisie.
Ci-dessous, une vue sur ce que propose le cycle de vie, première écran, les règles de base …

… second écran, les règles avancées.

La liste des combinaisons est presque infinies, mais voici quelques pistes et quelques retours d’expériences :

  • Si le compte de stockage n’est pas typé dès le départ (tout et n’importe quoi à l’intérieur), il est assez difficile de créer des règles même avec le Filter set. C’est une bonne idée de commencer à travailler la cohérence du contenu de ses comptes de stockage.
  • Le passage hot => cool est le plus simple, il divise le prix par deux sans dégrader significativement l’expérience de stockage.
  • Ne pas hésiter à utiliser le Delete pour des données qui n’ont pas une importance vitale dans l’entreprise.
  • Utiliser le mode Archive … mais pas n’importe comment !

Et c’est cette partie qui pour moi est la plus compliquée et pour laquelle je n’ai jamais vraiemnt trouvé la bonne solution. Pourtant, avec un coût ramené à 0,00099 $ du Go, je me suis posé la question de nombreuses fois. Archive, c’est un peu la formule magique, à deux détails prêt. Le coût de réhydratation de la données et le temps de réhydratation. C’est à dire le passage d’une donnée stockée « hors connexion » sur bande (je pense qu’il s’agit de ça), à une donnée en ligne. Voici le niveau comme expliqué par l’éditeur :

Niveau Archive : un niveau hors connexion optimisé pour le stockage des données rarement sollicitées, sous des conditions de latence flexibles, de l’ordre de quelques heures. Les données dans le niveau Archive doivent être stockées pendant un minimum de 180 jours.

Ce que l’on comprend, c’est qu’à ce niveau de prix, on accepte d’attendre que la donnée soit remise en ligne, même si cela prend quelques heurtes. C’est normal à mon sens et tout à fait acceptable. Mais ce que l’on ne comprend pas forcément dans ce point, c’est qu’il faut réhydrater la donnée avant de la consulter.

Je m’explique.

Si mes fichiers ne sont pas correctement identifiés / datés, je n’ai pas de prévisualisation me permettant de sélectionner ceux que je souhaite vraiment récupérer. Je m’appuie uniquement sur le nom de mon fichier. Et ce n’est pas si facile. Je ne compte pas les fois que j’ai ouvert plusieurs fichiers sur mon poste de travail avant de trouver le bon. Et là, c’est un peu pareil.
Je peux donc demander une réhydratation, attendre quelques heures, consulter le résultat de ma demande … et me rendre compte que ce n’est pas ce que je souhaitais récupérer. Et réhydrater, ce n’est pas seulement attendre, c’est aussi un coût faible mais un coût tout de même.

Je n’ai pas encore trouvé de process ou de cas d’usage permettant de tirer de gros avantages de ce mode de stockage. C’est donc pour l’instant une option que je ne choisis pas, même si je suis certain qu’il y a beaucoup à tirer de ce mode de stockage hyper économique.

Je suis très intéressé par vos retours et conseils sur ce sujet !

Laisser un commentaire