La maggior parte delle migrazioni dolorose nasce da errori di ordine, non da problemi tecnici. Si cambia il DNS per primo e poi si scopre che il database è vecchio. Segui l'ordine qui sotto e i visitatori non si accorgeranno del trasloco.
Passo 1: abbassa il TTL del DNS in anticipo
Almeno un giorno prima della migrazione, imposta il TTL dei record A e AAAA a 300 secondi. Le cache che hanno già il vecchio valore hanno bisogno di tempo per scadere, quindi questo passaggio non si può fare di fretta il giorno stesso.
Passo 2: prepara prima il nuovo server
Crea il nuovo VPS, applica la checklist di hardening e installa lo stesso stack: web server, versione di PHP o Node, motore del database. Versioni uguali eliminano la maggior parte delle sorprese. Copia la configurazione, non solo i contenuti.
Passo 3: copia i file
rsync -aHAX --info=progress2 -e ssh /var/www/ user@NEW_IP:/var/www/
Eseguilo una prima volta adesso. La prima volta è lento e alle ripetizioni è veloce, ed è proprio questo il punto.
Passo 4: copia il database
# 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
Questa è una prova generale. Ti dà una copia funzionante su cui fare i test.
Passo 5: testa prima di mandarci qualcuno
Punta il tuo computer al nuovo server modificando il file hosts: aggiungi NEW_IP example.com www.example.com. Naviga nel sito, accedi, invia un modulo ed effettua un ordine di prova. Correggi ciò che non funziona mentre il pubblico vede ancora il vecchio server. Installa il certificato TLS con una sfida DNS, così funziona già prima del passaggio.
Passo 6: blocco, sincronizzazione finale, switch
- Metti il vecchio sito in modalità manutenzione o sola lettura.
- Ripeti
rsynce il dump e l'importazione del database. - Cambia i record DNS con il nuovo IP.
- Rimuovi la voce dal file hosts e verifica da una rete diversa.
La finestra di sola lettura di solito dura pochi minuti. Per un negozio o un sito con login, programmala in un momento di calma.
Passo 7: osserva, poi dismetti il vecchio server
Tieni la vecchia macchina per diversi giorni. Alcuni resolver ignorano i TTL, quindi arriverà ancora un filo di traffico. Se puoi, inoltra o fai passare quel traffico in proxy verso il nuovo IP, controlla i log, poi riporta il TTL a un valore normale. Fai un backup fresco dal nuovo server prima di eliminare quello vecchio.
Stai cambiando anche giurisdizione? Prima confronta le opzioni in confronto tra le giurisdizioni dell'hosting offshore.