The Doppler Quarterly (FRANÇAIS) Hiver 2016 | Page 38
N’ayez pas peur des conteneurs. Ce type d’approche n’a rien de nouveau : les
conteneurs sont utilisés depuis des années pour transformer des systèmes
entiers en composants distincts, les extraire de la plateforme physique et vous
permettre de les déplacer d’une plateforme à une autre (ou d’un cloud à un
autre).
Pour le moment, contentons-nous d’étudier Docker. Le noyau Linux, situé dans
le conteneur, permet l’isolation des ressources (processeur, mémoire, E/S,
réseau, etc.) et ne nécessite le démarrage d’aucune machine virtuelle. Docker
étend un format courant de conteneurs appelé Linux Containers (LXC), avec
une API de haut niveau qui fournit une solution légère de virtualisation qui
exécute des processus de manière isolée. Docker fournit également des espaces
de noms afin d’isoler totalement la vision d’une application vers l’environne-
ment d'exploitation, et notamment les arborescences de processus, le réseau,
les ID utilisateurs et les systèmes de fichiers.
L’utilisation de cette technologie est assez stimulante, car elle résout un prob-
lème évident et important : comment fournir une portabilité d’application effec-
tive sur les plateformes cloud ? Les chances de réussite sont plus importantes à
mesure que les architectures de cloud computing deviennent plus complexes.
La capacité à fournir une abstraction de plateforme compacte au sein des con-
teneurs Docker, sans utiliser la virtualisation, permet une création plus effi-
cace d’ensembles de charges de travail transportables d’un cloud à un autre. La
virtualisation est, dans bien des cas, trop complexe pour la migration des
charges de travail. Les conteneurs offrent ainsi une base effective de migration
des charges de travail dans les environnements hybrides ou multi-cloud, avec
peu ou pas de modifications sur l’application.
Points importants
Les conteneurs présentent quelques fonctionnalités et avantages de base, et
notamment la capacité à :
• Réduire la complexité grâce à l’abstraction par conteneurs. Les conte-
neurs n’ont pas besoin de dépendances vis-à-vis de l’infrastructure d’ap-
plications. Ainsi, il n’est pas nécessaire de mettre en place une interface
native complexe pour gérer les services pour plateforme.
• Tirer parti de l’automatisation afin d’optimiser la portabilité. L’automati-
sation a remplacé l’écriture manuelle de scripts. Il est désormais beau-
coup plus difficile de garantir la portabilité lorsqu’on utilise
l’automatisation.
• Fournir une sécurité et une gouvernance plus solides, à l’extérieur des
conteneurs. Les services de sécurité et de gouvernance sont spécifiques
aux plateformes, et non aux applications. Le fait de placer les services de
sécurité et de gouvernance en dehors des conteneurs réduit nettement
la complexité.
• Améliorer les capacités de calcul distribué. Cela vient du fait qu’une
application peut être divisée en de nombreux domaines, tous hébergés
au sein de conteneurs. L’aspect portabilité des conteneurs implique qu’ils
peuvent s’exécuter sur un certain nombre de plateformes cloud dif-
férentes. Cela permet aux ingénieurs de choisir la plateforme sur laquelle
ils vont s’exécuter, en se basant sur la qualité de performances et les
coûts.
36 | THE DOPPLER | HIVER 2016