On vous a gâtés avec de nombreuses nouveautés ces dernières semaines, mais je soupçonne que l’annonce du jour risque de remporter tous les suffrages… Depuis quelques jours, les nouveaux comptes mutualisés, VPS et serveurs dédiés tournent sur notre toute nouvelle infrastructure logicielle. Qu’apporte-t-elle ? Ouvrons le capot.
Des versions (beaucoup) plus récentes
Notre nouvelle infrastructure tourne sous la dernière version de Debian (Jessie), ce qui apporte une mise à jour de l’ensemble des logiciels et bibliothèques disponibles, de git ou Vim à Apache ou Java. Des logiciels et langages ont également été ajoutés, comme Go ou R.
Mais le cœur du changement se situe du côté de Python et Ruby : nous avons fait évoluer notre gestion des paquets pour ne plus dépendre des versions proposées par Debian, ce qui nous permet d’offrir :
- pour Python, de la version 3.6 à 3.3 et 2.7 à 2.4 ;
- pour Ruby, de la version 2.4 à 1.8.7 ;
- pour PHP, rien ne change : nous proposions déjà la dernière version (7.1), et nous gardons en prime toutes les versions depuis la 5.2, et même la 4.4 pour les (légers) retardataires.
Une installation de paquets simplifiée
Que ce soit pour Python ou Ruby, l’installation de paquets (via pip ou gem) demandait quelques efforts, minimes mais parfois déroutants pour les plus débutants. Il fallait ici spécifier une option, là définir une variable d’environnement, ou encore créer un fichier (.bash_profile) pour que les nouvelles commandes puissent être exécutées directement.
Désormais, pip install et gem install fonctionnent directement, sans le moindre paramétrage. Encore mieux : vous n’aurez même pas besoin d’ajouter un quelconque chemin pour que vos applications trouvent les bibliothèques : c’est automatique.
Nous avons aussi pensé à PHP et ses extensions PECL : indiquez à la commande ad_install_pecl (un script maison) le nom de l’extension PECL que vous souhaitez installer, elle s’occupera de la télécharger/configurer/compiler : il ne vous restera plus qu’à charger le fichier .so depuis la section Environnement > PHP de l’administration alwaysdata.
Un environnement vierge
Encore une fois, cela s’applique principalement à Python et Ruby : jusqu’à présent, certaines bibliothèques étaient installées globalement sur nos systèmes, notamment Django et Ruby on Rails. Cela posait un certain nombre de problèmes à l’usage, aussi nous avons décidé de les retirer. Vous démarrerez donc avec un environnement vierge, mais on a vu à la section précédente qu’installer des bibliothèques était désormais trivial.
Les sites Python et Ruby propulsés par uWSGI
Les sites de type WSGI (Python) ou Ruby Rack et Ruby on Rails étaient gérés par Apache (via mod_wsgi ou Passenger). Ils sont désormais gérés par uWSGI, un serveur d’applications présentant plusieurs avantages. Ce changement est largement transparent pour nos clients, mais de nouvelles options (toutes facultatives) font leur apparition dans le formulaire de configuration d’un site :
- forcer une version de Python ou Ruby particulière ;
- les variables d’environnement à définir ;
- le répertoire de travail ;
- pour Python, le virtualenv à utiliser ;
- pour Ruby, utiliser le Gemfile de l’application.
Bientôt, de nouveaux langages
Cette nouvelle infrastructure ouvre la voie au support de nouveaux langages, en particulier pour faire tourner des applications web. Node.js sera certainement le premier, mais d’autres devraient suivre assez vite.
Comment en bénéficier ?
Dès maintenant, en ouvrant un nouveau compte mutualisé, VPS ou serveur dédié. Pour les anciens clients, il va falloir patienter encore un peu : nous préparons la phase de migration qui démarrera dans les prochaines semaines, en même temps d’ailleurs que la migration vers notre propre infrastructure matérielle (pour les mutualisés les plus anciens). Chaque client sera prévenu par email au préalable et aura à sa disposition :
- une page de documentation listant les changements majeurs susceptibles de provoquer des incompatibilités ;
- des outils permettant de simuler partiellement son compte sous la nouvelle infrastructure.
Les plus téméraires peuvent toutefois demander par ticket une migration dès maintenant, mais à leurs risques et périls, et sans possibilité de revenir en arrière. Inutile de dire que si vous avez quoi que ce soit en production, passez votre chemin et attendez la migration officielle. Si vous cherchez des sensations fortes, sautez plutôt en parachute.
Et après ?
Nous avons conçu cette nouvelle infrastructure pour qu’elle soit beaucoup plus souple que la précédente, et ne plus nous retrouver dans une situation avec des logiciels vieillissants. Bien que nous ne puissions pas toujours proposer les toutes dernières versions dès leur sortie, pour de nombreuses raisons (manque de recul sur la stabilité, bugs bloquants, dépendances indisponibles), cette nouvelle flexibilité nous permettra par exemple de réduire l’attente pour Python 3.7 et Ruby 2.5 à quelques jours seulement !
C’est beau comme du Rimbaud. Au fait comment savoir si on est déjà sur la nouvelle infrastructure ou pas ?
@Li-An : si votre compte a été créé depuis le 18 janvier, il doit l’être, sinon non. Dans le doute, le plus simple est de regarder les versions de Python disponibles dans la section Environnement > Python. Si vous avez la 3.6 (entre autres), vous êtes sur la nouvelle infrastructure.
Ah oui, à partir du 18 janvier, j’en suis loin. Plus qu’à attendre.
NooooooooooooooooooooooooooodeJS \o/
Impressive… bravo.
Je vais tester le déploiement d’applis rails. Si ça me plaît, je ferais tourner l’info.
Toujours dommage que les « clients » fidèles bénéficient toujours en retard des nouveautés.
Ça se comprend commercialement, c’est un contre-sens intuitivement.
En tout cas, je me réjouis déjà de passer à la version 2.4 de ruby (même si on en est à la 3 aujourd’hui).
Le fait que les anciens comptes bénéficient un peu plus tard de ces nouveautés s’explique par une raison technique très simple : si nous mettions à jour subitement l’architecture logicielle pour eux, cela provoquerait (potentiellement) des incompatibilités sur leurs sites, ce qui nous serait à juste titre reproché. Les nouveaux comptes n’ont évidemment pas ce risque. Ce n’est en rien une pratique commerciale (douteuse).
Concernant Ruby, la dernière version majeure est la 2.4. La 3 sera disponible sur notre infrastructure dès qu’elle sera sortie officiellement.
La migration est désormais disponible pour les anciens comptes, nous sommes en train de contacter nos clients par email pour les en informer. Si vous voulez faire partie des premiers concernés, je vous invite à ouvrir un ticket.