Elenco di controllo per il lancio di Spanner

Questo elenco di controllo per il lancio fornisce un elenco di considerazioni da fare prima di lanciare un'applicazione di produzione su Spanner. Non è inteso essere esaustivo, ma serve a evidenziare considerazioni chiave per minimizzare i rischi, ottimizzare le prestazioni e garantire l'allineamento con gli scopi commerciali e operativi, offrendo un approccio sistematico per eseguire un deployment di Spanner senza problemi e affidabile.

Questo elenco di controllo è suddiviso nelle seguenti sezioni:

Progettazione, sviluppo, test e ottimizzazione

L'ottimizzazione della progettazione dello schema, delle transazioni e delle query è essenziale per utilizzare l'architettura distribuita di Spanner per prestazioni e scalabilità elevate. Test rigorosi su larga scala e end-to-end assicurano che il sistema possa gestire carichi di lavoro, picchi di carico e operazioni simultanee reali, riducendo al minimo i rischi di colli di bottiglia o errori in produzione.

Casella di controllo Attività
❑  
Progetta lo schema tenendo presente la scalabilità e l'architettura distribuita di Spanner. Segui best practice come la selezione di chiavi e indici principali appropriati per evitare hotspot e valuta ottimizzazioni come l'interlacciamento delle tabelle per i dati correlati. Esamina le best practice per la progettazione dello schema per assicurarti che lo schema supporti sia le prestazioni elevate sia la scalabilità sotto i carichi di lavoro previsti.
❑  
Ottimizza le transazioni e le query per ridurre al minimo i blocchi e massimizzare le prestazioni. Utilizza le modalità di transazione di Spanner, ad esempio le istruzioni DML partizionate, di lettura-scrittura con blocco e di sola lettura con elevata coerenza, per bilanciare coerenza, throughput e latenza. Riduci al minimo gli ambiti di blocco utilizzando transazioni di sola lettura per le query, il batching per una maggiore produttività DML o istruzioni DML partizionate per aggiornamenti ed eliminazioni su larga scala. Quando esegui la migrazione da sistemi con diversi livelli di isolamento (ad esempio PostgreSQL o MySQL), utilizza le transazioni per evitare colli di bottiglia delle prestazioni. Per ulteriori informazioni, consulta la sezione Transazioni.
❑  
Esegui test di carico rigorosi su larga scala per convalidare il design dello schema, il comportamento delle transazioni e le prestazioni delle query. Simula scenari di picco e alta concorrenza che simulano i carichi delle applicazioni reali, inclusi diversi tipi di transazioni e pattern di query. Valuta la latenza e il throughput in queste condizioni per verificare che la progettazione e la topologia dell'istanza del database soddisfino i requisiti di prestazioni. Utilizza i test di carico in modo iterativo durante lo sviluppo per ottimizzare e perfezionare l'implementazione.
❑  
Estendi i test di carico in modo da includere tutti i servizi in interazione, non solo le applicazioni isolate. Simula percorsi utente completi insieme a processi paralleli, come caricamenti batch o attività di amministrazione che accedono al database. Esegui test sulla configurazione dell'istanza Spanner di produzione, assicurandoti che i driver e i servizi di test di carico siano allineati geograficamente alla topologia di implementazione di produzione prevista. Questo approccio olistico identifica in anticipo i potenziali conflitti e garantisce il corretto funzionamento del database durante le operazioni reali.
❑  
Per garantire un rendimento prevedibile delle query, utilizza la versione dello strumento di ottimizzazione su cui è stato testato il carico di lavoro. Per impostazione predefinita, i database Spanner utilizzano la versione più recente dello strumento di ottimizzazione delle query. Valuta regolarmente le nuove versioni dell'ottimizzatore in un ambiente controllato e aggiorna la versione predefinita solo dopo aver verificato la compatibilità e i miglioramenti delle prestazioni. Per ulteriori informazioni, consulta la panoramica dello Strumento di ottimizzazione delle query.
❑  
Assicurati che le statistiche dell'ottimizzatore delle query siano aggiornate per supportare piani di esecuzione delle query efficienti. Sebbene le statistiche vengano aggiornate automaticamente, ti consigliamo di costruire manualmente un nuovo pacchetto di statistiche in scenari come le modifiche dei dati su larga scala (ad esempio, inserimenti, aggiornamenti o eliminazioni collettivi), l'aggiunta di nuovi indici o le modifiche dello schema. Mantenere aggiornate le statistiche dello strumento di ottimizzazione delle query è fondamentale per mantenere le prestazioni ottimali delle query.

