AlloyDB per PostgreSQL è un servizio di database completamente gestito e compatibile con PostgreSQL progettato per i carichi di lavoro più impegnativi, tra cui l'elaborazione analitica e transazionale ibrida. AlloyDB abbina un motore del database creato da Google a un'architettura multinodo basata su cloud per offrire prestazioni, affidabilità e disponibilità di livello enterprise.
Come funziona AlloyDB
Un'applicazione si connette alle istanze AlloyDB utilizzando protocolli e tecniche PostgreSQL standard. L'applicazione utilizza quindi la sintassi delle query PostgreSQL per interagire con il database.
Sotto la superficie, AlloyDB utilizza una gerarchia basata sul cloud di componenti e funzionalità progettati per massimizzare la disponibilità dei dati e ottimizzare le prestazioni e il throughput delle query. Google CloudGli strumenti di amministrazione ti consentono di monitorare l'integrità della tua implementazione AlloyDB, regolandone la scalabilità e le dimensioni per adattarsi al meglio alle mutevoli esigenze del tuo carico di lavoro.
Differenza architetturale di AlloyDB rispetto a PostgreSQL standard
I deployment PostgreSQL tradizionali accoppiano il motore del database che elabora le query con lo spazio di archiviazione in cui risiedono i dati, spesso sullo stesso server. AlloyDB utilizza un'architettura disaggregata. I livelli di calcolo e archiviazione sono separati e offrono scalabilità individuale.
Lo scaling di una tipica configurazione PostgreSQL prevede lo scale up tramite l'upgrade a un server più grande o lo scale out per le letture utilizzando repliche di lettura che duplicano anche i dati.
La progettazione disaggregata di AlloyDB, basata sul file system distribuito di Google, offre diversi vantaggi:
- Scalabilità indipendente: puoi scalare le risorse di calcolo, in particolare nodi e istanze, in base alle esigenze delle query senza eseguire il provisioning o il deprovisioning dell'archiviazione. Puoi anche fare lo scale out i nodi di sola lettura per la scalabilità di lettura, senza influire sulla disponibilità. Man mano che i dati aumentano, lo spazio di archiviazione viene scalato senza influire sul calcolo.
- Prestazioni migliorate: grazie a un motore di archiviazione nativo del cloud ottimizzato, AlloyDB offre prestazioni rapide per le query transazionali e analitiche, grazie a livelli di memorizzazione nella cache intelligenti e alla gestione avanzata dell'I/O.
- Gestione semplificata: la separazione delle competenze consente la gestione automatica di molte operazioni di database, tra cui replica, backup e applicazione di patch, che sono attività manuali in PostgreSQL autogestito.
- Alta disponibilità e durabilità: l'archiviazione dei dati ridondante nel livello durevole si estende su più zone di disponibilità, fornendo failover e ripristino automatici senza perdita di dati, indipendentemente dall'integrità dell'istanza.
Questa differenza architettonica fondamentale si manifesta nella gerarchia delle risorse di AlloyDB utilizzando i cluster come contenitori di database logici generali, con i nodi che forniscono la potenza di calcolo e le istanze che fungono da punti di connessione delle applicazioni, il tutto mentre i dati vengono mantenuti in un livello di archiviazione separato e disaggregato.
Il seguente diagramma illustra un esempio di cluster scalato per gestire carichi di lavoro impegnativi, con l'inclusione di più istanze del pool di lettura con bilanciamento del carico:
Cluster
Un singolo deployment AlloyDB all'interno di una determinata Google Cloud regione organizza tutte le sue risorse in un unico cluster. Sono inclusi tutti i tuoi database, log e altri metadati. AlloyDB esegue il deployment di tutte le risorse di un cluster all'interno di un singolo Virtual Private Cloud (VPC) e utilizza un file system basato sul cloud progettato da Google e ottimizzato per AlloyDB.
Nodi e istanze
Un cluster contiene diversi nodi, ovvero istanze di macchine virtuali dedicate all'esecuzione del motore del database compatibile con PostgreSQL che le applicazioni utilizzano per eseguire query sui dati del cluster. AlloyDB organizza i nodi in istanze, ognuna delle quali ha un indirizzo IP privato e statico nel tuo VPC. In pratica, le tue applicazioni si connettono alle istanze a questi indirizzi IP utilizzando i protocolli PostgreSQL. Le istanze passano quindi le query SQL ai rispettivi nodi.
AlloyDB ha due tipi di istanze:
Istanza primaria:ogni cluster ha un'istanza primaria, che fornisce un punto di accesso in lettura o scrittura ai tuoi dati. Un'istanza principale può essere ad alta affidabilità (HA) o di base.
Istanza principale HA:un'istanza principale HA ha due nodi: un nodo attivo e un nodo in standby. AlloyDB monitora la disponibilità del nodo attivo e promuove automaticamente il nodo di standby a nodo attivo quando necessario.
Istanza di base: gli ambienti non di produzione che non richiedono alta disponibilità possono utilizzare facoltativamente le istanze di base. Un'istanza di base ha un solo nodo, senza nodo di standby. Per saperne di più, consulta la sezione Ridurre i costi utilizzando le istanze di base.
Istanza del pool di lettura:il cluster può avere facoltativamente una o più istanze del pool di lettura, ognuna contenente uno o più nodi di sola lettura, fino a un massimo di 20 per cluster. AlloyDB bilancia automaticamente il carico di tutte le richieste inviate a un'istanza del pool di lettura, indirizzandole ai nodi dell'istanza.
Per i casi d'uso più semplici, un cluster può avere solo l'istanza principale, senza pool di lettura, e le applicazioni utilizzano l'istanza principale per tutte le query. Per lavori più impegnativi, puoi aggiungere istanze del pool di lettura al cluster. Poi configuri le applicazioni di reporting o analisi in modo che inviino richieste di lettura. Questa tecnica riduce il carico sull'istanza principale e migliora la scalabilità distribuendo il carico su più nodi.
Puoi aggiungere, rimuovere o modificare il numero di nodi di un'istanza del pool di lettura in qualsiasi momento, in base alle esigenze della tua applicazione. Puoi anche ridimensionare la memoria e il numero di vCPU dei nodi costituenti di un'istanza in qualsiasi momento, con tempi di inattività minimi. Il ridimensionamento delle istanze non comporta alcun rischio di perdita di dati, perché AlloyDB archivia i dati nel livello di archiviazione flessibile del cluster e non nelle istanze.
Funzionalità principali
AlloyDB si distingue da un'installazione PostgreSQL standard in diversi modi, oltre ai vantaggi di scalabilità verticale e orizzontale inerenti all'architettura multinodo descritta in precedenza. Le seguenti sezioni esaminano più da vicino le funzionalità chiave di AlloyDB.
Funzionalità del database automatiche e adattive
Il motore del database completamente compatibile con PostgreSQL che alimenta ogni nodo AlloyDB ha diverse funzionalità che analizzano continuamente la struttura e la frequenza delle query gestite dalle istanze, utilizzando queste informazioni per suggerire miglioramenti dello schema o applicare automaticamente le ottimizzazioni:
Un consulente per gli indici ti aiuta a trovare opportunità per ottimizzare lo schema del database utilizzando nuovi indici basati sui tuoi pattern di utilizzo.
Un motore colonnare può accelerare le prestazioni delle query analitiche memorizzando i dati in memoria utilizzando un formato colonnare. In questo modo, AlloyDB può utilizzare tecniche di elaborazione avanzate per analizzare in modo efficiente una grande quantità di dati delle tabelle quando necessario.
Una variante adattiva della funzionalità autovacuum di PostgreSQL per i dati obsoleti regola automaticamente i parametri relativi alla pulizia per adattarsi al meglio alla forma del carico di lavoro.
I sistemi di gestione automatica della memoria e dello spazio di archiviazione sfruttano l'ambiente basato sul cloud creato da Google su cui viene eseguito AlloyDB, allocando e rilasciando continuamente memoria e spazio di archiviazione in base alle esigenze per mantenere il cluster in esecuzione con prestazioni e efficienza delle risorse ottimali.
Alta disponibilità
Per impostazione predefinita, un cluster AlloyDB offre alta disponibilità (HA) tramite i nodi ridondanti dell'istanza primaria, che si trovano in due zone diverse, con failover automatico.
I cluster che operano in ambienti non di produzione che non richiedono l'alta affidabilità possono utilizzare facoltativamente istanze principali di base a zona singola.
L'aggiunta di istanze del pool di lettura contenenti almeno due nodi crea ulteriori punti di accesso bilanciati del carico, multizona e ad alta disponibilità ai tuoi dati. Tutte le istanze del pool di lettura vengono eseguite indipendentemente dall'istanza principale.
Per saperne di più sulle considerazioni specifiche per le regioni, consulta Area geografica e regioni.
Backup dati e disaster recovery
AlloyDB offre un sistema di backup e recupero continui che ti consente di creare un nuovo cluster in base a qualsiasi momento all'interno di un periodo di conservazione regolabile. In questo modo puoi ripristinare rapidamente i dati in caso di perdita accidentale.
Inoltre, AlloyDB può creare e archiviare backup completi dei dati del cluster, on demand o in base a una pianificazione regolare. In qualsiasi momento, puoi eseguire il ripristino da un backup a un nuovo cluster AlloyDB che contiene tutti i dati del cluster originale al momento della creazione del backup.
Per ulteriori informazioni, vedi Informazioni sui backup.
Come ulteriore metodo di ripristino di emergenza, puoi ottenere la replica tra regioni creando cluster secondari in regioni Google Cloudseparate. AlloyDB trasmette in streaming in modo asincrono i dati da un cluster principale designato a ciascuno dei suoi cluster secondari. Se necessario, puoi promuovere un cluster secondario a un cluster AlloyDB con tutte le funzionalità con istanze principali e del pool di lettura.
Per saperne di più, consulta Informazioni sulla replica tra regioni.
Sicurezza e controllo dell'accesso
Puoi configurare un cluster in modo che richieda la connessione con il proxy di autenticazione AlloyDB sicuro, che utilizza Identity Access and Management (IAM) per controllo dell'accesso accessi. Google Cloud Per ulteriori informazioni, consulta Autorizzazione.
AlloyDB utilizza il sistema di ruoli utente PostgreSQL standard per l'autenticazione, introducendo una manciata di ruoli aggiuntivi specifici per AlloyDB. Per saperne di più, consulta Gestire i ruoli utente di AlloyDB.
Crittografia
Per impostazione predefinita, AlloyDB protegge tutti i dati inattivi utilizzando i metodi di crittografia di Google. Se invece hai bisogno di criptare i tuoi dati utilizzando una chiave che fornisci, puoi specificare una chiave di crittografia gestita dal cliente (CMEK) durante la creazione di un cluster. AlloyDB utilizza quindi la chiave CMEK per criptare tutti i dati scritti in quel cluster.
CMEK si applica anche ai backup. Puoi specificare una chiave CMEK quando crei un backup on demand, configuri una pianificazione del backup o esegui il ripristino da un backup.
Per maggiori informazioni, consulta la pagina Informazioni su CMEK.
Manutenzione senza interruzioni
Le operazioni di manutenzione di AlloyDB sono progettate per ridurre al minimo le interruzioni del database. Le istanze primaria e secondaria hanno un tempo di inattività inferiore a un secondo, mentre i pool di lettura rimangono continuamente disponibili senza tempi di inattività. Ciò viene ottenuto preparando server di sostituzione e scambiandoli rapidamente con i server attivi quando sono pronti. Durante questa procedura, tutte le connessioni attive al database vengono interrotte momentaneamente. Puoi continuare a utilizzare il database normalmente durante l'intero processo.
Sebbene questa procedura di sostituzione garantisca tempi di inattività minimi, l'operazione complessiva potrebbe richiedere diversi minuti, come indicato nella console Google Cloud e in Google Cloud CLI.
Queste operazioni di manutenzione includono attività di manutenzione periodiche eseguite da Google
e attività che esegui manualmente, come la configurazione dei flag e il ridimensionamento
delle istanze. Se vuoi applicare immediatamente un aggiornamento anche se ciò comporta un periodo di inattività più lungo, utilizza il flag del database FORCE_APPLY
.
Supporto delle estensioni
AlloyDB include il supporto per una serie di estensioni PostgreSQL popolari. Per l'elenco completo, vedi Estensioni di database supportate.
Un'alternativa self-hosted: AlloyDB Omni
In alternativa all'esecuzione di AlloyDB all'interno di Google Cloud, Google offre AlloyDB Omni. Questa versione semplificata e scaricabile di AlloyDB ti consente di eseguire il suo potente motore del database nel tuo ambiente di computing basato su Linux, ovunque si trovi.
Per saperne di più, consulta la sezione Informazioni su AlloyDB Omni.