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 è pensato per essere esaustivo, ma serve a evidenziare le considerazioni chiave per ridurre al minimo i rischi, ottimizzare il rendimento e garantire l'allineamento con gli obiettivi aziendali e operativi, offrendo un approccio sistematico per fornire un'implementazione di Spanner fluida 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 ottenere prestazioni e scalabilità elevate. Test rigorosi su larga scala e end-to-end garantiscono che il sistema possa gestire carichi di lavoro reali, picchi di carico e operazioni simultanee, 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 le best practice, ad esempio seleziona chiavi primarie e indici appropriati per evitare hotspot e valuta ottimizzazioni come l'interleaving delle tabelle per i dati correlati. Esamina le best practice per la progettazione dello schema per assicurarti che lo schema supporti sia prestazioni elevate che scalabilità nei carichi di lavoro previsti.
❑  
Ottimizza le transazioni e le query per ridurre al minimo il blocco e massimizzare le prestazioni. Utilizza le modalità di transazione di Spanner, ad esempio istruzioni DML partizionate, di lettura-scrittura con blocco e di sola lettura con elevata coerenza, per bilanciare coerenza, velocità effettiva e latenza. Riduci al minimo gli ambiti di blocco utilizzando transazioni di sola lettura per le query, batch per il massimo throughput DML o istruzioni DML partizionate per aggiornamenti ed eliminazioni su larga scala. Quando esegui la migrazione da sistemi con livelli di isolamento diversi (ad esempio PostgreSQL o MySQL), utilizza le transazioni per evitare colli di bottiglia delle prestazioni. Per maggiori informazioni, vedi Transazioni.
❑  
Esegui test di carico rigorosi su larga scala per convalidare la progettazione dello schema, il comportamento delle transazioni e il rendimento delle query. Simula scenari di picco e ad alta concorrenza che imitano i carichi delle applicazioni reali, inclusi diversi schemi di transazione e query. Valuta latenza e velocità effettiva in queste condizioni per verificare che la progettazione del database e la topologia dell'istanza soddisfino i requisiti di prestazioni. Utilizza il test di carico in modo iterativo durante lo sviluppo per ottimizzare e migliorare l'implementazione.
❑  
Estendi il test di carico a tutti i servizi che interagiscono, non solo alle applicazioni isolate. Simula percorsi utente completi insieme a processi paralleli, come caricamenti batch o attività amministrative 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 con la topologia di deployment di produzione prevista. Questo approccio olistico identifica potenziali conflitti in anticipo e garantisce prestazioni fluide del database durante le operazioni reali.
❑  
Per garantire prestazioni prevedibili delle query, utilizza la versione dello strumento di ottimizzazione su cui è stato testato il carico di lavoro. Per impostazione predefinita, i database Spanner utilizzano l'ultima versione 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 confermato la compatibilità e i miglioramenti delle prestazioni. Per ulteriori informazioni, consulta Panoramica dello Strumento di ottimizzazione delle query.
❑  
Assicurati che le statistiche dell'ottimizzatore di query siano aggiornate per supportare piani di esecuzione delle query efficienti. Sebbene le statistiche vengano aggiornate automaticamente, valuta la possibilità di creare manualmente un nuovo pacchetto di statistiche in scenari quali modifiche dei dati su larga scala (ad esempio inserimenti, aggiornamenti o eliminazioni collettivi), aggiunta di nuovi indici o modifiche dello schema. Mantenere aggiornate le statistiche dello strumento di ottimizzazione delle query è fondamentale per mantenere 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. Nella tua strategia di migrazione, tieni presente quanto segue:

Casella di controllo Attività
❑  
Sviluppa una procedura operativa standard (SOP) dettagliata per il cutover della migrazione. Sono inclusi i passaggi per l'implementazione dell'applicazione, il cambio di database e l'automazione per ridurre al minimo l'intervento manuale. Identifica e comunica ai vari stakeholder le potenziali finestre di inattività con largo anticipo. Implementa meccanismi di monitoraggio e avviso robusti per monitorare il processo di migrazione in tempo reale e rilevare tempestivamente eventuali anomalie. Assicurati che il processo di trasferimento includa controlli di convalida per confermare l'integrità dei dati e le funzionalità dell'applicazione dopo la migrazione.
❑  
Prepara un piano di fallback 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 che possano essere eseguite con tempi di inattività minimi. Definisci chiaramente le condizioni che attiverebbero un fallback e assicurati che il team sia addestrato a eseguire questo piano in modo rapido ed efficiente.

