The Doppler Quarterly (FRANÇAIS) Printemps 2018 | Page 61
« Le raisonnement de mon adversaire me rappelle
le païen qui, interrogé sur ce qu’était le monde,
répondit : sur une tortue. - Mais sur ce quoi repose
cette tortue ? - Sur une autre tortue. - Avec M.
Barker aussi, il y a tortues sur tout le chemin. (S’en-
suivent des applaudissements longs et nourris).
— Second Evening : Remarks of Rev. Dr. Berg
Sans doute avez-vous entendu parler des conteneurs
comme un nouveau moyen de virtualiser et découpler
les applications des composants matériels. Mais ce qui
est plus important encore, c’est que les conteneurs
représentent une autre couche composée d’une pile
d'outils et de technologies en constante évolution, dont
les développeurs d’applications cloud natives de dernière
génération se servent pour accélérer la diffusion de val-
eur auprès de leurs clients. Eric Pearson, directeur de
l'informatique d’Intercontinental Hotels Group, résume
parfaitement la situation en ces quelques mots :
« L'enjeu de la bataille n'est plus que les grosses
organisations battent les petites, mais que les plus
rapides battent les plus lentes ».
Comme nul créateur d'applications cloud natives ne l’ig-
nore, la transition vers le cloud ne se résume pas à une
affaire d’optimisation de coûts. Il s’agit plutôt de gagner
en rapidité et en agilité pour la livraison. Les conteneurs
sous-tendent la manière dont les applications modernes
sont développées. Ils représentent la partie émergée de
l’iceberg, alors que l'open-source alimente l’innovation
comme jamais auparavant. En tant que professionnel de
l'informatique, vous devez comprendre l’importance des
conteneurs, ainsi que leur relation avec la virtualisation
et l’écosystème qui se construit sur les épaules des
géants.
Machines virtuelles et conteneurs
Les machines virtuelles (VM) ont incontestablement
révolutionné le secteur des technologies de l'informa-
tion. Parmi les offres les plus significatives, citons : l'hy-
perviseur VMware ESX ; l’hyperviseur Linux KVM, qui
est la fondation d'OpenStack ; Microsoft Hyper-V ; et
enfin, l’hyperviseur Xen, qui est en grande partie le fon-
dement de l’IaaS AWS. Tous ces hyperviseurs ont permis
aux organisations d'exécuter un environnement d’ex-
ploitation distribué complet, indépendamment du
matériel sous-jacent. Pour autant, la virtualisation n’est
pas une totale nouveauté. Durant plusieurs décennies,
les grands systèmes ont fait appel à la virtualisation au
travers des systèmes à partage temporel mis au point
par IBM à la fin des années 1960 et au début des années
1970. Avant cette période, les ordinateurs « mainframe »
étaient des systèmes à usage unique. Mais des produits
innovants, tels que les systèmes IBM 360 et 370, ou le
système d’exploitation à partage temporel CP/CMS, ont
vu la mise sur le marché de technologies révolution-
naires, marquant par-là même le passage d'ordinateurs à
usage unique à des systèmes multi-utilisateurs et multi-
tâches. Plus tard, l’introduction des processeurs x86 à
unités MMU et la commercialisation de la technologie
d'hyperviseurs VMware ont rendu la virtualisation des
grands systèmes accessibles au grand public.
Docker et la technologie de conteneurs font aujourd'hui
fureur, mais beaucoup de gens imaginent à tort que les
conteneurs viennent remplacer les machines virtuelles.
Il n'en est rien, puisque les conteneurs peuvent, heu-
reusement, fonctionner sur n’importe quel système
d’exploitation et ce, que ce dernier tourne sur une
machine virtuelle ou soit démarré à partir d'un vrai
serveur physique. Les conteneurs sont davantage une
méthode qui permet de découpler l’environnement d’ex-
écution applicatif et ses dépendances du noyau de sys-
tème d’exploitation sous-jacent. Dès lors, ils permettent
de solutionner la question de la portabilité des logiciels
(voir Figure 1). Avec les conteneurs, vous effectuez une
seule compilation, que vous exécutez ensuite où vous le
souhaitez.
Du point de vue de son architecture centrale, Docker est
construit à partir de conteneurs Linux (LXC). Un conte-
neur Linux se compose lui-même de cgroups, qui four-
nissent les contrôles de limitation d'un ensemble de res-
sources (limites de mémoire, priorisation, etc.) et
d'espaces-noms. Ces contrôles, dans la pratique,
génèrent un bac à sable dédié pour chaque ensemble de
processus au travers de constructions telles que l’isola-
tion PID, un système de fichiers avec racine (c'est-à-dire
un cliché accessible en écriture chroot inclus dans le
conteneur), ainsi que des espaces d’identifiants utilisa-
teur/groupe privés. Les conteneurs Docker construis-
ent, au-delà de ces capacités du noyau Linux, un sys-
tème d'inclusion centré sur les applications qui vous
permet de regrouper votre code et toutes ses dépen-
PRINTEMPS 2018 | THE DOPPLER | 59