La Conteneurisation

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

La conteneurisation

1. La Conteneurisation
1.1. Que sont les conteneurs ?
Tout comme dans le domaine des transports, les conteneurs informatiques stockent des
objets pour les transporter. Ils permettent d’expédier des applications et leurs
dépendances sur de multiples systèmes d’exploitation, quels qu’ils soient.
Ils garantissent que leur contenu est identique au départ et à l’arrivée, et qu’il est
sécurisé, grâce à leur mise en isolation.
1.2. À quoi servent-ils ?
Ils servent à minimiser la complexité liée à la configuration et à l’administration
applicatives, à accélérer les cycles de développement et de production applicatifs, et,
grâce à leur flexibilité et à leur portabilité, ils constituent l’une des briques qui
permettent de faire de l’«infrastructure as a service », c’est-à-dire d’automatiser les
infrastructures IT.
1.3. Comment fonctionne la conteneurisation ?
La conteneurisation est une méthode qui permet de virtualiser, 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. Dans cet espace 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), ce qui permet aux différents composants matériels et logiciels de
communiquer entre eux.
1.4. Quelle est sa valeur ajoutée ?
La conteneurisation propose une manière de virtualiser des ressources de manière
légère, avec une isolation garantie par le système d’exploitation. Ces ressources sont
ainsi plus facilement portables d’un système à un autre. C’est un puissant accélérateur
de développement d’applications.
2. Comparaison entre Conteneur et Machine Virtuelle.
La finalité des deux est quasiment la même : isoler nos applications. Mais le fonctionnement
est totalement différent.
Pour une machine virtuelle, vous créez comme son nom l'indique, une machine virtuelle,
c'est-à-dire, vous lui indiquez la ram à utiliser, le nombre de CPU, et vous créez un disque dur
virtuel pour installer un OS. Votre machine dispose de ses propres ressources, et n'a
aucunement conscience d'être virtualisée.

Pour les conteneurs c'est différent, on n'installe pas d'OS à proprement parler, mais une
image, qui contient les bibliothèques et les binaires nécessaires. Le noyau quant à lui, est
partagé avec le système hôte. Nous pouvons évidemment limiter les ressources des
conteneurs.
Machines virtuelles et Conteneurs ont leurs avantages et bien évidemment leurs
inconvénients. Par exemple lancer ou créer un conteneur est vraiment plus rapide que lancer
une VM. Mais une VM offre une meilleure isolation. Et ils ne sont pas forcément incompatibles,
bien souvent, Docker est simplement utilisé dans une VM pour uniformiser une application
entre les différents environnements (prod, préprod, intégration, etc.). Il arrive même de
trouver dans une VM un seul conteneur.
Le plus gros défaut des conteneurs, c'est le fait que ce n'est pas cross-platform. On lance des
conteneurs Linux sous Linux, des conteneurs BSD sous BSD ou des conteneurs Windows sous
Windows.

Figure 1 Différence entre VM et Container


3. Utilisation de Docker
Docker est un outil permettant la création d'un environnement (appelé conteneurs, containers
en anglais) afin d'isoler des applications pour ne pas en gêner d'autres.

3.1. Quel est le rôle de Docker dans la conteneurisation ?


Docker est le premier acteur du marché qui a lancé, en 2013, le concept de conteneurs
d’applications qui conservent leur cycle de vie. Il a changé la manière de percevoir les
conteneurs, qui, jusque-là, étaient considérés comme des machines virtuelles légères.
Docker a développé le logiciel open source qui permet de gérer les conteneurs. C’est-à-
dire qu’il a créé un format de restitution des images et des runtime, qui ont fait l’objet d’un
processus de standardisation par l’Open Container Initiative (OCI) ‒ un consortium fondé
par un groupe d’entreprises pour développer des standards ouverts de référence pour les
conteneurs.
La seule autre alternative du marché est celle de Rocket, créé par CoreOS, qui a été racheté
par Red Hat, mais depuis sa standardisation, Docker est la solution la plus utilisée par le
marché.
3.2. En quoi est-ce une rupture technologique ?
La conteneurisation permet d’aller beaucoup plus vite dans la livraison de nouvelles
fonctionnalités. Par exemple, Facebook, Instagram, etc. sortent une centaine de nouvelles
fonctionnalités par jour, sans que l’on s’en rende compte, grâce à la conteneurisation et à
toutes les mécaniques de la chaîne d’intégration et de déploiement en continu.

3.3. Quelles sont les limites de la conteneurisation ?


En matière de conteneurisation, les outils arrivent petit à petit à maturité. C’est-à-dire que
la conteneurisation et le support sur lequel elle s’appuie commencent à être complètement
fiables. On n’observe plus les failles qui permettaient, il y a encore quelques années, de
briser les protections et de s’introduire à l’intérieur d’un conteneur pour accéder
frauduleusement aux ressources de la machine. Aujourd’hui, ce n’est plus possible parce
que le code utilisé est abouti pour limiter les possibilités d’intrusion. Par exemple en
limitant les droits sur les applications.
Cependant, pour les orchestrateurs de conteneurs, il existe encore des limitations.
Par exemple en matière de gestion de grands volumes de données, il reste des progrès à
faire pour l’intégration avec les fournisseurs de cloud. Par ailleurs, de nombreuses
applications à migrer vers le cloud ne peuvent pas bénéficier des avantages de
l’orchestration des conteneurs pour le passage à l’échelle et la portabilité. Il faudrait les
réécrire pour les adapter à cette nouvelle approche, mais cela demanderait trop de temps.
3.4. Comment la conteneurisation va-t-elle évoluer ?
Lorsque les programmeurs maîtriseront tous parfaitement l’orchestration de conteneurs
et que la sécurité en matière d’orchestration sera améliorée, on peut imaginer avoir des
groupes de machines qui hébergeront des conteneurs appartenant à des systèmes
complètement hétérogènes. Ce qui permettra à n’importe quelle application d’utiliser, en
toute sécurité, des ressources qui ne lui appartiennent pas. La conteneurisation et son
orchestration pourront ainsi permettre de gérer des ressources hétérogènes de façon
unifiée, ce qui est très utile pour les cas d’usage de l’IoT, car on y trouve des architectures
de processeurs très différentes.
3.5. Qu'est-ce qu’un docker Hub ?
Un docker Hub est un store où les utilisateurs de docker peuvent partager leurs images.
Beaucoup d'images sont disponibles, allant d'une simple debian, à une debian
préconfigurée pour nextcloud par exemple.
Je veux nextcloud ? Je télécharge l'image et je crée un conteneur, vu que j'ai une bonne
connexion, en moins d'une minute, j'ai un nextcloud fonctionnel !

(htt2)

Vous aimerez peut-être aussi