Résumé
Presque toutes les entreprises s'attendent à introduire et à adopter Kubernetes dans leur environnement de production au cours des prochaines années.
Ces mêmes entreprises reconnaissent également que la mise en production de Kubernetes exige qu'il réponde aux mêmes normes que leurs autres applications de production. Parmi ces exigences, elles doivent disposer d'un moyen de sauvegarder et de récupérer les applications conteneurisées qu'elles hébergent dans Kubernetes.
D'un autre côté, il existe des points communs entre la sauvegarde des applications conteneurisées et celle des machines virtuelles. Toutes les applications sont virtuelles, il existe des API pour effectuer des sauvegardes et les données de sauvegarde sont toujours constituées de uns et de zéros à la base. Il est donc possible de sauvegarder et de stocker les sauvegardes des applications conteneurisées et des machines virtuelles dans les mêmes coffres-forts de sauvegarde.
Cependant, la sauvegarde des applications conteneurisées dans Kubernetes présente cinq défis distincts. Il s'agit notamment de :
- Protéger les données temporelles et le stockage des applications conteneurisées
- Gérer la nature imprévisible des applications conteneurisées
- Répondre à la dynamique des environnements Kubernetes en évolution rapide.
- Fournir l'ensemble des capacités de sauvegarde nécessaires pour Kubernetes.
- Créer des restaurations fiables à partir d'un environnement Kubernetes de production en constante évolution.
Pour relever ces cinq défis des sauvegardes Kubernetes, toute solution de sauvegarde doit capitaliser sur les caractéristiques spécifiques de Kubernetes. La principale d'entre elles est l'utilisation des métadonnées associées à chaque application conteneurisée. De cette façon, elle peut quantifier si elle doit sauvegarder l'application conteneurisée et, le cas échéant, comment la sauvegarder au mieux.
Il doit ensuite utiliser ces étiquettes de métadonnées à des fins multiples. Au minimum, il doit les utiliser pour identifier de manière unique quelle sauvegarde est laquelle. Il doit également coordonner les sauvegardes entre plusieurs conteneurs afin de pouvoir synchroniser des restaurations fiables, le cas échéant.
Enfin, les entreprises auront besoin d'une solution de sauvegarde fournie sur une architecture cloud-native pour s'adapter dynamiquement à un environnement Kubernetes en constante évolution. Idéalement, la solution de sauvegarde sera également fournie en tant que service et gérera à la fois les sauvegardes d'applications conteneurisées et de VM.
HYCU répond à ces défis spécifiques des sauvegardes Kubernetes. Il répond aux besoins continus des entreprises de protéger leurs environnements virtualisés tout en les positionnant pour sauvegarder leur nouvel environnement Kubernetes. Elles sont ainsi équipées pour gérer les sauvegardes d'applications conteneurisées et de VM de la même manière, avec un minimum de perturbations opérationnelles, voire aucune.
L'avenir, c'est Kubernetes
L'une des plus grandes transformations de l'histoire de l'informatique semble sur le point de se produire. Dans cette itération, les organisations se concentrent moins sur le matériel, les logiciels, la mise en réseau, la virtualisation ou les technologies en nuage qu'elles utilisent. Au contraire, elles peuvent déployer des applications conteneurisées sur n'importe quelle plateforme cloud dans n'importe quel environnement.
Cette vision est sur le point de devenir une réalité.
Le déploiement d'applications conteneurisées gérées par Kubernetes et hébergées sur des plateformes cloud-natives met cet idéal à portée de main.
En adoptant ces technologies de nouvelle génération, les organisations peuvent :
- Accélérer et raccourcir le développement et le déploiement des applications
- Aligner le placement des applications sur les plates-formes en nuage avec leurs besoins en termes d'activités, de coûts, de performances et de ressources.
- Mieux prévoir les coûts futurs et les besoins en ressources
- Héberger des applications sur n'importe quelle plateforme en nuage, à tout moment
- Faire évoluer l'infrastructure informatique à la demande
- Utiliser moins de ressources informatiques pour développer et héberger les applications
- Utiliser et réutiliser les ressources informatiques disponibles de manière plus efficace et efficiente
Ces avantages incitent de nombreuses entreprises à considérer ces technologies comme l'avenir de l'informatique. Parmi elles, les entreprises prévoient spécifiquement d'utiliser Kubernetes pour coordonner et orchestrer les charges de travail et les services conteneurisés dans plusieurs environnements cloud.
Une enquête réalisée en juin 2020 par la Cloud Native Computing Foundation a révélé que 78 % de ses membres utilisent déjà Kubernetes sous une forme ou une autre. Une autre enquête a révélé que 64 % des professionnels de l'informatique en entreprise ont déjà déployé Kubernetes sur site2.
Le site Google Cloud donne peut-être le meilleur aperçu de l'omniprésence que Kubernetes pourrait prendre dans les entreprises. Google fait déjà tourner toutes ses applications sur des conteneurs dans son nuage en lançant des milliards de conteneurs chaque semaine. Il utilise Kubernetes pour déployer, gérer, exploiter et orchestrer le déploiement d'applications conteneurisées dans son nuage.
Pour que cette vision devienne réalité, les entreprises doivent déployer une infrastructure qui protège ces applications conteneurisées et leurs données. Dans le cadre de cette infrastructure émergente, de nombreuses entreprises ont besoin d'une solution de sauvegarde avant d'adopter officiellement Kubernetes. Idéalement, elles espèrent utiliser le même logiciel pour sauvegarder leur environnement virtuel existant et leur nouvel environnement Kubernetes.
Caractéristiques communes des sauvegardes
Les conteneurs et les machines virtuelles (VM) partagent plusieurs caractéristiques qui permettent aux entreprises d'envisager l'utilisation d'une solution unique pour protéger les deux.
Les trois caractéristiques qui ressortent sont les suivantes :
- Les conteneurs et les machines virtuelles sont tous deux virtuels. Les conteneurs et les machines virtuelles fonctionnent indépendamment de la plate-forme qui les héberge. Un logiciel de sauvegarde bien conçu peut traiter et protéger les conteneurs et les machines virtuelles comme des objets.
- API disponibles. Les plateformes Kubernetes et hyperviseur sous-jacentes qui hébergent les conteneurs et les VM proposent des API. Le logiciel de sauvegarde interagit avec ces API pour effectuer des tâches telles que la prise d'instantanés de conteneurs ou de VM individuels.
- Les données sont des données. Que les entreprises hébergent leurs données dans des conteneurs ou des machines virtuelles, les données restent des données. Les logiciels de sauvegarde stockent et gèrent toutes les données de sauvegarde de la même manière, quelle que soit leur origine.
Malgré ces similitudes et d'autres, les logiciels de sauvegarde doivent gérer les sauvegardes et les restaurations de conteneurs différemment des sauvegardes de machines virtuelles.
Les cinq défis de la sauvegarde de Kubernetes
Les logiciels de sauvegarde doivent répondre à cinq défis spécifiques que la sauvegarde et la récupération des conteneurs dans Kubernetes engendrent.
1. Stockage éphémère
Le déploiement d'applications conteneurisées dans Kubernetes diffère considérablement du déploiement d'applications sur des VM. Si une application ou sa VM hôte s'arrête, les données de l'application et le stockage de la VM persistent. Ainsi, la prochaine fois que l'application au sein de la VM ou que la VM démarre, elle peut accéder aux données ou au stockage qui lui ont été alloués.
Kubernetes gère différemment les données et les ressources de stockage associées aux applications conteneurisées et à leurs pods. Lorsqu'une application ou un module s'arrête, Kubernetes récupère automatiquement les ressources qui lui ont été allouées, y compris le stockage. Une fois récupérées, les données associées à cette application ou à ce module sont effectivement "perdues".
Cela pose un double problème du point de vue de la sauvegarde.
Tout d'abord, le logiciel de sauvegarde doit être informé de l'existence de l'application conteneurisée.
Deuxièmement, les applications conteneurisées peuvent n'exister que pendant une courte période. On ne peut donc pas programmer des sauvegardes quotidiennes et s'attendre à ce qu'elles protègent les données de ces applications. Les sauvegardes doivent être effectuées pendant la durée d'existence de l'application conteneurisée.
2. Imprévisibilité
La flexibilité qu'offre Kubernetes pour démarrer des conteneurs n'importe où et n'importe quand sur presque n'importe quel cloud renforce son attrait pour les entreprises. Cependant, cette même flexibilité introduit également des niveaux d'imprévisibilité et de complexité qui peuvent dépasser de loin les environnements avec VM.
Une solution de sauvegarde doit effectuer plusieurs tâches pour sauvegarder cet environnement. Elle doit d'abord relever les défis associés aux applications conteneurisées et à leur stockage éphémère. Elle doit également déterminer si elle doit sauvegarder chaque application conteneurisée, car tous les conteneurs ne nécessitent pas de sauvegardes.
Si elle doit sauvegarder l'application conteneurisée, elle doit utiliser la politique appropriée pour la sauvegarder. La politique déterminera la fréquence à laquelle la solution doit sauvegarder l'application. Une sauvegarde peut être effectuée une seule fois, par exemple juste avant l'arrêt de l'application conteneurisée. En revanche, les sauvegardes peuvent avoir lieu plusieurs fois au cours de la vie de l'application conteneurisée.
3. Solution de sauvegarde Évolutivité
Kubernetes facilite le démarrage et l'arrêt de milliers, de millions, voire de milliards d'applications conteneurisées chaque semaine ou chaque mois.
La solution de sauvegarde doit disposer de ressources suffisantes pour détecter toutes les applications conteneurisées, programmer les tâches de sauvegarde et les gérer. La solution doit également disposer de ressources suffisantes pour gérer les données de sauvegarde du backend et effectuer des restaurations.
Déployé dans des infrastructures en nuage, Kubernetes exacerbe encore les problèmes de sauvegarde. Le nombre d'applications conteneurisées actives peut augmenter ou diminuer de façon spectaculaire, avec peu ou pas d'avertissement préalable.
Pour répondre à cet environnement et le gérer, la solution de sauvegarde doit s'y adapter automatiquement et de manière rentable. Au fur et à mesure que les applications conteneurisées démarrent, la solution de sauvegarde doit évoluer de manière dynamique. De même, lorsque les conteneurs sont mis hors ligne, la solution de sauvegarde doit évoluer dynamiquement vers le bas.
4. L'étendue des capacités de sauvegarde de Kubernetes
Le choix d'une solution de sauvegarde par une entreprise dépendra, en partie, de la maturité de son déploiement Kubernetes. Dans un environnement Kubernetes stable et plus mature, une entreprise écrit souvent des scripts qui automatisent le déploiement des composants de base de Kubernetes. Dans ces environnements, une entreprise peut ne sauvegarder que ses applications conteneurisées hébergées dans son environnement Kubernetes.
En revanche, une entreprise qui a adopté Kubernetes plus récemment peut être confrontée à des défis de sauvegarde différents. Elle n'a peut-être pas encore terminé la construction de son environnement Kubernetes. Ou bien, si c'est le cas, l'entreprise peut se demander si son infrastructure Kubernetes actuelle est celle qu'elle souhaite pour l'avenir.
Dans les deux cas, une entreprise n'a probablement pas encore créé de scripts pour recréer sa place de contrôle Kubernetes. Par conséquent, elle aura besoin d'une solution offrant des capacités de sauvegarde plus étendues. La solution devra sauvegarder à la fois le plan de contrôle Kubernetes et les applications et données conteneurisées.
5. Récupération
Si la sauvegarde des applications conteneurisées présente des difficultés, la récupération de ces applications présente des défis encore plus grands. Pour effectuer une restauration, le logiciel de sauvegarde doit d'abord associer chaque sauvegarde à une application, un utilisateur ou une autre constante environnementale spécifique.
Si une entreprise doit effectuer une restauration, elle doit disposer d'un moyen d'identifier la sauvegarde à restaurer. La nature temporelle des applications conteneurisées dans les environnements Kubernetes nécessite des procédures fiables pour lancer la restauration.
Dans le cadre de la reprise, une entreprise doit également déterminer l'étendue de la reprise dans l'environnement Kubernetes. Le logiciel peut n'avoir besoin de récupérer qu'une seule application conteneurisée. Cependant, des interdépendances peuvent exister et existent souvent entre plusieurs conteneurs. Cela peut nécessiter la récupération simultanée de plusieurs conteneurs.
L'ampleur de la perte de données influencera également les composants Kubernetes que le logiciel de sauvegarde doit récupérer. Si un déploiement Kubernetes est compromis, le logiciel de sauvegarde peut également devoir récupérer le plan de contrôle Kubernetes.
Les entreprises doivent également tenir compte des exigences émergentes en matière de récupération des applications conteneurisées dans d'autres déploiements Kubernetes. De plus en plus d'entreprises utilisent des clouds hybrides avec différentes versions de Kubernetes exécutées dans chaque cloud. Lorsqu'elles effectuent des restaurations, elles peuvent vouloir récupérer des applications dans un nuage différent de celui où elles ont été sauvegardées à l'origine.
Les déploiements Kubernetes utilisés dans différents clouds possèdent de nombreuses similitudes. Cependant, il existe des différences. Il faut s'assurer que la solution de sauvegarde prend en charge le déploiement de Kubernetes dans n'importe quel nuage dans lequel il peut être nécessaire de récupérer.
Relever les défis de la sauvegarde de Kubernetes
Pour relever ces cinq défis associés à la sauvegarde des environnements Kubernetes, les entreprises doivent gérer les sauvegardes différemment. Ce changement dans la gestion des sauvegardes commence dans la façon dont les entreprises déploient les applications conteneurisées dans Kubernetes.
Utiliser efficacement les étiquettes de conteneurs
Toutes les applications conteneurisées peuvent optionnellement posséder des métadonnées qui contiennent des étiquettes. L'utilisation de ces étiquettes devient obligatoire pour sauvegarder ces applications conteneurisées dans Kubernetes.
Chaque fois qu'une application conteneurisée démarre, elle doit s'enregistrer auprès du service de nœuds Kubernetes.
Lors de l'enregistrement, trois événements se produisent.
- Tout d'abord, le service de nœuds Kubernetes lit les étiquettes de métadonnées préexistantes du conteneur.
- Ensuite, Kubernetes ajoute des paires clé-valeur aux étiquettes du conteneur.
- Troisièmement, ces valeurs clés permettent d'identifier les ressources applicatives qui doivent être regroupées, car elles peuvent avoir besoin l'une de l'autre pour fonctionner.
Utiliser efficacement les étiquettes des conteneurs
Une solution de sauvegarde doit capitaliser sur ces fonctionnalités. Elle surveille les démarrages des conteneurs Kubernetes et leur contenu en métadonnées. Lors du démarrage du conteneur, elle vérifie si les étiquettes du conteneur contiennent des paires clé-valeur qui nécessitent une protection de la part de la solution de sauvegarde.
Le logiciel de sauvegarde utilise les métadonnées de chaque conteneur pour déterminer si, quand et comment il doit sauvegarder et récupérer les applications conteneurisées. Il crée et affecte les politiques de sauvegarde appropriées pour répondre à leurs besoins de récupération. Les sauvegardes sont ensuite synchronisées entre les applications conteneurisées qui dépendent les unes des autres dans la production. Cela permet d'assurer des restaurations cohérentes.
Pour ce faire, la solution de sauvegarde peut programmer une ou plusieurs tâches de sauvegarde dans le planificateur Kube. Le job de sauvegarde va alors sauvegarder ces applications conteneurisées et ses applications associées aux intervalles appropriés. Il peut également effectuer des sauvegardes lorsque des événements spécifiques se produisent, par exemple lors de l'arrêt d'un conteneur.
Attribuer des constantes aux sauvegardes
Pour réussir à récupérer une application conteneurisée, il faut que le logiciel de sauvegarde identifie exactement le moment où la sauvegarde de l'application a lieu. Pour ce faire, le logiciel de sauvegarde doit attribuer une ou plusieurs constantes environnementales à chaque sauvegarde. De cette manière, il peut identifier la sauvegarde appropriée à récupérer.
Les constantes environnementales attribuées à la sauvegarde peuvent inclure un horodatage et des identifiants spécifiques de nœuds, de pods et de conteneurs. Les applications conteneurisées doivent résider dans un pod et les pods doivent exister avec un nœud. Cette combinaison de variables permet de classer de manière unique l'endroit et le moment où chaque sauvegarde d'application a eu lieu.
Architecture en nuage
La mise à l'échelle pour répondre aux besoins de sauvegarde de milliers, de millions ou de milliards d'applications conteneurisées nécessite l'utilisation d'une architecture native dans le nuage. De cette manière, une solution de sauvegarde peut augmenter ou diminuer dynamiquement de manière efficace et rentable pour sauvegarder les applications.
HYCU : Une solution cloud pour Kubernetes et les sauvegardes de machines virtuelles
Kubernetes crée une nouvelle norme selon laquelle les entreprises doivent mesurer les solutions de sauvegarde. Bien que certains principes d'exécution des sauvegardes dans les environnements virtualisés s'appliquent à la protection des applications conteneurisées, il existe de nouvelles exigences en matière de sauvegarde et de récupération.
Dans les environnements Kubernetes, le logiciel de sauvegarde doit effectuer les tâches suivantes de manière dynamique :
- Détecter la création d'applications conteneurisées
- Appliquer la bonne politique de sauvegarde à chacun d'entre eux
- Identifier les dépendances qui peuvent exister entre les différentes applications conteneurisées
- Évolution à la hausse ou à la baisse pour gérer potentiellement des millions d'activités différentes liées à la sauvegarde.
HYCU accorde aux entreprises la possibilité de répondre à leurs besoins de sauvegarde et de restauration dans un environnement Kubernetes.
Construit sur une architecture cloud-native, HYCU monte et descend automatiquement et dynamiquement pour répondre à l'évolution des charges de travail de sauvegarde Kubernetes.
En interagissant avec Kubernetes, il protège à la fois le plan de contrôle de Kubernetes et les applications conteneurisées. Pour protéger les applications, HYCU lit les étiquettes de métadonnées préexistantes. HYCU attribue ensuite de manière programmatique les politiques de sauvegarde appropriées à chaque application conteneurisée en fonction de leurs étiquettes.
HYCU offre également des services de validation de récupération pour soutenir la récupération d'applications hébergées dans Kubernetes dans d'autres clouds. Il prend déjà en charge le site Google Kubernetes Engine (GKE) et d'autres services de cloud Kubernetes seront bientôt pris en charge. La plateforme unique de HYCU offre une expérience utilisateur unifiée pour gérer la protection des données sur Google Compute Engine (GCE), Google Cloud Storage et GKE. Les entreprises peuvent attribuer aux applications GKE les mêmes politiques que celles qu'elles utilisent déjà pour protéger les instances GCE et les applications qui s'y exécutent.
Fourni en tant que service, HYCU offre aux entreprises une solution unique pour protéger à la fois leurs applications conteneurisées et virtuelles. Sa console de gestion administre à la fois Kubernetes et les environnements virtuels. Elle permet aux entreprises de planifier et d'effectuer des sauvegardes de manière centralisée, d'archiver
et de copier des copies de sauvegarde, d'attribuer des politiques de sauvegarde et d'effectuer des restaurations.
En adoptant HYCU, les entreprises peuvent continuer à répondre aux besoins évolutifs de sauvegarde de leur environnement virtualisé existant.
HYCU les positionne simultanément pour répondre à leurs besoins émergents en matière de sauvegarde Kubernetes. Ce faisant, HYCU offre aux entreprises une excellente option pour passer à Kubernetes tout en garantissant l'intégrité de leurs données dans les deux environnements.
About DCIG
Le Data Center Intelligence Group (DCIG) permet au secteur des technologies de l'information de disposer d'analyses exploitables. Les analystes de DCIG fournissent une analyse tierce informée de diverses technologies de cloud, de protection des données et de stockage des données. DCIG développe de manière indépendante du contenu sous licence sous la forme de rapports TOP 5 et de profils de solutions.
De plus amples informations sont disponibles à l'adresse www.dcig.com.