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