Deployment

Una pianificazione del deployment adeguata garantisce che le configurazioni di Spanner soddisfino i requisiti di disponibilità, latenza e scalabilità del carico di lavoro, tenendo conto di considerazioni geografiche e operative. L'allineamento del dimensionamento, della gestione delle risorse, degli scenari di failover e dell'automazione riduce al minimo i rischi, garantisce prestazioni ottimali ed evita vincoli o interruzioni delle risorse durante le operazioni critiche.

Casella di controllo Attività
❑  
Assicurati che la configurazione dell'istanza di Spanner (regionale, a due regioni o multiregionale) sia in linea con i requisiti di disponibilità e latenza del workload dell'applicazione, tenendo conto anche di considerazioni geografiche. Calcola la capacità di calcolo di destinazione in base alle dimensioni di archiviazione previste, ai pattern di traffico e ai limiti di utilizzo consigliati, garantendo 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 salvaguardie per i costi. Per saperne di più, consulta Capacità di calcolo, nodi e unità di elaborazione.
❑  
Se utilizzi una configurazione di istanza a due regioni o multiregionale, 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 diverse regioni leader sulla latenza dell'operazione e apportare modifiche 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 regionali. Per maggiori informazioni, vedi Modificare l'regione leader di un database.
❑  
Configura tag ed etichette in modo appropriato per la chiarezza operativa e il monitoraggio delle risorse Google Cloud. Utilizza i tag per raggruppare le istanze per ambiente o tipo di carico di lavoro. Utilizza le etichette per i metadati che facilitano l'analisi dei costi e la gestione delle autorizzazioni. Per ulteriori informazioni, consulta Controllare l'accesso e organizzare le istanze con i tag.
❑  
Valuta se è necessario il preriscaldamento di Spanner, soprattutto per i servizi che prevedono un traffico improvviso e elevato al momento del lancio. Il test della latenza in condizioni di carichi iniziali elevati potrebbe rivelare la necessità di un preriscaldamento pre-lancio per garantire prestazioni ottimali. Se è necessario il riscaldamento, genera un carico artificiale. Per maggiori informazioni, vedi Riscaldare il 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 istanze Spanner, assicurandoti che le configurazioni siano efficienti e a prova di errore. Per la gestione dello schema, valuta la possibilità di utilizzare strumenti come Liquibase per evitare eliminazioni accidentali dello schema durante gli aggiornamenti. Per saperne di più, consulta la sezione Utilizzare Terraform con Spanner.

Disaster recovery

Definire una solida strategia di disaster recovery (RE) è essenziale per proteggere i dati, ridurre al minimo i tempi di inattività e garantire la continuità aziendale in caso di errori imprevisti. Il test regolare delle procedure di ripristino e l'automazione dei backup contribuiscono a garantire la preparazione operativa, la conformità agli obiettivi di ripristino e una protezione dei dati affidabile e 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 ripristino e scenari di errore. Stabilisci obiettivi di tempo di recupero (RTO) e obiettivi di punto di recupero (RPO) chiari e in linea con i requisiti di continuità aziendale. Specifica la frequenza di backup, le policy 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 disaster recovery per identificare gli strumenti e le tecniche giusti per garantire la conformità in termini di disponibilità, affidabilità e sicurezza per la tua applicazione. Per saperne di più, 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. Esegui regolarmente test di queste procedure per garantire la preparazione operativa e convalidare i requisiti RTO e RPO. I test devono simulare condizioni e scenari di errore reali per identificare le lacune e migliorare il processo di ripristino. Per ulteriori informazioni, consulta la panoramica del ripristino.
❑  
Implementa pianificazioni di backup automatiche per garantire una protezione dei dati coerente e affidabile. Configura le impostazioni di frequenza e conservazione in modo che corrispondano alle esigenze aziendali e agli obblighi normativi. Utilizza le funzionalità di pianificazione dei backup di Spanner per automatizzare la creazione, la gestione e il monitoraggio dei backup. Per saperne di più, vedi Creare e gestire pianificazioni di backup.
❑  
Allinea le procedure di failover alla topologia di configurazione delle istanze della tua applicazione per ridurre al minimo l'impatto della latenza in caso di interruzione. Testa gli scenari di recupero 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, vedi Modificare l'regione leader di un database.

Strumento di ottimizzazione delle query e gestione 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 delle statistiche aggiornate garantiscono la stabilità, impediscono modifiche impreviste delle prestazioni e ottimizzano i piani di esecuzione delle query, soprattutto durante modifiche significative dei dati o dello schema.

