MySQL è uno dei database relazionali open source più popolari al mondo. Uno dei motivi della sua popolarità è la possibilità di ospitare e gestire il database in molti modi conformi ai requisiti del carico di lavoro di un utente. Un utente può scegliere di configurare il database in modo che sia autogestito on-premise, autogestito nelle macchine virtuali nel cloud o utilizzare l'offerta completamente gestita di un cloud provider. Questo articolo illustra l'opzione MySQL autogestita e la soluzione completamente gestita, Cloud SQL per MySQL, fornita da Google Cloud. Verranno trattati i vantaggi e gli svantaggi di ciascuna opzione.
Opzione MySQL autogestita significa che l'utente, nella maggior parte dei casi un amministratore di database, è responsabile della maggior parte delle attività coinvolte nell'impostazione, installazione, configurazione e manutenzione di database, sistema operativo, networking, archiviazione, istanza di macchina virtuale (VM) e hardware che ospita l'istanza del database e il server. Alcune di queste attività, come quelle relative ad hardware, istanze VM, archiviazione, networking e sistema operativo, possono essere svolte più facilmente affidandosi a un fornitore di servizi cloud come Google Cloud. Indipendentemente dal fatto che un utente gestisca autonomamente un database on-premise o nel cloud, è responsabile di alcune delle principali attività di gestione di database necessarie per il buon funzionamento del sistema. Queste attività sono elencate di seguito.
Il diagramma seguente mostra le responsabilità dell'utente quando opta per la configurazione autogestita. Anche se la gestione autonoma su Google Cloud riduce alcune attività relative a hardware, computing, networking e archiviazione, le responsabilità della gestione dei restanti livelli dello stack rimangono a carico dell'utente. L'amministratore del database e lo sviluppatore dell'applicazione devono comunque dedicare tempo, energia e risorse sufficienti alla gestione di MySQL.
Cloud SQL è un servizio di database completamente gestito che offre facilità d'uso per la configurazione, la manutenzione, la gestione e l'amministrazione dei database MySQL, PostgreSQL e SQL Server su Google Cloud. Cloud SQL gestisce tutti gli aspetti relativi a hardware, networking, sistema operativo, sicurezza, monitoraggio, manutenzione, disponibilità e scalabilità del database MySQL. Tutte queste responsabilità sono nascoste agli utenti, il che consente loro di concentrarsi sullo sviluppo delle applicazioni e a offrire valore ai propri clienti.
Il diagramma seguente è simile al diagramma qui sopra, che mostra le attività di gestione dei vari livelli del database MySQL, con l'unica differenza che tutte le attività gestire da Cloud SQL per conto dell'utente sono illustrate in blu.
Oltre a gestire le numerose attività descritte sopra, Cloud SQL offre varie funzionalità e soluzioni non disponibili in modo nativo in un ambiente autogestito. Di seguito sono elencate alcune delle funzionalità principali offerte da Cloud SQL.
Affidabilità: il backup e il ripristino sono le attività più importanti nella gestione di database. Cloud SQL offre il backup automatico e i backup on demand, che possono essere utilizzati per ripristinare il database a un momento specifico in caso di danneggiamento, disastro o modifiche indesiderate ai dati.
Disponibilità: Cloud SQL offre alta disponibilità creando istanze di più server che ospitano il database in più zone con la funzionalità di failover automatico per fornire alta disponibilità in caso di errore di una VM o di un data center. Cloud SQL garantisce una disponibilità superiore al 99,95% in ogni parte del mondo.
Oltre alla funzionalità di alta disponibilità, Cloud SQL offre anche un team SRE (Site Reliability Engineering) 24 ore su 24, 7 giorni su 7, responsabile di assicurare l'affidabilità delle istanze del database Cloud SQL per MySQL su Google Cloud.
Le repliche di lettura tra regioni sono un'altra funzionalità che può essere utilizzata come meccanismo di ripristino di emergenza in caso di errori. Consente a un utente di visualizzare rapidamente il database interessato in un altro sito (regione) con un impatto minimo sull'attività.
Scalabilità: Cloud SQL offre la creazione di repliche di lettura MySQL, come istanze aggiuntive di sola lettura di MySQL nella stessa regione o in regioni remote per gestire le richieste delle repliche e dell'istanza principale, migliorando così le prestazioni di lettura. Le repliche di lettura possono essere utilizzate anche per la generazione di report e possono essere distrutte dopo che sono state soddisfatte le esigenze aziendali.
Cloud SQL consente di fare lo scale up delle risorse (CPU, memoria e archiviazione) e lo scale down delle risorse sull'istanza MySQL con tempi di inattività minimi. Invece, nel caso di una configurazione autogestita, queste attività complicate richiedono sforzi, competenze e pianificazione significativi.
Sicurezza: i server di database Cloud SQL per MySQL si trovano nei data center protetti di Google Cloud, garantendo il massimo livello di sicurezza. Inoltre, Google Cloud offre connettività privata con Virtual Private Cloud e accesso alla rete controllato dagli utenti con protezione firewall, che garantisce che i server di database degli utenti non siano alla portata di malintenzionati.
Un altro aspetto della sicurezza è la conformità alle normative sulla sicurezza. Cloud SQL è conforme a numerosi regolamenti riconosciuti come SSAE 16, ISO 27001, PCI DSS e HIPAA.
Cloud SQL offre la possibilità di gestire gli utenti e il loro accesso al database tramite l'integrazione IAM. Questa integrazione gestisce l'autorizzazione e l'autenticazione per gli utenti di Google Cloud e fornisce un accesso granulare a determinate risorse Google Cloud, impedendo l'accesso non autorizzato al database. Inoltre, Cloud SQL semplifica il controllo di identità e accessi fornendo ruoli predefiniti progettati per controllare l'accesso alle risorse di Cloud SQL.
Un'altra funzionalità di sicurezza di Cloud SQL è la crittografia dei dati at-rest e in transito, garantendo che nessun utente non autorizzato possa accedere ai dati utente.
Cloud SQL offre una funzionalità di convalida delle password per gli utenti del database, che consente ai clienti di definire i criteri relativi alle password per la complessità, la lunghezza minima e l'intervallo di modifica delle password e per l'utilizzo del nome utente nella password a livello di istanza. I clienti possono anche definire i criteri per i giorni di scadenza della password, il numero di tentativi di accesso non riusciti e i requisiti di modifica della vecchia password a livello di singolo utente. Queste funzionalità di Cloud SQL forniscono best practice per la conformità dei requisiti di sicurezza e riducono il rischio di accesso non autorizzato ai dati critici.
Cloud SQL consente inoltre di controllare le azioni e le operazioni sul database MySQL utilizzando un plug-in per gli audit log. L'audit log fornisce insight sull'autore, sul tipo e sull'oggetto di un'azione e su quando è stata eseguita. Il controllo del database consente di monitorare azioni specifiche degli utenti nel database, come aggiornamenti delle tabelle, query di lettura, concessioni di privilegi utente e altro.
Osservabilità: Cloud SQL offre varie soluzioni per il monitoraggio e un elenco sempre più aggiornato di metriche pronte all'uso, che forniscono insight sullo stato del database. Gli utenti possono utilizzare le metriche per creare avvisi per informare gli amministratori dello stato del database.
Cloud SQL offre inoltre funzionalità come Query Insights e motori per suggerimenti, che consentono agli utenti di risolvere i problemi e identificare i colli di bottiglia nelle prestazioni di una query o di un carico di lavoro. È difficile replicare queste funzionalità in un ambiente MySQL autogestito.
Integrazione: Cloud SQL offre una facile connettività di rete e l'integrazione con altri servizi all'interno di Google Cloud, come Google Kubernetes Engine, Compute Engine e Cloud Run, che semplificano lo sviluppo di soluzioni perfettamente integrate. Cloud SQL offre anche l'integrazione nativa con BigQuery e Looker che possono essere utilizzati per l'elaborazione analitica dei dati disponibili in Cloud SQL.
Patching: come servizio gestito, Cloud SQL aggiorna automaticamente le istanze per garantire che l'hardware e il sistema operativo sottostanti siano affidabili, performanti, sicuri e aggiornati. La maggior parte di questi aggiornamenti viene eseguita mentre l'istanza Cloud SQL è in esecuzione. Tuttavia, alcuni aggiornamenti di sistema potrebbero richiedere una breve interruzione del servizio, per cui gli utenti possono definire dei periodi di manutenzione per l'attività di upgrade.
Upgrade delle versioni: Cloud SQL fornisce anche un processo automatizzato di upgrade della versione del database (MySQL). Gli utenti possono anche eseguire l'upgrade della versione principale effettuando la migrazione dei dati a un'istanza di versione superiore.
Vantaggi
Svantaggi
Vantaggi
Svantaggi
Inizia a creare su Google Cloud con 300 $ di crediti gratuiti e oltre 20 prodotti Always Free.