Architecture Logicielle 2024

Découvrez notre offre de Cloud Public

L'hébergement mutualisé pour tou·te·s, imaginé par des développeur·euse·s, pour des développeur·euse·s.

Découvrir le Cloud Public

Les changements majeurs

  • SSL est désormais requis pour les protocoles de mail (IMAP, SMTP, POP3) et d’accès distant (FTP, WebDAV).
  • Les bases de données MongoDB et CouchDB sont supprimées.
  • MariaDB est mis à jour en version 10.11.
  • PostgreSQL est mis à jour en version 16.

Chiffrement SSL requis pour l’accès mail et l’accès distant

Il est désormais nécessaire d’activer le chiffrement SSL pour vous connecter aux protocoles :

  • de mail (IMAP, SMTP, POP3) ;
  • d’accès distant (FTP et WebDAV).

Cela ne concerne pas vos sites web qui sont toujours accessibles sans chiffrement (vous pouvez toutefois décider de forcer le chiffrement).

Versions TLS supportées

  • Les versions TLS 1.2 et 1.3 sont supportées.
  • Les versions TLS 1.0 et 1.1 ne sont plus supportées.

Cela ne concerne pas vos sites web pour lesquels vous pouvez toujours configurer vous-même le TLS.

Arrêt du support de MongoDB

MongoDB a basculé vers une licence SSPL qui nous interdit légalement de continuer à proposer l’hébergement de bases de données MongoDB. Par conséquent, les bases MongoDB seront supprimées lors de la migration et il ne sera plus possible d’en créer.

Vous pouvez :

  • faire tourner vous-même MongoDB dans un service. MongoDB ne sera alors plus géré par alwaysdata. Si vous êtes sur cloud privé, nous pouvons vous aider à réaliser cette opération.
  • migrer vos bases de données chez MongoDB Atlas.

Arrêt du support de CouchDB

Nous avons lancé le support de CouchDB en 2011, mais son utilisation est restée très confidentielle (moins de 0,4 % de nos clients en 2024). Par conséquent, nous arrêtons le support de CouchDB : les bases seront supprimées lors de la migration et il ne sera plus possible d’en créer.

Vous pouvez :

  • faire tourner vous-même CouchDB dans un service. CouchDB ne sera alors plus géré par alwaysdata. Si vous êtes sur cloud privé, nous pouvons vous aider à réaliser cette opération.
  • migrer vos bases de données chez un hébergeur tiers comme Cloudant.

Mise à jour de MariaDB

MariaDB est mis à jour en version 10.11.

Vous pouvez consulter les notes de mises à jour (votre version actuelle est indiquée dans la section Bases de données > MySQL):

Mise à jour de PostgreSQL

PostgreSQL est mis à jour en version 16. Vous pouvez consulter les notes de mises à jour (votre version actuelle est indiquée dans la section Bases de données > PostgreSQL):

PostGIS est mis à jour en version 3.4 (auparavant 3.1).

Versions des langages

Bascule vers les versions majeures

Depuis quelques mois, vous pouvez choisir une version majeure d’un langage plutôt qu’une version mineure précise. Cela permet d’utiliser automatiquement la dernière version mineure disponible, avec les derniers correctifs.

La migration va automatiquement remplacer toutes les versions sélectionnées par la version majeure correspondante. Par exemple, PHP 8.3.1 sera remplacé par PHP 8.3, qui fait tourner la dernière version 8.3.x disponible. Lorsqu’une nouvelle version de PHP 8.3 sera ajoutée, elle remplacera alors la version précédente.

Vous aurez toujours la possibilité de sélectionner, après la migration, une version mineure. Ce sera alors cette version précise qui tournera, sans mise à jour automatique.

Versions disponibles

Voici la liste des versions mineures disponibles :

LangageVersions disponibles
PHP4.4.9 5.2.17 5.3.29 5.4.45 5.5.38 5.6.40 7.0.33 7.1.33 7.2.34 7.3.33 7.4.33 8.0.30 8.1.28 8.2.19 8.3.7
Python2.4.6 2.5.6 2.6.9 2.7.18 3.3.7 3.4.10 3.5.10 3.6.15 3.7.17 3.8.19 3.9.19 3.10.14 3.11.9 3.12.3
Ruby1.8.7-p374 1.9.3-p551 2.0.0-p648 2.1.10 2.2.10 2.3.8 2.4.10 2.5.9 2.6.10 2.7.8 3.0.7 3.1.6 3.2.4 3.3.2
Node.js6.17.1 8.17.0 10.24.1 12.22.12 14.21.3 16.20.2 18.20.3 20.14.0
Elixir1.13.4 1.14.5 1.15.8 1.16.3
Java8.0.412 11.0.23 17.0.11 21.0.3
Deno1.43.5
.NET6.0.31 8.0.6