Casella di controllo Attività
❑  
Per impostazione predefinita, i database Spanner utilizzano l'ultima versione dello strumento di ottimizzazione delle query. Per garantire prestazioni prevedibili 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 confermato 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 di query siano aggiornate per supportare piani di esecuzione delle query efficienti. Sebbene le statistiche vengano aggiornate automaticamente, valuta la possibilità di creare manualmente un nuovo pacchetto di statistiche in scenari quali modifiche dei dati su larga scala (ad esempio inserimenti, aggiornamenti o eliminazioni collettivi), aggiunta di nuovi indici o modifiche dello schema. Mantenere aggiornate le statistiche dello strumento di ottimizzazione delle query è fondamentale per mantenere prestazioni ottimali delle query.
❑  
In alcuni scenari, ad esempio dopo 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. Ciò garantisce un rendimento coerente delle query finché non è possibile generare e testare un nuovo pacchetto. Controlla regolarmente la necessità di bloccare le statistiche e sbloccarle una volta che i pacchetti aggiornati sono stati convalidati. Per maggiori informazioni, consulta la sezione 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 impedire l'accesso non autorizzato in Spanner. Applicando l'accesso con privilegi minimi, il controllo dell'controllo dell'accesso granulare (FGAC) e la protezione dall'eliminazione del database, puoi ridurre al minimo i rischi, garantire la conformità e proteggere le risorse critiche da azioni accidentali o dannose.

Casella di controllo Attività
❑  
Esamina e implementa i criteri Identity and Access Management (IAM) 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#39;accesso per garantire il rispetto di questo modello. Utilizza service account con privilegi minimi per i processi automatizzati per ridurre il rischio di accessi non autorizzati. Per ulteriori informazioni, consulta la panoramica di IAM.
❑  
Se l'applicazione richiede l'accesso con restrizioni a righe, colonne o celle specifiche all'interno di una tabella, implementa controllo dell'accesso granulare (FGAC). Progetta e applica criteri di accesso condizionale in base agli attributi o ai valori dei dati dell'utente per applicare regole di accesso granulari. Rivedi e aggiorna regolarmente queste norme per allinearle ai requisiti di sicurezza e conformità in evoluzione. Per saperne di più, consulta la Panoramica del controllo dell'accesso granulare.
❑  
Implementa pianificazioni di backup automatiche per garantire una protezione dei dati coerente e affidabile. Configura le impostazioni di frequenza e conservazione in modo che corrispondano alle esigenze aziendali e agli obblighi normativi. Utilizza le funzionalità di pianificazione dei backup di Spanner per automatizzare la creazione, la gestione e il monitoraggio dei backup. Per saperne di più, vedi Creare e gestire pianificazioni di backup.
❑  
Abilita la protezione da eliminazione del database per impedire eliminazioni accidentali o non autorizzate. Combina questa impostazione con controlli IAM rigorosi per limitare i privilegi di eliminazione a un insieme piccolo e attendibile di utenti o service account. Inoltre, configura strumenti di automazione dell'infrastruttura come Terraform per includere salvaguardie contro l'eliminazione involontaria dei tuoi database. Questo approccio a più livelli riduce al minimo i rischi per gli asset di dati critici. Per saperne di più, consulta la sezione Impedire l'eliminazione accidentale del database.

Logging e monitoraggio

Un logging e un monitoraggio efficaci sono fondamentali per mantenere la visibilità sulle operazioni del database, rilevare anomalie e garantire l'integrità del sistema. Utilizzando log di controllo, tracciamento 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 operativi e di conformità per monitorare i pattern di accesso e rilevare le anomalie in modo efficace. Tieni presente che i log di controllo potrebbero diventare di grandi dimensioni, soprattutto per le richieste DATA_READ e DATA_WRITE, poiché tutte le istruzioni SQL e DML vengono registrate per queste rispettive richieste. Per maggiori informazioni, vedi 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 vengono addebitati) e di controllare in modo granulare l'accesso ai log utilizzando le visualizzazioni di log.
❑  
Raccogli metriche lato client strumentando la logica dell'applicazione con OpenTelemetry per distribuire la tracciabilità e l'osservabilità. Configura l'instrumentazione OpenTelemetry per acquisire tracce e metriche da Spanner, garantendo la visibilità end-to-end delle prestazioni dell'applicazione e delle interazioni con il database. Per saperne di più, 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 delle prestazioni del database. Per ulteriori informazioni, consulta Monitorare le istanze con Cloud Monitoring.
❑  
Definisci avvisi di monitoraggio basati su soglie per le metriche critiche per rilevare e risolvere i problemi in modo proattivo. Configura gli avvisi per condizioni come latenza elevata delle query, bassa disponibilità di spazio di archiviazione o picchi imprevisti di traffico. Integra questi avvisi con gli strumenti di risposta agli incidenti per un'azione tempestiva. Per saperne di più, consulta Crea avvisi per le metriche Spanner.

