Che cos'è il monitoraggio dei database GCP?

Il monitoraggio dei database GCP (Google Cloud Platform) è un insieme di processi e software che si occupano del monitoraggio di qualsiasi opzione di database GCP. È l'equivalente del monitoraggio generale dei database cloud per i servizi di database cloud GCP. Una soluzione per il monitoraggio dei database GCP deve raccogliere le varie metriche relative ai numerosi tipi di database offerti da GCP, presentare queste metriche attraverso uno o più dashboard e disporre di una pletora di funzioni per l'invio di avvisi, notifiche e automazione degli sforzi di monitoraggio.

Il monitoraggio dei database GCP copre sia gli ambienti completamente basati sul cloud, sia quelli ibridi in cui solo una parte dell'infrastruttura è ospitata sui server di Google. In questo articolo ci concentreremo solo sul monitoraggio dei servizi di database di Google, lasciando i database on-premises all'area più generica del monitoraggio dei database, trattata in una guida separata. Qui discuteremo invece il perché, il come e le migliori pratiche per il monitoraggio di una delle opzioni di database GCP disponibili.

Perché è importante il monitoraggio dei database GCP?

Un elemento fondamentale di molte applicazioni è il database, comprese le soluzioni basate su cloud. Se i tuoi database cloud sono ospitati su Google Cloud Platform, il monitoraggio dei database GCP è una componente necessaria degli sforzi del tuo team IT per mantenere un'infrastruttura efficiente. Come per qualsiasi tipo di database, a prescindere da dove venga eseguito, tenere traccia del suo funzionamento e di eventuali problemi è di primaria importanza per consentire ai servizi e alle operazioni della tua organizzazione di funzionare in modo efficiente e affidabile senza intoppi.

I database cloud non sono diversi da quelli on-premise. Pertanto, ciò che è importante per il monitoraggio dei database è valido anche per il monitoraggio di qualsiasi servizio di database di Google. È fondamentale garantire che i dati preziosi conservati nei database siano in buone mani e non possano essere compromessi o accessibili da occhi non autorizzati. I database cloud delegano parte della sicurezza dei database ai produttori cloud, ma ciò non esclude completamente i rischi e le configurazioni errate. Il monitoraggio dei database GCP è quindi importante per sapere che i tuoi dati sono al sicuro.

Il monitoraggio dei database GCP può anche informarti sui costi del cloud, che spesso possono salire alle stelle. Con un buon monitoraggio puoi essere consapevole dei carichi di lavoro sui tuoi database cloud, essere informati quando stai raggiungendo soglie di utilizzo preconfigurate e scalare l'infrastruttura in base alle tuo esigenze. Ciò consente di spendere in modo efficiente, evitando di sprecare risorse per carichi di lavoro che non ne hanno bisogno.

Inoltre, come è naturale in ogni aspetto dell'IT, l'automatizzazione delle attività che richiedono tempo fa risparmiare tempo umano, consentendo agli esperti IT di concentrarsi su attività più fruttuose. Come minimo, il monitoraggio di una qualsiasi delle opzioni di database GCP consentirà agli amministratori del cloud di essere tranquilli, sapendo che i database sono monitorati per individuare eventuali interruzioni, potenziali minacce, colli di bottiglia delle prestazioni e qualsiasi altro possibile problema.

Come per qualsiasi tipo di monitoraggio, più si sa, meglio si può ottimizzare e mantenere le operazioni.

Monitoraggio dei servizi di database GCP

Google ha predisposto un'ampia gamma di database sul proprio cloud. Non solo i classici database GCP SQL e NoSQL, ma anche vari sottotipi per applicazioni più specifiche. Scopriamo quali sono questi database e come possono essere monitorati.

Database GCP SQL

Parlando di database relazionali GCP, Google offre principalmente la possibilità di scegliere tra tre database cloud: Cloud SQL, AlloyDB e Cloud Spanner. Il più popolare è Cloud SQL. Offre database gestiti MySQL, PostgreSQL e SQL Server sul cloud GCP e il suo monitoraggio non è troppo diverso da quello dei vari database SQL di altri servizi cloud.

