L’une des problématiques majeures du big data est le stockage des données, car il s’agit de volumes de données considérables qu’il faut pouvoir stocker et gérer le plus facilement possible.
Une solution de stockage très utilisée à cette fin aujourd’hui est l’« object storage » (ou « stockage d’objets » en français, l’appellation reste cependant récente et on croise encore majoritairement la version anglaise).
Dans cet article, nous allons présenter cette technologie et discuter de ses particularités et de ses avantages.
Qu’est-ce que l’object storage ?
Il s’agit d’une technologie de stockage dont la particularité réside dans sa structure, ou plus précisément dans son manque de structure.
Object storage vs file storage vs block storage
On oppose souvent l’object storage à deux autres technologies, à savoir, « file storage » et « block storage ». La comparaison des trois nous aidera à mieux comprendre la spécificité de l’object storage :
- File storage : les fichiers sont stockés dans une structure hiérarchique, sous forme d’arbre avec une arborescence. C’est sûrement le plus familier, car c’est ce qu’on retrouve sur nos ordinateurs, dans l’explorateur Windows par exemple.
- Block storage : les fichiers sont découpés et répartis dans différents blocs déjà existants, avec d’éventuels duplicatas. Ces blocs sont dispatchés au sein d’un réseau et gérés par une couche logicielle. Cette approche a priori complexe rend possible une forte optimisation lorsque les données sont structurées. On retrouve cette technologie dans la majorité des bases de données RDBMS (c’est-à-dire de type SQL).
- Object storage : chaque fichier est regroupé avec ses métadonnées pour former un objet. Cet objet est une entité totalement indépendante et isolée des autres (contrairement au block storage). Tous les objets sont stockés dans un espace plat, sans hiérarchie (contrairement au file storage) et à chaque objet est attribué un identifiant unique permettant de le localiser dans cet espace. En bref, c’est relativement similaire à un Google Drive où il n’y aurait aucun dossier et où l’URL d’un fichier serait son identifiant unique.
Les cas d’utilisation de l’object storage
Il existe plusieurs situations dans lesquelles cette forme de stockage de données est particulièrement intéressante :
- Le stockage de médias (images, vidéos, PDF…) auquel on accède généralement directement et que l’on souhaite lire en entier. Par exemple, les sites internet hébergent généralement leurs images sur un CDN, qui est un serveur dédié pouvant utiliser la technologie d’object storage pour distribuer ces images.
- Stockage d’archives et de sauvegardes : l’object storage coûte peu cher, mais ne brille pas toujours pour ses performances en écriture. C’est donc une technologie adaptée pour les sauvegardes et l’archivage, qui sont des fichiers qui ne changent pas dans le temps.
- Big data : on peut stocker tout type de donnée avec l’object storage, ce qui en fait une technologie adaptée pour créer un datalake et collecter toutes les données générées au sein de votre organisation.
Comment choisir votre solution d’object storage ?
La plupart des fournisseurs de services cloud proposent aujourd’hui une solution d’object storage, que ce soit Google Storage, Microsoft Blob Storage, OVH, Yandex Object Storage…
Le plus emblématique reste cependant Amazon S3, la solution d’object storage d’AWS et qui est aussi le premier service AWS à avoir existé. Cette ancienneté fait que l’API utilisée par Amazon S3 est devenue un standard dans l’industrie. C’est-à-dire que la majorité des fournisseurs d’object storage utilisent une API dont le schéma est similaire à celle d’Amazon S3, ce qui est très pratique pour le développement d’applications.
Différents types d’object storage disponibles
Une considération importante lorsque l’on choisit une solution d’object storage concerne le type de disponibilité souhaité.
En effet, ce paramètre peut avoir une influence importante sur le coût. Prenons exemple sur ce que propose Google Cloud Platform pour clarifier les choses. Il est possible de choisir parmi ces options :
- Standard
- Nearline
- Coldline
- Archive
Il faut d’abord savoir que chaque opération est facturée (chez Google ou chez les autres), par exemple, l’insertion d’un nouvel objet dans votre espace de stockage a un coût. Ce coût est très faible à l’unité, mais peut devenir significatif avec un effet d’échelle.
L’option « standard » a le coût de Go/mois le plus élevé, en revanche, c’est l’option qui présente les tarifs les plus bas concernant l’exécution des opérations.
À l’inverse, l’option « archive » a un tarif 5 à 10 fois plus faible de Go/mois, mais le coût des opérations est plus élevé.
L’option « archive » sera donc adaptée aux fichiers auxquels on accède rarement mais qui sont volumineux (d’où le nom d’« archive »), tandis que l’option « standard » sera adaptée aux fichiers auxquels on accède quotidiennement (par exemple, un CDN de site internet). Entre ces deux se trouvent d’autres options intermédiaires, c’est un compromis à trouver en fonction de vos besoins.
Maintenant que vous êtes incollable sur ce qu’est l’object storage, vous pouvez passer à la pratique ! Il est possible d’intégrer des technologies d’object storage dans vos projets Saagie.
Si cette thématique du stockage vous intéresse, vous pouvez aussi consulter nos articles sur les technologies SQL et NoSQL.