L’essor des applications cloud natives modifie fondamentalement la façon dont les organisations développent et exploitent des applications logicielles. Mais ce changement ne change pas seulement le développement d’applications ; cela a également un impact sur l’infrastructure. Les nouvelles technologies telles que la conteneurisation, Kubernetes, l’informatique sans serveur et les microservices sont des composants clés des environnements cloud natifs. Pour prendre en charge les environnements cloud natifs modernes – et les technologies émergentes qui en font partie – les entreprises ne peuvent pas s’appuyer sur une infrastructure de stockage traditionnelle.
A propos de l’auteur
Gary Ogasawara est CTO de Cloudian.
Au lieu de cela, ils doivent utiliser des plates-formes de stockage cloud natives. Pour éviter toute confusion, il est important de définir ce que signifie « cloud native », car le terme a été étendu pour inclure des applications qui ne sont pas vraiment cloud natives. La Cloud Native Computing Foundation (CNCF) décrit les applications cloud natives comme des « applications évolutives dans des environnements modernes et dynamiques, tels que les clouds publics, privés et hybrides ». En pratique, cela signifie des applications hautement distribuées, facilement évolutives, conteneurisées et gérées à l’aide de Kubernetes.
Les systèmes de stockage cloud natifs doivent être portables, évolutifs et prendre en charge les technologies courantes dans les environnements cloud natifs. En d’autres termes, ces systèmes doivent être équipés pour gérer correctement les données des applications avec état, tout en relevant les défis de stockage de données courants dans les environnements cloud natifs, tels que les obstacles associés à la gestion des données pour les applications basées sur Kubernetes.
Pour y parvenir efficacement, le stockage cloud natif doit être très bien noté dans six domaines opérationnels clés : évolutivité, cohérence des performances, durabilité, déployabilité et disponibilité.
Sommaire
Évolutivité
L’évolutivité est une caractéristique fondamentale des applications et des environnements cloud natifs, il est donc logique que le stockage cloud natif soit également facilement évolutif. L’évolutivité d’une plate-forme de stockage peut être divisée en quatre catégories : l’évolutivité du client (la possibilité d’augmenter le nombre de clients ou d’utilisateurs accédant au système de stockage), l’évolutivité de la capacité (la possibilité d’augmenter la capacité de stockage en un seul déploiement de systèmes de stockage), le débit l’évolutivité (la possibilité d’exécuter plus de débit ou de traiter plus de données par seconde) et l’évolutivité du cluster (la possibilité de développer un cluster de stockage en déployant des composants supplémentaires). Le stockage cloud natif doit être hautement évolutif dans les quatre dimensions.
Performance
Les performances sont essentielles dans les environnements cloud natifs. Les plates-formes de stockage cloud natives doivent offrir des performances de haut niveau qui sont également prévisibles et évolutives. Cela signifie que les systèmes doivent être capables de terminer rapidement une opération de lecture ou d’écriture, d’exécuter un nombre substantiel d’opérations de stockage par seconde et de fournir un débit de données élevé pouvant être stocké ou récupéré en Mo/s ou Go/s.
Cohérence
La cohérence est également essentielle pour les systèmes de stockage cloud natifs. Les plates-formes peuvent être décrites comme cohérentes si les opérations de lecture renvoient rapidement les données correctes après leur écriture, leur mise à jour ou leur suppression. Si de nouvelles données sont immédiatement disponibles pour les opérations de lecture par les clients après leur modification, le système est extrêmement cohérent. Cependant, s’il y a un décalage jusqu’à ce que les opérations de lecture renvoient les données mises à jour, le système n’est qu’à terme cohérent. Dans ce cas, le délai de lecture peut être considéré comme un objectif de point de récupération (RPO), car il représente la quantité maximale de perte de données en cas de défaillance d’un composant.
Durabilité
Le stockage cloud natif doit être durable et protéger contre la perte de données. La durabilité signifie plus qu’une simple accessibilité – des plates-formes véritablement durables garantissent que les données peuvent être stockées en toute sécurité pendant de longues périodes. Ces systèmes doivent inclure plusieurs couches de protection des données (y compris la prise en charge de nombreuses copies de sauvegarde des données) et plusieurs niveaux de redondance (tels que la redondance locale, la redondance sur les régions, la redondance sur les zones de disponibilité du cloud public et la redondance vers un site distant). Ils doivent également être capables d’identifier la corruption des données et de restaurer ou reconstruire automatiquement ces données. La détérioration des supports de stockage et les composants défaillants sont des causes courantes de corruption des données.
En outre, les supports de stockage spécifiques qui composent une plate-forme de stockage cloud native (par exemple, les disques SSD, les disques rotatifs et les bandes) doivent être physiquement résilients.
Déployabilité
Les applications cloud natives sont extrêmement portables et facilement distribuées sur de nombreux emplacements. Pour prendre en charge cette agilité, il est essentiel que les systèmes de stockage puissent être déployés ou provisionnés à la demande. Cela nécessite une approche évolutive définie par logiciel, qui permet aux entreprises d’augmenter immédiatement leur capacité de stockage sans ajouter de nouvelles appliances. Une architecture de stockage qui exploite un seul espace de noms est idéale ici. Étant donné que ces systèmes connectent tous les nœuds ensemble dans une structure de données globale peer-to-peer, ils permettent d’ajouter de nouveaux nœuds (et plus de capacité) à la demande sur n’importe quel emplacement en utilisant l’infrastructure existante.
Disponibilité
Enfin, le stockage cloud natif doit être hautement disponible, offrant un accès immédiat aux données en cas de défaillance, quel que soit l’endroit où cette défaillance se produit (par exemple, dans le système de transmission, le support de stockage, le contrôleur, etc.). Pour être considérés comme hautement disponibles, les systèmes de stockage doivent être capables de réparer et de restaurer tous les composants défaillants, de conserver des copies de données redondantes sur un périphérique distinct et de gérer le basculement vers des périphériques redondants.
Les applications cloud natives ne sont plus déployées exclusivement dans des environnements DevOps, elles sont désormais de plus en plus déployées en pleine production. Cela inclut à la fois les applications cloud natives sans état et avec état. Avec davantage d’applications cloud natives prenant en charge des cas d’utilisation réels, en particulier des applications cloud natives avec état, les organisations ont besoin d’une infrastructure de stockage spécialement conçue pour ces environnements.
Conclusion
Un stockage cloud natif efficace doit être efficace dans les six domaines décrits ci-dessus. Bien sûr, ce ne sont pas les seules considérations, car la sécurité, la gérabilité, l’observabilité et l’automatisation basée sur les API sont également des facteurs importants. Mais pour les organisations qui évaluent les options de stockage cloud natif, une liste de contrôle comprenant l’évolutivité, les performances, la cohérence, la durabilité, la déployabilité et la disponibilité est le meilleur point de départ.