Migrazione MySQL Senza Downtime Su Scala TB

Come abbiamo migrato un database MySQL da 2 TB da bare metal a Kubernetes senza downtime.

  • MySQL
  • Kubernetes
  • Migrazione

Il problema

Una società SaaS fintech gestiva un database MySQL da 2 TB su server bare metal ormai datati. L’infrastruttura era vicina a fine vita. I backup erano manuali e non testati. Non c’era failover: se il primario si fermava, si fermava la piattaforma. La migrazione andava fatta presto, ma il costo di un downtime era inaccettabile.

La sfida

Non si trattava solo di spostare dati. L’azienda elabora miliardi di transazioni all’anno e ogni secondo di downtime costa. Una migrazione big-bang tradizionale non era un’opzione.

La soluzione

Abbiamo progettato ed eseguito una migrazione senza downtime con un approccio a tappe:

Fase 1: configurazione della replica

  • Costruito su Kubernetes un Percona XtraDB Cluster (PXC) a 3 nodi
  • Configurata la replica MySQL dal vecchio primario bare metal al nuovo cluster PXC
  • Validato il lag di replica (costantemente < 100 ms)
  • Eseguite query sulla replica per verificarne la correttezza

Fase 2: instradamento delle connessioni

  • Installato ProxySQL davanti a entrambi i cluster
  • Scritte regole di routing per inviare le letture al nuovo cluster
  • Le scritture sono rimaste sul vecchio primario mentre la replica si allineava
  • Monitorato il lag di replica in modo continuo

Fase 3: cutover

  • Dopo 24 ore con lag di replica pari a zero, abbiamo eseguito il cutover
  • Il traffico di scrittura è passato dal vecchio primario al nuovo cluster PXC (switch di 5 secondi)
  • Il vecchio primario è rimasto come replica di lettura per un rollback immediato
  • Dopo 2 ore di monitoraggio senza problemi, abbiamo dismesso il vecchio hardware

Fase 4: backup

  • Configurato XtraBackup automatico su S3 (giornaliero + incrementale)
  • Impostata la verifica dei backup (restore giornalieri su un’istanza isolata)
  • Documentate le procedure di recupero

Tecnologie utilizzate

  • MySQL 8.0 (InnoDB)
  • Percona XtraDB Cluster 8.0
  • ProxySQL 2.x (connection pooling e routing)
  • XtraBackup (automazione dei backup)
  • Amazon S3 (storage dei backup)
  • Kubernetes (gestione del cluster PXC)

Risultati

  • Zero downtime durante il cutover della migrazione
  • Database da 2 TB migrato con successo e operativo
  • Backup automatici giornalieri con validazione
  • RTO < 5 minuti per il guasto di un singolo nodo (il cluster si ripristina da solo)
  • RPO < 1 ora (backup giornalieri con ripristino incrementale)
  • Fiducia del team: la piattaforma database ora è compresa e gestibile

L’azienda ha potuto dismettere hardware bare metal vecchio di 20 anni e passare a una piattaforma database cloud-native, senza alcuna interruzione della produzione.

Hai una sfida simile da discutere con noi?

Parliamo dei tuoi obiettivi di infrastruttura.

Contattaci