Tuesday, November 3, 2026
Home » Tout ce qu’il faut savoir sur le stockage cloud-native

Tout ce qu’il faut savoir sur le stockage cloud-native

Le Storage Special Interest Group de la CNCF a publié un livre blanc détaillé (en anglais) qui explique la structure des systèmes de stockage pour les applications cloud-native. Ce document est incontournable pour bien comprendre et comparer les différents types de stockage et leur utilisation en production aujourd’hui. Cet article est un extrait du document présenté à la KubeCon Shanghai, dont le PDF est disponible sur le dépôt GitHub du CNCF Storage SIG (en anglais).

Les applications cloud-native se définissent par la façon dont nous les concevons, les développons et les déployons, et pas nécessairement par l’endroit où elles « vivent ». Le cloud-native, ce sont des microservices, des conteneurs, des orchestrateurs, etc. ; l’idée sous-jacente est de créer des applications flexibles et vraiment indépendantes de la plateforme, exécutables par tout utilisateur final autorisé.

Voici quelques attributs clés des applications cloud-native, tels que définis par la Cloud Native Computing Foundation (CNCF) dans un article publié sur The New Stack (en anglais) :

  • Packagées dans des conteneurs
  • Conçues comme des microservices faiblement couplés
  • Isolées des dépendances au serveur et au système d’exploitation
  • Allocation des ressources pilotée par des politiques
  • Gérées via des processus DevOps agiles
  • Centrées sur les API pour les interactions

Si vous ne passez pas au cloud-native, vous passerez à côté de technologies importantes et de pointe, et finirez par consacrer davantage de temps à corriger et maintenir votre application. Il y a bien sûr des exceptions.

Un besoin de stockage

Supposons que vous ayez décidé de déployer une application stateful sur Kubernetes. Stateful signifie que l’application doit mémoriser des informations lorsqu’un client interagit avec elle. Conserver ce type d’informations nécessite du stockage. Qu’est-ce qui est important pour votre application ?

La première section du livre blanc présente les attributs de base des interfaces et des systèmes de stockage, c’est-à-dire les fonctionnalités et caractéristiques qu’un système de stockage possède généralement ou dont on attend qu’il dispose. Comme chaque application a ses propres fonctionnalités et objectifs, vous pourrez vouloir tous ces attributs, seulement certains d’entre eux, ou tous mais en accordant plus d’attention à certains qu’à d’autres. Les attributs clés d’un système de stockage :

  • Disponibilité
  • Évolutivité
  • Performance
  • Cohérence
  • Durabilité
  • Instanciation et déploiement

Les couches de stockage

Une autre façon d’aborder les systèmes de stockage est de s’intéresser à leur composition. Cela permet de déterminer comment vos données sont stockées et récupérées, comment elles sont protégées et comment elles interagissent avec vos applications (système d’exploitation et orchestrateur). Ces couches sont étroitement liées aux attributs mentionnés ci-dessus.

Topologie de stockage : la manière dont les différentes parties d’un système (périphériques de stockage, nœuds de calcul et données) sont interconnectées. Il est important de tenir compte de la topologie, car elle influence de nombreux attributs d’un système de stockage dès sa conception. La topologie de stockage peut être centralisée, distribuée, shardée ou hyperconvergée.

Protection des données : un service important qui garantit la persistance de vos données, même en cas de sinistre. Il existe plusieurs façons d’y parvenir :

  • RAID (redundant array of independent disks) : des techniques qui répartissent les données sur plusieurs disques avec redondance
  • Erasure coding : une méthode de protection des données qui les découpe en fragments encodés et stockés avec plusieurs ensembles de parité redondants.
  • Réplica : une copie complète d’un jeu de données répartie sur plusieurs serveurs.

Services de données : des services souvent mis en œuvre comme fonctionnalités supplémentaires des fonctions principales du système de stockage. Ils varient d’un système à l’autre, mais les plus courants sont la réplication, le contrôle de versions, différentes formes de gestion, etc.

Chiffrement : les systèmes de stockage peuvent protéger les données en les chiffrant. Notez que le chiffrement a un impact sur les performances en raison de la charge de calcul supplémentaire, mais des options d’accélération existent sur les systèmes modernes.

Couche physique : le matériel sur lequel les données sont réellement stockées. Le choix du stockage physique influe sur les performances globales du système et sur la durabilité des données stockées. Les systèmes traditionnels utilisent des disques magnétiques et des SSD/NVM basés sur la mémoire flash.

Interface d’accès aux données

