La sécurité dans les grilles vs le Cloud Computing
L’architecture du Cloud
Il existe plusieurs versions qui définissent l’architecture du Cloud ; Dans ce qui suit nous allons voir et expliquer deux modèles d’architecture : le premier a été présenté par [Foster I et Al., 2008] où les auteurs ont essayé de proposer un ensemble de couches en se basant sur l’architecture des grilles proposée dans la section 1.2.5. Le second modèle a été présenté par [Buyya R. et Al., 2013].
L’architecture proposée par Ian Foster et Al., 2008
Dans [Foster I et Al., 2008], les auteurs ont défini une architecture à quatre couches (figure 1.11) en se basant sur celle qui a été proposée pour les grilles. La couche fabrique Cette couche se compose des ressources matérielles brutes, telles que : les unités de calcul de base, les disques de stockage et les bandes passantes réseau. Similaire aux grilles, dans cette couche la plupart des ressources sont hétérogènes. Par exemple, dans un data-center du Cloud, les machines physiques sous-jacentes peuvent être des PC, des stations de travail ou des superordinateurs [Liu X. et Al., 2012]. Figure 1. 11 Architecture du Cloud [Foster I et Al., 2008] La couche ressource unifiée Cette couche est constituée de ressources hétérogènes qui se présentent généralement sous la forme de ressources virtuelles. Dans cette couche, les machines physiques sous-jacentes ont été abstraites / encapsulées généralement par des outils de virtualisation afin qu’elles puissent être exposées aux couches supérieures et aux utilisateurs finaux comme des ressources intégrées [Liu X. et Al., 2012]. La couche plateforme Cette couche consiste en un ensemble d’outils de gestion des ressources et de services du middleware au-dessus des ressources unifiées. La couche plateforme peut fournir une plateforme de développement et / ou de déploiement, par exemple, un environnement d’hébergement web, un service de modélisation de flux de travail et un service de planification et ainsi de suite [Liu X. et Al., 2012]. La couche application Cette couche se compose des applications utilisateur qui peuvent être n’importe quel type d’applications telles que : les applications de flux de travail dans le Cloud, les outils de réseaux sociaux et les sites web de commerce électronique [Liu X. et Al., 2012].
L’architecture proposée par Buyya R. et Al., 2013
Dans [Buyya R. et Al., 2013], les auteurs ont proposé une architecture de quatre couches (figure 1.12). Dans cette architecture le middleware est divisé en deux parties, le cœur du middleware et le middleware niveau-utilisateur. La couche la plus basse représente l’infrastructure du Cloud, qui peut être de nature hétérogène car une grande variété de ressources telle que : les clusters et les réseaux de pc, peuvent être utilisés pour la construire. De plus, les systèmes de base de données ainsi que les services de stockage peuvent faire partie de cette infrastructure. La couche suivante représente le cœur du middleware qui a pour objectif de gérer l’infrastructure du Cloud en fournissant un environnement d’exécution d’application et une meilleure utilisation des ressources. Cette couche prend également en charge les technologies de virtualisation qui sont utilisées pour garantir la personnalisation de l’environnement d’exécution, l’isolation des applications et la qualité de service [Buyya R. et Al., 2013]. La virtualisation matérielle est généralement utilisée à ce niveau. Elle prend en charge le groupement des ressources et expose l’infrastructure distribuée sous la forme d’une collection de machines virtuelles. En utilisant la technologie des machines virtuelles, il est possible de partitionner finement les ressources matérielles et de virtualiser des périphériques spécifiques, répondant ainsi aux exigences des utilisateurs et des applications [Buyya R. et Al., 2013]. La combinaison des plateformes d’hébergement du Cloud et les ressources sont généralement classés comme IAAS. Les solutions IaaS sont adaptées à la conception de l’infrastructure système mais fournissent des services limités pour la création d’applications. Ce service est fourni par des outils d’environnement de programmation Cloud, qui forment une nouvelle couche pour offrir aux utilisateurs une plateforme de développement pour les applications. La gamme d’outils comprend des interfaces web, des outils de ligne de commande et des frameworks. Dans ce scénario, les utilisateurs développent leurs applications spécifiquement pour le Cloud en utilisant l’API exposée au niveau du middleware niveau-utilisateur. Pour cette raison, cette approche est également connue sous le nom de Plateforme comme service (PaaS) car le service offert à l’utilisateur est une plateforme de développement plutôt qu’une infrastructure. Les solutions PaaS incluent également l’infrastructure, qui est fournie dans le cadre des services fournis. La couche supérieure de la figure de référence contient les services fournis au niveau de l’application. Ceux-ci sont principalement appelés logiciel comme service (SaaS). Dans la plupart des cas, il s’agit d’applications web qui s’appuient sur le Cloud pour fournir des services aux utilisateurs finaux. La puissance du Cloud fournie par les solutions IaaS et PaaS permet aux éditeurs de logiciels indépendants de fournir leurs services applicatifs via internet. Les autres applications appartenant à cette couche sont celles qui exploitent fortement internet pour leurs fonctionnalités de base qui reposent sur le Cloud afin de supporter un plus grand nombre d’utilisateurs; C’est le cas des portails de jeux et, en général, des sites de réseaux sociaux [Buyya R. et Al., 2013]. Figure 1. 12 Architecture du Cloud [Buyya R. et Al., 2013] 1.3.6.3. L’architecture proposée par le NIST L’architecture de référence du Cloud Computing présentée par le NIST [Hogan M et Al., 2011] a défini cinq acteurs participants au fonctionnement de cette architecture à savoir : Le consommateur du Cloud, le fournisseur du Cloud, l’auditeur du Cloud, le courtier du Cloud et le transporteur du Cloud. Dans ce qui suit nous allons définir chaque acteur et expliquer les interactions possibles entre tous ces acteurs. Le consommateur du Cloud Est l’acteur final pour lequel le service du Cloud a été créé. Un consommateur du Cloud représente une personne ou une organisation qui entretient une relation commerciale avec le fournisseur du Cloud et utilise le service créé. Cet acteur parcourt le catalogue de service du fournisseur du Cloud, demande le service voulu, établie des contrats de services avec le fournisseur, utilise le service et enfin il paye ce qu’il a consommé [Hogan M et Al., 2011]. Le fournisseur du Cloud Cet acteur peut être une personne, une organisation ou une entité chargée de mettre un service à la disposition des consommateurs [Hogan M et Al., 2011]. Le fournisseur du Cloud se charge des activités suivantes : Construit les services de type logiciel, plateforme ou infrastructure demandés. Gère l’infrastructure technique requise pour fournir les services demandés. Fournit les services. S’occupe de la sécurité de ces services. L’auditeur du Cloud Est une partie qui peut effectuer une évaluation indépendante : des services du Cloud, des opérations du système d’information, des performances et de la sécurité du Cloud [Hogan M et Al., 2011]. Le courtier du Cloud Est une entité qui gère l’utilisation, la performance et la délivrance des services du Cloud. Cette entité négocie également les relations entre le fournisseur du service et le consommateur du Cloud. On fait appel au courtier lorsque les services sont difficiles à gérer par le consommateur, au lieu de les demander au fournisseur du Cloud, le consommateur les demande au courtier [Hogan M et Al., 2011]. Le transporteur du Cloud C’est un intermédiaire qui fournit la connectivité et le transport des services depuis le fournisseur vers le consommateur du Cloud. Le transporteur fournit l’accès au consommateur via les réseaux, la télécommunication et des dispositifs d’accès [Hogan M et Al., 2011].
Les différents projets de Cloud
Dans cette partie nous allons présenter les projets de Cloud les plus importants.
Google App Engine
Google App Engine est un service qui permet d’héberger des applications web dans l’infrastructure Google existante. Il permet également aux développeurs de concevoir, développer et déployer des applications Java et Python dans des environnements Java, Go et Python sans être obligé de maintenir des serveurs. En outre, cet outil offre un support pour une multitude de langages de programmation. Le service prend également en charge les environnements standards et flexibles. Les utilisateurs ont juste besoin de choisir un environnement, sélectionner un langage et programmer [ikbooks, 2017].
Microsoft Azure
Microsoft propose une plateforme cloud au nom de Window Azure. Il s’agit d’un environnement de développement, d’hébergement et de gestion qui offre une capacité de calcul et de stockage à la demande au niveau de l’entreprise. Pour utiliser les fonctionnalités du Cloud Azure, vous devez utiliser l’API Azure. Windows Azure est hébergé dans le centre de données Microsoft et fournit des systèmes d’exploitation, des outils de développement pour créer des applications web pouvant également avoir une interface avec des périphériques locaux. Ces applications peuvent être développées à l’aide de l’environnement de développement Visual Studio et du framework .NET. Il prend également en charge plusieurs protocoles internet, notamment HTTP, REST, SOAP et le standard XML. Ses différents composants de support sont les suivants [ikbooks, 2017]: SQL Azure : offre des fonctionnalités Microsoft SQL Server pour les applications basées sur le Cloud afin de stocker des données structurées, semi-structurées et non structurées. Windows Azure Marketplace : est un marché en ligne permettant aux développeurs d’applications d’acheter et de vendre du code, des composants, des formations, des modèles de services et de nombreuses autres fonctionnalités nécessaires au développement d’applications Windows Azure. Les services Windows Azure : aident à la collaboration au-delà des frontières organisationnelles en maintenant la sécurité dans les domaines avec simplicité. Il fournit des fonctionnalités d’authentification et de contrôle d’accès à l’aide d’une infrastructure puissante, sécurisée et normalisée. Windows Azure HPC Scheduler : fournit des modules et des fonctionnalités permettant de lancer et de gérer des applications de calcul haute performance (HPC) dans un service Windows Azure.
SalesForce.com
Salesforce [salesforce, 2018] est un Cloud de type logiciel comme service (SaaS) qui propose un logiciel de gestion de la relation client (CRM) en tant que service. Au lieu de maintenir le matériel et les licences des logiciels, les clients utilisent le logiciel hébergé sur les serveurs Salesforce pour un coût minime. Les clients de Salesforce utilisent le logiciel comme s’il était le leur et n’ont pas à se soucier des coûts de sa maintenance. Cela inclut la fourniture du matériel, l’installation, ainsi que tous les logiciels requis et les mises à jour de routine. Cependant, Salesforce n’est applicable qu’aux clients qui ont besoin de logiciels existants. Salesforce n’offre que des logiciels de CRM et n’autorise pas l’hébergement de services personnalisés. Bien que Salesforce est un Cloud facile à utiliser mais il reste le moins flexible [Buyya R. et Al., 2011]. 1.3.7.4. EC2 d’Amazon Amazon Elastic Compute Cloud (EC2) est un service IaaS qui fournit une capacité de calcul élastique dans le Cloud. Ce service peut être exploité via des services web (SOAP ou REST), une console de gestion web AWS (Amazon Web Service) ou les outils de ligne de commande EC2. Le service Amazon fournit des centaines d’AMI (Amazon Machine Images) prédéfinies avec divers systèmes d’exploitation (Linux, OpenSolaris ou Windows) et des logiciels pré chargés. Il offre un contrôle complet de nos ressources informatiques et nous permet une exécution facile sur l’infrastructure d’Amazon. Le service EC2 d’Amazon réduit le temps nécessaire à l’obtention et au démarrage des instances d’un nouveau serveur en minutes, permettant ainsi une capacité et des ressources évolutives et rapides [Buyya R. et Al., 2011].
La différence entre les grilles informatiques et le Cloud Computing
Dans cette partie, nous allons comparer les grilles et le Cloud Computing en se basant sur différents aspects qui jouent un rôle important sur la performance et la fiabilité des deux technologies. D’abord, il faut commencer par le modèle de calcul utilisé par chaque technologie, le calcul dans une grille se fait en divisant une tâche énorme en un grand nombre de sous-tâches indépendantes et non liées pour pouvoir les exécuter par un nombre de ressources (figure 1.13). Si l’une des ressources échoue et ne renvoie pas le résultat, cela n’aura pas d’importance car l’ensemble du processus ne sera pas affecté. Tout comme les grilles, le Cloud se constitue d’un grand nombre de ressources qui sont regroupés de manière à être prêtes pour l’exécution (virtualisation). Mais les ressources fournies par le Cloud sont pour accomplir une tâche spéciale, par exemple : un utilisateur peut utiliser une ressource du groupement pour déployer son application, ce n’est pas comme dans le cas ou il soumet sa tâche à la grille et laisse cette dernière la compléter. En outre, le Cloud prend en charge de nombreuses opérations qui ne sont pas adaptées aux grilles, telles que la gestion efficace des applications interactives sensibles à la latence. Figure 1. 13 Modèle de calcul d’une grille En ce qui concerne le modèle économique, les modèles de logiciels traditionnels utilisaient le principe d’un paiement unique pour une utilisation illimitée du logiciel. L’avènement du Cloud Computing a donné naissance à un nouveau modèle économique, qui consiste à faire payer au client uniquement ce qu’il consomme. Par contre, le modèle économique des grilles est orienté projets où les organisations qui l’adoptent partagent les ressources de manière collaborative avec d’autres organisations faisant partie de cette grille. Les utilisateurs de la grille ont un accès direct aux ordinateurs, aux logiciels, aux données et aux autres ressources. Cet accès est possible en utilisant des stratégies conditionnelles de partage qui réalisent un processus organisationnel pour les utilisateurs et les fournisseurs de ressources [Pourqasem J et Al., 2014]. Dans le tableau 1.1 nous allons donner les différences qui existent entre les grilles et le Cloud Computing.
Chapitre 1 : Les grilles versus le Cloud Computing |