Migrazione (facoltativa)

La migrazione del database è un processo completo che richiede un'analisi approfondita delle specifiche di ogni singolo percorso di migrazione. Tieni presente quanto segue nella tua strategia di migrazione:

Casella di controllo Attività
❑  
Sviluppa una procedura operativa standard (SOP) dettagliata per il passaggio alla migrazione. Sono inclusi i passaggi per l'implementazione dell'applicazione, il passaggio al nuovo database e l'automazione per ridurre al minimo l'intervento manuale. Identifica e comunica agli stakeholder con molto anticipo le potenziali finestre di interruzione del servizio. Implementa meccanismi di monitoraggio e invio di avvisi solidi per monitorare il processo di migrazione in tempo reale e rilevare tempestivamente eventuali anomalie. Assicurati che la procedura di passaggio includa controlli di convalida per confermare l'integrità dei dati e le funzionalità dell'applicazione dopo la migrazione.
❑  
Prepara un piano di riserva dettagliato per ripristinare il sistema di origine in caso di problemi critici durante la migrazione. Testa le procedure di fallback in un ambiente di staging per assicurarti che siano affidabili e possano essere eseguite con tempi di inattività minimi. Definisci chiaramente le condizioni che attiveranno un piano di riserva e assicurati che il team sia addestrato a eseguire questo piano in modo rapido ed efficiente.

Deployment

Una pianificazione dell'implementazione adeguata garantisce che le configurazioni di Spannersoddisfano i requisiti del carico di lavoro per disponibilità, latenza e scalabilità, tenendo conto delle considerazioni geografiche e operative. L'allineamento di dimensionamento, gestione delle risorse, scenari di failover e automazione riduce al minimo i rischi, garantisce prestazioni ottimali e impedisce limitazioni o interruzioni delle risorse durante le operazioni critiche.

Casella di controllo Attività
❑  
Assicurati che la configurazione dell'istanza Spanner (regionale, a due regioni o multiregionale) sia in linea con i requisiti di disponibilità e latenza del carico di lavoro della tua applicazione, tenendo conto anche delle considerazioni geografiche. Calcola la capacità di calcolo target in base alle dimensioni dello spazio di archiviazione previste, ai pattern di traffico e ai limiti di utilizzo consigliati, assicurandoti una capacità sufficiente per interruzioni zonali o regionali. Pianifica i picchi di traffico attivando la scalabilità automatica. Puoi impostare un limite superiore per la capacità di calcolo per stabilire misure di salvaguardia dei costi. Per ulteriori informazioni, consulta Capacità di calcolo, nodi e unità di elaborazione.
❑  
Se utilizzi una configurazione di istanze a due o più regioni, scegli una regione leader che riduca al minimo la latenza per le scritture delle applicazioni dai servizi di cui è stato eseguito il deployment nelle località più sensibili alla latenza. Testa le implicazioni di regioni leader diverse sulla latenza delle operazioni e apporta le modifiche necessarie per ottimizzare le prestazioni dell'applicazione. Pianifica scenari di failover assicurandoti che la topologia dell'applicazione sia in grado di adattarsi alle modifiche della regione leader durante le interruzioni a livello di regione. Per ulteriori informazioni, consulta Modificare la regione leader di un database.
❑  
Configura i tag e le etichette in modo appropriato per la chiarezza operativa e il monitoraggio delle risorse Google Cloud. Utilizza i tag per raggruppare le istanze in base all'ambiente o al tipo di carico di lavoro. Utilizza le etichette per i metadati che aiutano nell'analisi dei costi e nella gestione delle autorizzazioni. Per ulteriori informazioni, consulta Controllare l'accesso e organizzare le istanze con i tag.
❑  
Valuta se è necessario il riscaldamento di Spanner, in particolare per i servizi che prevedono un traffico improvviso e elevato al momento del lancio. Il test della latenza in caso di carichi iniziali elevati potrebbe rivelare la necessità di un pre-lancio per garantire prestazioni ottimali. Se è necessario il warm-up, genera un carico artificiale. Per ulteriori informazioni, consulta Eseguire l'inizializzazione del database prima del lancio dell'applicazione.
❑  
Esamina i limiti e le quote di Spanner prima del deployment. Se necessario, richiedi aumenti delle quote nella console Google Cloud per evitare vincoli durante i periodi di picco. Tieni presente i limiti rigidi (ad esempio il numero massimo di tabelle per database) per evitare problemi dopo il deployment. Per ulteriori informazioni, consulta Quote e limiti.
❑  
Utilizza strumenti di automazione come Terraform per eseguire il provisioning e gestire le tue istanze Spanner, assicurandoti che le configurazioni siano efficienti e prive di errori. Per la gestione dello schema, ti consigliamo di utilizzare strumenti come Liquibase per evitare rimozioni accidentali dello schema durante gli aggiornamenti. Per ulteriori informazioni, consulta Utilizzare Terraform con Spanner.

