Qumulo LogoQumulo Logo

Blog

Que signifie "Cloud Native" ?

Cherchez "cloud native" sur Google et vous obtiendrez plus de 800 millions d'occurrences. Il est clair que le terme "cloud native" est important.. et les gens ne savent pas très bien ce que cela signifie. Il y a quelque temps, lors d'une conversation avec une autre personne "du métier", j'ai dit : "Mais ce n'est pas du "cloud native" ! Elle a acquiescé d'un signe de tête. Il est clair que cela signifie quelque chose, puisque nous avons pu nous mettre d'accord sur certaines constructions complexes en utilisant ce raccourci, "cloud native" Penchons-nous un peu plus sur la question.

Pour définir ce qu'est le "cloud native", il faut commencer par une question plus simple : 

Qu'est-ce que l'informatique dématérialisée ?

Tout tourne autour de la désagrégation

Il y a près de 50 ans, avant la création de Microsoft, Bill Gates et Paul Allen, étudiants à Harvard, ont écrit un interprète BASIC pour l'un des premiers micro-ordinateurs au monde, le MITS Altair 8080. Ils ont mis l'ensemble du programme sur une bande de papier (une des premières formes de stockage) et se sont envolés pour le Nouveau-Mexique afin de montrer à MITS ce qu'ils avaient écrit.

Lors de la descente vers Albuquerque, Allen s'est rendu compte qu'il n'avait aucun moyen de lire la bande papier (nécessaire pour que l'interpréteur BASIC puisse le charger sur l'Altair 8080). Allen a rapidement écrit un programme pour lire la bande de papier. Il a fonctionné, et le reste appartient à l'histoire.

Si vous voulez savoir ce que signifie "agrégé", voici un excellent exemple. Tout ce qui était nécessaire pour faire fonctionner l'interpréteur BASIC de Gates et Allen devait être écrit par Gates et Allen - y compris la routine pour lire le code de la bande papier dans la mémoire du système !

L'informatique en nuage, où l'objectif est de désagréger complètement les données. Désagréger quoi ? Eh bien.. tout. L'informatique est dissociée de tout le reste, de sorte que vous pouvez acheter la quantité d'informatique dont vous avez besoin indépendamment de tout le reste. Il en va de même pour le stockage et le réseau. 

Mais il ne s'agit là que de l'infrastructure. L'informatique en nuage désagrège également les logiciels. Alors que Gates et Allen devaient écrire chaque ligne de code pour leur application, les applications en nuage s'appuient aujourd'hui sur des "services" pour gérer des tâches spécifiques. Au lieu de coder pendant des années des applications massives et monolithiques, les applications en nuage d'aujourd'hui sont construites avec des centaines de lignes de code qui relient des douzaines (ou des centaines) de services en nuage.

Le cloud est l'extension logique de la philosophie Unix de la composabilité telle qu'elle a été formulée par Doug McElroy l'inventeur de la tuyauterie Unix a déclaré : "Écrivez des programmes qui font une seule chose et qui la font bien. Écrire des programmes pour qu'ils travaillent ensemble"

C'est l'essence même de l'informatique dématérialisée. Mais pourquoi désagréger ? Au niveau le plus simple, la désagrégation offre de l'élasticité et de l'agilité.

Élasticité

Les ressources nécessaires à toute charge de travail varient dans le temps. Par exemple, le film de James Cameron Avatar a repoussé les limites des effets spéciaux. Le rendu d'une seule image a nécessité l'équivalent de 3 000 vCPU dans le nuage pendant une heure. Avatar ayant été tourné en 48 images par seconde et ayant duré 192 minutes, il y a eu plus d'un demi-million d'images à calculer. Cela représente plus de 1,6 milliard d'heures de cycles de CPU virtuels.

La production du film a duré 12 ans au total, mais comme pour tous les films, une grande partie du rendu final s'est faite à l'approche de la sortie du film. Cloud a fourni l'élasticité dont le fournisseur d'effets spéciaux d'Avatar avait besoin pour mener à bien sa mission. David Conley, producteur exécutif des effets spéciaux, a déclaré qu'ils n'auraient pas pu le faire sans AWS.

L'élasticité s'applique à l'informatique, au stockage, à la mise en réseau et à pratiquement toutes les ressources nécessaires. L'informatique en nuage permet d'augmenter et de réduire facilement et rapidement l'utilisation en fonction des besoins.

Agilité

L'autre avantage de l'informatique dématérialisée est l'agilité dans tous les sens du terme. L'informatique dématérialisée permet :

  • Agilité du développement grâce à l'architecture de services susmentionnée. Les développeurs font appel à un large éventail de services et réduisent les années et les millions de lignes de code à des semaines et des milliers de lignes. 