Le principali metriche, disponibili attraverso lo strumento Google Cloud Monitoring, sono l'utilizzo della CPU e della memoria, l'utilizzo dello storage, le operazioni di lettura/scrittura, il traffico di rete in ingresso e in uscita e il ritardo di replica (nel caso di replica in lettura dal database). Questi dati sono visibili nella dashboard di monitoraggio predefinita di Cloud SQL e sono disponibili per l'uso esterno da parte di strumenti di monitoraggio dei database GCP di terze parti, come Checkmk.

Con l'alternativa AlloyDB c'è un'ulteriore opzione: la dashboard di monitoraggio AlloyDB integrata. In modo non molto diverso dalle dashboard di Google Cloud Monitoring, le stesse metriche viste in precedenza con Cloud SQL sono visibili con un paio di clic sull'interfaccia web di GCP. Come database GCP SQL, AlloyDB offre compatibilità solo con PostgreSQL, ma è ottimizzato per carichi di lavoro più elevati rispetto a Cloud SQL.

L'ultimo di questi database relazionali GCP che può essere monitorato è Cloud Spanner. Si tratta di un altro database cloud compatibile con PostgreSQL, come AlloyDB, ma ancora meglio ottimizzato per la scalabilità e la disponibilità estreme. Cloud Spanner può essere monitorato attraverso lo strumento predefinito di Google Cloud Monitoring utilizzando una dashboard dedicata.

Tutti questi database relazionali GCP hanno anche le proprie librerie client che consentono agli strumenti di monitoraggio dei database GCP di terze parti di accedere a una serie di metriche per verificare lo stato di salute dei database GCP. Oltre al puro monitoraggio basato sulle metriche, tutti i servizi di database Google forniscono anche l'accesso ai loro log, che possono essere analizzati tramite Cloud Logging o qualsiasi altra soluzione di monitoraggio dei database GCP.

Vale la pena ricordare che, oltre a questi database cloud-native, è perfettamente possibile lift & shift i database on-premise e ospitarli sul cloud GCP. Per quanto riguarda il monitoraggio, ciò significa utilizzare una dashboard personalizzata in Google Cloud Monitoring o un software di monitoraggio esterno che supporta il monitoraggio dei siti GCP. Checkmk è un esempio di quest'ultimo caso.

Database GCP NoSQL

Passando dai database relazionali di Google ai database NoSQL di GCP, la scelta è tutt'altro che indifferente. GCP ha il suo principale database NoSQL in Google Firestore. Si tratta di un database di documenti GCP, completamente gestito e facilmente scalabile. Google Cloud Monitoring ha una dashboard dedicata che raccoglie metriche come il numero di documenti letti, scritti ed eliminati, le connessioni attive, le richieste totali e il numero di valutazioni.

Non è un database di documenti GCP, tuttavia Google BigTable è un membro importante della famiglia di database NoSQL GCP. Essendo un database compatibile con Apache HBase, offre scalabilità, disponibilità e latenza più elevate rispetto a Google Firestore. Ha una propria serie di metriche di monitoraggio, come la latenza dei tentativi e delle operazioni, il conteggio dei tentativi, la latenza del server, il conteggio degli errori di connettività e altro ancora. A queste si aggiungono, e questo vale anche per Google Firestore, le metriche più generiche relative all'utilizzo di CPU, memoria, disco e rete.

Per quanto riguarda i database a grafico GCP, Google non dispone di uno strumento diretto che supporti questo tipo di database. Non esiste quindi un database a grafo GCP ufficiale, ma JanusGraph è un progetto open source che coinvolge aziende del calibro di Amazon, Google, IBM e altre. Può integrarsi con BigTable come backend, ha una guida ufficiale e dal punto di vista del monitoraggio funziona come se stesse monitorando un database BigTable da solo.

Allo stesso modo, i database delle serie temporali di GCP non esistono, ma possono essere emulati utilizzando BigTable e uno schema appropriato.