Ripristino di emergenza

È fondamentale stabilire una strategia di ripristino di emergenza (DR) solida per proteggere i dati, ridurre al minimo i tempi di inattività e garantire la continuità aziendale in caso di guasti imprevisti. Il test regolare delle procedure di ripristino e l'automazione dei backup contribuiscono a garantire l'idoneità operativa, la conformità ai scopi di recupero e una protezione affidabile dei dati personalizzata in base alle esigenze dell'organizzazione.

Casella di controllo Attività
❑  
Definisci una strategia di ripristino di emergenza completa per Spanner che includa protezione dei dati, obiettivi di recupero e scenari di errore. Stabilisci obiettivi chiari per il tempo di recupero (RTO) e per il punto di recupero (RPO) in linea con i requisiti di continuità aziendale. Specifica la frequenza dei backup, le norme di conservazione e utilizza il recupero point-in-time (PITR) per ridurre al minimo la perdita di dati in caso di errori. Consulta la Panoramica del piano di ripristino dei disastri per identificare gli strumenti e le tecniche giusti per garantire la disponibilità, l'affidabilità e la sicurezza della tua applicazione. Per ulteriori informazioni, consulta il white paper Soluzioni di protezione e recupero dei dati in Spanner.
❑  
Crea una documentazione dettagliata per le procedure di backup e ripristino, incluse guide passo passo per vari scenari di recupero. Testa regolarmente queste procedure per garantire l'idoneità operativa e convalida i requisiti RTO e RPO. I test devono simulare condizioni e scenari di errori del mondo reale per identificare le lacune e migliorare il processo di recupero. Per ulteriori informazioni, consulta la panoramica del ripristino.
❑  
Implementa pianificazioni di backup automatico per garantire una protezione dei dati coerente e affidabile. Configura le impostazioni di frequenza e conservazione in modo che si adattino alle esigenze aziendali e alle normative vigenti. Utilizza le funzionalità di pianificazione dei backup di Spanner per automatizzare la creazione, la gestione e il monitoraggio dei backup. Per ulteriori informazioni, consulta Creare e gestire le pianificazioni dei backup.
❑  
Allinea le procedure di failover alla topologia di configurazione delle istanze della tua applicazione per ridurre al minimo gli impatti sulla latenza in caso di interruzione del servizio. Testa gli scenari di ripristino di emergenza, assicurandoti che l'applicazione possa funzionare in modo efficiente quando la regione leader viene spostata in una regione di failover. Per ulteriori informazioni, consulta Modificare la regione leader di un database.

Gestione dello strumento di ottimizzazione delle query e delle statistiche

La gestione delle versioni e delle statistiche dello strumento di ottimizzazione delle query è importante per mantenere un rendimento delle query prevedibile ed efficiente. L'utilizzo di versioni testate e il mantenimento aggiornato delle statistiche garantisce la stabilità, impedisce variazioni impreviste delle prestazioni e ottimizza i piani di esecuzione delle query, in particolare durante modifiche significative dei dati o dello schema.

