In passato i database proprietari erano le uniche opzioni accettabili.
"Nessuno è mai stato licenziato per aver acquistato da Oracle/Microsoft/IBM" era il detto.
Database enormi e monolitiche utilizzate per ogni singolo scopo. Supporto a pagamento:ecco come appariva il panorama del database negli anni '90 e nei primi anni 2000. Certo, i database open source c'erano, ma venivano trattati come un "database di giocattoli", adatto per un piccolo sito Web, un blog forse o un piccolissimo e-shop. Nessuno sano di mente li userebbe per qualcosa di critico.
Le cose sono cambiate nel tempo ei database open source sono maturati. Ogni anno ne vengono creati sempre di più. Ora vediamo la specializzazione, che consente agli utenti di scegliere l'opzione migliore per un determinato carico di lavoro - serie temporali, analitiche, columnstore, NoSQL, relazionale, valore-chiave - puoi scegliere qualsiasi database di cui hai bisogno e, di solito, ci sono numerose opzioni tra cui scegliere. Questo fa sì che l'open source sia sempre più popolare nel mondo dei database. Le aziende stanno ora esaminando le bollette del loro fornitore di database proprietario e si chiedono se possono ridurlo un po' adottando un database open source gratuito.
Come al solito, ci sono pro e contro. Quali sono le cose che potresti voler considerare prima di implementare un database open source? In questo post del blog condivideremo alcuni suggerimenti che potresti voler tenere a mente quando pianifichi la migrazione a database open source.
Inizia in piccolo ed espandi
Se la tua organizzazione non utilizza database open source, molto probabilmente non ha nemmeno esperienza nella loro gestione. Sebbene sia fattibile tramite consulenti esterni, probabilmente non è una buona idea migrare l'intero ambiente in database open source.
L'approccio migliore, invece, sarebbe quello di iniziare con piccoli progetti. Forse hai bisogno di creare una sorta di strumento interno o sito Web, forse una sorta di strumento di monitoraggio:è una grande opportunità per utilizzare database open source e ottenere l'esperienza di utilizzo in ambienti del mondo reale. Ciò ti consentirà di apprendere i dettagli di un database:come diagnosticarlo, come monitorarne le prestazioni, come ottimizzarlo per migliorarne le prestazioni.
Inoltre, impareresti di più sulle opzioni e le implementazioni ad alta disponibilità. Lavorare con esso aiuta anche a comprendere le differenze tra il database proprietario che usi e i database open source che hai implementato per progetti più piccoli. Col tempo dovresti vedere l'impronta del database open source nella tua organizzazione aumentata in modo significativo insieme all'esperienza dei tuoi team.
Ad un certo punto, dopo aver raccolto abbastanza esperienza per eseguire i database open source, potresti decidere di tirare la leva e avviare un progetto di migrazione. Un'altra opzione, anche abbastanza probabile, è che sposteresti gradualmente le tue operazioni su database open source progetto per progetto. Alla fine le tue applicazioni esistenti che utilizzano RDBMS proprietario diventeranno deprecate e, infine, sostituite da una nuova iterazione del software, che si basa su database open source.
Scegli il database giusto per il lavoro
Abbiamo già detto che i database open source sono, in genere, piuttosto specializzati. È possibile scegliere un archivio dati adatto a diversi usi:serie temporali, archivio documenti, archivio valori-chiave, archivio colonne, ricerca di testo. Questo, combinato con il suggerimento precedente, ti consente di scegliere esattamente il tipo di database richiesto dal tuo piccolo progetto. Supponiamo che tu voglia creare uno stack di monitoraggio per il tuo ambiente.
Puoi esaminare i database di serie temporali come Prometheus o TimeScaleDB per alimentare la tua applicazione di monitoraggio. Forse vuoi implementare una sorta di soluzione analitica/big data. Dovresti progettare una sorta di processo ETL per estrarre i dati dal tuo RDBMS principale e caricarli in una soluzione open source. Esistono numerose opzioni da utilizzare come datastore. A seconda dei requisiti e dei dati, puoi scegliere tra un'ampia varietà di database, ad esempio Clickhouse, Cassandra, Hive e molti altri.
Che ne dici di spostare alcune parti dell'applicazione dall'RDBMS proprietario a una soluzione open source?
Ci sono opzioni anche per questo. Datastore come PostgreSQL o MariaDB hanno una grande quantità di funzionalità relative alla facile migrazione da datastore come Oracle. Vengono forniti, ad esempio, con il supporto per PL/SQL e altre funzionalità SQL disponibili per Oracle. Questo è di grande aiuto:meno codice deve essere convertito insieme alla migrazione da Oracle ad altri database, è più probabile che anche le tue procedure e funzioni memorizzate funzionino per lo più fuori dagli schemi e non dovrai spendere una cifra significativa quantità di tempo per riscrivere, testare ed eseguire il debug del codice che rappresenta una logica fondamentale della tua applicazione.
Non dovresti inoltre dimenticare le risorse che hai già nel tuo team. Forse qualcuno ha qualche esperienza in datastore open source più popolari? Se soddisfano i tuoi requisiti e si adattano al tuo ambiente, potresti essere in grado di utilizzare le conoscenze esistenti nel tuo team e passare facilmente al mondo open source.
Considera ricevere assistenza
Migrare in datastore con cui non hai molta esperienza è sempre complicato. Anche se procedi con piccoli passi potresti comunque essere colto da comportamenti a sorpresa, situazioni impreviste, bug o anche solo situazioni operative che non conosci.
I database open source in genere hanno un ottimo supporto da parte della community:elenchi di e-mail, forum, canali Slack. Di solito, quando chiedi, qualcuno cercherà di aiutarti. Questo potrebbe non essere sufficiente in alcuni casi. In tal caso, dovresti cercare un supporto a pagamento. Ci sono molti modi in cui questo può essere raggiunto.
Prima di tutto, non tutti i progetti open source sono uguali. Progetti più grandi, come PostgreSQL o MySQL, potrebbero aver sviluppato un ecosistema di società di consulenza che assumono esperti che possono fornire consulenza per te. Se tale opzione, per qualsiasi motivo, non è disponibile o fattibile, puoi sempre contattare i manutentori del progetto.
È molto comune che l'azienda, che sviluppa il datastore, sarà felice di aiutare a un prezzo.
Le società di consulenza indipendenti hanno un vantaggio significativo:sono indipendenti e proporranno una soluzione basata sulla loro esperienza, non basata sul datastore e sugli strumenti che sviluppano. I fornitori, beh, di solito spingono le proprie soluzioni e il proprio ambiente. D'altra parte, i fornitori sono piuttosto interessati ad aumentare l'adozione del loro datastore. Se stai migrando da un datastore proprietario, potrebbero essersi trovati in quella situazione diverse volte prima, quindi dovrebbero essere in grado di fornirti buone pratiche, aiutarti a progettare il processo di migrazione e così via. Per un'azienda inesperta l'accesso agli esperti nel campo della migrazione potrebbe essere una grande risorsa.
Potresti trovare utile l'accesso al supporto esterno non solo in fase di migrazione. Gestire un nuovo datastore è sempre complicato e imparare tutti gli aspetti delle operazioni richiede tempo. Anche dopo la migrazione potresti comunque trarre vantaggio dall'avere qualcuno che puoi chiamare, chiedere e, cosa più importante, da cui imparare. Corsi di formazione, DBA remoto, sono tutte opzioni comuni nel mondo dei database open source, specialmente per quei progetti più grandi e consolidati.
Trova un sistema o uno strumento per aiutarti
I database open source sono dotati di una varietà di strumenti, alcuni più o meno complessi. Alcuni aggiungono funzionalità (alta disponibilità, backup, monitoraggio), altri sono progettati per semplificare la gestione del database.
È importante sfruttarli (i contratti di consulenza possono essere utili qui per presentarti gli strumenti più importanti per il datastore open source di tua scelta) poiché possono aumentare significativamente la tua velocità operativa e le prestazioni e stabilità dell'intera configurazione.
Alcuni strumenti sono gratuiti, altri richiedono una licenza per funzionare, dovresti guardare nel pool e scegliere quello che ti si addice di più. Si tratta qui di bilanciatori di carico, strumenti per gestire la topologia di replica, strumenti di gestione dell'IP virtuale, soluzioni di clustering, piattaforme di monitoraggio e osservabilità più o meno dedicate che possono tracciare qualsiasi cosa a partire dalle metriche tipiche delle prestazioni del database fornendo previsioni intelligenti basate sui dati a specialisti analisi delle prestazioni della query.
Il mondo open source è il luogo in cui tali strumenti prosperano - anche questo ha pro e contro. È facile trovare lo strumento "A", è difficile trovare lo strumento "THE". Puoi trovare numerosi progetti su GitHub, tutti fanno quasi come gli altri. Quale scegliere è la parte difficile. Ecco perché, idealmente avresti una mano in un contratto di supporto o puoi anche fare affidamento su piattaforme di gestione che ti aiuteranno a gestire molteplici aspetti delle operazioni su database open source, incluso aiutarti a standardizzare e scegliere gli strumenti corretti per quello.
Esistono anche piattaforme come ClusterControl, che è stato progettato per aiutare le persone non esperte a cogliere appieno la potenza dei database open source. ClusterControl supporta diversi tipi di datastore open source:MySQL e le sue versioni, PostgreSQL, TimeScaleDB o MongoDB. Fornisce un'interfaccia utente unificata per accedere alle funzioni di gestione di tali datastore, semplificandone la distribuzione e la gestione. Invece di perdere tempo a testare diversi strumenti e soluzioni, utilizzando ClusterControl è possibile distribuire facilmente un ambiente ad alta disponibilità, pianificare backup e tenere traccia delle metriche nel sistema.
Strumenti come ClusterControl riducono il carico sul tuo team, aumentando la loro capacità di capire cosa sta succedendo nel database con cui non hanno familiarità come avrebbero voluto.
Prenditi il tuo tempo
Ciò che è bene tenere a mente è che non c'è bisogno di correre. La stabilità del tuo ambiente e il benessere dei tuoi utenti sono fondamentali. Prenditi il tuo tempo per eseguire i test, verificare tutti gli aspetti della tua applicazione. Verificare di disporre di processi di disponibilità elevata e ripristino di emergenza adeguati.
Solo quando sei sicuro al 100% di essere in grado di cambiare, sarebbe il momento di tirare la leva e passare ai database open source.