31 août 2009

Grid Computing

Après avoir défini l’"Utility Computing", une des premières étapes qui m’a semblé logique pour définir la genèse du "Cloud Computing" a été le "Grid Computing". En effet, le "Grid" et le "Cloud" sont souvent comparés [FZRL_09, S_08].
Personnellement, j’ai découvert ce concept informatique en 2003, lors d’une visite au CERN. Travaillant déjà dans le développement de sites et d’applications web, je n’avais pas vraiment porté d’intérêts sur ce concept, car il me semblait et me semble toujours dédié aux scientifiques qui veulent résoudre d’énormes problèmes.
Le concept de "Grid Computing" ou "Grille Informatique" est né en 1997 lors d’un séminaire intitulé "Building a Computational Grid" tenu au Laboratoire national d’Argonne. En 1998, Ian Foster et Carl Kesselman les deux organisateurs de ce séminaire ont publié un livre intitulé "The Grid : Blueprint for a New Computing Infrastructure" [FK_98]. Cet ouvrage est souvent considéré comme la bible du "Grid".
Le "Grid" ou "Grille" est une analogie au réseau électrique, "power grid" en anglais, où l’utilisateur se branche au réseau et paie ce qu’il consomme sans se soucier d’où vient le courant. Le "Grid" a été initialement mis au point pour permettre le partage des ressources au sein de la communauté scientifique. Les ressources partagées [CERN1] peuvent être de natures diverses comme des données de testes, des logiciels, du matériel informatique et même des télescopes ou des microscopes.
Le terme "Grid" est rapidement devenu un élément vendeur et il a donc été utilisé pour vendre de nombreux projets comme par exemple : "Data Grids" ou "Cluster Grids", etc. Ian Foster a donc précisé sa définition en 2002 en décrivant en trois points le "Grid Computing" [F_02] :
1)                  Un "Grid" coordonne des ressources partagées qui ne sont pas gérées de manière centralisée. C'est-à-dire qu’il permet de cordonner différents systèmes indépendants au sein d’une même entreprise ou au sein d’entreprises tierces tout en abordant les questions de sécurité, de droits d’accès et de paiement.
2)                  Utilisation d’interfaces et protocoles ouverts et standards afin de permettre l’authentification, la découverte des services et leur utilisation.
3)                  Un "Grid" doit fournir un niveau de service de qualité, malgré l’utilisation de ressources de natures différentes. Ce niveau de service doit être adapté en fonction des besoins comme le temps de réponse, le débit, la disponibilité, la sécurité ou la colocation des ressources.
Ces trois points laissent le débat ouvert sur ce que sont une gestion centralisée des ressources, des interfaces et protocoles ouverts ou un service de qualité. Toutefois Ian Foster précise qu’un "Cluster" informatique n’est pas un "Grid".
Techniquement un "Grid Computing" s’architecture en quatre couches [CERN1]. La première couche est la "couche réseau" qui permet d’interconnecter les différents éléments entre eux. La deuxième couche est constituée des ressources effectives faisant partie de la grille, tels que des ordinateurs, des systèmes de stockage, ou même des capteurs tels que des télescopes ou autres instruments qui peuvent être connectés directement au réseau. La troisième couche est le "middleware". Elle permet de gérer les interactions entre les différentes ressources. Cette couche gère l’organisation et la distribution des tâches aux différentes ressources. Pour ce faire le "middleware" s’appuie sur des agents capables d’échanger des métadonnées et des "brokers" charger de négocier l’authentification et l’autorisation d’utilisation. Le "broker" se charge aussi de conclure la transaction pour l’utilisation et le paiement de la ressource. Le "Globus toolkit" est un "middleware" très répandu qui permet entre autre de gérer l’affectation des ressources, de garantir la sécurité, de surveiller et découvrir les services et de répliquer les données. La dernière couche, qui est la seule à être visible des utilisateurs, est la couche applicative. C’est elle qui contient tous types d’applications développées pour le "Grid". Ces applications peuvent être de natures diverses comme des applications scientifiques ou financières, devant réaliser des gros calculs sans contraintes de temps. Pour fonctionner sur un "Grid" une application doit être "Gridifiée" pour interagir avec le système et pouvoir soumettre des demandes à la "Grille".
Pour conclure cet article, je peux dire que malgré la souplesse offerte par un "Grid" tant au niveau du type de ressources qu’à la quantité des ressources utilisables à un temps T, un "Grid Computing" peut-être utilisé que pour des applications spécifique (scientifique, financière, BI, …). Ceci est du à sa nature de brokering de tâches en fonction des besoins et des disponibilités. Le "Grid" a donc trouvé son créneau d’utilisation et pour moi il pourra être considéré que comme un cousin lointain du "Cloud Computing". 
[CERN_1] GridCafé.org. http://www.gridcafe.org/. Consulté le 10/07/2009
[F_02] Ian Foster. What is the Grid? A Three Point Checklist. Publié en 2002
[FK_98] Ian Foster, Carl Kesselman. The Grid : Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers, 1ère edition 1998
[FZRL_09] Ian Foster, Yong Zhao, Ioan Raicu, Shiyong Lu. Cloud Computing and Grid Computing 360-Degree Compared. Publié en 2009
[S_08] Jamie Shiers. Grid today, clouds on the horizon. Publié en 2008

Aucun commentaire:

Enregistrer un commentaire