Critique envers le modèle de sécurité proposé par Docker et constatant la complexité toujours plus grande de la plate-forme de containers, CoreOS développe une alternative à cette technologie Open Source qu'il baptise Rocket. « Un peu de concurrence ne fait pas de mal et profite toujours à l'utilisateur final. Elle oblige aussi tout le monde à proposer de bons produits », estime Alex Polvi, CEO de CoreOS. Livré en début de semaine, le runtime du container Rocket répond à un certain nombre de questions soulevées par le distributeur Linux concernant Docker.
A l'origine d'une distribution Linux réputée spécialement destinée au cloud, CoreOS a été l'un des premiers partisans de Docker. « Mais, vu le nombre croissant de problèmes posés par la technologie de virtualisation auxquels sont confrontés nos clients, nous avons commencé à travailler sur notre propre solution », explique Alex Polvi. « Pendant longtemps, nous avons essayé d'améliorer le modèle de Docker. Nous avons même rencontré l'équipe de la plateforme à plusieurs reprises », relate-t-il. « Mais nous avons maintenant des utilisateurs qui entrent en production avec cette technologie et nous devons leur apporter des solutions ». L'un des principaux problèmes rencontrés par CoreOS avec Docker vient du fait que la portée de la technologie s'étend. À l'origine, l'objectif de Docker était d'offrir un simple container de virtualisation. Pour l'essentiel, un container est un module capable de tourner au-dessus du système d'exploitation. Il fournit un environnement normalisé pour exécuter une application et il peut être facilement déplacé d'un serveur à un autre.
A l'encontre de la philosophie architecturale Unix/Linux
Le projet Docker, qui est supervisé par l'entreprise éponyme fondée en 2013, « est devenu bien plus qu'un simple runtime de container », a déclaré le CEO de CoreOS. Les logiciels capables de supporter la technologie sont de plus en plus nombreux et celle-ci permet toujours plus de choses : créer, stocker, télécharger, exécuter et orchestrer des images Docker. « À ce stade, Docker est plus une plate-forme qu'un container », fait valoir Alex Polvi. « Cette complexité croissante peut être problématique pour un certain nombre de raisons », a-t-il encore expliqué. D'abord, selon lui, elle est contraire à la philosophie architecturale d'Unix/Linux, qui privilégie une structure en blocs simples facilement accessibles par ligne de commande et par des scripts, pour créer des applications et des flux de travail à part entière. Or, l'application Docker suppose que les utilisateurs vont se servir de tous ses composants, plutôt que d'éléments déjà existants. Or, « la plupart de ceux qui utilisent CoreOS ont déjà des environnements existants qu'ils essayent d'intégrer au modèle des containers », rappelle Alex Polvi. « Ils ne sont pas prêts à passer à une toute nouvelle plate-forme ».
« Cette conception monolithique peut aussi être problématique du point de vue de la sécurité », a encore déclaré le CEO de CoreOS. L'ensemble de la pile technologique de Docker doit être entièrement exécuté sur les serveurs Linux avec un accès racine à la machine. Or, comme le rappelle le CEO de COreOS, en matière de sécurité des systèmes, on sait qu'il faut limiter au maximum les accès à la racine, parce qu'ils permettent un contrôle total sur la machine. Si un container racine présente une faille de sécurité, celle-ci peut être exploitée pour prendre le contrôle de la machine. « Docker n'arrête pas d'étendre ses fonctionnalités, or toutes doivent tourner en mode racine, ce qui augmente la surface d'attaque potentielle du système », pointe Alex Polvi.
CoreOS continuera à supporter Docker
Au contraire, Rocket fonctionne comme un simple programme de ligne de commandes, et il ne contient que les commandes nécessaires pour faire tourner l'App Container Image (ACI). Cette dernière peut être chiffrée et distribuée à travers de multiples canaux de type BitTorrent, ou via un service de stockage d'objets public, ou des réseaux miroir. Rocket lui-même peut-être utilisé avec CoreOS, mais il fonctionne également avec toutes les distributions Linux. Enfin, CoreOS continuera aussi à supporter Docker.
CoreOS a publié sur GitHub une version de développement du logiciel Rocket estampillé 0.11 (un prototype). Mais son développement vient à peine de commencer, si bien qu'Alex Polvi ne peut pas préciser dans combien de temps une version de production du logiciel pourra être livrée. CoreOS n'est pas le seul distributeur Linux à plancher sur une alternative à Docker. Joyent et Canonical travaillent de leur côté. Le mois dernier, l'éditeur d'Ubuntu a commencé à travailler sur une technologie LXD (Linux Container Daemon) dite de container sécurisé, aussi rapide que Docker, mais isolant entièrement la machine virtuelle.