Per il provisioning dei database esistono solo 2 opzioni:
Questo è il “paradosso del provisioning” e, se hai mai gestito un database di produzione, ti sei trovato di fronte a questa sfida.
Per anni, abbiamo semplicemente accettato questo come il costo da pagare per l'utilizzo dei database relazionali. Ma con l'introduzione di Databricks Lakebase, Postgres serverless integrato con Databricks, le carte in tavola sono cambiate. Siamo passati da istanze di dimensioni fisse e "sempre attive" a un modello più intelligente ed elastico: l'autoscaling.
In questo post, analizzeremo nel dettaglio come funziona l'autoscaling di Lakebase, perché è una vera manna per i moderni flussi di lavoro degli sviluppatori e come configurare le misure di protezione in modo da poterti concentrare sullo sviluppo di funzionalità invece che sulla gestione dell'infrastruttura.
Lakebase Autoscaling è un modello di compute intelligente che garantisce che le dimensioni del tuo database corrispondano ai requisiti immediati della tua applicazione.
Il dimensionamento corretto per il tuo database è quello richiesto dalla tua applicazione. Il compute del database dovrebbe essere reattivo, non statico e vincolato a una taglia predefinita. Con l'autoscaling, definisci l'intervallo di risorse che desideri allocare al database. Il sistema regola quindi dinamicamente la quantità di compute disponibile per il database in base al carico attuale.
In Lakebase, questo viene gestito tramite un'astrazione chiamata Compute Unit (CU). L'autoscaling utilizza un approccio granulare in cui 1 CU alloca 2 GB di memoria. Questo consente al sistema di Scale con incrementi più piccoli e precisi, offrendoti un controllo più stretto sia sulle prestazioni che sui costi.
Specifica | Valore |
Memoria per Compute Unit | 2 GB |
Intervallo massimo di autoscaling | 32 CU |
Intervallo massimo min-max di CU | 8 CU |
Timeout di inattività per Scale a zero | Definito dall'utente (ad es. 15 min) |
Risparmio di costo stimato (scale to zero) | Oltre il 70% per carichi di lavoro di sviluppo e con picchi |
Per la scale è necessario il riavvio del database | No |
È facile pensare che la scalabilità automatica consideri solo l'utilizzo grezzo della CPU, ma Lakebase è più intelligente. Per garantire che le prestazioni della tua applicazione non peggiorino, l'algoritmo di dimensionamento automatico monitora tre pilastri tecnici fondamentali:
La metrica più intuitiva. Se l'applicazione inizia a eseguire join complessi o il volume di richieste simultanee aumenta, il sistema rileva il picco di utilizzo del processore e aggiunge altre CU per garantire che la latenza delle query rimanga bassa.
I database relazionali sono noti per il loro elevato consumo di memoria. Questa metrica monitora la quantità di memoria consumata dai processi attivi e dai buffer. Con il monitoraggio della memoria, Lakebase può aumentare le risorse per prevenire problemi di Out of Memory (OOM) prima che causino un crash della sessione, garantendo una disponibilità costante anche con carichi di lavoro pesanti.
Questa è forse la metrica più importante a livello professionale. Il set di lavoro è la porzione dei dati a cui si accede di frequente e che idealmente dovrebbe rimanere "calda" nella cache. Se il tuo working set diventa più grande della RAM attualmente allocata, il database deve eseguire lo "swap" dei dati su disco, un'operazione di ordini di grandezza più lenta. Lakebase stima le dimensioni del tuo working set e aumenta il tuo compute per garantire che i tuoi dati "caldi" rimangano nella memoria ad alta velocità.
Il bello di questo approccio è che avviene tutto senza riavvii. Le connessioni al database rimangono aperte e l'applicazione rimane reattiva mentre l'infrastruttura sottostante si adatta in modo fluido al traffico.
L'autoscaling non significa risorse infinite o fatture infinite. Come sviluppatore, hai bisogno di controllo sul livello minimo di prestazioni e sul tetto di spesa. Puoi farlo impostando un intervallo di scalabilità.
Quando configuri un'istanza di compute di Lakebase, imposterai due valori principali:
Nota importante sui limiti: per mantenere la scalabilità prevedibile e altamente reattiva, Lakebase richiede che la differenza tra le dimensioni di compute massime e minime non superi 8 CU (ad esempio, un intervallo da 2 a 10 CU). Lakebase Autoscaling supporta intervalli fino a 32 CU. Per i carichi di lavoro che richiedono costantemente più potenza, sono disponibili anche compute di dimensioni fisse più grandi.

