0% ont trouvé ce document utile (0 vote)
110 vues118 pages

Différences entre conteneurisation et virtualisation

Le document compare la virtualisation et la conteneurisation, soulignant que la virtualisation utilise un hyperviseur pour exécuter plusieurs systèmes d'exploitation, tandis que la conteneurisation isole les processus au niveau du noyau de l'OS hôte. Les conteneurs, comme ceux gérés par Docker, sont plus légers et partagent le même noyau, ce qui permet une utilisation plus efficace des ressources. La conteneurisation facilite également le déploiement d'applications en garantissant leur fonctionnement identique dans différents environnements.

Transféré par

Øssama Ajbli
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
110 vues118 pages

Différences entre conteneurisation et virtualisation

Le document compare la virtualisation et la conteneurisation, soulignant que la virtualisation utilise un hyperviseur pour exécuter plusieurs systèmes d'exploitation, tandis que la conteneurisation isole les processus au niveau du noyau de l'OS hôte. Les conteneurs, comme ceux gérés par Docker, sont plus légers et partagent le même noyau, ce qui permet une utilisation plus efficace des ressources. La conteneurisation facilite également le déploiement d'applications en garantissant leur fonctionnement identique dans différents environnements.

Transféré par

Øssama Ajbli
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

M242_1 Virtualisation et conteneurisation

Dr Oussama SMIMITE
[Link]@[Link]
Virtualisation vs Conteneurisation
lOMoARcPSD| 52343731

➢En virtualisation, l’isolation des VMs se fait au niveau matérielles (CPU/RAM/DISK) avec
un accès virtuel aux ressources de l'hôte via un hyperviseur, ce qui permet d'exécuter
plusieurs systèmes d'exploitation en parallèle.

➢ En conteneurisation, l’isolation est réalisée par le noyau du système d’exploitation hôte.

➢Un conteneur est un concept dont le principe est d’isoler l’exécution d’ensembles de
processus sur un même hôte. Le noyau et l’accès au matériel reste partagé (à la différence
d’une VM).

➢Tous les conteneurs et l’hôte se partage un même noyau Linux dans lequel des espaces
de nommages (namespace : ce qu'un processus peut voir / limiter un processus à son
environnement) sont créés.
lOMoARcPSD| 52343731

➢Sous Linux, un conteneur s'exécute de manière native sur leur système d’exploitation et
partage le noyau de la machine hôte (même kernel) avec d'autres conteneurs (vu comme
processus normal de l’éxterieur mais il se comporte comme une VM de l’intérieur)

➢A la différence d’un conteneur qui se lance à travers l’OS, une VM à besoin d’un hyperviseur
pour se lancer

➢La conteneurisation est une méthode qui permet de virtualiser, à l’intérieur d’un conteneur,
les ressources matérielles (systèmes de fichiers, réseau, processeur, mémoire vive, etc) dont
une application a besoin pour être exécutée et PAS LE SYSTÈME ENTIER DANS LE CAS DE
LA VIRTUALISATION.
➢La containérisation permet d’empaqueter une application et toutes ses dépendances
ensemble sous la forme d’un container pour assurer que cette application fonctionne de
manière identique dans tous les environnements .
lOMoARcPSD| 52343731

❑ Les développeurs ont ainsi la garantie que ce qui fonctionne sur leur ordinateur portable
fonctionnera aussi dans l'environnement de production.

❑ Un conteneur Linux mobilise moins de ressources qu'une machine virtuelle.