MemoryStore per Redis è invece offerto da GCP e ha una propria serie di metriche da abbinare a quelle classiche di utilizzo. Controllate i valori delle connessioni client, dei client bloccati, del numero di chiamate al minuto, del numero di chiavi memorizzate, del rapporto di hit della cache e molto altro ancora per avere un'idea della salute di questo tipo di database.

Best practice per il monitoraggio dei database GCP

Quando si inizia a implementare una strategia di monitoraggio dei database GCP, è importante seguire le best practice per partire con il piede giusto. In primo luogo, definire le metriche rilevanti per il tipo di database. Il controllo delle metriche di base, come l'uso della CPU, l'utilizzo della memoria, lo spazio di archiviazione libero e occupato, il traffico di rete, la latenza delle query e i tassi di errore, è il minimo. Poi, a seconda delle metriche esportate da GCP tramite le sue API o che si possono raccogliere con gli agenti di monitoraggio, è necessario definirne altre specifiche per il database, come abbiamo appena visto nelle sezioni precedenti.

Una volta stabilite le metriche, il passo successivo è l'impostazione degli avvisi e delle relative notifiche. Se il tuo sistema di monitoraggio dei database GCP lo consente, e molto probabilmente lo consente, imposta dashboard personalizzate in modo da poter vedere a colpo d'occhio ciò che ti interessa invece di essere sommersi da una massa di dati. Google Cloud Monitoring consente la creazione di dashboard personalizzate, così come il nostro Checkmk.

Indipendentemente dalla necessità di monitorare i database SQL GCP o i database NoSQL GCP, è indispensabile tenere sotto controllo le prestazioni delle query. Individuare le query lente o che richiedono molte risorse e ottimizzarle è fondamentale per migliorare l'efficienza complessiva del sistema, non solo dei database stessi ma anche di tutte le applicazioni che dipendono da essi. Cerca metriche specifiche per le query, come il tempo di esecuzione, la latenza delle query o il throughput, per identificare i colli di bottiglia e le configurazioni errate.

Se si utilizza la replica dei database per l'alta disponibilità e il disaster recovery, il monitoraggio del ritardo di replica dei servizi di database di Google è utile per garantire la coerenza dei dati tra le repliche. Inoltre, non dimentica di controllare in generale le metriche di disponibilità del database per rilevare interruzioni o tempi di inattività di qualsiasi tipo.

Ogni opzione di database GCP viene fornita con i propri log, che non devono mai essere ignorati quando si effettua il monitoraggio del database GCP. Google ha un proprio servizio per la lettura dei log, Cloud Logging, e la maggior parte degli altri software di monitoraggio GCP ha le proprie soluzioni.

Conclusione

Qualunque sia la soluzione scelta per i servizi di database GCP, è necessario impostare una strategia e un sistema di monitoraggio dei database GCP efficaci. Non solo i database sono troppo critici in qualsiasi infrastruttura per essere ignorati, ma nessuna soluzione di monitoraggio è completa senza includere ogni componente di un'infrastruttura ibrida, cloud o on-premise.

Checkmk offre un ampio supporto per il monitoraggio delle opzioni dei database GCP. Offre tutte le funzionalità che rendono semplice seguire le best practice di monitoraggio dei database GCP ed è abbastanza flessibile da poter essere utilizzato localmente o dal cloud stesso. Qualunque sia il tipo di database GCP utilizzato, è molto probabile che un plug-in di monitoraggio sia già presente in Checkmk o possa essere facilmente scritto.

DOMANDE FREQUENTI

Esiste un servizio di migrazione dei database GCP?

È disponibile un servizio di migrazione dei database GCP per i database Cloud SQL e AlloyDB per PostgreSQL. La migrazione può essere effettuata da un database on-premise, da altri cloud o da altri servizi di database di Google. Questo servizio di migrazione di database GCP ha una guida relativamente facile da usare per la migrazione, con script integrati e convalida dei dati prima che i nuovi database vengano aggiunti alla produzione.