L’interface d’accès aux données définit comment les données sont consommées et/ou stockées (par les applications ou les workloads). En général, la méthode d’accès est privilégiée ou prédéfinie par l’architecture des applications. Le choix de l’interface influe aussi sur des attributs importants comme la disponibilité, la performance et l’évolutivité. Dans ce livre blanc, les interfaces d’accès aux données sont réparties entre volumes et API applicatives.

Interface d’accès aux données : volumes

Stockage bloc

C’est peut-être le plus ancien système de stockage. Les données sont stockées en morceaux de taille fixe, ou blocs, généralement adressés numériquement. Pour récupérer des données, l’application doit donc fournir la bonne adresse numérique, puis reconstituer un fichier complet à partir des morceaux.

Il n’existe pas d’autre moyen de stocker et de récupérer des données qu’avec ces adresses. Cela offre un accès très granulaire, et très rapide si la cible de persistance est locale.

Système de fichiers

Il s’agit d’une couche de persistance logique qui stocke et récupère des données référencées par des fichiers. Cette interface offre un ensemble de primitives plus riche (structure de répertoires, contrôle d’accès, nommage, etc.) qu’un stockage bloc. Elle est donc plus adaptée à une utilisation par les applications. La fonction de persistance traduit les fichiers en adresses de blocs logiques.

Les systèmes de fichiers peuvent être locaux, distants ou distribués. Il existe aussi de nombreux types de systèmes de fichiers optimisés pour différentes caractéristiques, comme la performance, la durabilité, le support de stockage et les modes d’accès.

Interface d’accès aux données : API applicative

Stockage objet

En général, les systèmes de stockage objet utilisent des magasins clé-valeur atomiques. Contrairement aux systèmes de fichiers et au stockage bloc, les implémentations du stockage objet sont très diverses. Le livre blanc se concentre sur les stockages objet basés sur HTTP, tels que définis par AWS S3, Azure Blob, Google Cloud et OpenStack Swift.

Ces systèmes définissent un ensemble de méthodes basées sur le protocole HTTP. Avec cette interface, nul besoin de monter ou d’attacher un stockage objet : ces systèmes sont toujours distants par rapport au nœud demandeur.

L’un des avantages des systèmes basés sur HTTP est la gestion des métadonnées, qui permet d’associer des métadonnées personnalisées aux objets. Un autre avantage réside dans le contrôle d’accès granulaire.

Les stockages objet HTTP sont conçus pour l’évolutivité et la durabilité. Ils peuvent gérer des volumes de données extrêmement importants répartis entre différents datacenters et régions, et prennent généralement en charge de nombreuses méthodes pour garantir une intégrité extrême des données.

Stockage clé-valeur

Ce type de système est conçu pour stocker, récupérer et gérer des paires clé-valeur. Un stockage clé-valeur n’a pas de schéma prédéfini, ce qui le rend flexible. L’application contrôle donc entièrement ce qui est stocké dans la « valeur ».

Ce type de système peut fonctionner sur un seul nœud ou s’étendre à de nombreux nœuds, être accessible localement ou via le réseau, et stocker ses données entièrement en mémoire, partiellement en mémoire ou entièrement sur disque. De nombreux systèmes de stockage plus complexes reposent sur des stockages clé-valeur.

Interfaces d’orchestration et de gestion

Qui dit cloud-native dit conteneurisé. Les conteneurs nécessitent généralement un système de gestion ou un orchestrateur. Comment ces systèmes d’orchestration interagissent-ils avec les systèmes de stockage pour associer les workloads aux données ? Selon les interfaces d’accès aux données, différentes couches peuvent intervenir.

Kubernetes, par exemple, peut prendre en charge plusieurs interfaces pour interagir avec le système de stockage. Ce système de stockage peut :

  • prendre en charge l’API du plan de contrôle et interagir directement avec l’orchestrateur
  • interagir avec l’orchestrateur via une couche API Framework ou d’autres outils

L’API du plan de contrôle désigne les interfaces de stockage avec l’orchestrateur de conteneurs et se concentre sur le provisionnement dynamique du stockage pour les workloads.

L’API Framework et les autres outils sont des extensions des API du plan de contrôle et peuvent aussi prendre en charge l’automatisation et d’autres services de données (protection des données, migration des données, réplication des données et bien d’autres), en plus du provisionnement.

Le livre blanc comprend aussi des tableaux comparatifs utiles sur de nombreuses fonctionnalités des systèmes de stockage, pour vous aider à choisir celui qui répond le mieux à vos besoins. La CNCF a également organisé un webinar complémentaire (en anglais) autour du livre blanc, qui vaut vraiment le détour.