Par ailleurs, cette nouvelle "architecture de services" bénéficie de l'effet de réseau. Plus les charges de travail utilisent les services, plus les tiers sont motivés pour développer de nouveaux services. Et plus il y a de services, plus les développeurs sont motivés pour utiliser des services tiers. Ce cercle vertueux a accéléré le passage des pratiques de codage monolithiques aux architectures de services.

  • Agilité de l'infrastructure, car au lieu d'acheter, d'installer et de gérer l'infrastructure, les utilisateurs demandent simplement ce dont ils ont besoin, quand ils en ont besoin, par le biais de simples requêtes. L'expression "infrastructure en tant que code" fait référence à l'utilisation d'un simple "code" pour fournir toute l'infrastructure dont vous avez besoin en quelques minutes au lieu de semaines ou de mois.

  • Agilité économique, parce qu'on ne joue que pour ce dont on a besoin, quand on en a besoin. Avatar n'a pas eu besoin de construire un énorme centre de données pour les effets spéciaux et de le gérer pendant 12 ans. Au lieu de cela, ils ont simplement fait tourner ce dont ils avaient besoin quand ils en avaient besoin.

Maintenant que nous savons ce qu'est le nuage, nous pouvons discuter de ce qu'il faut faire pour être véritablement "natif du nuage". 

Qu'est-ce que le Cloud Native ?

La réponse la plus simple est qu'une application "cloud-native" interagit avec le "cloud" à l'aide de cloud-native primitives. Par exemple, une application "cloud-native" fera directement appel aux services de stockage natifs d'Amazon AWS (S3, EBS, EFS, etc.). Ce principe s'applique à tous les services en nuage - ordinateur, magasin, réseau, etc. 

Pour les applications "nées dans le nuage" (c'est-à-dire conçues dès le premier jour pour fonctionner dans le nuage, et uniquement dans le nuage), c'est assez facile. Mais pour les applications nées dans un monde sur site, un douloureux exercice de refonte doit être effectué. Il convient de noter que l'application doit être totalement dissociée de l'ensemble de l'infrastructure (calcul, stockage et réseau). 

La deuxième condition importante pour être véritablement "cloud native" est d'être gérée "as-code" Cela signifie qu'il suffit de quelques lignes de code pour lancer l'application, contrairement au processus traditionnel d'installation et de configuration manuelle sur site qui s'étale sur plusieurs semaines.

Comme pour la grossesse, il n'y a pas de "partiellement cloud native" Une application est ou n'est pas "cloud native". Si une application ne se désagrège pas complètement et n'adopte pas la méthodologie "as-code", elle perd les avantages de l'élasticité et de l'agilité promis par le cloud.

Existe-t-il des solutions de stockage en nuage ?

Avant de parler des solutions de stockage natives du nuage, passons en revue les "primitives" du nuage en ce qui concerne le "stockage".

Il s'agit du stockage d'objets (Azure blob / AWS S3). Il s'agit d'une couche de persistance des données étonnamment abordable, évolutive, disponible et durable, avec d'excellentes performances, mesurées par le débit. L'inconvénient est qu'il s'agit d'une nouvelle interface RESTful qui n'est cohérente qu'à terme.

Ensuite, vous avez ce que j'appellerais un SAN du pauvre, c'est-à-dire EBS sur AWS et Managed Disk sur Azure. Ils se présentent comme un "disque local", sont résilients et se comportent essentiellement comme un disque normal dans un serveur de stockage ordinaire. Ces primitives agissent comme l'équivalent d'un "disque local protégé" (sauf qu'il n'est pas attaché à l'instance de calcul locale). Ces primitives ont des caractéristiques de performance modérées et peuvent prendre en charge les "lectures/écritures aléatoires", mais elles sont coûteuses.

Enfin, vous avez les disques SSD NVMe attachés à l'instance, qui ressemblent plus à une extension de la DRAM dans la mesure où les données sur ces "lecteurs" ne persistent pas à travers les redémarrages de l'instance, et pourtant ils sont beaucoup moins chers que la DRAM ou le "disque local protégé" tout en ayant des caractéristiques de performance entre les deux.

Jusqu'à présent, le secteur du stockage a résisté obstinément au cloud. Les fournisseurs historiques (Dell, NetApp) ont beaucoup trop de code spécifique au matériel (forte dépendance à l'égard de la NVRAM, couplage étroit entre la résilience des données et les couches de services de données) pour remanier leurs offres afin de tirer parti des primitives "cloud-native". 

Puis sont arrivés VAST et Pure, qui ont également opté pour une pile de stockage optimisée sur le plan matériel.

Pure's stockage en nuage de blocs l'offre de Pure est à la fois pertinente en ce sens qu'elle utilise des primitives natives du nuage pour fournir les services de données en bloc tant souhaités par les clients de Pure ET plus que triste ! Qui diable utilise un SAN dans le nuage ? C'est à n'y rien comprendre. Et pendant que nous parlons de ce sujet, j'ai du mal à comprendre qui utilise VMWare dans le nuage. Cela aussi me laisse perplexe !

Parmi les fournisseurs de stockage de nouvelle génération, c'est Weka.io qui impressionne. Ils ont une architecture "cloud-native" et exploitent le stockage d'objets dans le nuage comme couche de résilience. Maintenant, si seulement ils n'avaient pas la réputation d'être un acteur de niche HPC et d'être une "Ferrari de verre"..

En tant que directeur technique de Qumulo, qu'ai-je à dire sur l'offre de services dématérialisés de Qumulo ?

Restez à l'écoute.

Notez la date dans vos agendas : le jeudi 9 novembre 2023, et préparez-vous à être époustouflé 🙂