❑ Il propose une interface standard (démarrage, arrêt, variables d'environnement, etc.),


assure l'isolation des applications et peut être géré plus facilement en tant que module
d'une application plus importante (plusieurs conteneurs)

❑ Plutôt que de virtualiser le hardware comme l’hyperviseur, le container virtualise le


système d’exploitation. Il est donc nettement plus efficient qu’un hyperviseur en termes
de consommation des ressources système.
lOMoARcPSD| 52343731

Docker

Linux

Conteneur Machine virtuelle

➢ Les conteneurs reposent sur le noyau du système d’exploitation qui les accueille.
➢Les VMs utilisent le noyau du système d’exploitation ‘OS (noyau)’ à l’intérieur de la VM. Celui-ci
n’a pas directement accès aux ressources physiques et utilise l’hyperviseur pour accéder aux
ressources physiques (processeur, RAM, disque dur)
➢L’isolation est réalisée à l’aide d’espaces de nommage qui sont présents nativement dans le noyau
Linux sous l’appellation “cgroups »(ce qu'un processus peut utiliser en terme de ressources). Cette
fonctionnalité est exploitée par différentes technologies de conteneurisation comme Docker, LXC,….
lOMoARcPSD| 52343731

➢Dans un conteneur, les ressources matérielles (systèmes de fichiers, réseau, processeur,


mémoire vive, etc) nécessaires à l’exécution d’une application sont virtualisées .

➢Dans ce conteneur sont aussi stockées toutes les dépendances des applications : fichiers,
bibliothèques, etc

➢Pour déplacer les applications virtuelles d’un système d’exploitation à un autre, le conteneur
se connecte à leur noyau (kernel) afin d’exploiter les ressources.
Il n’est donc pas nécessaire comme pour les machines virtuelle, d’installer un nouveau système
d’exploitation.
➢ Le noyau gèrent les ressources de l’ordinateur et permet au différents composants matériels
et logiciels de communiquer entre eux.
lOMoARcPSD| 52343731

Exemple :
o Créer conteneur contenant Ubuntu
oFonctionnalités proposés par le noyau linux prétendent quelque chose qui ressemble à une VM
avec OS Ubuntu
o En réalité , ce n’est pas une VM mais un processus isolé s’exécutant sur le même noyau linux

Exemple :
Je suis un développeur, je développe une application web en PHP.
Une fois l'application terminé, le service exploitation chargé de déployer mon application en production
rencontre un problème: J'ai développé l'application en PHP version 5.3 et la production tourne en PHP
version 5.1

Solution 1 :
Mettre à jour le serveur de production
Risque: les autres applications web PHP ne soient pas compatibles avec la mise à jour.

Solution 2 :
Conteneuriser un environnement de développement avec toute ses dépendances ( DOCKER)
lOMoARcPSD| 52343731

Partage d’un seul et unique système d’exploitation


>> Echange de données entre les conteneurs est plus
simple et plus rapides que pour les VM.
Chaque conteneur ne contient pas de système
d’exploitation propre à lui.
Réduits et prennent moins de place et moins de
ressource Serveur
Evolution des OS de plusieurs VM doit être Facilité de l’évolution technique car toute l’infra repose
faite manuellement sur chaque Machine. sur un seul système d’exploitation

Diversification des systèmes d’exploitation n’est pas


possibles car les conteurs reposent sur un seul OS

L’existence d’une couche d’OS rend le Le déplacement des conteneurs d’un environnement à
déplacement de la VM entièrement de l’autre est très rapide du fait qu’il se base sur le partage
serveurs en serveurs plus lent . des fichiers de config legers
lOMoARcPSD| 52343731

➢ LXC (LinuX Containers) sur Linux (2008) :


Le noyau de linux à la possibilité de créer des conteneurs.
Les conteneurs Linux ont une isolation des systèmes de fichier, des identifiant réseau et utilisateur
Et également une isolation des ressources (processeur, mémoire, etc).

Ce système de virtualisation est vraiment la base de la conteneurisation


➢ Docker (logiciel libre 2013) :
Outil de conteneurisation célèbre qui permet aux utilisateurs de gérer facilement leurs
conteneurs avec une interface une Interface de programmation « Libcontainer » pour
démarrer, gérer et arrêter des conteneurs. Il est basée sur le fonctionnement de LXC

➢ RKT « rocket » :
Cet outil est édité par CoreOS est le concurrent de Docker.
Il prend en charge les Images Docker et le format ACI (App Container Images)
Technologies de conteneurs proposées
• OpenVZ :

VER
• C’est un logiciel de virtualisation au niveau du système d'exploitation pour Linux.

SIO
• Il permet de diviser les ressources d’un serveur physique pour exécuter virtuellement plusieurs serveurs virtuelles. Ces serveurs privés virtuels sont isolés et
fonctionnent de manière indépendante.

NPR
• Il considère un conteneur comme un serveur privé virtuel.

• Linux Container (LXC) :


• C’est une solution de virtualisation au niveau du système d'exploitation qui permet la création et l'exploitation de nombreux environnements virtuels Linux
(VE) isolés.
OVIS
• Les conteneurs, qui sont des niveaux d'isolement, peuvent isoler certaines applications ou simuler un hôte totalement différent.

OIR
• Il considère un conteneur comme un environnement virtuel pour le service, le système d’exploitation virtuel ou l'application.

E
• Docker :
• À l'origine, la technologie Docker a été créée sur la base de la technologie LXC. Cependant, Docker permet, en plus de l’exécution des conteneurs, la
simplification de leur conception et leur fabrication, l'envoi d'images, etc. Ce qui a permit d’apporter aux conteneurs la flexibilité et la portabilité.
• Les conteneurs Docker apportent deux nouvelles notions, qui sont stateless et immutabilité.
• Conteneur stateless : c’est-à-dire qui ne stocke pas d'état.
• Conteneur immuable: c’est-à-dire le conteneur ne doit pas stocker de données qui doivent être pérennes, car il les perdra. Cependant, il est possible de
créer un volume dans le conteneur pour que celui-ci puisse stocker les données de façon pérenne.
VER
Présentation des différences entre conteneurisation et virtualisation

SIO Virtualisation Conteneurisation

NPR
Logiciel de virtualisation

Environnement virtuel
hyperviseur

Machine virtuelle
Logiciel de conteneurisation

Conteneur

Réserve les ressources de la machine


hôte
OVIS Ne réserve que les ressources
nécessaires

OIR
Offre une isolation totale avec le Offre une isolation importante avec les
système hôte processus systèmes de l’hôte
Caractéristiques de l’environnement
virtuel Peut avoir un système d’exploitation Doit partager le même noyau du
avec un noyau différent des systèmes
des autres machines virtuelles

Offre une virtualisation lourde


conteneurs
E
système d’exploitation avec les autres

Offre une virtualisation légère

Tableau de comparaison entre la virtualisation et la conteneurisation


VER
Principales différences entre la virtualisation et la conteneurisation dans la pile architecturale

SIO
NPR
OVIS
OIR
E
Virtualisation Conteneurisation

Comparaison des piles architecturales relatives à la virtualisation et la conteneurisation


1. Ecrire les instructions d'installation dans un chier [Link]
2. Créer un script [Link] qui fonctionne
3. Le transformer en unDockerfile
4. Créer une image Docker à partir de ce Dockerfile

Container s’executer sur n'importe quelle machine


Etre opérationel sur un projet rapidement

Ecrire des Dockerfilepour vos composants


Utiliser des images dispo sur Docker Hub (mysql, ect.)
Décriver votre application avec unCompose

N'importe qui devient opérationel en 2 commandes

git clone ...


docker compose up
Avantages des conteneurs

16
Utilisation pour de l'intégration continue (CI)
Utilisation pour la distribution des modèles
Passage du dev à la production (DevOps)
Infrastructure as code
Services fournis par Docker
Qu'est ce qu'un conteneur?
Principes de fonctionnement de Docker

25
Architecture de Docker

Crédits: [Link]
27

L e s i m a g e s D o c ke r
Images Docker vs Images de VM
Principes des images Docker
Les couches

30
Les couches
Les autres couches
Partage de couches

Crédits: [Link]
Optimisation des performances
Plus d'informations sur les couches
45

L a création d ' i m a ge s

Vous aimerez peut-être aussi