A la découverte d’iCanCloud, un simulateur
de larges systèmes de cloud computing

Je présenterai dans ce billet iCanCloud, un système de simulation de ressource du cloud.

INTRODUCTION

Qu’est-ce que iCanCloud ?

iCanCloud est une plateforme de modélisation et de simulation de systèmes de cloud computing.

Mais avant ça, c’est quoi le cloud computing ?

Le cloud computing est le paradigme qui fournit l’accès à des infrastructures de calcul à la demande en permettant à un utilisateur d’utiliser un certain nombre de machines virtuelles (MVs) afin de résoudre un problème de calcul donné.

Et, pourquoi simuler des systèmes de cloud computing ?

Avant de mettre en place de nouvelles applications s’exécutant sur le cloud, il est souvent utile d’estimer les différentes configurations performances/coûts possibles. Le faire physiquement sur les fournisseurs de solutions de cloud demande beaucoup de travail et coûte cher. C’est pour cette raison qu’on utilise les simulateurs. iCanCloud en fait partie. Il étudie donc le compromis entre coûts et performances de l’exécution d’une application en fonction des environnements dans laquelle elle s’exécute. Fournir à l’utilisateur des informations sur de tels coûts est utile afin de pouvoir faire son choix.

Comment les scénarios de simulation de cloud computing sont-ils modélisés ?

En utilisant un ensemble de composants fournis par iCanCloud. Ces derniers représentent le comportement de composants réels qui appartiennent à des vraies architectures comme les disques, réseaux, mémoires, systèmes de fichiers, etc. Ces composants font partie du moteur de simulation.

Qui peut utiliser iCanCloud ?

Ça peut être un simple utilisateur ou un développeur de larges applications distribuées. Il ne faut en effet pas être un spécialiste pour manipuler l’outil doté d’une interface utilisateur pas très difficile à utiliser.

Quels sont les outils proches

D’autres simulateurs de ressources de cloud computing existent, entre autres : CloudSim, GreenCloud, NetworkCloudSim, CloudReports, etc.

ARCHITECTURE DU SYSTEME

L’architecture d’iCanCloud est organisée en couches comme le montre la Figure 1.

Figure 1 : Architecture d’iCanCloud

Couche modèles physiques : elle contient les modèles en charge de modèliser les parties materielles du système : disques, mémoires, processeurs, réseaux. En utilisant ces modèles, des systèmes distribués en entier peuvent être modélisés et simulés.

Module API du système : elle est directement liée à la couche modèles physiques. Ce module contient un ensemble d’appels systèmes qui sont offerts sous forme d’une API pour toute les applications exécutées dans une MV modélisée en utilisant iCanCloud. Ces appels systèmes fournissent donc une interface entre les applications et les services fournis par les modèles physiques. La Figure 2 montre quelques fonctions fournies par l’API où la ligne 2 montre par exemple une fonction pour l’utilisation du service CPU. Ainsi, les applications qui demandent du calcul CPU doivent invoquer la fonction iCanCloud_cpu et spécifier le nombre d’instructions à exécuter, mesuré en millions d’instructions, etc. En plus de ces fonctions fournies par l’API, iCanCloud fournit aussi une interface pour developper et exécuter des applications distribuées.

Figure 2 : Quelques fonctions de l’API du système

Couche entrepôt de MVs : elle contient une collection de MVs définies par l’utilisateur. A la base, le système fournit déjà quelques modèles de MVs existantes dans des clouds bien connus comme Amazon (EC2). Les utilisateurs ont la possibilité d’ajouter ou supprimer leurs propres MVs. Ces MVs sont considérées comme des modules de base pour la construction de systèmes de cloud computing. Elles utilisent les composants physiques définis dans la couche la plus basse de l’architecture.

Couche entrepôt d’applications : elle contient une collection prédéfinie d’applications pouvant être personnalisées par les utilisateurs. Ces modèles d’applications serviront à configurer des tâches qui seront exécutées dans les MVs du système. Par ailleurs, de nouveaux modèles d’applications peuvent être ajoutés grâce à une API fournie.

