18 décembre 2024
– 3 minutes de lecture
Architecture
Olivier Constant
Senior Manager Architecture
Décryptage Expertise : Architecture
18 décembre 2024
– 3 minutes de lecture
Architecture
Olivier Constant
Senior Manager Architecture
Parlons succès
18 décembre 2024
– 3 minutes de lecture
Architecture
Olivier Constant
Senior Manager Architecture
Envie d'intégrer l'intelligence artificielle à vos processus métiers ?
Ne confondez plus jamais data mesh, event mesh et service mesh
18 décembre 2024
– 3 minutes de lecture
Architecture
Thomas Jardinet
Manager Architecture
GÉRER SES DÉPENSES CLOUD: UNE INTRODUCTION AU FINOPS
12 décembre 2024
Architecture
Samira Hama Djibo
Consultante
Dans cette ère où les infrastructures Cloud et on premise se côtoient et se toisent, le critère de la rentabilité est déterminant. Cependant là où le Cloud nous promet des économies à petite mais surtout à grande échelle, on peut parfois tomber sur des mauvaises surprises une fois la facture reçue.
Quelle que soit la taille de l’architecture Cloud, on n’est jamais vraiment à l’abri d’un dépassement budgétaire inattendu. Mais en appliquant quelques principes simples du FinOps, on peut arriver à facilement minimiser ce risque.
Comment donc suivre efficacement ses dépenses ? Et comment optimiser financièrement son infrastructure Cloud ?
Nous allons ici nous appuyer sur le Cloud Provider AWS pour étayer nos propos ainsi que nos exemples.
Une des particularités d’une infrastructure Cloud, c’est qu’il est très facile de commissionner des ressources. Prenons a contrario une architecture on-premise: pour commissionner un serveur physique et installer des machines virtuelles, ce n’est souvent pas une mince affaire. Il faut choisir un fournisseur, lancer la commande et souvent attendre plusieurs mois sans compter d’éventuels problèmes logistiques.
De plus, la commande d’un serveur on-premise est souvent conditionnée par une étude minutieuse des caractéristiques nécessaires du serveur en question et une étude de budget à valider, réétudier etc.
En comparaison, la commande d’un serveur avec les mêmes caractéristiques sur le Cloud se fait en quelques clics, même pour un non-initié, et la disponibilité est immédiate.
La promesse du Cloud, c’est de pouvoir héberger tout aussi bien une architecture basique (comme par exemple un site web statique) qu’ une architecture extrêmement complexe répondant à des besoins spécifiques et des contraintes exigeantes. L’un des principaux clients d’AWS, l’entreprise Netflix responsable de 15% du trafic internet mondial, stocke jusqu’à 10 exaoctets (10 millions de téraoctets) de données vidéo sur le service Amazon S3. Ce chiffre inclut les copies stockées dans différentes régions afin d’assurer la haute disponibilité du service ainsi que sa résilience en cas de panne dans un des data centers d’AWS.
Une telle variance des offres et des possibilités que permettent le Cloud rend facile d’allouer des ressources largement supérieures à celles nécessaires, ou souscrire à des options qui, normalement conçues pour des cas très précis, font augmenter votre facture de façon apparemment démesurée..
Qu’on utilise l’interface graphique du Cloud Provider, ou alors un outil d’Infrastructure As Code comme Terraform ou CloudFormation, sans la maîtrise suffisante au moment de l’allocation des ressources, ou par simple erreur humaine, on peut réquisitionner des ressources largement au-dessus de nos besoins, et donc se faire surprendre par une facture exorbitante.
Pour illustrer ce point, prenons par exemple l’allocation d’une petite base de données via l’interface graphique d’AWS. Pour les mêmes caractéristiques de vCPU et de RAM, en choisissant par erreur, ou en méconnaissance de nos besoins réels, un stockage io2 au lieu de gp2, on multiplie tout simplement la facture par 10 !
Pour bien maîtriser les coûts, il faut donc tout d’abord une bonne maîtrise des termes techniques, du vocabulaire spécifique au Cloud Provider et ne pas se perdre dans des options trop avancées.
Une fois cela pris en compte, il faut noter que ces mêmes cloud providers mettent à disposition des outils qui permettent de facilement détecter et limiter l’impact d’erreurs de jugement ou d’implémentation.
AWS a mis en place le Well-Architected Framework qui sert de guide pour la conception d’applications dotées d’infrastructures sûres, hautement performantes, résilientes et efficientes.
Le framework est basé sur six piliers: excellence opérationnelle, sécurité, fiabilité, efficacité de la performance, optimisation des coûts et durabilité.
Le pilier Optimisation des coûts qui nous intéresse le plus ici est axé sur l’évitement des coûts inutiles.
A toutes les échelles, des services sont mis en place par AWS pour faciliter l’implémentation de ce pilier. Leur connaissance et leur utilisation permettent sans faute d’optimiser le coût de son architecture.
Nous allons voir ici les approches de base qui permettent de s’assurer à un cadrage et une compréhension exhaustive de sa facture cloud et en amont l’optimisation des ressources allouées.
Il existe pour cela trois approches complémentaires:
Par exemple, cela peut se traduire par le fait de faire appel à de l’auto-scaling qui est la possibilité d’ajouter et supprimer des instances d’une ressources (scalability) ou augmenter et diminuer la taille de ces instances (elasticity) en fonction de l’utilisation en temps réel qui en est faite. Lorsque la charge de travail augmente, plus de ressources sont allouées, et lorsqu’elle diminue, une partie des ressources allouées est libérée.
.
Voici un autre exemple de rightsizing: Dans un projet les environnements de développement et de test sont généralement utilisés uniquement 8h par jour pendant la semaine de travail. Il est donc possible d’arrêter ces ressources lorsqu’elles ne sont pas utilisées pour réaliser des économies potentielles de 75 % (40 heures contre 168 heures).
Voici quelques pratiques et services incontournables suivant ces différentes approches :
C’est une solution de Cost Analysis Dashboard qui permet de voir en temps réel sur une certaine période le total des dépenses par services utilisés.
Exemple d’un Cost Analysis Dashboard
AWS Budgets permet de créer des Budgets de dépense et de les exporter notamment sous forme de rapports. Des alertes sont levées et des emails envoyés lorsque les budgets sont dépassés.
Grâce au machine learning, AWS peut détecter une augmentation anormales des dépenses qu’il serait plus difficile de repérer manuellement.
Parmi les services de gestion de coûts proposés par AWS, on voit que ceux présentés ici, gratuits et mis en place par défaut, permettent déjà à eux trois d’obtenir une vue assez synthétique de ses dépenses et d’être alerté en cas de potentielles anomalies.
Un des principes de base qu’il s’agit de sécurité est la limitation au maximum des accès aux ressources au strict minimum et uniquement aux personnes accréditées (principe du RBAC). Ce même principe permet de réserver la création de ressources sensibles qui peuvent, comme on l’a vu, faire rapidement monter la facture aux personnes qui sauront faire bon usage de ces droits..
Que ce soit cloud ou hors cloud, la règle est la même : le least privilege access, c’est-à-dire limiter les droits au strict minimum, en fonction du rôle, du groupe d’appartenance, et même pour les grosses organisations en fonction du département ou du sous compte AWS depuis laquelle la requête est faite.
En plus de monitorer et contrôler ses dépenses, le cloud offre plusieurs possibilités d’optimisation des coûts dont voici un exemple.
Prenons comme exemple une boite de finance qui stocke les dossiers de leurs clients, tout comme notre géant Netflix sur le service de stockage Amazon S3.
Au début de la procédure, les dossiers sont consultés très souvent, plus le dossier avance, moins ils sont consultés, une fois clôturés ils sont archivés. Chaque année les services d’audit consultent les dossiers archivés. Après 10 ans, ils ne sont pratiquement jamais consultés mais doivent être conservés pour des raisons légales.
AWS met en place des classes de stockage en fonction de la fréquence d’utilisation des fichiers permettant ainsi de réduire les coûts sur les fichiers qui sont plus rarement consultés.
Ainsi nous mettrons les les dossiers en cours dans la classe S3 standard, puis dans la classe S3 Standard Infrequent Access au fur et à mesure qu’ils sont moins consultés. Une fois le dossier clôturé, nous le déplaçons dans une des classes S3 Glacier à accès instantané ou flexible. Puis une fois la période d’Audit passée, nous les archivons finalement dans la classe S3 Deep Glacier aux coûts de stockage les plus bas.
A noter que nous pouvons également déposer les fichiers directement dans la classe S3 Intelligent Tiering dans laquelle AWS se chargera automatiquement de déplacer les fichiers dans les classes les plus rentables en fonction de l’utilisation réelle constatée.
Par exemple, pour la région Europe(Irlande), les tarifs en fonction des classes sont les suivants :
S3 Standard | S3 Infrequent access | S3 Glacier | S3 Deep Archive | |
Prix par GB/mois | 0,021€ | 0,011€ | 0,0033€ | 0,00091€ |
Frais de récupération des fichiers ? | Non | Non | Oui | Oui |
En analysant le besoin ou en faisant appel aux Intelligent Tiering d’AWS, nous pouvons donc économiser jusqu’à 100% du prix standard de stockage / Gb et par mois pour les fichiers les moins consultés.
Nous avons vu ici une partie des optimisations financières rendues possibles en faisant levier de la puissance du Cloud. Les labs du Well-Architected Framework mis fournis par AWS permettent de voir de façon concrète les voies d’optimisation des coûts présentées par le Cloud provider lui-même.
En plus de l’application des principes essentiels vu dans cet article, vous pourrez creuser facilement le sujet à cette adresse.
En guise de conclusion, je me permets d’appuyer sur le fait que la connaissance à minima basique des principes fondamentaux du FinOps comme décrits dans cet article est essentielle autant au développeur qu’à l’architecte en passant par le management et la finance. C’est uniquement cette collaboration étroite qui permettra une surveillance à toutes les échelles des coûts engendrés et une optimisation financière d’un projet Cloud.
Optimiser la gestion de vos données grâce à la purge et l’archivage
3 décembre 2024
Pascal Ly
Consultant Senior Architecture
A l’air d’un monde ultra-connecté, toute moyenne ou grande entreprise envisage d’adopter ou exploite déjà au moins une nouvelle technologie telle que l’Internet des objets (IoT), l’Intelligence artificielle (IA), ou encore le streaming. Leur point commun : la gestion des données générées.
Afin de garantir la performance des systèmes, réduire les coûts de stockage, et respecter les obligations réglementaires, il est nécessaire de mettre en œuvre des solutions avancées et appliquer des bonnes pratiques pour absorber et résorber l’augmentation exponentielle des volumes de données.
C’est dans ce contexte que la purge et l’archivage de données jouent un rôle déterminant.
L’objectif de cet article est d’explorer les stratégies efficaces, les outils à implémenter pour soutenir ces activités, et énoncer les avantages de ces deux processus dans une approche de gestion durable des données.
Avant d’aborder les meilleures pratiques, il nous semble indispensable de clarifier ces deux notions fondamentales.
Ces termes sont couramment employés dans le quotidien professionnel du monde IT, mais que signifient-ils ?
La purge physique de données (à différencier de la purge logique) est une opération qui a pour objectif de supprimer définitivement des données obsolètes ou inutilisées afin d’alléger la charge sur les systèmes.
L’archivage de données fait référence à la collecte et au transfert des données vers une plateforme sécurisée pourvue des capacités d’accessibilité et d’intégrité des données.
Bien que distincts, ces deux processus sont complémentaires, mais dans quel intérêt ?
Une stratégie de purge et d’archivage des données ne se limite pas à simple exercice technique !
Au contraire, ces pratiques apportent de nombreux avantages :
Réduire les données, à plus forte raison en Production, améliore la rapidité des traitements.
Diminuer les données actives permet d’optimiser l’usage des ressources matérielles.
Conserver les données essentielles garantit le respect des normes en vigueur (ex : RGPD, HIPAA) et les politiques internes.
Adapter la durée de conservation et la disposition des données favorise leur valeur et leur utilité.
Ces actions tendent donc à améliorer l’efficacité opérationnelle lorsqu’elles sont réalisées de manière proactive.
Quelles actions appliquer à travers ces deux processus afin d’atteindre les résultats mentionnés plus haut ?
Comment reconnaître des données obsolètes ou inutilisées ?
Elles correspondent habituellement à des données redondantes, des fichiers temporaires ou des données anciennes qui n’ont plus de valeur opérationnelle.
Le responsable de l’application, les équipes Projet et Métier doivent tous contribuer à cet exercice. En effet, chacun détient une part de connaissance dans les données interprétées et générées.
Suivant la difficulté, l’identification de ces données peut être automatisée grâce à des outils d’analyse, qui repèrent les fichiers rarement voire jamais consultés.
Une fois les données obsolètes identifiées, il convient de définir des règles précises pour la purge.
A quoi correspondent les règles ?
Elles déterminent la durée de conservation des données avant de pouvoir être supprimées, en fonction de critères comme leur date de création, leur dernière utilisation ou leur classification (données sensibles, transactionnelles, etc.).
Ces règles sont alignées avec les exigences de rétention légale, réglementaire ou interne. Il est donc indispensable de réaliser ce travail avec les entités Légale et Juridique, voire la direction Financière de votre entreprise.
Après avoir défini les règles, la purge peut être activée.
Ce processus doit être testé (étape importante car certaines actions pourraient être irréversibles !), puis réalisé avec la mise en œuvre d’une traçabilité afin de conserver un historique des données supprimées.
Une étape de validation finale est souvent nécessaire et conseillée pour s’assurer que des données essentielles n’ont pas été accidentellement supprimées.
L’automatisation de la purge peut inclure des étapes de vérification pour garantir l’intégrité des systèmes après l’exécution (par exemple, à travers l’interprétation des tags attribués aux données qui contribue au pilotage de la qualité de la donnée).
Pour les données non utilisées mais qui nécessitent une conservation, il convient de les archiver.
L’archivage concerne les données qui ne sont plus essentielles à l’exploitation quotidienne, mais qui doivent encore être conservées pour des raisons légales, historiques ou analytiques.
Cette étape implique de trier les données pour identifier celles qui peuvent être déplacées vers un stockage de longue durée.
Les données non critiques incluent souvent des fichiers inactifs, des logs ou des versions précédentes de documents.
Une fois les données sélectionnées, il est crucial de choisir le bon support d’archivage.
Les options incluent des solutions de stockage en Cloud (par exemple, Amazon S3, Microsoft Azure) ou des solutions physiques comme des serveurs internes ou des bandes magnétiques.
Le choix dépend des exigences en matière de sécurité, de coût et d’accessibilité.
Les données archivées doivent rester consultables en cas de besoin, mais sans impacter les performances des systèmes de Production.
Un plan de rétention doit être mis en place pour gérer la durée de conservation des archives et prévoir leur suppression ou leur migration à terme.
Ce plan doit aussi inclure des processus de restauration des données, garantissant que les informations archivées peuvent être récupérées facilement (attention à la compatibilité des données archivées avec les versions des outils qui permettent de les consulter !) et rapidement en cas de besoin.
Le temps de restauration des archives doit être en phase avec les besoins de mise à disposition des données : audit, analyse historique, etc.
Enfin, une stratégie de test régulier des archives est également recommandée pour assurer leur intégrité sur le long terme.
Plusieurs solutions techniques existent pour soutenir les processus de purge et d’archivage.
Aujourd’hui, de nombreuses solutions sont disponibles sur le marché pour répondre aux besoins spécifiques des entreprises, qu’il s’agisse de supprimer des données obsolètes ou de les archiver dans des environnements sécurisés.
Voici un aperçu des principales technologies utilisées pour ces processus.
Les scripts d’automatisation sont souvent utilisés pour la purge des données stockées sous forme de fichier plat.
Ces scripts peuvent être développés dans des langages comme Python, Bash, ou PowerShell et permettent de planifier la suppression des données obsolètes de manière régulière, tout en minimisant les erreurs humaines.
Ils offrent une grande flexibilité, sont moins coûteux, mais nécessitent des compétences techniques pour leur développement, leur configuration et leur maintenance.
La majorité des systèmes tels que Oracle, SQL Server, ou MySQL intègrent des fonctionnalités de purge automatisée pour interagir avec les bases de données.
Ces outils sur étagère permettent de définir des règles de rétention des données et de planifier la suppression des données dépassant une certaine limite temporelle ou devenues inactives.
Cela aide à maintenir les bases de données à jour, légères et performantes, tout en assurant la conformité aux règles de gouvernance des données.
Enfin, des solutions comme Commvault Data Management, SAP Information Lifecycle Management ou Dell EMC Data Erasure offrent des fonctionnalités avancées pour gérer la suppression des données obsolètes dans les environnements complexes.
Ces outils permettent de s’assurer que la suppression est effectuée de manière sécurisée et traçable, tout en garantissant que les données critiques ne sont pas affectées par inadvertance.
Les entreprises font régulièrement appel à une plateforme de stockage tierce hébergée dans le cloud pour l’archivage des données à long terme.
Par exemple, Amazon S3 (Simple Storage Service), avec ses options comme S3 Glacier ou S3 Glacier Deep Archive, offre des niveaux de stockage à faibles coûts adaptés aux données rarement consultées mais qui doivent rester accessibles en cas de besoin.
S3 permet aussi de définir des politiques de rétention et de restauration faciles à gérer, garantissant la sécurité des données archivées.
Le fournisseur Azure propose quant à lui une solution similaire avec Azure Blob Storage, permettant de stocker des données dans des couches de stockage chaudes (hot), froides (cool) ou archivées selon leur fréquence d’accès.
De manière générale, le niveau d’archivage dans le Cloud offre un espace de stockage très économique pour les données à long terme, avec des options de sécurité avancées comme le chiffrement et la gestion des accès basés sur les rôles.
Pour les entreprises qui préfèrent garder leurs données en interne, les solutions de stockage sur site, comme les NAS (Network Attached Storage) ou SAN (Storage Area Network), offrent des options d’archivage robustes.
Les bandes magnétiques restent également une solution fiable et économique pour l’archivage à très long terme. Ces technologies permettent un contrôle total sur les données et sont idéales pour les organisations soumises à des réglementations strictes en matière de confidentialité et de sécurité.
Pour optimiser les coûts de stockage, pensez à compresser (si possible) vos données avant de les archiver !
Pourquoi ne pas utiliser votre plateforme Data comme option alternative au support de stockage ?
En effet, une plateforme Data accueille déjà les données non essentielles et utiles, et pourrait donc jouer le rôle de lieu d’archivage tout en mettant à disposition les données sous un format anonymisé à des fins analytiques ou pour le machine learning !
Il convient évidemment de conserver ces données dans un état brut (non transformé). De la même manière, un plan de rétention doit être mis en œuvre pour gérer leur conservation et envisager une suppression définitive.
En premier lieu, il est primordial de mettre en place une stratégie de stockage hiérarchisée sur cette plateforme Data !
Enfin, le coût est bien entendu plus élevé qu’un stockage en mode archivage, mais il faut considérer cette solution comme un moyen de valoriser la donnée ! Quels que soient les choix stratégiques en termes de purge et d’archivage, il est important d’être rigoureux sur les actions menées.
Comme en médecine : mieux vaut prévenir que guérir ! Effectivement, les actions de purge et d’archivage ne sont pas sans risque, et il est recommandé de prendre quelques précautions avant de se lancer.
L’un des principaux risques de la purge des données est la suppression accidentelle d’informations critiques ou encore nécessaires pour l’entreprise. Pour éviter cet incident, il est essentiel d’implémenter des mécanismes qui permettent de valider que seules les données réellement obsolètes sont purgées.
Une solution serait de réaliser la purge en deux temps :
L’intégrité des données archivées est cruciale pour s’assurer que celles-ci restent accessibles, exploitables et conformes à long terme.
Voici quelques pratiques :
Automatiser la gestion des données permet de garantir une purge et un archivage continus et efficaces, tout en respectant les politiques internes et les obligations réglementaires.
Tracer toute action réalisée sur les données et générer des rapports pour homologuer la conformité avec toutes les exigences internes et externes.
La purge et l’archivage des données sont des processus applicables à toutes les strates de l’entreprise, depuis le poste d’ordinateur d’un collaborateur aux serveurs applicatifs en passant par les boîtes email.
Bien entendu, les règles et les consignes sont à ajuster et à appliquer en fonction de la criticité de la donnée présente au sein de ces plateformes.
L’équipe Sécurité de l’entreprise est également partie prenante de ces activités. N’hésitez donc pas à les solliciter ! Purger et archiver sont des écogestes et contribuent naturellement à la sobriété numérique ! Alors, qu’attendez-vous pour les mettre en œuvre ? 🌱