change de nom...
Vous avez décidé de changer d’hébergeur et/ou d’infogéreur mais la migration du site vous inquiète : par où commencer, comment procéder, comment minimiser le temps d’indisponibilité… Voici quelques conseils et astuces pour bien vous préparer à cette opération (dans le cadre d’une migration de serveurs Linux).
Votre nouvel infogéreur va devoir créer les serveurs nécessaires pour accueillir votre application.
Il est tentant à cette étape d’en profiter pour faire de grandes modifications. Si votre site doit être indisponible quelques minutes, alors autant saisir cette occasion, par exemple, pour :
|
Nous considérons ici qu’une migration est une opération qui peut se révéler déjà assez complexe pour ne pas tout y mélanger. En règle générale, nous conseillons de recréer au plus proche l’environnement actuel chez votre nouvel hébergeur : même version de la distribution Linux, même version et configuration des composants systèmes et application identique.
Cela permet de limiter au maximum les régressions et de les détecter très rapidement en cas de problème. Lors d’une migration, on teste activement le site sur sa nouvelle infrastructure. Il arrive que l’on se penche sur des fonctionnalités peu utilisées de l’application et que l’on trouve des bugs. La première question qui se pose est la présence ou non de ces bugs sur les anciens serveurs.
Deux cas se présentent :
Dans ce second cas, il sera beaucoup plus simple de trouver le souci si l’on est en présence d’une version très proche de l’infrastructure actuelle. Cela devient beaucoup plus compliqué si toutes les librairies utilisées par l’application ont été mises à jour.
Évidemment, rien n’est figé et en fonction des besoins, il est quelquefois possible, voire nécessaire de déroger à cette règle. Si l’ancienne infrastructure montre de grosses faiblesses, notamment au niveau sécurité, et qu’il faut agir vite à ce niveau, profiter de la migration pour la mise à niveau peut être envisageable. Il faudra dans ce cas porter une attention toute particulière aux tests et s’attendre à ce qu’ils durent potentiellement plus longtemps que prévu.
Pour faciliter la création des serveurs dans les conditions énoncées plus haut, il faut demander a minima les informations suivantes à l’ancien infogéreur :
L’idéal est d’avoir un accès au(x) serveur(s) actuel(s) via un compte SSH. Ce compte doit permettre de récupérer l’intégralité des sources du site ainsi que pouvoir récupérer des sauvegardes des bases de données (ou les faire directement).
Une fois les nouveaux serveurs en place, votre nouvel infogéreur configure un accès au futur site avec un nom de domaine temporaire pour vous permettre de tester les fonctionnalités. Ce nom de domaine peut lui appartenir ou vous pouvez lui en fournir un que vous aurez créé pour l’occasion.
Prenez garde à filtrer l’accès à ce site de test afin d’éviter que d’autres personnes ou bot ne puissent le consulter. Ce filtrage peut se faire par adresse IP ou par login/mot de passe directement géré par le serveur web (ou proxy, loadbalancer…).
Pendant cette période de tests, il peut être utile de disposer d’un script qui synchronise régulièrement les données de production avec votre site futur. Les données à synchroniser dépendent fortement du type d’application, mais en règle générale, nous trouverons :
Les fichiers sources peuvent être synchronisés régulièrement, mais faites attention à ne pas écraser des modifications réalisées sur la future infrastructure (des fichiers de configuration avec des adresses IP différentes, par exemple).
Il est également conseillé de mener un test en conditions réelles, c’est-à-dire avec le vrai nom de domaine de votre site.
Problème : vous ne pouvez pas modifier vos DNS, car l’ensemble des internautes arriverait sur la future version. Il est possible de passer outre la résolution DNS en modifiant un fichier local à votre ordinateur : le fichier hosts. Ce fichier permet d’associer une adresse IP à un nom de domaine et ainsi de prendre le pas sur la résolution DNS classique.Il vous faut consulter la documentation de votre système d’exploitation pour réaliser cette modification. |
Votre site web est peut-être accessible via plusieurs noms de domaine. Prenez bien soin de lister tous ces noms, et de vérifier leur TTL. Le TTL (Time To Live) est une valeur exprimée en secondes qui indique aux serveurs DNS le temps de mise en cache du nom de domaine en question.
Prenons le domaine exemple.fr. Si le TTL est de 86400s sur ce domaine, une modification sur l’adresse IP pointée par exemple.fr ne pourrait être vu que 24H plus tard par certains serveurs DNS. Cela signifie qu’en cas de migration, vos internautes pourraient consulter l’ancien serveur pendant tout ce temps.
Pour accélérer la migration et permettre à tous les utilisateurs d’accéder rapidement au nouveau site, il est important de baisser les TTL quelques jours avant la migration, par exemple à 1 minute. Une fois la migration réalisée, vous pourrez remettre les TTL initiaux.
Il y a quelques points supplémentaires à prendre en compte avant la migration
Si votre application envoie des e-mails, il faudra certainement penser à configurer vos enregistrements SPF et à gérer vos clés DKIM
Si votre site est accessible en HTTPS, il faut penser à avoir un certificat valide et prêt à l’emploi sur la nouvelle infrastructure. Pensez également à tester ce certificat en situation réelle (voir point sur le fichier hosts plus haut). Vous ne désirez certainement pas que votre site affiche un message d’erreur de sécurité lors de la migration.
Les opérations à réaliser le jour de la migration dépendent beaucoup du type de site web que vous possédez.
On peut toutefois dégager une procédure assez générale à dérouler :
Il est souvent utile de garder l’ancienne infrastructure en état de fonctionnement quelques jours encore après la migration. Cela vous permettra de tester et comparer les fonctionnalités une dernière fois en fonction des retours de vos utilisateurs.
Pour en savoir plus sur nos services hosting, vous pouvez consulter nos offres d'hébergement et d'infogérance ou nous contacter directement pour en discuter !