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