Questo elenco di controllo per il lancio fornisce un elenco di considerazioni da fare prima di lanciare un'applicazione di produzione su Spanner. Non è intesa come esaustiva, ma serve a evidenziare le considerazioni principali per minimizzare i rischi, ottimizzare le prestazioni e garantire l'allineamento con gli obiettivi aziendali e operativi, offrendo un approccio sistematico per fornire un deployment di Spanner affidabile e senza interruzioni.
Questo elenco di controllo è suddiviso nelle seguenti sezioni:
- Progettazione, sviluppo, test e ottimizzazione
- Migrazione (facoltativa)
- Deployment
- Ottimizzatore delle query e gestione delle statistiche
- Disaster recovery
- Sicurezza
- Logging e monitoraggio
- Libreria client
- Assistenza
- Gestione dei costi
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 garantiscono che il sistema possa gestire carichi di lavoro reali, carichi di picco e operazioni simultanee, riducendo al minimo i rischi di colli di bottiglia o errori in produzione.
| Casella di controllo | Attività |
|---|---|
❑ |
Progetta lo schema tenendo conto della scalabilità e dell'architettura distribuita di Spanner. Segui le best practice, ad esempio la selezione di chiare primarie e indici appropriati per evitare hotspot, e valuta ottimizzazioni come l'interfoliazione delle tabelle per i dati correlati. Consulta 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 di lettura/scrittura con blocco, di sola lettura con coerenza elevata e partizionate,
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 saperne di più,
consulta 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 di elevata concorrenza che imitano i carichi delle applicazioni reali, tra cui diverse forme di transazioni e pattern di query. Valuta la latenza e la 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
perfezionare l'implementazione.
|
❑ |
Estendi il test di carico a tutti i servizi interagenti, non solo
alle applicazioni isolate. Simula percorsi dell'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 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 saperne di più, consulta Panoramica di Query Optimizer.
|
❑ |
Assicurati che le statistiche di Query Optimizer 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 come modifiche dei dati su larga scala (ad esempio inserimenti, aggiornamenti o eliminazioni collettive), aggiunta di nuovi indici o modifiche dello schema.
Mantenere aggiornate le statistiche dell'ottimizzatore delle query è fondamentale per mantenere prestazioni ottimali delle query.
|
Migrazione (facoltativa)
La migrazione del database è un processo completo che richiede un approfondimento delle specifiche di ogni percorso di migrazione individuale. 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 soggetti interessati 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 la procedura di trasferimento 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 tornare al 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 attiverebbero un fallback e assicurati che il team sia addestrato a eseguire
questo piano in modo rapido ed efficiente.
|
Deployment
Una corretta pianificazione del deployment garantisce che le configurazioni di Spanner soddisfino i requisiti del workload in termini di disponibilità, latenza e scalabilità, tenendo conto al contempo 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 Spanner (a livello di regione, a due regioni o multiregionale) sia in linea con i requisiti di disponibilità e latenza del workload dell'applicazione, tenendo conto anche delle considerazioni geografiche. Calcola la capacità di calcolo target in base alle dimensioni di archiviazione previste, ai pattern di traffico e ai limiti di utilizzo consigliati, assicurandoti una capacità sufficiente per le interruzioni a livello di zona o regione. 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 dell'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 delle operazioni
e apportare modifiche per ottimizzare le prestazioni dell'applicazione. Pianifica gli 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 saperne di più, consulta Modifica la regione leader di un database.
|
❑ |
Configura tag ed etichette in modo appropriato per chiarezza operativa e
monitoraggio delle risorse Google Cloud. Utilizza i tag per raggruppare le istanze in base all'ambiente o al tipo di workload. Utilizza le etichette per i metadati che facilitano l'analisi dei costi e la gestione delle autorizzazioni. Per saperne di più, 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 con carichi iniziali elevati potrebbe rivelare la necessità di un riscaldamento pre-lancio per garantire prestazioni ottimali. Se è necessario il riscaldamento, genera un carico artificiale. Per saperne di più, consulta Riscalda il database prima del lancio dell'applicazione.
|
❑ |
Esamina i limiti e le quote di Spanner prima del deployment.
Se necessario, richiedi aumenti della quota 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 saperne di più, 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, valuta la possibilità di utilizzare strumenti come
Liquibase
per evitare eliminazioni accidentali dello schema durante gli aggiornamenti. Per saperne di più,
consulta Utilizzare Terraform con Spanner.
|
Disaster recovery
Stabilire 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. Testare regolarmente le procedure di ripristino e automatizzare i backup aiuta a garantire l'idoneità 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 la protezione dei dati, gli obiettivi di recupero e gli scenari di errore. Stabilisci obiettivi di tempo di ripristino (RTO) e obiettivi di punto di ripristino (RPO) chiari che siano in linea con i requisiti di continuità operativa. 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 giuste per garantire la conformità con 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 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 saperne di più, 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 base 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ù,
consulta Creare e gestire pianificazioni di backup.
|
❑ |
Allinea le procedure di failover alla topologia di configurazione delle istanze della tua applicazione per ridurre al minimo gli impatti della latenza in caso di interruzione. Testa gli scenari di disaster recovery, 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 la regione leader di un database.
|
Gestione dello strumento di ottimizzazione delle query e delle statistiche
La gestione delle versioni e delle statistiche dell'ottimizzatore 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 dell'ottimizzatore 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 saperne di più, consulta la panoramica di Query Optimizer.
|
❑ |
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 dell'ottimizzatore di 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 sulle prestazioni delle query, è consigliabile bloccare un pacchetto di statistiche specifico. In questo modo si ottengono prestazioni delle query coerenti 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 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 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 salvaguardare gli asset critici da azioni accidentali o dannose.
| Casella di controllo | Attività |
|---|---|
❑ |
Esamina e implementa le norme 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 autorizzazioncontrollo dell'accessol'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 saperne di più, consulta la panoramica di IAM.
|
❑ |
Se l'applicazione richiede l'accesso limitato a righe, colonne o celle specifiche all'interno di una tabella, implementa controllo dell'accesso granulare dell'accesso (FGAC). Progetta e applica criteri di accesso condizionale in base agli attributi utente o ai valori dei dati per applicare regole di accesso granulari. Esamina e aggiorna regolarmente queste norme per allinearle ai requisiti di sicurezza e conformità in evoluzione. Per saperne di più, consulta la panoramica controllo dell'accesso granulare dell'accesso.
|
❑ |
Abilita la protezione da eliminazione del database per evitare eliminazioni accidentali o non autorizzate. Combina questa funzionalità con controlli IAM rigorosi per limitare i privilegi di eliminazione a un insieme ristretto e attendibile di utenti o service account. Inoltre, configura strumenti di automazione dell'infrastruttura come Terraform per includere misure di salvaguardia contro l'eliminazione involontaria dei database. Questo approccio a più livelli riduce al minimo i rischi per gli asset di dati critici. Per saperne di più, consulta Previeni l'eliminazione accidentale del database.
|
Logging e monitoraggio
Il logging e il monitoraggio efficaci sono fondamentali per mantenere la visibilità sulle operazioni del database, rilevare le anomalie e garantire l'integrità del sistema. Utilizzando audit log, 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à |
|---|---|
❑ |
Abilita l'audit logging per acquisire informazioni dettagliate sulle attività del database. Configura i livelli dei log di controllo 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 aumentare di dimensioni, soprattutto per le richieste DATA_READ e DATA_WRITE, poiché tutte le istruzioni SQL e DML vengono registrate per queste rispettive richieste. Per saperne di più, consulta
Logging di controllo di Spanner.
Il routing di questi log a un bucket di log definito dall'utente 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 dei log. |
❑ |
Raccogli le metriche lato client instrumentando la logica dell'applicazione con OpenTelemetry per distribuire il tracciamento e l'osservabilità. Configura la strumentazione OpenTelemetry per acquisire tracce e metriche da Spanner, garantendo la visibilità end-to-end delle prestazioni delle applicazioni e delle interazioni con il database. Per saperne di più, consulta Acquisisci 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 saperne di più, consulta
Monitora 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 delle policy 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 dei workload 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 richiesta di query e transazione significativi. Puoi utilizzare i tag di richieste e transazioni per
comprendere meglio le tue query, letture e transazioni.
Come best practice, utilizza metadati contestuali come componente dell'applicazione, tipo di richiesta o contesto utente nei tag per consentire il debug e l'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 saperne di più, consulta Risolvi i problemi con i tag di richiesta e i tag 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 che corrispondano alle esigenze 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 fornisca vantaggi in termini di prestazioni coerenti. Per saperne di più, consulta Sessioni.
|
❑ |
In rari casi, i parametri predefiniti della libreria client per i nuovi tentativi, inclusi i tentativi massimi e gli intervalli di backoff esponenziale, 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 saperne di più, consulta
Configura 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 saperne di più, consulta Richiedi 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 relativi a Spanner. Assegna ruoli per gli incidenti, come Incident Commander, Communications Lead e Subject Matter Expert (SME), per garantire un coordinamento e una comunicazione efficienti durante gli incidenti. Sviluppa e documenta i processi per identificare, fare l'escalation, 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.
Conduci regolarmente corsi di formazione e simulazioni di risposta agli incidenti per garantire la prontezza e migliorare la capacità del team di gestire efficacemente scenari ad alta pressione.
|
Gestione dei costi
L'implementazione di strategie di gestione dei costi come la scalabilità automatica e i backup incrementali garantisce un utilizzo efficiente delle risorse e un notevole risparmio sui costi. L'allineamento del provisioning delle risorse alle esigenze dei workload 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 sconti per impegno di utilizzo (CUD) per Spanner per ridurre i costi per i workload 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 saperne di più, consulta Sconti per impegno di utilizzo e 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 computing 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 economicamente vantaggioso.
|
❑ |
Abilita la scalabilità automatica per regolare dinamicamente la capacità di calcolo in base alle richieste dei workload. In questo modo si garantiscono prestazioni ottimali durante i picchi di carico
riducendo i costi durante i periodi di bassa attività. Configura le policy di scalabilità con limiti superiori e inferiori per controllare i costi ed evitare lo scale up eccessivo. Per saperne di più, 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 saperne di più, consulta Backup incrementali.
|
❑ |
Ottimizza i costi per gli ambienti non di produzione selezionando la configurazione dell'istanza più ottimale ed 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 lo scaling delle risorse per gli scenari di sviluppo e test. Questo approccio riduce al minimo i costi mantenendo la flessibilità operativa.
|