Allocation de ressources dans les systèmes Cloud computing
L’allocation des ressources est un sujet qui a été développé dans de nombreux domaines informatiques, tels que les IoT, l’Edge computing et le Cloud computing. Le but de l’Edge et le Cloud computing est de réunir les ressource non-utilisé pour réaliser des pools de ressources partagés, rendre l’accès à la demande des utilisateurs aux ressources commodément, améliorer l’utilisation des ressources, etc. Cependant, les ressources disponibles des fournisseurs et les exigences des consommateurs en ressources sont à la fois variées dynamiquement. Par conséquent, l’un des principaux enjeux est définir une méthode d’allocation des ressources pour le traitement des données au bord et/ou au niveau de Cloud computing.
Définition et Concepts
L’évolution rapide d’applications des infrastructures informatiques (edge et Cloud) repose sur des technologies clés dont la technologie de base est la gestion des ressources. « Les ressources peuvent être défini d’une manière général comme tout matériel ou immatériel, les objets à usage restreint, ou de toute aide à maintenir les moyens de subsistance des objets » [17]. Les Ressources de Cloud et du edge computing peuvent être vus comme n’importe quelle ressource (physique ou virtuel) que les utilisateurs peuvent bénéficier suivant un ensemble technique mis en place. En général, les ressources sont situées dans un centre des données qui sont partagés par plusieurs clients, et doivent être attribués aux utilisateurs et ajustés dynamiquement en fonction d’une sollicitation. Classification des ressources dans le Cloud computing Les termes ressources incluent la fourniture d’un centre de données, matériel, logiciels, applications des fournisseurs d’infrastructure pour traiter et stocker des données sur Internet. Le concept principal du Cloud est de fournir des ressources à travers des services pour les personnes publiques ou privées ou les gens d’affaires utilisant les nuages. Ainsi de nombreux types de ressources sont fournis aux utilisateurs par Cloud pour l’exécution de leurs applications. Parmi ces types de ressources nous avons : Ressources informatiques Elles sont constituées par la collecte de mémoire, réseau, Processeur, périphériques d’entrée / sortie dans les infrastructures informatique (Edge et Cloud computing) ; celles-ci sont appelées machines physique(PM).Ainsi, les ressources informatiques sont successibles d’être allouées ou achetées par les utilisateurs selon leurs besoins .Cependant, Le concept de VM(Virtual machine) a révolu le PM où cette Page – 18 – dernière crée un logiciel virtuel sur lequel l’utilisateur peut s’exécuter machine virtuelle dans différents systèmes d’exploitation, applications et plates-formes. Ressources de réseautage Le réseautage est constitué de différentes types de ressources, parmi lesquelles nous avons : la bande passante, le stockage, la communication, le trafic, etc.… Dans le domaine du réseau, on constate très souvent des problèmes (manquements ou insuffisances) liés à ces ressources, ce qui nous oblige à implanter des protocoles pour améliorer la qualité des plateformes de nuages. Ressources énergétiques Dans le Cloud, la consommation d’énergie est l’un des facteurs le plus important pour pouvoir satisfaire la demande de ressources des utilisateurs. L’énergie consommée par le système pour fournir et allouer de ressources est beaucoup moins que l’énergie consommée par le système qui est inactif, dans l’attente d’une ressource alloué. Cela a conduit à une autre technologie, à savoir le nuage vert d’informatique. Classification des ressources dans l’Edge computing La première étape dans l’évaluation des avantages d’une solution de pointe consiste à décider quels types de ressources peuvent être gérés mieux comparé à un système centralisé. Une justification évidente de l’utilisation des architectures de bord est réduire le temps de réponse, ce qui peut être fait si des ressources de calcul et de communication sont fournies et utilisées adéquatement [20]. L’un des ressources la plus préoccupante est le stockage, il peut être bénéfique pour la sécurité ou la rapidité du fait de la personnalisation récupérer et sécuriser les mécanismes de stockage. Un type moins évident de la ressource est d’avoir accès à un type spécial de données (par ex. disponibilité de capteurs) offrant des avantages locaux dans une application. Des exemples sont l’utilisation de caméras ou de capteurs de localisation. La quantité et le type de données capturées affectent à leur tour les ressources de calcul et de communication (à quelle fréquence mélanger les données, quelle quantité traiter ou filtrer avant de mélanger), et implicitement le choix de l’endroit et de la quantité des autres ressources à déployer. Une autre catégorie que nous considérons est l’énergie en tant que ressource, qui est clairement influencée par la quantité de calcul, communication, stockage et capture de données. Enfin, certains travaux considèrent les ressources dans une manière générique en utilisant des termes abstraits tels que «ressource virtuelle» «Valeur» ou simplement en tant qu’éléments sans unité dans un modèle.
Gestion des ressources dans les systèmes Cloud Computing
Il existe de nombreuses types ressources dans les plateformes informatique de nuage (Cloud et edge) tel que : la mémoire, le processeur, l’espace de stockage, la bande passante et les équipements informatiques. Ces ressources sont allouées aux consommateurs pour satisfaire leurs besoins en terme de ressources. Cependant une bonne gestion des ressources est nécessaire pour qu’elles puissent être utilisées d’une manière fiable et optimale par les utilisateurs. Ainsi de nombreuses méthodes sont élaborées pour mieux gérer les ressources : La mutualisation des ressources C’est la pratique qui consiste à partager l’utilisation d’un ensemble de ressources par des consommateurs (ou entités quelconques) n’ayant aucun lien entre eux. Les ressources peuvent être de diverses natures : logicielles ou matérielles (machines, équipements réseau, énergie électrique). Cette pratique dépend du désir des entreprises de délocaliser leurs services informatiques vers des infrastructures informatiques [4]. Ces infrastructures informatiques doivent neutraliser les problèmes (sécurité, la disponibilité, l’intégrité, la fiabilité et l’uniformité d’accès aux données) liés à leurs exploitations et utilisations. La virtualisation des ressources La virtualisation est un mécanisme qui tente de masquer les caractéristiques physiques d’une ressource informatique de manière à simplifier les interactions entre cette ressource et d’autres systèmes, d’autres applications et les utilisateurs ; permet également d’obtenir une ressource physique comme plusieurs ressources logiques et, inversement, de percevoir plusieurs ressources physiques comme une seule ressource logique. Il offre une vue logique plutôt que physique, de la puissance de calcul, de la capacité de stockage, et des autres ressources informatiques et permet aussi de diminuer le gaspillage des ressources. La virtualisation repose sur trois éléments importants : L’abstraction des ressources informatiques ; La répartition des ressources par l’intermédiaire de différents outils, de manière à ce que celles-ci puissent être utilisées par plusieurs environnements virtuels ; La création d’environnements virtuels. Figure 9 Architecture de virtualisation des ressources
Allocation des ressources dans les systèmes Cloud computing et Edge Computing
De plus en plus, on note une croissance importante de la popularité des systèmes qui offrent des ressources informatique à la demande, basé sur la facturation à l’usage et l’équité des ressources partagées selon la demande des utilisateur pour que ces derniers puissent ajuster (augmenter ou diminuer) leur taux de consommation de ressources en fonction de leurs besoins. Ainsi ces systèmes peuvent supporter plusieurs consommateurs simultanément sur les mêmes infrastructures. Page – 20 – Figure 10 Module de gestion de Ressource [19] Le composant de base de la gestion des ressources est le processus de découverte des ressources qui détermine les types de ressources disponibles appropriés selon les exigences du client. Ce processus est géré par le fournisseur de services Cloud. Les informations complètes sur la disponibilité des ressources sont déterminées par la procédure de découverte des ressources. La découverte de ressources offre une méthode permettant de déterminer l’état des ressources gérées. Elle fonctionne avec la distribution des ressources pour fournir des informations sur l’état des ressources au serveur. La gestion des Ressources est un processus efficace et efficient qui gère les ressources ainsi fournie ET garanties le QoS aux utilisateurs Cloud tel que la haute disponibilité et le partage des ressources. Elle permet de gérer les ressources physiques tels que les noyaux CPU, espace disque et la bande passante du réseau. Il existe deux(2) principaux acteurs dans les systèmes Cloud computing : le fournisseur et l’utilisateur ou le consommateur. D’une part, les fournisseurs détiennent des ressources informatiques massives dans leurs grands centres de données et les louent à des utilisateurs. D’autre part, il ya les utilisateurs qui ont des applications avec des charges variées, louent des ressources de la part des fournisseurs pour exécuter leurs applications. La Figure 11 montre l’interaction entre les fournisseurs et les utilisateurs. Tout d’abord, l’utilisateur envoie une demande au fournisseur qui contient ces besoins en ressources. Lorsque ce dernier reçoit la demande, il cherche des ressources pour satisfaire la demande et alloue ces ressources à l’utilisateur demandeur, généralement sous forme des machines virtuelles (VM). Ensuite, l’utilisateur utilise les ressources assigné a lui pour exécuter leur applications et paie les ressources qui a utilisé. Lorsque l’utilisateur termine avec ces ressources, ils les retournent aux fournisseurs [21]. Cependant l’avantage majeur de l’edge et du Cloud est que les acteurs ont leur propre intérêt. C’està-dire les fournisseurs visent à maximiser que possible leurs revenus avec un investissement minimum autrement dit ils veulent maximiser l’utilisation de leurs ressources informatiques tandis que les utilisateurs veulent accomplir leur travail à un coût minimal ou, en d’autres termes, ils veulent maximiser leur performance économique et applicative. Vue l’importance donné à la confidentialité du matériel ou des données dans les systèmes informatiques, l’allocation optimale des ressources devient de plus en plus difficile à réaliser (ex. les fournisseurs ne veulent pas exposer combien et quel genre de machines ils ont et comment ils sont connectés au moment ou les utilisateurs ne veulent pas exposer les détails de leur charge de travail à d’autres personnes y compris les fournisseurs).