Docker : atouts et limites du porte étendard des conteneurs
Grâce à la portabilité des applications et à sa technologie open source, Docker suscite un formidable engouement. Pour autant, il ne convient pas nécessairement à toutes les situations.
Docker assure une véritable portabilité aux applications par leur encapsulation dans des conteneurs. Ce qui explique que de nombreux fournisseurs de Cloud s'y intéressent. Joyent a pris le train en marche, rejoignant ainsi Google, Microsoft Azure, Amazon Web Services et d'autres encore. Tous ces fournisseurs utilisent Docker pour créer des infrastructures prenant en charge les conteneurs.
Ainsi, Joyent a réuni 15 millions de dollars en financements et prévoit de renforcer l'utilisation de la technologie des conteneurs dans ses services d'infrastructure Cloud. Ces fonds seront consacrés à valoriser l'exécution de conteneurs dans le cadre de ses services de cloud public et de cloud privé. Pour le fournisseur, il s'agit en substance de se spécialiser dans l'hébergement d'applications basées sur Docker.
Cependant, l'utilisation de conteneurs n'a rien de nouveau. En effet, la possibilité de créer des instances d'exécution fournissant un environnement à une application afin de l'extraire de la plateforme sous-jacente existe depuis les années 90, quand est né le mouvement en faveur des objets distribués et des conteneurs, avec notamment Java et J2EE.
Mais quelle est l'influence de Docker sur les différents aspects du Cloud ?
Docker et les applications
Pour l'architecte d'applications, Docker est un formidable outil. Il fournit à l'application un environnement inclus dans le conteneur, qui est portable d'une plateforme à l'autre. Le conteneur retire ainsi l'application de la plateforme Cloud sous-jacente.
Par conséquent, c'est le conteneur, et non plus l'application, qui gère les différences entre plateformes.
Des problèmes peuvent se poser au niveau des performances mais, selon les applications, les entreprises ne devraient remarquer aucune latence. Certes, Docker ne convient pas à toutes les applications et il est donc important de choisir celles qui s'accordent à sa plateforme/ses conteneurs.
Mais le véritable potentiel de Docker réside dans sa fonction de distribution. Comme avec les objets distribués d'antan, l'objectif est d'exécuter des conteneurs Docker sur n'importe quel Cloud public ou privé, en leur permettant de se localiser mutuellement pour former des applications distribuées.
Les possibilités sont innombrables, dont celle de réutiliser le serveur d'applications, de répartir la charge et de contrôler les conteneurs en cours d'exécution grâce à l'orchestration.
Docker et la virtualisation lourde
Pour un gestionnaire d'infrastructure, Docker correspond à une virtualisation « légère ».
Car la virtualisation, bien que fonctionnant avec des descripteurs, induit de lourdes dépenses indirectes. Les gestionnaires d'infrastructure ont besoin de plus de ressources matérielles dès qu'il s'agit de prendre en charge plus de machines virtuelles (VM), ce qui n'est pas tellement dans l'esprit du Cloud.
Or, les conteneurs Docker sont bien plus rapides à mettre en service que des VM et, qui plus est, sans exercer la même pression sur les plateformes sous-jacentes.
Docker devrait donc s'avérer plus économique dans un environnement de Cloud public. Quant à son usage en Cloud privé, il devrait apporter de meilleures performances sans exiger autant de ressources matérielles.
La valeur réelle de Docker
La valeur de Docker réside principalement dans ce qu'il n'est pas : ce n'est pas un système lourd ; il n'est pas propriétaire ; il n'est pas impopulaire ; enfin, il n'est pas exagérément vanté comme l'avènement tant attendu d'un nouveau Cloud.
Ces arguments plaident largement en faveur de la technologie des conteneurs. Docker constitue une norme à la conception solide, qui fournit de bonnes bases et est performant dès le départ.
Alors, quels sont les risques d'un passage à Docker ?
Tout d'abord, les conteneurs – dont Docker – ne sont pas exempts d’inconvénients. Ensuite, il se trouve que de nombreux fournisseurs de technologie l'ont adopté pour contourner l'utilisation de normes. Ils rallongent et diluent la sauce avec leurs propres fonctionnalités, créant ainsi des versions propriétaires dont leurs clients deviennent tributaires. Or, ce comportement élimine les avantages de la portabilité découlant d'un transfert sous Docker.
Quoi qu'il en soit, étant donné la quantité de matière grise mobilisée par la technologie des conteneurs, Docker ne peut que rafler la mise : il est devenu la coqueluche du Cloud. Et le simple intérêt pratique de l'outil devrait lui assurer une longue idylle avec lui.