Casella di controllo Attività
❑  
Per impostazione predefinita, i database Spanner utilizzano la versione più recente dello strumento di ottimizzazione delle query. Per garantire un rendimento prevedibile delle query, utilizza la versione dello strumento di ottimizzazione su cui è stato testato il carico di lavoro. Valuta regolarmente le nuove versioni dell'ottimizzatore in un ambiente controllato e aggiorna la versione predefinita solo dopo aver verificato la compatibilità e i miglioramenti delle prestazioni. Per maggiori informazioni, consulta la panoramica dello Strumento di ottimizzazione delle query.
❑  
Assicurati che le statistiche dell'ottimizzatore delle query siano aggiornate per supportare piani di esecuzione delle query efficienti. Sebbene le statistiche vengano aggiornate automaticamente, ti consigliamo di costruire manualmente un nuovo pacchetto di statistiche in scenari come le modifiche dei dati su larga scala (ad esempio, inserimenti, aggiornamenti o eliminazioni collettivi), l'aggiunta di nuovi indici o le modifiche allo schema. Mantenere aggiornate le statistiche dello strumento di ottimizzazione delle query è fondamentale per mantenere le prestazioni ottimali delle query.
❑  
In alcuni scenari, ad esempio dopo le eliminazioni collettive o quando la generazione di nuove statistiche potrebbe influire in modo imprevedibile sul rendimento delle query, è consigliabile bloccare un pacchetto di statistiche specifico. In questo modo viene fornito un rendimento uniforme delle query fino a quando non è possibile generare e testare un nuovo pacchetto. Esamina regolarmente la necessità di bloccare le statistiche e di sbloccarle una volta convalidati i pacchetti aggiornati. Per ulteriori informazioni, consulta Pacchetti di statistiche dello strumento di ottimizzazione delle query.

Sicurezza

L'implementazione di misure di controllo dell'accesso è essenziale per proteggere i dati sensibili e prevenire l'accesso non autorizzato in Spanner. Se applichi il accesso con i privilegi minimi, il controllo dell'accesso granulare (FGAC) e la protezione dell'eliminazione del database, puoi ridurre al minimo i rischi, garantire la conformità e salvaguardare le risorse critiche da azioni accidentali o dannose.

Casella di controllo Attività
❑  
Esamina e implementa i criteri IAM (Gestione di identità e accessi) seguendo il principio del privilegio minimo per tutti gli utenti e gli account di servizio che accedono al tuo database. Assegna solo le autorizzazioni necessarie per eseguire attività specifiche e controlla regolarmente le autorizzazioni di controllo dell'accesso per garantire l'aderenza a questo modello. Utilizza account di servizio con privilegi minimi per le procedure automatiche per ridurre il rischio di accessi non autorizzati. Per ulteriori informazioni, consulta la panoramica di IAM.
❑  
Se l'applicazione richiede l'accesso limitato a righe, colonne o celle specifiche all'interno di una tabella, implementa il controllo dell'accesso granulare (FGAC). Progetta e applica criteri di accesso condizionale in base agli attributi o ai valori dei dati degli utenti per applicare regole di accesso granulari. Esamina e aggiorna regolarmente queste norme in base alle esigenze di sicurezza e conformità in continua evoluzione. Per ulteriori informazioni, consulta la panoramica del controllo dell'accesso granulare.
❑  
Implementa pianificazioni di backup automatico per garantire una protezione dei dati coerente e affidabile. Configura le impostazioni di frequenza e conservazione in modo che si adattino alle esigenze aziendali e alle normative vigenti. Utilizza le funzionalità di pianificazione dei backup di Spanner per automatizzare la creazione, la gestione e il monitoraggio dei backup. Per ulteriori informazioni, consulta Creare e gestire le pianificazioni dei backup.
❑  
Abilita la protezione da eliminazione del database per evitare eliminazioni accidentali o non autorizzate. Abbina questa operazione a controlli IAM rigorosi per limitare i privilegi di eliminazione a un piccolo insieme attendibile di utenti o account di servizio. Inoltre, configura strumenti di automazione dell'infrastruttura come Terraform per includere salvaguardie contro l'eliminazione involontaria dei database. Questo approccio a più livelli riduce al minimo i rischi per le risorse di dati critici. Per saperne di più, consulta la sezione Impedire l'eliminazione accidentale dei database.

