Le framework de simulation de l'environement du Cloud
Pourquoi la Simulation?
Dans un système distribué, il existe des enjeux à résoudre tels que la gestion des ressources et l'ordonnancement des applications car, ces taches sont compliquées et il n'existe pas une solution optimale pour répondre à ces issues. D'autre part, dans l'environnement d'un système distribué comme Cloud, il est difficile d'effectuer les différents scénarios avec différent nombres de ressources et utilisateurs afin d'évaluer la performance des algorithmes du partage de charge, Broker, gestion des ressources...etc. Lorsque on veut évaluer les scénarios de manière répétable et contrôlable, cela est parfois impossible car l'issue du coût et la gestion. Afin de résoudre cette issue, les chercheurs utilisent les simulateurs pour effectuer leur scénarios avant de les effectuer au sein d'un système distribué réel. Dans ce qui suit, on va présenter l'un des outils de simulation le plus connu et utilisé dans le domaine de simulation du Cloud.
CloudSim
Ce framework modélise et simule l'environnement du Cloud computing et ses services, a été réalisé en Java. Afin que nous puissions simuler cet environnement, il faut connaitre l'architecture de ce framework.
La figure illustre les différentes couches de la structure du CloudSim et ses éléments architecturaux. Au niveau le plus bas est le moteur de simulation aux événements discrets SimJava, qui implémente les fonctionnalités de base requises pour les cadres de simulation au niveau supérieur, telles que les files d'attente, le traitement des événements, création de composants du système (services, hôte, Datacenter, Broker, les machines virtuelles), la communication entre les composants et la gestion de l'horloge de simulation.
CloudSim supporte la modélisation et la simulation de l'environnement de Datacenter basé sur Cloud, tel que des interfaces de gestion dédiées aux VMs, la mémoire, le stockage et la bande passante. La couche CloudSim gère l'instanciation et l'exécution des entités de base (VM, hôtes, Datacenters, applications) au cours de la période de simulation. Dans la couche plus haute de la pile de simulation, on trouve le code de l'utilisateur qui expose la configuration des fonctionnalités liées aux hôtes (ex: nombre de machines, leurs spécifications), les politiques d'ordonnancement de Broker, applications ( ex: nombre de tâches et leurs besoins), VM, nombre d'utilisateurs. Les fichiers du CloudSim sont accessible ici.
Pour utiliser ce framework, il faut un outil de programmation. C'est pour cela, on utilise Eclipse pour faire la programmation en Java. La vidéo ci-dessous montre comment intégrer CloudSim dans Eclipse. Il est nécessaire de connaissance la programmation en Java
De nos jours, offrir des services tels que site de commerce, stockage online et réseaux sociaux sur internet est augmente. Les clients utilisent des sites de commerce ou des réseaux sociaux pour leur achats ou communication. D'autre part, des utilisateurs sont dans les endroits différents (partagés sur la planète) par conséquent, il est nécessaire de rendre ces services à la fois rapide et fiable. Pour ce faire, il faut une architecture bien configurée qui puisse traiter les requêtes envoyées depuis les clients vers les serveurs traitant des services proposés, dans un court délai de temps et de manière fiable pour satisfaire le client. Afin de porter ces services, on utilise les systèmes distribués, comme technologie, on peut citer le Cloud et la grille.
Le Cloud computing est la prestation de services informatiques sur Internet. Ses services permettent à des individus et des entreprises d'utiliser les logiciels et les matériels qui sont gérées par les tiers sur les sites distants. Les services proposés par le Cloud comprennent le stockage de fichiers en ligne, sites de réseaux sociaux, webmail, et les applications en ligne. Le modèle de Cloud computing permet d'accéder à des ressources d'information et de l'informatique depuis n'importe quel endroit, où une connexion réseau est disponible. Les avantages du Cloud computing comprennent l'économie de coûts, la haute disponibilité et l'évolutivité facile.
Outils de simulation
Il y a plusieurs outils de simulation de systèmes distribués. Les plus connus sont GridSim, CloudSim, Simgrid. Dans ce qui suit, on va présenter le framework CloudSim, qui permet de la simulation de l'environnement du Cloud computing.
Maintenant, notre infrastructure du Cloud est prête à utiliser pour la simulation d’une application distribuée. Par exemple, on a une application qui est composée de 2 parties et chaque partie doit être s'exécutée sur une machine virtuelle et puis les données sont échangées entre ces deux parties aussi entre les machines. Pour ce faire, il faut écrire une classe qui simule le comportement d’une application. L’exemple ci-dessous (basé sur l'exemple ici), est un exemple de simulation de Client/Serveur. Le client envoi des paquets ICMP vers le serveur et le serveur lui répond.