Portare controlli dei costi familiari nel calcolo serverless
di Piyush Singh e Vijay Raja
In Databricks, l'utilizzo del nostro compute serverless è cresciuto di oltre 3 volte nell'ultimo anno e migliaia di clienti ora eseguono notebook, job e pipeline mission critical su di esso. Con l'aumento dell'adozione, la domanda che ogni team di piattaforma pone per prima diventa sempre più insistente: come possiamo ottenere una migliore visibilità sui costi del serverless e mantenerli entro il nostro budget?
I clienti Databricks che utilizzano SQL serverless e Model Serving possono già attribuire i costi, gestire l'accesso e monitorare il consumo senza toccare alcun parametro del cluster. Ora stiamo estendendo questa stessa funzionalità al compute serverless per notebook, job e pipeline. Stiamo facendo in modo che i controlli dei costi serverless funzionino esattamente come i team di piattaforma si aspettano.
Nel compute classico, il controllo dei costi risiedeva nell'infrastruttura. Potevi limitare la spesa limitando le macchine: conteggio dei nodi, tipi di istanza, intervalli di autoscaling e criteri del cluster che delimitavano ciò che gli utenti potevano allocare. Questi controlli erano necessari perché dovevi gestire l'infrastruttura da solo.
Il serverless rimuove questi parametri, di proposito. Il provisioning, la scalabilità e il dimensionamento dell'infrastruttura sono ora responsabilità della piattaforma, gestita da Databricks, e questo rappresenta gran parte del valore. Tuttavia, il controllo dei costi deve risiedere da qualche parte, quindi si sposta a un livello superiore. Invece di essere associato alle macchine, si collega alle persone e ai carichi di lavoro. Le domande che contano ora sono: chi può eseguire il serverless, a quale velocità un carico di lavoro può spendere e dove vanno a finire i costi.
I team di piattaforma descrivono le loro esigenze in tre modi:
Il compute classico rispondeva a queste esigenze con tre strumenti: tag per attribuire i costi, diritti per controllare l'accesso e limiti alle dimensioni del cluster per limitare la spesa. Il serverless richiede gli stessi tre elementi. Due di essi esistono già e il terzo sta arrivando.

Esamineremo ciascuno di questi punti in ordine.
L'attribuzione inizia con i tag. Nel compute classico si etichettava il cluster; nel serverless si etichetta il compute, e ogni DBU eseguito da quel compute porta con sé quel tag fino alla fatturazione.
system.billing.usage, suddiviso per utente, per prodotto e per tag. Una vista "costo per team" pronta per la leadership è una singola query, e i dashboard dei costi della console dell'account la visualizzano senza bisogno di scrivere codice SQL.
La stessa tabella risponde alla domanda di controllo che vorrai porti prima di modificare l'accesso di chiunque: chi sta effettivamente eseguendo il serverless oggi e quanto sta spendendo? Questa è un'ulteriore query, ordinata per consumo, e gli esempi completi sono disponibili nella documentazione delle tabelle di sistema.
Disponibilità: I tag di compute serverless per l'attribuzione sono attualmente disponibili in versione Beta.
L'osservabilità è già disponibile e i clienti possono già monitorare i costi del serverless con le tabelle di sistema su AWS, Azure e Google Cloud.
Le stesse tabelle di sistema che attribuiscono i costi consentono anche di tracciarli. I budget della console dell'account inviano avvisi via email quando la spesa serverless supera una soglia, e i dashboard di gestione dei costi consentono di monitorare i consumi per prodotto, workspace e tag. Un avviso SQL sulla spesa serverless del giorno precedente chiude il cerchio nel giro di poche ore.
Il monitoraggio è tuttavia reattivo: segnala la giornata costosa la mattina successiva anziché prevenirla. Questa lacuna è il motivo per cui esistono i successivi due obiettivi.
Disponibilità: Il monitoraggio è generalmente disponibile da oggi. Configura i budget e gli avvisi di spesa su AWS, Azure e Google Cloud.
Il primo controllo proattivo consiste nel decidere chi può eseguire il serverless. Tale autorizzazione è un diritto: definisce quali utenti o gruppi possono accedere al serverless, proprio come i diritti esistenti controllano chi può creare cluster o connettersi a un SQL warehouse. I controlli di accesso al compute serverless sono ora generalmente disponibili e consentono di gestire il serverless con quel modello: autorizzazioni su un oggetto di compute, non policy applicate a ogni carico di lavoro.

Un oggetto di compute serverless rappresenta il confine delle autorizzazioni per il serverless. Ogni workspace ne riceve due per impostazione predefinita:
Le autorizzazioni su questi oggetti sono le due che già conosci dai warehouse: Can Use e Can Manage. Se sai valutare chi può connettersi a un SQL warehouse, saprai anche valutare chi può eseguire il serverless.
Il modello è sicuro per impostazione predefinita. Ogni utente inizia con Can Use, quindi l'attivazione della funzione non cambia nulla finché un amministratore non interviene. Quando un amministratore interviene, il flusso è quello che ti aspetti: apri la pagina Compute, vai alla scheda Serverless, apri un oggetto di compute predefinito, rimuovi "All Users" e aggiungi un gruppo specifico. Un utente esterno a quel gruppo vedrà ora Serverless disattivato nel selettore del compute del notebook e nessuna esecuzione in corso verrà interrotta.

Disponibilità: Generalmente disponibile oggi. Consulta la documentazione per AWS, Azure e Google Cloud.
Il controllo degli accesso decide se un carico di lavoro viene eseguito, non quanto può spendere una volta avviato. Colmare questa lacuna è il terzo compito - Rate Limits – e si applica agli stessi oggetti di compute appena visti.
Allo stesso tempo, l'attribuzione migliora. Una nuova serverless_compute_id in system.billing.usage attribuisce la spesa per oggetto di calcolo, rendendo il calcolo del costo per oggetto di calcolo semplice quanto il costo per team.
Una precisazione per chi conosce le taglie t-shirt di DBSQL: per i notebook e i processi, la dimensione rappresenta un limite massimo di scalabilità automatica e non una dimensione fissa del cluster. Se scegli XL per un processo che richiede solo Medium, verrà allocato il livello Medium.
Disponibilità: I limiti di frequenza sono ora disponibili in Beta. Abilita i limiti di frequenza tramite le impostazioni di anteprima di Databricks; consulta la documentazione per AWS, Azure e Google Cloud.
Ricomponi i tre processi:
serverless_compute_id nelle tabelle di sistema, utilizzabili in budget e dashboard.Puoi iniziare a implementare i controlli sui costi serverless fin da subito. Ecco come procedere:
system.billing.usage e un avviso di budget sulla spesa serverless.I controlli di accesso al calcolo serverless sono ora generalmente disponibili. Per approfondire l'attribuzione e il monitoraggio, puoi consultare la documentazione sulle tabelle di sistema (AWS | Azure| GCP) e sul tagging serverless (AWS | Azure | GCP).
(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale
Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.