SNCF è il gestore ferroviario nazionale in Francia. La sua missione è semplificare i viaggi fornendo al contempo servizi passeggeri e merci senza intoppi e sostenibili. Un modo per farlo è tramite SNCF Connect, un'app progettata e sviluppata da un'organizzazione interna chiamata SNCF Connect & Tech. Un terzo della popolazione francese utilizza l'app per cercare percorsi, prenotare biglietti e ottenere le informazioni più recenti su treni, autobus e altre modalità di trasporto pubblico.
Questa app è fondamentale per le attività di SNCF. Ogni giorno vengono venduti più di 550.000 biglietti tramite l'app e i volumi sono in rapida crescita. Tra il 2022 e il 2024, le vendite annuali sono passate da 190 milioni a 209 milioni. È inoltre necessario scalare verso l'alto per gestire i picchi stagionali, come il periodo dei saldi natalizi, che inizia a ottobre.
"Le vendite natalizie rappresentano il più importante evento commerciale dell'anno per SNCF Connect", ha dichiarato Vincent Liboutet. "Offre ai passeggeri l'opportunità di pianificare i loro viaggi in anticipo. Possono consultare l'orario, trovare i prezzi dei biglietti più convenienti e noi aggiungiamo nuove destinazioni per garantire che il maggior numero possibile di persone possa utilizzare i trasporti pubblici durante le festività."
Nel 2023, il database alla base di SNCF Connect elaborava 1 milione di connessioni al minuto, in aumento rispetto alle 300.000 connessioni al minuto dell'anno precedente. La vendita dei biglietti primaverili, che inizia alla fine di gennaio, rappresenta un altro periodo intenso: 1,3 milioni di biglietti sono stati venduti in un solo giorno, un aumento del 29% rispetto al 2022.
Rendere l'app più scalabile e più facile da gestire con MongoDB Atlas.
Superare i limiti dei database legacy
Con la crescente popolarità di SNCF Connect, gli amministratori di database dell'azienda hanno iniziato a dover affrontare le sfide di manutenzione e scalabilità. Inoltre, il design originale del database era inadatto per integrare nuove funzioni aziendali, il che limitava la sua capacità di soddisfare le mutevoli aspettative dei passeggeri.
Nel 2022, l'azienda ha deciso di cercare una nuova soluzione per sostituire il proprio database Oracle. "Utilizziamo MongoDB in altre aree dell'azienda dal 2014 e abbiamo lanciato il nostro primo progetto su MongoDB Atlas nel 2019", ha rivelato Valérie Pujol. "Adottare MongoDB Atlas per questo progetto è stato un gioco da ragazzi: possiede il document model adatto e, grazie alla nostra esperienza interna, eravamo certi di poter migrare da Oracle a MongoDB Atlas con un impatto minimo sui clienti."
Ottimizzazione del trasferimento dei dati e dei test in ogni fase della migrazione
SNCF Connect & Tech ha creato un team multidisciplinare e ha lavorato con MongoDB per progettare la soluzione. L'azienda ha definito i requisiti tecnici e di sicurezza in merito a RTO, RPO, purging e backup continuo, creato il document model e discusso del modo migliore di trasferire i dati in MongoDB Atlas.
Il team ha sviluppato un processo asincrono per trasferire 130 milioni di ordini dal database legacy in MongoDB. Ha utilizzato uno strumento di osservabilità per monitorare la migrazione in tempo reale e definire un piano di ripristino in caso di interruzioni. Sono stati messi in atto meccanismi di limitazione per garantire una qualità ottimale del servizio regolando il flusso di dati tra i due database.
Il trasferimento completo dei dati ha richiesto 18,5 ore e un trasferimento finale delle modifiche dell'ordine effettuate 48 ore prima dello switch finale ha richiesto solo 30 minuti.
L'implementazione è stata suddivisa in quattro fasi per passare gradualmente da Oracle a MongoDB Atlas. A ogni fase sono state condotte verifiche di prestazioni, affidabilità delle API, elaborazione batch e scalabilità. "I nostri test hanno confermato che MongoDB Atlas era la scelta giusta: non si poteva criticare", ha aggiunto Valérie Pujol. "Ad esempio, le operazioni di scrittura di MongoDB non hanno avuto alcun impatto in termini di latency dell'API aziendale."
