La conteneurisation Imprimer

  • 0

La conteneurisation, Késako ?

 

La conteneurisation que l’on oppose très fréquemment à la virtualisation est tout de même une méthode de virtualisation d’un système ou d’une instance (rôle) donnée.

 

Faisons tout d’abord un parallèle entre ces deux méthodes.

 

Le principe même d’une machine virtuelle (VM) est d’imiter le fonctionnement d’un serveur physique et donc d’embarquer avec lui son système d’exploitation, ses pilotes, binaires ainsi que, bien évidemment, l’applicatif qui est l’essence même de ce serveur.

 

Bien que cette méthode soit encore très largement utilisée de nos jours (ex. Vsphere) on s'aperçoit aisément que chaque VM risque de consommer des ressources qui pourraient totalement être mutualisées. Et c’est là où le concept de conteneurisation à son avantage car chaque conteneur ne renferme que l'application, binaires et/ou bibliothèques associées.

 

On utilise donc le même système d'exploitation (OS) hôte pour plusieurs conteneurs, au lieu d'installer un OS (et donc sa licence) pour chaque VM invitée. Le rôle de l'hyperviseur étant alors assuré par un moteur de conteneurisation qui s’installera par-dessus l’OS hôte.

 

 

Finissons ce distinguo par une image qui parle d’elle-même :

 

Cette technologie, bien que très en vogue grâce au moteur de conteneurisation Docker, n’a rien de nouvelle dans son principe.

 

En effet, si nous revenons aux fondements du containers, la première version d’OpenVZ date tout de même de 2005 ! Bien évidemment la technologie diffère totalement de celles utilisées aujourd’hui mais le ton était déjà donné.

 

Aujourd’hui, à l’heure de l’agilité, la tendance est d’avoir dans son infrastructure des technologies de conteneurisation telles que Docker mais sachez qu’il en existe une panoplie, toute plus intéressantes les unes que les autres. OpenShift, Virtuozzo, rkt ou encore LXC pour n’en citer que quelques-unes.

 

Tout dépendra bien évidemment de votre besoin et de la manière dont vous souhaitez gérer vos instances. Vous ne vous porterez pas forcément vers la même technologie selon que votre container, à l’instar d’une machine virtuelle, portera plusieurs instances (ex. Apache + FTP + SQL) et qu’il soit fixe ou que chaque container puisse être orchestré et qu’il ne porte qu’une unique instance, déployable et modifiable à la volée.

 

 

Plutôt que de faire un article détaillant les nuances entres moteurs de conteneurisation, revenons plutôt sur les avantages qu’apporte cette vision de l’infrastructure.

 

 

  1. La consommation

 

Comme énoncé précédemment, un container n’embarquera pas avec lui la couche OS et donc s’économisera de l’espace disque et du compute (ressources CPU/RAM notamment).

 

Cela rend les conteneurs intrinsèquement plus « légers » en capacité qu’une machine virtuelle et donc plus rapides à démarrer et à manipuler en règle générale.

 

 

  1. La scalabilité

 

L’avantage même d’une infrastructure basée sur des containers est qu’elle est modifiable à la volée. À tout moment, un pic de traffic peut vous obliger à augmenter vos capacités.

 

Grâce à l’orchestration, renforcez vos instances ou créez-en nouvelles par l’intermédiaire de nouveaux containers préconfigurés venant s’intégrer aux autres.

 

De même en période creuse vous pouvez, de manière totalement transparente, réduire les capacités de vos instances et ainsi réduire vos coûts.

 

 

 

 

  1. L’isolation et la gestion des erreurs

Chaque instance étant isolée sur un conteneur, la défaillance d’une instance isolée peut facilement être traitée sans impact sur le fonctionnement des autres.

 

En cas de problème sur le ‘package’ encapsulé devant servir à tel ou tel usage son déploiement à la volée sur un environnement de test permet également une mise en exergue des problèmes relatifs à l’instance.

 

Bien associé à un déploiement continu CI/CD et à un versioning efficient, les bugs n’ont qu’à bien se tenir.

 

 

Pour conclure simplement, la virtualisation élimine le besoin d’un serveur physique entier pour une seule application. La conteneurisation élimine le besoin d’un système d’exploitation complet pour chaque application. L’orchestration vous offre l’opportunité d’un serveur entier pour une seule application. La boucle est bouclée.

 


Cette réponse était-elle pertinente?

« Retour

Powered by WHMCompleteSolution