• Aucun résultat trouvé

Isolation par conteneurs

Dans les solutions basées sur la virtualisation, la planification de l’hyperviseur fonctionne à deux niveaux, comme expliqué ci-dessous. La première planification se produit au niveau de l’hyperviseur où les machines virtuelles sont planifiées et le second au niveau de la machine virtuelle où le système d’exploitation invité planifie les processus. En prenant cela en compte, il est évident que cette approche crée un surcoût significatif. Une autre approche de virtualisation, basée sur des conteneurs, a été proposée pour réduire significativement ce surcoût, et ainsi fournir de meilleures performances, notamment en termes d’élasticité et de densité au sein d’un data center faible.

Conteneurs

Dans la virtualisation basée sur conteneur, la planification se produit uniquement à un niveau. Les conteneurs contiennent des processus, tandis que le noyau et les bibliothèques sont partagés entre les conteneurs. Par conséquent, le planificateur est utilisé uniquement pour planifier les processus. Le comportement est similaire à un système d’exploitation classique; la seule différence est que, dans la virtualisation par conteneur, les processus sont

Résumé de la thèse

(a) Hyperviseur basé sur des machines virtuelles (b) Virtualisation basée sur les conteneurs Figure 1: Architecture de la machine virtuelle par rapport aux architectures Docker Container

affectés à un conteneur, et entre chaque conteneur, une isolation est fournie par le système d’exploitation.

Nous pouvons définir un conteneur comme un environnement confiné dans l’environnement global. Le système d’exploitation Linux fournit certains mécanismes pour créer ces en-vironnements ou conteneurs confinés, et oblige chaque conteneur à suivre une politique prédéfinie. L’isolation peut se produire à deux niveaux: l’isolation entre les processus et l’isolation entre les processus et le matériel [21].

Virtualisation basée sur les conteneurs par rapport aux machines virtuelles

Comme le montre la Figure 1, contrairement aux machines virtuelles qui dé pendent d’un hyperviseur, les conteneurs sont considérés comme des applications dans le système d’exploitation hôte. Par consé quent, comme indiqué dans [22], les performances offertes par l’utilisation de conteneurs sont meilleures que celles des machines virtuelles, ce qui est assez é vident puisque les conteneurs n’entraînent pratiquement aucune surcharge par rapport aux machines virtuelles. La table 1 présente la comparaison entre les conteneurs et les machines virtuelles en termes de taille des images, de dé pendance à la plate-forme et de migration.

Résumé de la thèse

Containers VMs

Require A host OS A hypervisor of type 1 or type 2

Size of images

Images are lightweight (for ex-ample, basic Ubuntu image for Docker containers has 180MB)

A VM hosts a guest OS that is a very big file (for example Ubuntu 14.04.1 has more than 1GB).

Platform dependency

Dependent-platform: the con-tainer is viewed as a bunch of processes vis-à -vis the host OS.

Independent-platform: a guest OS is hosted by a VM that is man-aged by a hypervisor. A guest OS is not aware of that and behaves as an OS that has total access to the physical resources.

Migration

Migration is possible only if the source and the destination plat-forms are Linux based. Even if Docker container engine is pro-vided for Windows platform for example, this engine uses Linux-specific kernel features and re-quires a VM.

Migration is suitable for VMs viewed as files easily migratable and manageable by a hypervisor.

Table 1: Difference between Containers and VMs

Au cours des dernières années, le Cloud Computing est un domaine émergent qui affecte l’infrastructure informatique, les services réseau et les applications en fournissant un cadre tel que la population d’Amazon Web Service, de Window Azure et de Google App Engine. Le cloud computing est un élément tiers avec des serveurs de stockage à grande échelle et des centres de données utilisés pour fournir des infrastructures, des plates-formes de développement de logiciels et de distribution à faible coût dans la technologie informatique. L’avantage du Cloud Computing est venu avec trois grands modèles populaires qui sont offerts aujourd’hui en tant que services. La Figure 2 représente les modèles de service populaires dans l’environnement Cloud.

Logiciel en tant que service (SaaS)

SaaS ou logiciel à la demande est un modèle de distribution de logiciels permettant aux clients d’accéder à des logiciels spécifiques sur Internet tels que Google App, Office 360. En mode SaaS, le fournisseur est connu sous le nom de fournisseur SaaS hébergeant l’application

Résumé de la thèse

dans ses centres de calcul et l’interface de l’application est généralement accessible via un navigateur Web. SaaS offre ses avantages à un usage privé ou d’entreprise. Par exemple, au lieu d’acheter la licence de l’application, l’utilisateur final peut obtenir les mêmes fonctions qu’un service hébergé fourni par des serveurs distants. Puisque l’application est gérée à distance et de manière centralisée par les fournisseurs, la complexité de l’installation, de la maintenance et de la mise à niveau du logiciel a été réduite sans intervention de l’utilisateur.

Plate-forme en tant que service (PaaS)

Alors que SaaS fournit les fonctions fixes, PaaS offre des interfaces de programmation d’applications (API) et un environnement de programmation sur lesquels les développeurs d’applications peuvent créer leurs propres applications et les héberger sur l’infrastructure du fournisseur PaaS. En fournissant des serveurs virtualisés et des services associés, le service PaaS permet à un utilisateur d’exécuter des applications existantes, ou de concevoir, développer, tester, déployer, déboguer et héberger des applications sur la plate-forme logicielle comme cadre de développement. En outre, l’élasticité et l’évolutivité de la plate-forme matérielle et logicielle sous-jacente sont garanties de manière transparente par la plate-forme PaaS pour l’application en cours d’exécution. Le fournisseur PaaS est responsable de la surveillance de la livraison des applications. Google Application Engine (GAE), Amazon Web Services et Microsoft Azure sont des exemples particuliers de PaaS.

Le prix pour PaaS peut se calculer sur une licence de développeur par application et sur une base de sièges hébergés [23]. Dans la hiérarchie des modèles, PaaS a un plus grand contrôle de l’utilisateur que SaaS.

Infrastructure en tant que service (IaaS)

En dessous de PaaS, on trouve l’IaaS qui fournit les facilités de communication et de stockage à travers la virtualisation. En offrant l’infrastructure virtualisée comprenant le matériel, le stockage, les serveurs, le centre de données et les composants réseau, les clients peuvent installer leur propre système d’exploitation, base de données et services informatiques sur les machines virtuelles provisionnées [23]. Au lieu d’acheter leurs propres

Résumé de la thèse

composants de matériel informatique, les clients achètent généralement des IaaS en fonction d’une base de calcul de l’utilisation ou de l’utilité, comme le temps CPU, l’espace de stockage et la bande passante du réseau. Amazon EC2, Cisco Metapod ou Google Compute Engine sont quelques exemples populaires du modèle IaaS.

Figure 2: Modèles de service du cloud computing

Documents relatifs