La plupart des migrations pénibles sont dues à des erreurs d'ordre, pas à des problèmes techniques. On change le DNS d'abord, puis on découvre que la base de données est obsolète. Suivez l'ordre ci-dessous et vos visiteurs ne remarqueront pas le changement.
Étape 1 : abaissez le TTL du DNS à l'avance
Au moins un jour avant la migration, réglez le TTL de vos enregistrements A et AAAA sur 300 secondes. Les caches qui détiennent déjà l'ancienne valeur ont besoin de temps pour expirer : cette étape ne peut pas se faire dans la précipitation le jour J.
Étape 2 : construisez d'abord le nouveau serveur
Créez le nouveau VPS, appliquez la liste de contrôle de durcissement et installez la même pile : serveur web, version de PHP ou de Node, moteur de base de données. Des versions identiques évitent la plupart des mauvaises surprises. Copiez la configuration, pas seulement le contenu.
Étape 3 : copiez les fichiers
rsync -aHAX --info=progress2 -e ssh /var/www/ user@NEW_IP:/var/www/
Lancez-la une première fois maintenant. Elle est lente la première fois et rapide aux suivantes, et c'est précisément le but.
Étape 4 : copiez la base de données
# on the old server
mysqldump --single-transaction --routines --triggers mydb | gzip > mydb.sql.gz
scp mydb.sql.gz user@NEW_IP:~/
# on the new server
gunzip < mydb.sql.gz | mysql mydb
Il s'agit d'une répétition générale. Elle vous donne une copie fonctionnelle sur laquelle tester.
Étape 5 : testez avant d'y envoyer qui que ce soit
Faites pointer votre propre ordinateur vers le nouveau serveur en modifiant son fichier hosts : ajoutez NEW_IP example.com www.example.com. Parcourez le site, connectez-vous, envoyez un formulaire et passez une commande de test. Corrigez ce qui ne fonctionne pas pendant que le public voit encore l'ancien serveur. Installez le certificat TLS avec un challenge DNS afin qu'il fonctionne avant la bascule.
Étape 6 : gel, dernière synchronisation, bascule
- Mettez l'ancien site en mode maintenance ou en lecture seule.
- Répétez le
rsync, ainsi que l'export et l'import de la base de données. - Changez les enregistrements DNS pour la nouvelle IP.
- Supprimez l'entrée du fichier hosts et vérifiez depuis un autre réseau.
La fenêtre de lecture seule dure généralement quelques minutes. Pour une boutique ou un site avec des comptes utilisateurs, planifiez-la à un moment calme.
Étape 7 : surveillez, puis retirez l'ancien serveur
Gardez l'ancienne machine plusieurs jours. Certains résolveurs ignorent les TTL, si bien qu'un filet de trafic continuera d'arriver. Transférez ou faites passer ce trafic par un proxy vers la nouvelle IP si possible, consultez vos journaux, puis remettez le TTL à une valeur normale. Faites une sauvegarde récente du nouveau serveur avant de supprimer l'ancien.
Vous changez aussi de juridiction ? Comparez d'abord les options dans comparatif des juridictions d'hébergement offshore.