Ma fille adore le livre « Comment dresser votre dragon », qui a inspiré la série de films « Dragons ». J’adore regarder ces films avec elle, ne serait-ce que parce qu’on y apprend des choses très instructives sur les relations entre applications et stockage.
Attendez un instant… Quoi ?
Dans le film, l’intrigue passe de l’incompréhension entre humains et dragons à la compréhension entre les deux espèces, puis à leur coexistence harmonieuse. On trouve le même arc narratif dans le phénomène de transformation numérique. Les applications et les technologies de stockage se trouvent de chaque côté d’un gouffre béant. Les administrateurs des applications ne sont en général pas des spécialistes du stockage. De même, les experts en stockage ont du mal à définir des intégrations transparentes avec les besoins des applications. Si nous pouvions parvenir à une meilleure compréhension entre les deux mondes, nous pourrions nous diriger vers une infrastructure axée sur les applications, dans laquelle ces dernières se connecteraient à une infrastructure de données fluide et où les technologies de stockage répondraient aux besoins des applications en fonction de règles définies, cela pour un coût minime.
C’est un scénario formidable. Ou ça pourrait l’être si nous pouvions nous débrouiller pour que l’intrigue ait une fin heureuse. Nous avons fait des progrès, mais il reste beaucoup à faire. L’harmonisation automatique des besoins des applications et des technologies de stockage en fonction de règles reste un problème difficile à résoudre.
Commencez par connaitre vos dragons
Aujourd’hui, l’industrie moderne du stockage produit un vaste éventail de technologies. Chacune de ces technologies répond à des parties différentes d’un large spectre de besoins des applications. Pour créer un algorithme de sélection basé sur des règles et mettant en relation les technologies et les besoins, il nous faut une carte de ce paysage de technologies et de besoins.
CNCF Storage Landscape est précisément une carte de ce genre. Conçu pour faciliter la discussion sur les technologies de stockage dans le domaine des clouds publics et privés, ce livre blanc bien pensé évoque la difficulté de comprendre et de cartographier la diversité des plateformes de stockage utilisées dans les applications de production.
Cartographier un espace complexe est déjà difficile lorsqu’il s’agit d’une image statique. Les choses empirent si cette image évolue rapidement. La transformation numérique bouleverse les besoins des applications. Cela fait ensuite évoluer les technologies de stockage. Il est difficile d’établir une carte entre les besoins et les technologies lorsque les deux extrémités de cette carte sont en pleine transformation. C’est ainsi que l’objectif d’une infrastructure de données automatisées basées sur des règles continue de nous échapper.
Un autre problème, encore plus grave, se pose aussi. Les applications elles-mêmes sont en train de se transformer architecturalement pour devenir des applications utilisant l’intelligence artificielle (IA) et le machine learning (ML). Bientôt, toutes les entreprises se découvriront entreprises de Big Data. Elles auront besoin de conserver toutes leurs données afin d’optimiser le potentiel de toutes ces applications compatibles IA/ML et d’en tirer une valeur commerciale. La croissance des données, déjà exponentielle, s’accélérera encore. Non seulement les volumes de données vont croître, mais les types de données vont aussi se multiplier. Toutes ces données doivent en outre être disponibles, accessibles et le moins coûteuses possible lorsqu’elles ne sont pas consultées. C’est un aspect supplémentaire de la pression évolutive qui pèse sur le stockage.
Cartographier l’espace est une tâche difficile qui se complique encore en raison des bouleversements qui poussent à une croissance accrue des données et à l’évolution de leurs besoins de performances.
Un dragon plus docile reste un dragon
Le secteur a pourtant réalisé des progrès notables en direction d’une infrastructure de données axée sur les applications.
Tout d’abord, l’émergence du software-defined storage a représenté un moment charnière dans l’évolution vers une infrastructure axée sur les applications. La mise en commun du stockage a permis de gérer de manière uniforme des systèmes de stockage hétérogènes. Des systèmes de stockage différents intégrés dans un pool se combinent logiquement pour répondre aux besoins des applications. Le provisionnement au sein de ces pools a facilité la planification de la capacité, mais il a également permis de créer des algorithmes de hiérarchisation automatique d’une grande précision. Ces algorithmes, qui suivent les modalités d’accès aux applications, ont permis aux architectures de stockage software-driven de répartir les données applicatives entre des moyens de stockage bon marché et des systèmes plus rapides, cela de façon dynamique et sans que les applications en aient conscience. Les données pouvaient ainsi être performantes lorsqu’il le fallait, mais stockées sur des technologies moins coûteuses lorsqu’elles n’étaient pas nécessaires, cela afin de réduire les coûts. Il s’agissait d’une véritable innovation qui répondait à des règles, mais il fallait encore des humains pour faire correspondre les règles de stockage aux besoins des applications.
Les plateformes de virtualisation ont commencé à faire émerger des abstractions du stockage en fonction de règles. La spécification VVOL de VMware offre un large cadre à l’expression des besoins des applications et des fonctionnalités de stockage. Le système SCVMM (System Center Virtual Machine Manager) de Microsoft intègre la spécification SMI-S et un protocole similaire SMP (Storage Management Protocol) pour permettre la gestion des systèmes de stockage à base de règles. L’interface Cinder d’OpenStack intègre le stockage dans une infrastructure de cloud privé. D’un côté, ces systèmes de stockage offrent un menu d’options. De l’autre, les applications déclarent leurs besoins. La plateforme réunit mécaniquement les deux. Cette façon de procéder a, en prime, de réelles chances de répondre la plupart du temps aux attentes des administrateurs.
Tous ces exemples montrent des systèmes de stockage plus dociles et répondant aux besoins des applications. Mais le système global pourrait encore mieux automatiser le processus de mise en correspondance entre les applications et des technologies de stockage qui répondent à leurs besoins. Cela réduirait la nécessité d’interventions humaines pour régler les éventuelles discordances.
La cohabitation e humains et dragons
On assiste à un changement de modèle en matière d’architecture des applications qui présente des implications intéressantes pour le stockage.
La technologie des conteneurs isole les fonctionnalités des applications dans des espaces de noms logiques à l’intérieur du système d’exploitation des hôtes. Mais à un certain moment, les données des applications doivent être stockées sur des volumes persistants. Le secteur est en train de définir un moyen de connecter des applications conteneurisées à du stockage persistant. Des pilotes de volumes Docker persistants et de Kubernetes Container Storage Interface (CSI) abstraient le stockage pour le livrer aux conteneurs.
Cela vous rappelle quelque chose ? C’est normal. Il ne s’agit pas encore de systèmes à base de règles comme VMware VVOL, mais cela ressemble déjà aux prémices de cette évolution. Des systèmes comme Rook autorisent l’utilisation d’un langage déclaratif et constituent un premier pas vers un système intégré axé sur les besoins.
Il existe une autre voie d’évolution possible. Tout d’abord, notez que le software-defined storage convertit le stockage en un programme logiciel. Le stockage devient ainsi une sorte d’application. Il s’agit là d’une notion puissante. Elle signifie que les technologies qui ouvrent la voie à des améliorations radicales au niveau des applications (IA, ML, conteneurs, cloud) peuvent également entraîner des améliorations pour le stockage lui-même. Celui-ci devient compatible IA/ML, massivement évolutif, non local et se transforme intégralement en une infrastructure fluide qui réagit dynamiquement et intelligemment aux besoins des applications.
Réfléchissez-y. Nous sommes fascinés par des scénarios dans lesquels l’intelligence artificielle prévoit automatiquement les besoins des clients aux alentours des périodes de vacances, met à jour les stocks et réduit les coûts lorsque la demande baisse. Pourquoi serait-ce différent pour le stockage ? Nous pouvons transformer le stockage lui-même en une application pour laquelle l’IA prévoit automatiquement les périodes de pic de demandes d’E/S, déplace les données d’une technologie à l’autre pour améliorer les performances, puis les transfère vers des technologies meilleur marché lorsque la demande faiblit.
Dans ces conditions, plus besoin d’une carte descriptive pour définir les règles. La relation entre les applications et le stockage devient une chose organique et vivante au lieu de cet algorithme mécanique au travers duquel toutes les interactions entre les applications et les dragons de stockage sont prescrites.
Voilà qui serait effectivement une fin heureuse. Je ne suis pas sûr que ma fille continuerait à la voir et à la revoir, mais je parie que ce serait un vrai succès dans les centres de données du monde entier.
En savoir plus :