Alors que Canonical se repositionne sur le marché des technologies cloud, l'éditeur transforme sa distribution Ubuntu Linux pour en faire un bloc de construction cloud. Dernier événement en date allant dans ce sens : la sortie de la version alpha de Snappy Ubuntu Core, une version de la célèbre distribution Linux centrée sur le cloud. Les utilisateurs de Canonical connaissent sans doute Ubuntu Core, cette version minimale d'Ubuntu définie comme la « plus petite implémentation d'Ubuntu qui permet l'installation de paquets », selon le wiki du produit. Le nom « Snappy » fait référence à une nouvelle manière de déployer les mises à jour des applications du système.

Selon un article de blog posté par le CEO de Canonical, Mark Shuttleworth, la technologie de mise à jour transactionnelle utilisée par Snappy est similaire à celle utilisée pour appliquer les mises à jour de l'OS Ubuntu Phone. Dans des interventions antérieures, Canonical avait laissé entendre qu'il utiliserait la technologie de cette façon. « Le système Snappy conserve chaque morceau d'Ubuntu dans un fichier distinct en lecture seule, et il fait la même chose avec les applications », a expliqué Mark Shuttleworth. « Ainsi, les développeurs peuvent mettre à jour tous les composants nécessaires en sachant que leur application fonctionnera exactement comme ils l'ont programmé. De notre côté, nous faisons ce qu'il faut pour que les différentes applications restent isolées les unes des autres et que les mises à jour soient toujours parfaites ». Cependant, le CEO de Canonical admet que la méthode présente un inconvénient : les technologies de mise à jour traditionnelles comme apt-get ne fonctionneront pas avec Snappy.

Protéger les applications et le système

Les caractéristiques et les avantages de Snappy, tels que Canonical les présente, font penser aux conteneurs de Docker. Les applications sont protégées les unes des autres, et du système dans son ensemble, par AppArmor (une création due à Novell, mais utilisée de manière intensive par Canonical). Le système de packaging de Snappy permet également certaines tâches qu'il n'était pas possible de réaliser jusque-là avec les packs logiciels d'Ubuntu - comme lier la version statique d'une bibliothèque avec une application donnée, au lieu de dépendre de la version présente dans le système pris dans son ensemble. « Nous garantissons le succès de toutes les mises à jour système », affirme Canonical, qui ajoute qu'elles « préservent les données utilisateurs ». Par ailleurs, un seul bouton-poussoir suffit pour diffuser globalement les mises à jour des apps Snappy.

Cette approche des applications et des mises à jour fait fortement penser à l'Atomic Project de Red Hat. Dans Red Hat, les modifications du système se présentent sous forme d'images à appliquer de manière transactionnelle. Si la mise à jour d'une application donnée ou du système s'avère défectueuse, elle peut être annulée de manière « atomique » comme dans le cas d'une transaction sur une base de données. CoreOS utilise un mécanisme équivalent, mais Mark Shuttleworth fait remarquer que l'init du système, intégré dans CoreOS, ne peut être modifié. « Avec Snappy, Snappy Ubuntu Core permet d'installer Docker ou tout autre système de conteneur comme si c'était un framework », a-t-il déclaré.

L'influence de Docker se fait sentir

L'idée de créer ces mécanismes de livraison d'applications et de mises à jour du système a été motivée par la volonté d'alléger la lourde tâche des mises à jour incombant aux administrateurs, d'autant que la demande de systèmes à jour en permanence est toujours plus forte et que les cycles de mise à jour pour le déploiement des modifications se raccourcissent. Docker a eu une influence, à la fois du côté applicatif et du côté système, mais Canonical a ses propres préconisations pour Docker et ne semble pas vouloir faire de Snappy une alternative à Docker. Canonical possède sa propre technologie de conteneurs LXD, même si elle est encore à l'état de prototype, et celle-ci fonctionne en parallèle avec Docker et n'essaye pas de la supplanter. Pendant sa période d'essai en alpha, Snappy Ubuntu Core est proposé sur Microsoft Azure, mais il est également possible d'effectuer son déploiement en local via KVM.