Libreria client

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

Casella di controllo Attività
❑  
Configura la libreria client in modo che utilizzi tag di transazione e richiesta di query significativi. Puoi utilizzare i tag di richieste e transazioni per comprendere meglio le query, le letture e le transazioni. Come best practice, utilizza metadati contestuali come componente dell'applicazione, tipo di richiesta o contesto utente nei tag per consentire un debug e un'introspezione avanzati. Assicurati che i tag siano visibili nelle statistiche e nei log delle query per facilitare l'analisi delle prestazioni e la risoluzione dei problemi. Per ulteriori informazioni, vedi Risoluzione dei 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 il numero minimo e massimo di sessioni, in modo che corrispondano alle esigenze del workload riducendo al minimo la latenza. Monitora regolarmente l'utilizzo delle sessioni per perfezionare questi parametri e assicurarti che il pool di sessioni fornisca vantaggi in termini di rendimento coerenti. Per ulteriori informazioni, consulta Sessioni.
❑  
In rari scenari, i parametri predefiniti della libreria client per i tentativi, inclusi i tentativi massimi e gli intervalli di backoff esponenziale, devono essere configurati per bilanciare la resilienza con il rendimento. Testa attentamente queste norme per assicurarti che siano in linea con le esigenze dell'applicazione. Per ulteriori informazioni, consulta Configurare timeout e tentativi personalizzati.

Assistenza

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

Casella di controllo Attività
❑  
Stabilisci un framework chiaro di risposta agli incidenti, definendo ruoli e responsabilità per tutti i membri del team coinvolti nella gestione degli incidenti correlati a Spanner. Assegna ruoli di gestione degli incidenti, ad esempio Incident Commander, responsabile delle comunicazioni ed esperti in materia (SME), per garantire un coordinamento e una comunicazione efficienti durante gli incidenti. Sviluppa e documenta le procedure per identificare, riassegnare, mitigare e risolvere i problemi. Segui le best practice descritte nella guida pratica SRE di Google sulla risposta agli incidenti e nella sezione Gestione degli incidenti. Condurre regolarmente simulazioni e addestramenti per la risposta agli incidenti per garantire la preparazione e migliorare la capacità del team di gestire scenari ad alta pressione in modo efficace.

Gestione dei costi

L'implementazione di strategie di gestione dei costi come lo scalabilità automatica e i backup incrementali garantiscono un utilizzo efficiente delle risorse e un risparmio significativo dei costi. L'allineamento del provisioning delle risorse alle esigenze del carico di lavoro e l'ottimizzazione degli ambienti non di produzione riducono ulteriormente le spese, mantenendo al contempo prestazioni e flessibilità.

Casella di controllo Attività
❑  
Valuta e acquista CUD per Spanner per ridurre i costi sui carichi di lavoro prevedibili. Questi impegni potrebbero consentire risparmi significativi rispetto ai prezzi on demand. Analizza i pattern di utilizzo storici per determinare gli impegni CUD ottimali. Per ulteriori informazioni, consulta le pagine relative agli sconti per impegno di utilizzo e ai prezzi di Spanner.
❑  
Monitora l'utilizzo della capacità di calcolo e regola le risorse di cui è stato eseguito il provisioning per mantenere i livelli di utilizzo della CPU consigliati. Il provisioning eccessivo delle risorse di calcolo potrebbe comportare costi non necessari, mentre il provisioning insufficiente potrebbe influire sulle prestazioni. Segui le linee guida per l'utilizzo massimo della CPU di Spanner consigliate per garantire un allineamento delle risorse conveniente.
❑  
Abilita la scalabilità automatica per regolare dinamicamente la capacità di calcolo in base alle esigenze del carico di lavoro. In questo modo si garantisce un rendimento ottimale durante i picchi di carico riducendo i costi durante i periodi di bassa attività. Configura criteri di scalabilità con limiti superiore e inferiore per controllare i costi ed evitare una scalabilità eccessiva. Per ulteriori informazioni, consulta la 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 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.