Couche cloud hyperviseur : elle consiste en un module en charge de gérer les tâches à exécuter et les instances de MVs où ces tâches sont exécutées. Elle s’occupe aussi d’estimer le coût d’utilisation des ressources.

Module système de cloud : ce module définit le système de cloud, qui consiste en la définition de l’hyperviseur et de chaque MV qui compose le système.

CARACTERISTIQUES D’iCanCloud

Ci-après quelques caractéristiques d’iCanCloud.

SCENARIO D’UTILISATION

Dans un scénario d’utilisation d’iCanCloud, l'hyperviseur joue un rôle principal. Il est en effet en charge de la gestion des MVs et de l'exécution les tâches envoyées par les utilisateurs. La Figure 3 montre l'architecture globale d’un système de cloud computing modélisé en utilisant iCanCloud. On y distingue trois entités : utilisateurs, hyperviseur et centres de données.

L’hyperviseur réalise quatre tâches principales :

Figure 3 : Architecture d’un scénario construit avec iCanCloud

Les centres de données représentent des VMs configurées avec caractéristiques prédéfinies (mémoire, processeurs, etc.). Les utilisateurs sont représentés comme des entités qui soumettent un ensemble de tâches à exécuter sur des MVs spécifiques dans les centres de données. Ces soumissions arrivent directement à l’hyperviseur qui gère une liste de tâches. Une fois la liste de tâches d’un utilisateur épuisée, un rapport lui est envoyé décrivant la simulation réalisée.

PRATIQUE

Où télécharger iCanCloud ?

Le simulateur iCanCloud est un logiciel libre accessible à l’adresse suivante :

http://sourceforge.net/projects/icancloudsim/

Autres outils nécessaires à son fonctionnement

iCanCloud est un outil libre, implémenté en C++. Il a besoin pour fonctionner ou pour développer de nouveaux modules des plateformes de simulation OMNeT++ et INET.

Utiliser iCanCloud

Ci-après quelques captures d’écran correspondant à l’utilisation d’iCanCloud.

Après une simulation, les résultats sont fournis sous forme d’un fichier .csv.

AU FINAL

Vaudrait-il le coût d’utiliser iCanCloud ?

iCanCloud a une interface utilisateur facile d’utilisation. Mais ceci est aussi le cas d’autres outils de simulation de ressources du Cloud, à l’image de CloudSim, CloudReports ou encore GreenCloud. Ce n’est donc pas cela qui fera la différence si vous avez à faire un choix entre plusieurs simulateurs.

En revanche, si vous souhaitez faire des simulations rapides et à très grande échelle, il ne va pas vous décevoir. Les auteurs ont comparé dans [1] leur simulateur à un simulateur mature, CloudSim, en termes d’efficacité et de passage à l’échelle. iCanCloud a mis moins de temps que CloudSim à exécuter 50000 tâches et il a fait pareil pour 250K tâches, ce qui prouve qu’il est efficace et passe mieux à l’échelle que CloudSim.

Un bémol subsiste toutefois, la version implémentée d’iCanCloud concerne uniquement des simulations possibles sur les infrastructures du fournisseur public de services de cloud, Amazon EC2. Il est toutefois possible d’ajouter (il faudrait les implémenter !) d’autres modules pour simuler sur d’autres infrastructures. Ceci permettrait de faire une comparaison entre les différents fournisseurs de ressources.

iCanCloud est un outil libre, facile d’utilisation, efficace et passe bien à l’échelle. Ça vaut donc le coût de l’utiliser dans vos simulations.

Références

[1] Alberto Nuñez, José Luis Vázquez-Poletti, Agustín C. Caminero, Gabriel G. Castañé, Jesús Carretero, Ignacio Martín Llorente: iCanCloud: A Flexible and Scalable Cloud Infrastructure Simulator. J. Grid Comput. 10(1): 185-209 (2012)

[2] http://cloudsim-setup.blogspot.fr/

[3] http://www.arcos.inf.uc3m.es/~icancloud/iCanCloud_Quickguide.pdf