Se si stanno creando applicazioni basate sull'AI o agenti autonomi su Databricks, i modelli di traffico non sono quasi mai lineari. Un agente potrebbe rimanere inattivo per ore e poi trigger improvvisamente un'enorme catena di query mentre elabora un prompt complesso o acquisisce un nuovo set di dati.
L'autoscaling assicura che il database gestisca questi improvvisi picchi di attività senza richiedere il "preriscaldamento" dell'infrastruttura. Quando l'agente termina la sua attività, il database scala automaticamente verso il basso, proteggendo il budget del tuo progetto.
I flussi di lavoro dei database moderni in Lakebase spesso includono il branching del database, ovvero la capacità di creare ambienti isolati copy-on-write per funzionalità o PR specifiche.
La maggior parte di questi branch di sviluppo rimane inattiva per il 90% del tempo. Con la scalabilità automatica, questi ambienti rimangono al loro CU minimo quando non vengono utilizzati. Tuttavia, non appena una pipeline CI/CD start a eseguire un test di integrazione pesante o uno sviluppatore avvia una convalida manuale dei dati, l'ambiente esegue uno Scale istantaneo per fornire prestazioni a livello di produzione.
L'autoscaling gestisce le ore di attività, ma cosa succede quando finisce la giornata lavorativa?
È qui che la Scale a zero diventa lo strumento di ottimizzazione dei costi per eccellenza. Se abilitato insieme all'autoscaling, Lakebase è in grado di rilevare periodi di totale inattività. Dopo un timeout definito dall'utente, ad esempio 15 minuti senza query, l'istanza di calcolo viene sospesa completamente.
Per gli ambienti di sviluppo o per le dashboard interne utilizzate solo durante l'orario di lavoro, questa combinazione può ridurre i costi di compute mensili del 70% o più.
Il passaggio alla scalabilità automatica riguarda tanto la semplicità operativa quanto i costi.
L'era del dimensionamento del database basato su stime approssimative è finita. Sfruttando Databricks Lakebase Autoscaling, puoi smettere di agire come un sysadmin part-time e iniziare a concentrarti su ciò che conta: il tuo codice e i tuoi dati.
Imposta i tuoi limiti, abilita la Scale a zero per i tuoi Branch di sviluppo e lascia che l'algoritmo di Lakebase si occupi del lavoro pesante. I tuoi utenti e i tuoi stakeholder ti ringrazieranno.
Approfondisci la documentazione sull'autoscaling di Lakebase per scoprire come configurare oggi stesso la tua prima istanza compute con autoscaling.
Cos'è l'autoscaling? L'autoscaling è un modello di compute intelligente che garantisce che le dimensioni del database corrispondano ai requisiti dell'applicazione. Si allontana dalle istanze di dimensioni fisse per passare a un modello elastico che adatta la capacità di compute disponibile per il database in base al carico attuale.
Qual è l'obiettivo principale dell'autoscaling? L'obiettivo principale è risolvere il paradosso del provisioning, in base al quale gli sviluppatori dovevano tradizionalmente scegliere tra pagare più del dovuto per la CPU inattiva o rischiare un errore di sistema durante i picchi del carico di lavoro. L'autoscaling permette al compute del database di essere reattivo e dimensionato con precisione, invece che vincolata a una dimensione statica.
Quali sono i vantaggi dell'utilizzo dell'autoscaling? I vantaggi includono la semplicità operativa, eliminando la necessità di un ridimensionamento manuale, e prestazioni prevedibili grazie al monitoraggio proattivo della memoria e dei working set. Inoltre, il modello granulare da 2 GB per CU offre una regolazione più precisa dei costi e delle prestazioni rispetto ai provider che richiedono il raddoppio delle dimensioni dell'istanza per avere più RAM.
In che modo il dimensionamento automatico gestisce la capacità in modo dinamico? La capacità viene gestita tramite un'astrazione granulare chiamata Compute Unit, dove un'unità alloca 2 GB di memoria. Il sistema aggiunge o rimuove queste unità senza richiedere il riavvio del database, garantendo che le connessioni rimangano aperte mentre l'infrastruttura sottostante si adatta.
In che modo l'autoscaling migliora la Scale del cloud? L'autoscaling migliora la Scale consentendo ai database di gestire picchi di attività improvvisi senza richiedere un pre-riscaldamento manuale. Questa elasticità garantisce che l'infrastruttura possa aumentare le proprie prestazioni per attività intensive e ridurle automaticamente al termine per non incidere sul budget.
Quali metriche monitora Lakebase Autoscaling? L'algoritmo monitora tre pilastri tecnici chiave: il carico della CPU per mantenere bassa la latenza delle query, l'utilizzo della memoria per prevenire problemi di esaurimento della memoria (out of memory) e le dimensioni del working set per garantire che i dati a cui si accede di frequente rimangano nella cache.
Cos'è una Compute Unit (CU) in Lakebase? Una Compute Unit è un'astrazione granulare delle risorse utilizzata in Lakebase per definire l'intervallo di scalabilità. Ogni singola unità fornisce esattamente 2 GB di memoria.
Qual è l'intervallo massimo di CU supportato dall'autoscaling di Lakebase? L'autoscaling di Lakebase supporta intervalli fino a un massimo di 32 CU. All'interno di tale intervallo, il sistema richiede che la differenza tra il valore minimo e massimo di CU definito dall'utente non superi le 8 CU.
Come funziona Scale to zero in Lakebase? Scale to zero rileva i periodi di totale inattività e sospende completamente l'istanza di compute dopo un timeout definito dall'utente. Quando arriva una nuova connessione o query, il database riprende a funzionare con la dimensione minima di autoscaling definita.
Qual è la differenza tra autoscaling e scale to zero in Lakebase? L'autoscaling gestisce le ore di attività regolando le dimensioni di compute entro un intervallo predefinito per rispondere alla domanda variabile. La funzione scale to zero gestisce i periodi di inattività sospendendo completamente l'istanza per eliminare i costi di compute quando non ci sono query.
Posso usare Lakebase Autoscaling con il database branching? L'autoscaling è molto vantaggioso per il database branching perché consente agli ambienti isolati per le funzionalità di rimanere a un CU minimo quando sono inattivi. Questi ambienti con branch quindi si espandono per fornire prestazioni di livello produttivo ogni volta che uno sviluppatore avvia la convalida o una pipeline CI/CD esegue dei test.
L'autoscaling richiede il riavvio del database? No. Le connessioni al database rimangono attive e aperte mentre Lakebase scala fluidamente le risorse sottostanti.
Qual è il rapporto RAM/CU in Lakebase? Ogni Compute Unit (CU) fornisce esattamente 2 GB di memoria.
Quanto posso risparmiare utilizzando la Scale a zero? Per i carichi di lavoro attivi solo in determinate parti della giornata, come i dev Branch o le dashboard interne, gli utenti spesso riscontrano riduzioni dei costi di compute del 70% o più.
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