En particulier, les versions non-LTS de plusieurs langages ont été supprimées :

  • Node.js : 9, 11, 13, 15, 17, 19, 21
  • Java : 14
  • .NET : 5

Si vous utilisiez une de ces versions, elle sera remplacée par la version majeure suivante.

Mises à jour diverses

Le système d’exploitation passe de Debian 10 (Buster) à Debian 12 (Bookworm). Par conséquent, de très nombreux logiciels et bibliothèques seront mis à jour. Parmi les mises à jour notables :

  • Erlang 25.2 (auparavant 21.2)
  • GDAL 3.9 (auparavant 2.4)
  • git 2.45 (auparavant 2.20)
  • Go 1.22 (auparavant 1.17)
  • MapServer 8.0 (auparavant 7.4)
  • PROJ 9.4 (auparavant 5.2)
  • QGIS 3.34 (auparavant 3.4)
  • RabbitMQ 3.10 (auparavant 3.7)

Sur cloud privé

  • Redis, s’il est installé sur votre serveur, est mis à jour en version 7.0 (auparavant 6.0).
  • MySQL, s’il est installé sur votre serveur, est mis à jour en version 8.0.
  • Elasticsearch, s’il est installé sur votre serveur, est mis à jour en version 8.16.

Divers

  • La commande composer exécute désormais Composer 2. Vous pouvez démarrer Composer 1 avec la commande composer1.
  • Le format des logs HTTP par défaut devient le format Avancé.
  • Les sites de type Redirection transparente sont transformés en Reverse proxy.

Conseils & problèmes courants

  • Vous pouvez effectuer vous-même, avant la migration, certains changements comme sélectionner les versions majeures des langages, utiliser le format de logs Avancé ou modifier vos sites de type Redirection transparente.

  • Votre compte sera déplacé sur de nouveaux serveurs lors de la migration. Les adresses de type [service]-[compte].alwaysdata.net vont donc changer d’IP et peuvent ne pas être immédiatement accessibles depuis l’extérieur à cause de la propagation DNS.

  • Il sera nécessaire de mettre à jour votre fichier known_hosts pour vous connecter en SSH. Vous pouvez le faire via la commande ([compte] à remplacer par le nom du compte) :

$ ssh-keygen -R ssh-[compte].alwaysdata.net

Erreurs suite à la migration

  1. cannot open shared object file: No such file or directory

La mise à jour de certaines bibliothèques système requiert une recompilation du code qui les utilise. Les bibliothèques suivantes sont concernées :

  • libtiff

En général, ces bibliothèques ne sont pas utilisées directement par les applications mais par l’intermédiaire de dépendances (extension PHP, module Python, gem Ruby, etc.). Il vous suffit de réinstaller ces dépendances sur la nouvelle infrastructure pour résoudre le problème.

Pourquoi imposer une migration ?

Les migrations d’architecture ont pour principal objectif de mettre à jour nos serveurs vers une version plus récente de leur système d’exploitation (Debian). Il est important de procéder à ces mises à jour pour deux raisons :

  • la sécurité. Les vieilles versions de logiciels ne sont pas supportées éternellement par leurs auteurs ou distributeurs. Lorsqu’un logiciel cesse d’être supporté, il continue à fonctionner, mais les nouvelles failles de sécurité ne sont alors plus corrigées. Continuer à utiliser ces vieilles versions ferait donc courir un risque pour la sécurité et la fiabilité de vos applications et données.

  • pouvoir utiliser des versions récentes des logiciels. Plus un système d’exploitation est ancien, plus il risque d’avoir des difficultés à faire tourner les logiciels récents. Pour continuer à vous offrir les toutes dernières versions des logiciels que nous proposons (ou que vous pouvez installer vous-même dans votre compte), il est important d’être sur une version relativement récente du système d’exploitation.

Ces migrations d’infrastructure sont effectuées tous les quatre ans. Cela correspond à la durée de vie d’une version de Debian (de cinq ans, mais il faut compter le temps incompressible de développement interne avant de basculer sur les nouvelles versions). Cela nous parait être un bon équilibre, évitant des migrations trop fréquentes, mais permettant de faire tourner la quasi-totalité des logiciels récents.