Mise à niveau de nos systèmes d’exploitation vers Ubuntu Trusty
Place à une mise à jour technique ! Chez Transloadit, nous sommes depuis longtemps des inconditionnels d’Ubuntu. Pour preuve, voici ce que j’ai retrouvé lors d’un récent déménagement dans un nouvel appartement à Amsterdam :
❤️ Ubuntu
« Mon premier Ubuntu » 😄. C’était en 2005, à l’époque où Canonical finançait encore l’envoi de CD Ubuntu dans le monde entier à quiconque en faisait la demande, gratuitement. C’était une démarche idéologique, je crois. Les personnes disposant d’une connexion internet lente, c’est-à-dire à peu près tout le monde à l’époque, devaient pouvoir profiter de « Linux for Human Beings ».
C’était mon premier système de bureau autre que Windows, et je l’ai adoré. À tel point que j’ai même essayé de défendre l’adoption d’Ubuntu sur les serveurs de l’hébergeur pour lequel je travaillais à l’époque. Bien entendu, l’idée a été jugée complètement folle. Ubuntu était un « OS de bureau », rien de sérieux comme Slackware, Gentoo ou Debian, les distributions côté serveur privilégiées à l’époque. Nous n’avons franchi le pas qu’à l’arrivée de Feisty, environ deux ans plus tard. Mais depuis, nous n’avons jamais regretté ce choix. Des datacenters avec des milliers de serveurs tournant sous Feisty/Gutsy/Hardy : Ubuntu n’a pratiquement jamais été source de problèmes et toujours source de joie. Apt était utilisable et il n’y avait plus besoin de compiler ! 🎉
Quand nous avons lancé Transloadit, je n’ai pas hésité une seconde et nous avons démarré début 2009 avec la dernière version d’Ubuntu, Jaunty. Plus tard la même année, nous avons migré vers Karmic. Ensuite, nous avons estimé que le temps à consacrer aux mises à niveau du système d’exploitation était limité, et nous avons donc adopté les cycles de versions Long Term Support (LTS), à commencer par Lucid en 2010.
Bien que les versions LTS d’Ubuntu soient prises en charge pendant cinq ans, nous avons immédiatement mis à niveau Lucid vers son successeur LTS, Precise, dès sa sortie en 2012. Ce changement était motivé par des problèmes de compatibilité avec le noyau sur EC2 à l’époque.
Depuis, nous tournons sans souci sous Precise. Comme notre pile logicielle est compilée à partir de zéro et quasiment indépendante du système d’exploitation, nous avons toujours pu mettre à niveau nos logiciels d’encodage sans que cette version d’Ubuntu nous gêne.
Du moins, c’était le cas jusqu’ici.
Bibliothèques en conflit dans notre pile logicielle
Nous avons pu faire tourner plusieurs versions de FFmpeg (English) côte à côte, mais ImageMagick, l’outil open source au cœur de nombreuses opérations sur les images que nous prenons en charge, s’est révélé bien plus difficile à compiler de manière à la fois isolée et riche en fonctionnalités.
Cette isolation nous est vraiment indispensable pour ne pas rompre la rétrocompatibilité, afin de proposer à nos clients des parcours de mise à niveau optionnels, à activer sur demande.
C’est là qu’interviennent les conteneurs 🐳. Avec les conteneurs Linux, nous aurions la liberté de déployer de nouvelles versions de nos outils d’encodage sans interférer avec les installations existantes. Une fois cette infrastructure en place, il nous sera beaucoup plus facile de déployer des mises à niveau de toute sorte.
Trusty
Cependant, pour disposer des fonctionnalités de conteneurs, nous devions d’abord passer à la dernière version LTS d’Ubuntu : Trusty !
Mark Shuttleworth, le dirigeant de Canonical, a indiqué que ce cycle de développement viserait une version caractérisée par
« performances, peaufinage, maintenabilité, dette technique »
et a encouragé les développeurs à faire des « choix conservateurs ».
Bref, ennuyeuse et conservatrice. Exactement ce que nous attendons d’une version LTS. 😄
Réussite
J’ai le plaisir de vous annoncer aujourd’hui que nous avons déployé cette mise à niveau avec succès et qu’elle a déjà absorbé un trafic conséquent.
Voici 368 machines Trusty en train d’engloutir une file d’attente d’encodage de 2,7 TB
Perspectives
Comme nous pourrons désormais utiliser des conteneurs, vous pouvez vous attendre à ce que nous publiions davantage d’options de conversion et d’outils sympas, à un rythme plus soutenu, sans rompre la rétrocompatibilité.
Nous nous concentrerons d’abord sur la publication d’une nouvelle version d’ImageMagick ; les travaux ont déjà commencé.
Alors que nous évoluons vers une architecture basée sur des conteneurs, nous garderons aussi un œil attentif sur Nomad de Hashicorp et sur CoreOS. Nous pourrions nous retrouver face à une décision difficile à la sortie de la prochaine LTS d’Ubuntu. Nous ne manquerons pas de partager nos conclusions avec vous !