Logging e monitoraggio

Il logging e il monitoraggio efficaci sono fondamentali per mantenere la visibilità sulle operazioni del database, rilevare anomalie e garantire l'integrità del sistema. Con l'utilizzo di log di controllo, monitoraggio distribuito, dashboard e avvisi proattivi, puoi identificare e risolvere rapidamente i problemi, ottimizzare le prestazioni e soddisfare i requisiti di conformità.

Casella di controllo Attività
❑  
Attiva il logging di controllo per acquisire informazioni dettagliate sulle attività del database. Configura i livelli degli audit log in modo appropriato in base ai requisiti di conformità e operativi per monitorare i pattern di accesso e rilevare efficacemente le anomalie. Tieni presente che i log di controllo potrebbero diventare molto grandi soprattutto per le richieste DATA_READ e DATA_WRITE poiché tutti gli statement SQL e DML vengono registrati per queste rispettive richieste. Per ulteriori informazioni, consulta Log di controllo di Spanner.

Il routing di questi log a un bucket di log definito dall'utente ti consente di ottimizzare i costi di conservazione dei log (i primi 30 giorni non sono soggetti a costi) e di controllare in modo granulare l'accesso ai log utilizzando le visualizzazioni di log.
❑  
Raccogli le metriche lato client eseguendo l'instrumentazione della logica dell'applicazione con OpenTelemetry per distribuire il monitoraggio e l'osservabilità. Configura la instrumentation OpenTelemetry per acquisire tracce e metriche da Spanner, garantendo una visibilità end-to-end delle prestazioni dell'applicazione e delle interazioni con il database. Per ulteriori informazioni, consulta Acquisire metriche lato client personalizzate utilizzando OpenTelemetry.
❑  
Crea e configura le metriche di monitoraggio per visualizzare le prestazioni delle query, la latenza, l'utilizzo della CPU e l'utilizzo dello spazio di archiviazione. Utilizza queste metriche per il monitoraggio in tempo reale e l'analisi storica del rendimento del database. Per ulteriori informazioni, consulta Monitora le istanze con Cloud Monitoring.
❑  
Definisci avvisi di monitoraggio basati su soglie per le metriche critiche per rilevare e risolvere proattivamente i problemi. Configura gli avvisi per condizioni come latenza elevata delle query, bassa disponibilità dello spazio di archiviazione o picchi imprevisti di traffico. Integra questi avvisi con gli strumenti di risposta agli incidenti per intervenire tempestivamente. Per ulteriori informazioni, consulta Creare avvisi per le metriche di Spanner.

Libreria client

La configurazione del tagging delle operazioni, dei pool di sessioni e dei criteri di ripetizione è fondamentale per ottimizzare le prestazioni, risolvere i problemi di debug e mantenere la resilienza in Spanner. Queste misure migliorano l'osservabilità, riducono la latenza e garantiscono una gestione efficiente delle richieste del carico di lavoro e degli errori transitori, allineando il comportamento del sistema ai requisiti dell'applicazione.

Casella di controllo Attività
❑  
Configura la libreria client in modo da utilizzare richieste di query e tag transazioni significativi. Puoi utilizzare i tag di richiesta e transazione per comprendere le query, le letture e le transazioni. Come best practice, utilizza nei tag metadati contestuali come componente dell'applicazione, tipo di richiesta o contesto utente per attivare il debug e l'introspezione avanzati. Assicurati che i tag siano visibili nelle statistiche e nei log delle query per facilitare l'analisi del rendimento e la risoluzione dei problemi. Per ulteriori informazioni, consulta Risolvere i problemi relativi ai tag di richiesta e di transazione.
❑  
Ottimizza la gestione delle sessioni attivando il pooling delle sessioni nella libreria client. Configura le impostazioni del pool, ad esempio le sessioni minime e massime, in modo da soddisfare le richieste del carico di lavoro riducendo al minimo la latenza. Monitora regolarmente l'utilizzo delle sessioni per perfezionare questi parametri e assicurarti che il pool di sessioni offra vantaggi di rendimento coerenti. Per ulteriori informazioni, consulta la sezione Sessioni.
❑  
In rari casi, i parametri predefiniti della libreria client per i tentativi di nuovo invio, tra cui i tentativi massimi e gli intervalli di backoff esponenziali, devono essere configurati per bilanciare la resilienza con le prestazioni. Testa attentamente queste norme per assicurarti che siano in linea con le esigenze dell'applicazione. Per ulteriori informazioni, consulta Configurare i timeout e le riarmi personalizzati.

