Aujourd'hui, les entreprises produisent et traitent d'énormes quantités de données non structurées. Ces données englobent tout, des images et vidéos aux sauvegardes, en passant par les fichiers journaux et les grands ensembles de données pour l'analyse. Le stockage, la gestion et l'accès efficaces à ces fichiers divers et souvent très volumineux nécessitent des solutions de stockage spécialisées. Le stockage d'objets binaires volumineux (BLOB) est devenu une technologie clé pour relever ces défis. Il offre une solution évolutive et économique pour gérer les données non structurées.
Les systèmes de stockage d'objets binaires volumineux sont conçus pour offrir une évolutivité massive et une durabilité élevée, et pour aider à réduire les coûts. Ils permettent de stocker de grands volumes de données non structurées.
Pour bien comprendre le stockage d'objets binaires volumineux, il est utile de définir au préalable ses composants de base : le stockage d'objets et l'objet binaire volumineux (BLOB) lui-même.
Le stockage d'objets est une architecture de stockage de données qui gère les données comme des unités distinctes, appelées "objets". Contrairement aux systèmes de fichiers qui organisent les données dans une structure de répertoires hiérarchique (dossiers et fichiers) ou au stockage de blocs qui gère les données sous forme de blocs de taille fixe, les systèmes de stockage d'objets traitent chaque donnée comme un objet autonome.
Chaque objet inclut généralement les éléments suivants :
Un BLOB est une collection d'objets binaires volumineux stockées en tant qu'entité unique. Le terme "binaire" signifie que les données peuvent être de n'importe quel type. Elles ne sont pas limitées au texte ou à des formats spécifiques. Il peut s'agir d'un fichier exécutable, d'une image, d'un contenu audio ou vidéo, d'une archive compressée, d'une sauvegarde de base de données ou de tout autre type d'information numérique. Le terme "volumineux" indique que les BLOB sont généralement utilisés pour les fichiers trop volumineux pour être stockés de manière pratique ou efficace directement dans un champ de base de données traditionnel avec des données structurées.
Par conséquent, le stockage d'objets binaires volumineux consiste essentiellement à stocker ces BLOB en tant qu'objets individuels dans un système de stockage d'objets. Au lieu d'intégrer directement un fichier vidéo volumineux dans un enregistrement de base de données, par exemple, vous stockeriez le fichier vidéo dans un système de stockage d'objets, puis vous stockeriez une référence (l'identifiant unique ou l'URL de l'objet) à ce BLOB dans votre base de données.
Le processus d'utilisation du stockage d'objets binaires volumineux implique généralement quelques étapes clés, facilitées par le système de stockage d'objets :
Lorsqu'un utilisateur ou une application doit stocker un fichier binaire volumineux, il envoie les données, ainsi que les métadonnées associées, au système de stockage d'objets via un appel d'API (généralement des API RESTful via HTTP/S). Le système de stockage reçoit ces données.
Le système de stockage d'objets prend les données binaires importées et leurs métadonnées, et les encapsule dans un "objet". Il attribue ensuite un identifiant unique à ce nouvel objet. Cet identifiant est essentiel, car il permet de localiser et de récupérer l'objet ultérieurement.
Le système stocke l'objet, en le distribuant et en le répliquant souvent sur plusieurs dispositifs de stockage physique, et parfois même dans différents centres de données. Cette approche distribuée améliore la durabilité des données (protection contre les défaillances matérielles) et la disponibilité. La stratégie de réplication spécifique peut varier en fonction de la classe de stockage choisie ou des règles du fournisseur.
Les métadonnées associées au BLOB sont indexées. Cela permet de rechercher ou de classer des objets en fonction de leurs tags de métadonnées, même si vous en avez des milliards.
Lorsqu'un utilisateur ou une application doit accéder au BLOB, il envoie une requête au système de stockage d'objets à l'aide de l'identifiant unique de l'objet. Le système localise l'objet et renvoie les données binaires au demandeur.
Les systèmes de stockage d'objets fournissent des mécanismes permettant de contrôler qui peut lire, écrire ou supprimer des BLOB. En général, cela se fait par le biais de stratégies Identity and Access Management (IAM), de listes de contrôle d'accès (LCA) ou d'URL signées qui accordent un accès temporaire.
Le stockage d'objets binaires volumineux offre des avantages significatifs pour la gestion des données non structurées :
Évolutivité
Les systèmes de stockage d'objets sont conçus pour évoluer jusqu'aux exaoctets et au-delà, et peuvent donc gérer de grandes quantités de données et d'objets. Cela peut les rendre adaptés aux applications qui génèrent des volumes de données importants.
Rentabilité
Stocker des données volumineuses auxquelles on accède rarement dans des systèmes de fichiers ou des bases de données traditionnels à hautes performances peut s'avérer coûteux. Le stockage d'objets propose souvent des options hiérarchisées avec des coûts variables en fonction de la fréquence d'accès et des exigences de durabilité, ce qui permet d'optimiser les coûts.
Durabilité et disponibilité
Les principaux services de stockage d'objets peuvent offrir des niveaux élevés de durabilité des données, souvent en stockant les objets de manière redondante sur plusieurs appareils ou emplacements géographiques. Cela peut minimiser le risque de perte de données en cas de défaillance matérielle et favoriser la haute disponibilité.
Métadonnées enrichies
La possibilité d'associer des métadonnées personnalisées et complètes à chaque BLOB permet de mieux organiser les données, de faciliter les recherches et de bénéficier de fonctionnalités d'analyse et de gestion des données plus sophistiquées.
Accès simplifié aux données
L'accès aux BLOB via des API HTTP standards peut simplifier l'intégration avec des applications Web, des applications mobiles et d'autres services cloud. Les identifiants uniques de chaque objet permettent d'y accéder directement, sans avoir à parcourir des chemins de fichiers complexes.
Dissociation
Le stockage des BLOBS en dehors des bases de données ou des serveurs d'application peut améliorer les performances et l'évolutivité de ces systèmes principaux. Les bases de données n'ont plus à gérer des types de données volumineux et complexes, et les applications peuvent déléguer la diffusion du contenu statique.
Les services de stockage d'objets qui hébergent des BLOBS proposent souvent différentes classes ou niveaux de stockage, classés en fonction de leur fréquence d'accès, de leurs délais de récupération et de leur coût. Ces niveaux peuvent aider les entreprises à optimiser les coûts de stockage en fonction de la façon dont les données sont utilisées. Les types courants incluent :
Conçu pour les données fréquemment consultées qui nécessitent une faible latence et un débit élevé. Ce niveau peut convenir aux contenus de sites Web actifs, aux données d'applications mobiles ou aux données traitées activement par des charges de travail d'analyse. Il est généralement associé à des coûts de stockage plus élevés, mais peut contribuer à réduire les coûts d'accès.
Conçu pour les données consultées moins fréquemment (par exemple, une fois par mois), mais qui doivent rester facilement accessibles sur demande. Il peut offrir des coûts de stockage inférieurs à ceux du stockage standard, mais les coûts d'accès ou les frais par récupération peuvent être légèrement plus élevés. Il est idéal pour les sauvegardes à long terme, l'archivage de données nécessitant un accès occasionnel rapide ou les fichiers de reprise après sinistre.
Conçu pour l'archivage, la conformité et la conservation des données à long terme, lorsque les données sont rarement consultées (par exemple, une fois par an ou moins). Ce niveau peut offrir des coûts de stockage faibles. Les délais de récupération peuvent être plus longs, allant de quelques minutes à plusieurs heures, et les coûts d'accès peuvent être plus élevés. Cette solution peut convenir aux archives réglementaires ou aux données qui doivent être conservées à des fins historiques, mais qui ne sont pas nécessaires aux opérations quotidiennes.
Certains fournisseurs proposent des niveaux encore plus froids pour les données qui ne sont que très rarement consultées et pour lesquelles des délais de récupération plus longs (par exemple, plusieurs heures) sont acceptables. Ces niveaux offrent les coûts de stockage les plus bas.
La polyvalence et l'évolutivité du stockage de BLOBS en font une solution adaptée à un large éventail d'applications dans divers secteurs :
Cas d'utilisation | Fonctionnalité |
Diffusion de contenu multimédia | Stockage et diffusion d'images, de vidéos, de fichiers audio et d'autres contenus rich media pour les sites Web, les services de streaming et les applications mobiles. |
Lacs de données et analyses | Stockage de grandes quantités de données brutes dans un data lakehouse (structurées, semi-structurées et non structurées) provenant de différentes sources dans leur format natif pour le traitement du big data, l'entraînement de modèles de machine learning et l'informatique décisionnelle. |
Archivage des fichiers journaux | Stockage des journaux de serveur d'application, des journaux de sécurité et des rapports d'audit à des fins de dépannage, d'analyse de la sécurité et de conformité. |
Systèmes de gestion de documents | Stockage et gestion de grands volumes de documents, de PDF, d'images numérisées et d'autres enregistrements d'entreprise. |
Hébergement de sites Web statiques | Hébergement des composants statiques (HTML, CSS, JavaScript, images) d'un site Web directement à partir du stockage d'objets, qui peut être très évolutif et économique. |
Distribution de logiciels | Stockage et distribution de packages logiciels, de mises à jour et de programmes d'installation volumineux. |
Gestion des données de santé | Stockage sécurisé et conforme des images médicales (radiographies, IRM), des dossiers des patients et des données génomiques. |
Recherche scientifique | Stockage de grands ensembles de données provenant de tests, de simulations et de réseaux de capteurs pour l'analyse et la collaboration. |
Cas d'utilisation
Fonctionnalité
Diffusion de contenu multimédia
Stockage et diffusion d'images, de vidéos, de fichiers audio et d'autres contenus rich media pour les sites Web, les services de streaming et les applications mobiles.
Lacs de données et analyses
Stockage de grandes quantités de données brutes dans un data lakehouse (structurées, semi-structurées et non structurées) provenant de différentes sources dans leur format natif pour le traitement du big data, l'entraînement de modèles de machine learning et l'informatique décisionnelle.
Archivage des fichiers journaux
Stockage des journaux de serveur d'application, des journaux de sécurité et des rapports d'audit à des fins de dépannage, d'analyse de la sécurité et de conformité.
Systèmes de gestion de documents
Stockage et gestion de grands volumes de documents, de PDF, d'images numérisées et d'autres enregistrements d'entreprise.
Hébergement de sites Web statiques
Hébergement des composants statiques (HTML, CSS, JavaScript, images) d'un site Web directement à partir du stockage d'objets, qui peut être très évolutif et économique.
Distribution de logiciels
Stockage et distribution de packages logiciels, de mises à jour et de programmes d'installation volumineux.
Gestion des données de santé
Stockage sécurisé et conforme des images médicales (radiographies, IRM), des dossiers des patients et des données génomiques.
Recherche scientifique
Stockage de grands ensembles de données provenant de tests, de simulations et de réseaux de capteurs pour l'analyse et la collaboration.
Il est important de sécuriser les objets binaires volumineux, en particulier lorsqu'il s'agit de données sensibles ou critiques. Les stratégies de sécurité efficaces impliquent généralement plusieurs couches de sécurité :
Chiffrement
Le chiffrement en transit utilise HTTPS (TLS/SSL) pour toutes les requêtes API. Le chiffrement au repos garantit que les BLOB sont chiffrés dans l'espace de stockage. Vous pouvez choisir entre le chiffrement côté serveur (clés gérées par le fournisseur) et les clés gérées/fournies par le client (CMEK/CSEK) pour un contrôle renforcé.
Identity and Access Management (IAM)
Implémentez des règles de contrôle des accès précises pour définir qui (utilisateurs, groupes ou comptes de service) peut effectuer quelles actions (lecture, écriture, suppression, liste) sur des BLOB spécifiques ou des collections de BLOB (souvent appelées "buckets" ou "conteneurs"). Suivez le principe du moindre privilège, en n'accordant que les autorisations nécessaires.
Listes de contrôle d'accès (LCA)
Les LCA peuvent vous aider à ajouter une couche de contrôle supplémentaire en vous offrant la possibilité d'accorder des autorisations spécifiques à des utilisateurs ou à des groupes pour des objets ou des buckets individuels. Elles peuvent être plus adaptées aux besoins de contrôle précis qu'à la gestion à grande échelle, en proposant une approche précise pour des paramètres d'autorisation spécifiques et détaillés.
URL signées/URL pré-signées
Si vous devez accorder un accès temporaire et limité à un blob spécifique (par exemple, pour permettre à un utilisateur de télécharger un fichier qu'il a acheté), les URL signées constituent un mécanisme sécurisé. Ces URL accordent des autorisations limitées dans le temps pour effectuer une action spécifique, sans exiger que l'utilisateur dispose d'identifiants complets.
Gestion des versions
Activez la gestion des versions d'objets pour conserver plusieurs versions d'un blob. Cela permet d'éviter les écrasements ou les suppressions accidentels, car vous pouvez restaurer les versions précédentes si nécessaire.
Journaux d'audit
Activez les journaux d'audit pour suivre les demandes d'accès et les actions effectuées sur vos BLOBS et vos buckets de stockage. Cela facilite l'analyse de la sécurité, la création de rapports de conformité et l'identification des tentatives d'accès non autorisées.
Profitez de 300 $ de crédits gratuits et de plus de 20 produits Always Free pour commencer à créer des applications sur Google Cloud.