Elenco di controllo per il lancio di Spanner

Questo elenco di controllo per il lancio fornisce un elenco di considerazioni che è necessario fare prima di avviare un'applicazione di produzione su Spanner. Non ha lo scopo di essere esaustivo, ma serve a evidenziare le aree che possono avere un grande impatto sul rendimento della produzione.

Scegli una configurazione dell'istanza adatta

Scegli una configurazione dell'istanza (a livello di regione o multiregionale) in base ai tuoi requisiti.

Se scegli tipi di istanze multiregionali, l'applicazione che accede a Spanner deve trovarsi nelle immediate vicinanze della regione leader. Puoi trovare ulteriori dettagli nella pagina Istanze.

Progetta lo schema per le prestazioni su larga scala

Lo schema dei dati relazionali di Spanner è simile ai tradizionali database relazionali, con alcune sfumature che devono essere prese in considerazione:

Comprendere i fattori relativi alle prestazioni

Con lo sharding automatico e successivamente i dati archiviati in suddivisioni, più una query è mirata, maggiori saranno le prestazioni. Se restringi la ricerca a un singolo elemento principale con interfoliazione e a tutti i relativi elementi secondari, le prestazioni saranno migliori rispetto a quelle delle query o delle operazioni che interessano più righe.

Ti consigliamo vivamente di eseguire benchmarking e test su larga scala per assicurarti che i problemi e i colli di bottiglia vengano rilevati prima del lancio. Spanner fornisce piani di esecuzione delle query che possono essere utilizzati con le tabelle durante la progettazione dello schema per comprendere la probabilità di esecuzione delle query.

Altri fattori di rendimento da prendere in considerazione:

  • Quando non scrivi dati, preferisci le transazioni di sola lettura rispetto alle transazioni di lettura/scrittura più costose.
  • Progetta la tua applicazione in modo da ridurre al minimo il numero di partecipanti suddivisi in una transazione. Spanner può eseguire transazioni tra righe su server diversi; Tuttavia, come regola generale, le transazioni che interessano molte righe con collocazione condivisa sono più veloci ed economiche rispetto a quelle che interessano molte righe sparse nel database o in una tabella di grandi dimensioni.
  • Utilizza i parametri di query anziché le stringhe letterali per migliorare le prestazioni delle query e il monitoraggio delle statistiche.

Informazioni su limiti e quote

Per motivi di architettura e per mantenere le sue elevate prestazioni e ridondanza, Spanner ha determinate quote e limiti che devono essere presi in considerazione nella progettazione dell'applicazione. Le quote possono essere aumentate con un tempo di risposta.

Ad esempio, esiste un limite di 80.000 mutazioni per commit e un massimo di 15 join per query.

Questi limiti, insieme alla progettazione dello schema e alla prevenzione degli hotspot, influiscono sul caricamento collettivo, quindi assicurati di seguire le best practice per il caricamento collettivo.

Assicurati che sia in atto il monitoraggio

Configura Cloud Monitoring per ricevere avvisi quando ti avvicini ai limiti.

Aumenta la quantità di capacità di calcolo se raggiungi le metriche sul rendimento per la scalabilità lineare delle istanze Spanner. Ti consigliamo di mantenere l'utilizzo della CPU al di sotto del 65% per le istanze specifiche per regione e al di sotto del 45% per le istanze multiregionali.

Utilizza Modelli di query nella pagina Query di un database per monitorare le statistiche delle query nelle tabelle delle statistiche delle query.

Avere una strategia di migrazione dei dati (se richiesta)

Il caricamento collettivo dei dati in Spanner deve tenere conto dell'architettura distribuita per mantenere le prestazioni:

Questo post del blog è un buon esempio di implementazione di scritture a velocità effettiva elevata.

Assicurati che la configurazione di sicurezza sia in atto

Configura ruoli IAM pertinenti per gestire la sicurezza a livello di database e istanza. La sicurezza a livello di tabella deve essere gestita all'interno dell'applicazione.

Comprendere le opzioni di assistenza

Assicurati di avere adottato una strategia per ricevere assistenza.