Assistenza

Per ridurre al minimo i tempi di riposo e l'impatto, definisci ruoli e responsabilità chiari per gli incidenti per garantire risposte rapide e coordinate ai problemi correlati a Spanner. Per ulteriori informazioni, consulta la pagina Richiedere assistenza.

Casella di controllo Attività
❑  
Stabilisci un framework di risposta agli incidenti chiaro, definendo ruoli e responsabilità per tutti i membri del team coinvolti nella gestione degli incidenti correlati a Spanner. Designare ruoli per gli incidenti, come Incident Commander, Communications Lead ed esperti in materia, per garantire un coordinamento e una comunicazione efficienti durante gli incidenti. Sviluppare e documentare procedure per identificare, eseguire l'escalation, attenuare e risolvere i problemi. Segui le best practice descritte nel Foglio di lavoro Google SRE sulla risposta agli incidenti e nella sezione Gestione degli incidenti. Esegui regolarmente simulazioni e formazione per la risposta agli incidenti per garantire la prontezza e migliorare la capacità del team di gestire efficacemente scenari di alta pressione.

Gestione dei costi

L'implementazione di strategie di gestione dei costi come gli sconti per impegno di utilizzo (CUD), l'autoscaling e i backup incrementali garantisce un utilizzo efficiente delle risorse e risparmi significativi sui costi. L'allineamento del provisioning delle risorse alle richieste dei carichi di lavoro e l'ottimizzazione degli ambienti non di produzione riducono ulteriormente le spese, mantenendo al contempo le prestazioni e la flessibilità.

Casella di controllo Attività
❑  
Valuta e acquista CUD per Spanner per ridurre i costi per i carichi di lavoro prevedibili. Questi impegni potrebbero offrire risparmi significativi rispetto ai prezzi on demand. Analizza i pattern di utilizzo storici per determinare gli impegni CUD ottimali. Per ulteriori informazioni, consulta la sezione Sconti per impegno di utilizzo e Prezzi di Spanner.
❑  
Monitora l'utilizzo della capacità di calcolo e modifica le risorse di cui è stato eseguito il provisioning per mantenere i livelli di utilizzo della CPU consigliati. L'overprovisioning delle risorse di calcolo potrebbe comportare costi non necessari, mentre l'underprovisioning potrebbe influire sulle prestazioni. Segui le linee guida consigliate per l'utilizzo massimo della CPU di Spanner per garantire l'allineamento delle risorse in modo conveniente.
❑  
Abilita la scalabilità automatica per regolare dinamicamente la capacità di calcolo in base alle esigenze del carico di lavoro. Ciò garantisce prestazioni ottimali durante i picchi di carico riducendo al contempo i costi durante i periodi di bassa attività. Configura i criteri di scalabilità con limiti superiori e inferiori per controllare i costi ed evitare una scalabilità eccessiva. Per ulteriori informazioni, consulta Panoramica della scalabilità automatica.
❑  
Utilizza i backup incrementali per ridurre i costi di archiviazione dei backup. I backup incrementali memorizzano solo le modifiche ai dati dall'ultimo backup. Ciò riduce notevolmente i requisiti di archiviazione rispetto ai backup completi. Incorpora i backup incrementali nella tua strategia di backup. Per ulteriori informazioni, consulta Backup incrementali.
❑  
Ottimizza i costi per gli ambienti non di produzione selezionando la configurazione dell'istanza più ottimale e eseguendo il deprovisioning delle risorse quando gli ambienti non sono in uso. Ad esempio, riduci le dimensioni degli ambienti non critici dopo l'orario di lavoro o automatizza la scalabilità delle risorse per scenari di sviluppo e test. Questo approccio riduce al minimo i costi mantenendo la flessibilità operativa.