Passare ad un nuovo fornitore di servizi email vuol dire prima di tutto pianificare la migrazione delle caselle email in uso, con tutte le cartelle ed i messaggi contenuti al loro interno.
Durante la pianificazione della migrazione delle email è necessario considerare alcuni elementi:
Il Pannello di controllo di Qboxmail ha da sempre messo a disposizione dei clienti uno strumento che permette di pianificare ed automatizzare le migrazioni via IMAP delle caselle email dall’attuale fornitore a Qboxmail.
Nel mese di ottobre è stato messo in produzione un nuovo e più sofisticato sistema di migrazione, chiamato Qbmove, e sviluppato dal nostro reparto Ricerca e Sviluppo.
Il precedente sistema di migrazione era estremamente semplice, i clienti caricano un file CSV e per ogni casella email da migrare veniva lanciato un processo Perl che si occupa di trasferire i messaggi via IMAP.
Abbiamo quindi studiato un nuovo sistema di migrazione che potesse risolvere tutti i problemi riscontrati con il precedente e che ci desse anche più flessibilità per le implementazioni future.
L’idea dietro all’architettura del nuovo sistema è quella di avere un unico punto d’ingresso, l’orchestratore, che a sua volta configura i processi da eseguire su altri server, e ne segue l’avanzamento.
L’orchestratore è un’applicativo scritto in Nodejs, che sfrutta il protocollo SSH per lanciare e monitorare i processi sui server che gli vengono messi a disposizione.
In questo modo si possono aggiungere nuovi server sui quali eseguire le migrazioni, semplicemente indicando un nuovo indirizzo IP all’orchestrator.
E’ possibile anche dedicare intere batterie di server a determinati tipi di operazioni o clienti tramite un sistema di regole molto flessibile.
Un altro dettaglio fondamentale è che una volta avviato un processo, questo è totalmente indipendente dall’orchestratore. Se quest’ultimo dovesse avere un malfunzionamento, o semplicemente scegliessimo di aggiornarlo, nessun processo di migrazione in corso ne sarebbe condizionato. Questo è sempre stato un requisito molto importante per noi, visto che alcuni processi di migrazione possono durare anche giorni a causa della lentezza del server dal quale recuperiamo le email.
Una volta lanciati i processi, l’applicativo Nodejs li monitora estraendo dati utili, come le risorse utilizzate, il dettaglio del progresso ed eventuali errori. Queste informazioni sono poi esposte tramite API interne al nostro pannello di controllo che le mostra all’utente.
Esempio di dettaglio messaggi di errore
I server che effettuano il vero e proprio trasferimento non richiedono molte dipendenze, ma semplicemente:
Le migrazioni possono essere avviate su un server e terminare su un altro, grazie alla condivisione degli stati e della cache dei dati.
Inoltre, possiamo assegnare un numero di migrazioni parallele più elevato per ogni cliente così da poter velocizzare le migrazioni.
Con Qbmove, siamo in grado di introdurre nuove funzionalità per offrire una maggior flessibilità nella gestone del processo di migrazione delle email dei clienti.