Questo documento fornisce un'architettura di riferimento per un'applicazione multi-livello in esecuzione su VM di Compute Engine e Spanner in un ambiente una topologia in Google Cloud. Il documento fornisce inoltre indicazioni per aiutarti a creare un'architettura che utilizzi altri servizi di infrastruttura Google Cloud. it descrive i fattori di progettazione da prendere in considerazione quando si crea una per le tue applicazioni cloud. Il pubblico di destinazione di questo documento è costituito da cloud architect.
Questa architettura è in linea con archetipo di deployment globale. Consigliamo questo modello per le applicazioni che servono utenti in tutto il mondo e richiedono elevata disponibilità e robustezza contro le interruzioni in più regioni. Questa architettura supporta la scalabilità elastica a livello di rete, applicazione livelli di database. Ti consente di allineare i costi all'utilizzo senza dover scendere a compromessi su prestazioni, disponibilità o scalabilità.
Architettura
Il seguente diagramma mostra un'architettura per un'applicazione che viene eseguita su un'infrastruttura distribuita a livello globale in più regioni Google Cloud.
In questa architettura, un bilanciatore del carico globale distribuisce le richieste in entrata server web nelle regioni appropriate in base alla loro disponibilità, capacità vicinanza alla sorgente del traffico. Un bilanciamento del carico interno tra regioni gestisce la distribuzione del traffico dai server web all'app a server delle applicazioni in base alla loro disponibilità e capacità. L'applicazione scrivono e leggono i dati in un database replicato in modo sincrono disponibile in tutte le regioni.
L'architettura include le seguenti risorse Google Cloud:
Componente | Finalità |
---|---|
Bilanciatore del carico esterno globale |
Il bilanciatore del carico esterno globale riceve e distribuisce le richieste degli utenti all'applicazione. Il bilanciatore del carico esterno globale annuncia singolo anycast, ma il bilanciatore del carico è implementato come un di proxy Google Front End (GFE). Le richieste del cliente vengono indirizzate al GFE più vicino al cliente. A seconda dei requisiti, puoi utilizzare un bilanciatore del carico delle applicazioni esterno globale o un bilanciatore del carico di rete con proxy esterno globale. Per ulteriori informazioni, consulta Scegliere un bilanciatore del carico. Per proteggere la tua applicazione da minacce come attacchi DDoS (Denial of Service) e cross-site scripting (XSS), è possibile usare Criteri di sicurezza di Google Cloud Armor. |
Gruppi di istanze gestite ( MIG) regionali per il livello web |
Il livello web dell'applicazione viene di cui è stato eseguito il deployment su VM di Compute Engine che fanno parte di MIG regionali. Questi gruppi di istanze gestite sono i backend per con un bilanciatore del carico globale. Ogni gruppo di istanze gestite contiene VM Compute Engine in tre zone diverse. Ognuna di queste VM ospita un'istanza web indipendente livello dell'applicazione. |
Livello di bilanciamento del carico interno tra regioni |
I bilanciatori del carico interni con backend tra regioni gestiscono del traffico dalle VM a livello web in qualsiasi regione a livello di applicazione in tutte le regioni. In base ai tuoi requisiti, puoi utilizzare una un bilanciatore del carico delle applicazioni interno tra regioni o un il bilanciatore del carico di rete proxy interno tra regioni. Per ulteriori informazioni, vedi Scegli un bilanciatore del carico. |
Gruppi di istanze gestite a livello di regione per il livello di applicazione |
Il livello dell'applicazione viene eseguito su VM Compute Engine che fanno parte di MIG regionali. Questi MIG sono i backend per il livello di bilanciamento del carico interno. Ogni gruppo di istanze gestite contiene VM Compute Engine in tre zone diverse. Ogni VM ospita un'istanza indipendente del livello dell'applicazione. |
Istanze Spanner multiregione |
L'applicazione scrive e legge dati da un' istanza Spanner multiregione. La località multiregionale configurazione in questa architettura include di repliche:
|
Rete e sottoreti Virtual Private Cloud (VPC) |
Tutte le risorse dell'architettura utilizzano una singola rete VPC. La rete VPC include le seguenti subnet:
Anziché utilizzare una singola rete VPC, puoi creare una rete VPC distinta in ogni regione e connettere le reti utilizzando Network Connectivity Center. |
Prodotti utilizzati
Questa architettura di riferimento utilizza i seguenti prodotti Google Cloud:
- Compute Engine: un servizio di calcolo sicuro e personalizzabile che ti consente di creare ed eseguire VM sull'infrastruttura di Google.
- Cloud Load Balancing: un portafoglio di soluzioni scalabili, globali e ad alte prestazioni di bilanciatori del carico regionali.
- Spanner: un ambiente relazionale altamente scalabile, coerente a livello globale completamente gestito di Google Cloud.
Note sul layout
Questa sezione fornisce indicazioni per aiutarti a utilizzare questa architettura di riferimento per sviluppare un'architettura che soddisfi i tuoi requisiti specifici per la progettazione del sistema, la sicurezza e la conformità, l'affidabilità, i costi, l'efficienza operativa e le prestazioni.
Progettazione del sistema
Questa sezione fornisce indicazioni per aiutarti a scegliere le regioni Google Cloud per il tuo deployment globale e a selezionare i servizi Google Cloud appropriati.
Selezione delle regioni
Quando scegli le regioni Google Cloud in cui devono essere è necessario considerare i fattori e i requisiti seguenti:
- Disponibilità dei servizi Google Cloud in ogni regione. Per ulteriori informazioni, consulta Prodotti disponibili in base alla località.
- Disponibilità dei tipi di macchine Compute Engine in ogni regione. Per maggiori informazioni, consulta Regioni e zone.
- Utente finale latenza i tuoi requisiti.
- Costo delle risorse Google Cloud.
- Costi per il trasferimento di dati tra regioni.
- Requisiti normativi.
Alcuni di questi fattori e requisiti potrebbero comportare dei compromessi. Per Ad esempio, la regione più conveniente potrebbe non avere il impronta di carbonio.
Servizi di computing
L'architettura di riferimento in questo documento utilizza le VM Compute Engine per i livelli web e di applicazione. In base ai requisiti del tuo puoi scegliere tra altri servizi di computing Google Cloud:
- Puoi eseguire containerizzato di più applicazioni Google Kubernetes Engine (GKE) cluster. GKE è un motore di orchestrazione dei container automatizza il deployment, la scalabilità e la gestione delle applicazioni containerizzate.
- Se preferisci concentrare le risorse IT sui dati e sulle applicazioni anziché sulla configurazione e sul funzionamento delle risorse di infrastruttura, puoi utilizzare servizi serverless come Cloud Run e funzioni Cloud Run.
La decisione di utilizzare VM, container o servizi serverless comporta un compromesso tra flessibilità di configurazione e impegno di gestione. VM i container offrono una maggiore flessibilità di configurazione, ma nella gestione delle risorse. In un'architettura serverless, il deployment dei carichi di lavoro una piattaforma preconfigurata che richiede il minimo sforzo di gestione. Per ulteriori informazioni sulla scelta dei servizi di calcolo appropriati per i tuoi carichi di lavoro in Google Cloud, consulta Hosting di applicazioni su Google Cloud nel framework di architettura di Google Cloud.
Servizi di archiviazione
L'architettura mostrata in questo documento utilizza volumi di dischi permanenti a livello di regione per le VM. I volumi dei dischi permanenti a livello di regione offrono la replica sincrona di dati in due zone all'interno di una regione. I dati nei volumi Persistent Disk non vengono replicati tra le regioni.
Altre opzioni di archiviazione per i deployment multiregionali includono Cloud Storage di bucket a due o più regioni. Oggetti archiviati in una doppia regione sono archiviati in modo ridondante in almeno due bucket luoghi. I metadati sono scritti in modo sincrono tra le regioni e i dati replicati in modo asincrono. Per i bucket a due regioni, puoi utilizzare replica turbo, assicurando una replica più rapida tra le regioni. Per ulteriori informazioni, consulta la sezione Disponibilità e durabilità dei dati.
Per archiviare i file condivisi su più VM in una regione, ad esempio su tutte le VM del livello web o del livello dell'applicazione, puoi utilizzare un'istanza Filestore Enterprise. I file archiviati in un'istanza Filestore Enterprise vengono replicati in modo sincrono in tre zone all'interno della regione. Questa replica garantisce alta disponibilità e robustezza contro le interruzioni di zona. Puoi archiviare file di configurazione condivisi, gli strumenti e le utilità comuni e i log centralizzati e montare l'istanza su più VM.
Quando progetti l'archiviazione per carichi di lavoro multiregionali, considera caratteristiche funzionali dei carichi di lavoro, requisiti di resilienza, previsioni di rendimento e obiettivi di costo. Per ulteriori informazioni, vedi Progetta una strategia di archiviazione ottimale per il tuo carico di lavoro cloud.
Servizi di database
L'architettura di riferimento in questo documento utilizza Spanner, un database completamente gestito, scalabile orizzontalmente, distribuito a livello globale e replicato in modo sincrono. Consigliamo una configurazione Spanner per più regioni per le implementazioni mission-critical che richiedono una coerenza elevata tra regioni. Spanner supporta la replica tra regioni sincrona senza tempi di inattività per il failover, la manutenzione o il ridimensionamento.
Per informazioni su altri servizi di database gestiti tra cui puoi scegliere in base ai tuoi requisiti, consulta Database Google Cloud. Quando scegli e configuri il database per un deployment multiregionale, tieni conto dei requisiti dell'applicazione per la coerenza dei dati tra regioni e tieni presente i compromessi in termini di prestazioni e costi.
Opzioni di bilanciamento del carico esterno
Un'architettura che utilizza un bilanciatore del carico esterno globale, come di questo documento, supporta alcune funzioni che consentono di per migliorare l'affidabilità dei deployment. Ad esempio, se utilizzi il bilanciatore del carico delle applicazioni esterno globale, puoi implementare la memorizzazione nella cache a livello di EDGE utilizzando Cloud CDN.
Se la tua applicazione richiede che Transport Layer Security (TLS) venga terminato in una regione specifica o se hai bisogno di poter pubblicare contenuti da regioni specifiche, puoi utilizzare i bilanciatori del carico a livello di regione con Cloud DNS per instradare il traffico in regioni diverse. Per informazioni sulle differenze tra i bilanciatori del carico regionali e quelli globali, consulta la seguente documentazione:
- Bilanciamento del carico globale e a livello di regione in "Scegliere un bilanciatore del carico"
- Modalità di funzionamento in "Panoramica del bilanciatore del carico delle applicazioni esterno"
Sicurezza e conformità
Questa sezione descrive i fattori da prendere in considerazione quando utilizzi questo di riferimento per progettare e creare una topologia globale Google Cloud che soddisfa i requisiti di sicurezza e conformità del tuo carichi di lavoro con scale out impegnativi.
Protezione dalle minacce
Per proteggere la tua applicazione da minacce come attacchi DDoS e XSS, puoi utilizzare i criteri di sicurezza di Google Cloud Armor. Ogni criterio è un insieme di regole specifica determinate condizioni che devono essere valutate e le azioni da intraprendere quando che le condizioni siano soddisfatte. Ad esempio, una regola potrebbe specificare che, se l'oggetto l'indirizzo IP di origine del traffico corrisponde a un indirizzo IP o a un intervallo CIDR specifico, è necessario negare il traffico. Puoi anche applicare applicazioni web preconfigurate delle regole firewall (WAF). Per ulteriori informazioni, vedi Panoramica dei criteri di sicurezza.
Accesso esterno per le VM
Nell'architettura di riferimento descritta in questo documento, le VM che ospitano il livello di applicazione e quello web non necessitano dell'accesso in entrata internet. Non assegnare indirizzi IP esterni a queste VM. Risorse Google Cloud che hanno solo un IP interno privato può comunque accedere a determinati servizi e API di Google utilizzando Private Service Connect o accesso privato Google. Per ulteriori informazioni, consulta Opzioni di accesso privato per i servizi.
Per abilitare connessioni in uscita sicure dalle risorse Google Cloud che hanno solo indirizzi IP privati, come le VM di Compute Engine di riferimento, puoi utilizzare Proxy web sicuro o Cloud NAT
Sicurezza delle immagini VM
Per assicurarti che le VM utilizzino solo immagini approvate (ovvero immagini con software che soddisfano i tuoi criteri o requisiti di sicurezza), puoi definire un criterio dell'organizzazione che limiti l'utilizzo delle immagini in progetti di immagini pubbliche specifici. Per maggiori informazioni, consulta Configurare i criteri per l'utilizzo di immagini attendibili.
Privilegi dell'account di servizio
Nei progetti Google Cloud in cui è abilitata l'API Compute Engine, viene creato automaticamente un
account di servizio predefinito. Per le organizzazioni Google Cloud create
prima del 3 maggio 2024, a questo account di servizio predefinito viene concesso il ruolo IAM Editor
(roles/editor
) a meno che non sia indicato
il comportamento è disattivato.
Per impostazione predefinita, l'account di servizio predefinito è collegato a tutte le VM che crei utilizzando Google Cloud CLI o la console Google Cloud. Il ruolo Editor include una vasta gamma di autorizzazioni, pertanto l'associazione dell'account di servizio predefinito alle VM rappresenta un rischio per la sicurezza. Per evitare questo rischio, puoi creare e utilizzare account di servizio dedicati per ogni applicazione. Per specificare le risorse a cui può accedere l'account di servizio, usare criteri granulari. Per ulteriori informazioni, vedi Limitare i privilegi degli account di servizio in "Best practice per l'utilizzo di account di servizio".
Ulteriori considerazioni sulla sicurezza
Quando crei l'architettura per il tuo carico di lavoro, considera il livello di piattaforma best practice e consigli in materia di sicurezza forniti Progetto di base aziendale.
Affidabilità
Questa sezione descrive i fattori di progettazione da prendere in considerazione quando utilizzi a questa architettura di riferimento per creare e gestire un'infrastruttura affidabile nel deployment globale in Google Cloud.
Scalabilità automatica MIG
Quando esegui l'applicazione su più gruppi di istanze gestite a livello di regione, l'applicazione rimane disponibili durante le interruzioni di una zona o di una regione isolate. La funzionalità di scalabilità automatica dei gruppi di istanze gestite stateless ti consente di mantenere la disponibilità e le prestazioni delle applicazioni a livelli prevedibili. Per controllare il comportamento della scalabilità automatica MIG stateless, puoi specificare metriche di utilizzo target, come all'utilizzo delle risorse. Puoi anche configurare la scalabilità automatica in base alla pianificazione per i gruppi di istanze gestite stateless. MIG stateful non possono essere scalati automaticamente. Per ulteriori informazioni, vedi Gruppi di istanze con scalabilità automatica.
Riparazione automatica delle VM
A volte le VM che ospitano la tua applicazione potrebbero essere in esecuzione e disponibili, ma potrebbero esserci problemi con l'applicazione stessa. Potrebbe bloccarsi, arrestarsi in modo anomalo o non hanno memoria sufficiente. Per verificare se un'applicazione risponde come previsto, puoi configurare i controlli di integrità basati su applicazioni all'interno del criterio di riparazione automatica dei tuoi gruppi di istanze gestite. Se l'applicazione su una determinata VM non è risponde, il gruppo di istanze gestite corregge automaticamente la VM. Per ulteriori informazioni configurare la riparazione automatica, consulta Configura un controllo di integrità delle applicazioni e una riparazione automatica.
Posizionamento VM
Nell'architettura descritta in questo documento, il livello di applicazione e di livello base, vengono eseguite su VM di Compute Engine distribuite su più zone. Questa distribuzione garantisce la robustezza dell'applicazione in caso di interruzioni della zona. Per migliorare ulteriormente questa robustezza, puoi creare un criterio di posizionamento distribuito e applicarlo al modello MIG. Quando il gruppo di istanze gestite crea le VM, posiziona le VM all'interno di ciascuna zona su diversi server fisici (chiamati host), in modo che le tue VM affidabile contro gli errori dei singoli host. Per ulteriori informazioni, consulta Applicare i criteri di posizionamento della diffusione alle VM.
Pianificazione della capacità delle VM
Per assicurarti che la capacità per le VM Compute Engine sia disponibile quando necessaria per la scalabilità automatica del gruppo di istanze gestite, puoi creare prenotazioni. Una prenotazione fornisce una capacità garantita in una zona specifica per un numero specificato di VM di un tipo di macchina scelto. Una prenotazione può essere specifica per un progetto o condivisa tra più progetti. Per ulteriori informazioni sulle prenotazioni, incluse considerazioni sulla fatturazione, consulta Prenotazioni di risorse a livello di zona di Compute Engine.
Stato Persistent Disk
Una best practice nella progettazione di applicazioni è evitare la necessità di dischi locali stateful. Tuttavia, se il requisito esiste, puoi configurare i dischi permanenti in modo che siano stateful per assicurarti che i dati vengano conservati quando le VM vengono riparate o ricreate. Tuttavia, ti consigliamo di mantenere i dischi di avvio stateless, in modo da poterli aggiornare facilmente alle immagini più recenti con nuove versioni e patch di sicurezza. Per ulteriori informazioni, consulta la pagina Configurazione dei dischi permanenti stateful nei gruppi di istanze gestite.
Durabilità dei dati
Puoi utilizzare la modalità Servizio di Backup & DR per creare, archiviare e gestire i backup delle VM di Compute Engine. Backup & RE archivia i dati di backup nel file originale leggibile dall'applicazione formato. Se necessario, puoi ripristinare i carichi di lavoro in produzione utilizzando direttamente i dati dello spazio di archiviazione di backup a lungo termine senza attività di preparazione o spostamento dei dati che richiedono molto tempo.
Compute Engine offre le seguenti opzioni per aiutarti a garantire che la durabilità dei dati archiviati in volumi di Persistent Disk:
- Gli snapshot standard ti consentono di acquisire lo stato point-in-time dei volumi dei dischi permanenti. Gli snapshot vengono archiviati in modo ridondante in più regioni, con checksum automatici per garantire l'integrità dei dati. Gli snapshot sono incrementali per impostazione predefinita, quindi occupano meno spazio di archiviazione e puoi risparmiare. Snapshot sono archiviati in un Località di Cloud Storage che puoi configurare. Per altri consigli sull'utilizzo e sulla gestione degli snapshot, consulta le best practice per gli snapshot dei dischi di Compute Engine.
- I volumi dei dischi permanenti a livello di regione ti consentono di eseguire applicazioni ad alta disponibilità che non sono interessate da errori nei dischi permanenti. Quando crei un volume del disco permanente a livello di regione, Compute Engine gestisce una replica del disco in una zona diversa nella stessa regione. I dati vengono replicati in modo sincrono nei dischi zone. Se si verifica un'interruzione in una delle due zone, i dati rimangono disponibili.
Puoi utilizzare la funzionalità di backup e ripristino in Spanner per contribuire a difenderti dalla corruzione dei dati causata da errori dell'operatore e problemi dell'applicazione. Per ulteriori informazioni, consulta la panoramica del backup e del ripristino di Spanner.
Affidabilità del database
I dati archiviati in un'istanza Spanner multiregionale sono replicati in modo sincrono in più regioni. La configurazione di Spanner mostrata nel diagramma dell'architettura precedente include le seguenti repliche:
- Quattro repliche di lettura e scrittura in zone separate in due regioni.
- Una replica di sola lettura in una terza regione.
Un'operazione di scrittura su un'istanza Spanner multiregionale confermati dopo almeno tre repliche, in zone separate tra due regioni hanno eseguito il commit dell'operazione. Se si verifica un errore in una zona o una regione, Spanner ha accesso a tutti i dati, inclusi quelli delle operazioni di scrittura più recenti, e continua a soddisfare le richieste di lettura e scrittura.
Spanner utilizza l'archiviazione disaggregata in cui le risorse di calcolo e di archiviazione sono disaccoppiate. Non è necessario Spostare i dati quando aggiungi capacità di calcolo per l'alta disponibilità o la scalabilità. Le nuove risorse di calcolo ricevono i dati quando ne hanno bisogno dal node Colossus più vicino. In questo modo, il failover e il ridimensionamento sono più rapidi e meno rischiosi.
Spanner fornisce coerenza esterna, una proprietà più rigorosa della serializzabilità per i sistemi di elaborazione delle transazioni. Per maggiori informazioni informazioni, consulta le seguenti risorse:
- Spanner: TrueTime e coerenza esterna
- Demistificazione delle configurazioni multiregionali di Spanner
- Informazioni su Spanner e sul teorema CAP
Ulteriori considerazioni sull'affidabilità
Quando crei l'architettura cloud per il tuo carico di lavoro, consulta le best practice e i consigli relativi all'affidabilità forniti nella seguente documentazione:
- Guida all'affidabilità dell'infrastruttura Google Cloud
- Pattern per app scalabili e resilienti
- Progettazione di sistemi resilienti
Ottimizzazione dei costi
Questa sezione fornisce indicazioni per ottimizzare il costo della configurazione e del funzionamento di una topologia Google Cloud globale creata utilizzando questa architettura di riferimento.
Tipi di macchine VM
Per aiutarti a ottimizzare l'utilizzo delle risorse delle VM, Compute Engine fornisce suggerimenti sul tipo di macchina. Utilizza i consigli per scegliere i tipi di macchine adatti ai requisiti di calcolo del tuo carico di lavoro. Per i carichi di lavoro con requisiti di risorse prevedibili, puoi personalizzare il tipo di macchina in base alle tue esigenze e risparmiare denaro utilizzando tipi di macchine personalizzate.
Modello di provisioning delle VM
Se la tua applicazione è a tolleranza di errore, VM spot può aiutarti a ridurre i costi di Compute Engine per le VM per applicazioni e web. Il costo delle VM spot è significativamente rispetto alle VM normali. Tuttavia, Compute Engine potrebbe arrestare o eliminare in modo preventivo le VM spot per recuperare la capacità. Spot VM sono adatti per job batch che possono tollerare il prerilascio e non hanno requisiti di disponibilità. Le VM spot offrono gli stessi tipi di macchina, le opzioni di archiviazione e le prestazioni delle normali VM. Tuttavia, quando la capacità delle risorse una zona è limitata, i gruppi di istanze gestite potrebbero non essere in grado di fare lo scale out (ovvero creare VM) automaticamente alla dimensione target specificata finché la capacità richiesta diventa disponibile di nuovo.
Utilizzo delle risorse VM
La funzionalità di scalabilità automatica dei gruppi di istanze gestite stateless consente alla tua applicazione di gestire agevolmente l'aumento del traffico e ti aiuta a ridurre i costi quando il fabbisogno di risorse è ridotto. MIG stateful non possono essere scalati automaticamente.
Costo del database
Spanner ti aiuta ad assicurarti che i costi del database siano prevedibili. La capacità di calcolo specificata (numero di nodi o unità di elaborazione) determina la capacità di archiviazione. Le velocità effettiva di lettura e scrittura scalano in modo lineare con capacità di calcolo. Paghi solo per quello che utilizzi. Quando è necessario allineare in base alle esigenze del tuo carico di lavoro, puoi regolare le dimensioni Spanner.
Licenze di terze parti
Quando esegui la migrazione dei carichi di lavoro di terze parti a Google Cloud, potresti essere in grado di ridurre i costi utilizzando le tue licenze (BYOL). Ad esempio, per eseguire il deployment delle VM Microsoft Windows Server, anziché utilizzare un'immagine premium che comporta un costo aggiuntivo per la licenza di terze parti, puoi creare e utilizzare un'immagine BYOL Windows personalizzata. Quindi paghi solo per l'infrastruttura delle VM che utilizzi su Google Cloud. Questa strategia ti consente di continuare a trarre valore dai tuoi investimenti esistenti in licenze di terze parti. Se decidi di utilizzare l'approccio BYOL, ti consigliamo di eseguire le seguenti operazioni:
- Esegui il provisioning del numero richiesto di core della CPU di calcolo indipendentemente dalla memoria utilizzando i tipi di macchine personalizzate. In questo modo, limiti il costo delle licenze di terze parti al numero di core della CPU di cui hai bisogno.
- Riduci il numero di vCPU per core da 2 a 1 disabilitando multi-threading simultaneo (SMT), e ridurre i costi delle licenze del 50%.
Ulteriori considerazioni sui costi
Quando crei l'architettura per il carico di lavoro, considera anche le regole generali best practice e consigli forniti in Framework dell'architettura Google Cloud: ottimizzazione dei costi.
Efficienza operativa
Questa sezione descrive i fattori da considerare quando utilizzi questa architettura di riferimento per progettare e creare una topologia Google Cloud globale che puoi gestire in modo efficiente.
Aggiornamenti della configurazione delle VM
Per aggiornare la configurazione delle VM in un gruppo di istanze gestite (ad esempio il tipo di macchina o l'immagine del disco di avvio), crea un nuovo modello di istanza con la configurazione richiesta e poi applica il nuovo modello al gruppo di istanze gestite. Il gruppo di istanze gestite aggiorna VM utilizzando il metodo di aggiornamento scelto: automatico o selettivo. Scegli un metodo appropriato in base ai requisiti di disponibilità e dell'efficienza operativa. Per ulteriori informazioni su questi metodi di aggiornamento del gruppo di istanze gestite, consulta Applica nuove configurazioni di VM in un gruppo di istanze gestite.
Immagini VM
Per i modelli di istanza MIG, invece di utilizzare immagini pubbliche fornite da Google, ti consigliamo di creare e utilizzare immagini personalizzate che contengono configurazioni e il software richiesti dalle tue applicazioni. Puoi raggruppare le tue immagini personalizzate in una famiglia di immagini personalizzate. Una famiglia di immagini fa sempre riferimento all'immagine più recente della famiglia, quindi i modelli di istanze e gli script possono utilizzare quell'immagine senza che tu debba aggiornare i riferimenti a una versione dell'immagine specifica.
Modelli di istanza deterministici
Se i modelli di istanze che utilizzi per i tuoi MIG includono script di avvio per installare software di terze parti, assicurati che gli script specifichino esplicitamente i parametri di installazione del software, come la versione del software. In caso contrario, quando il MIG crea le VM, il software installato sulle VM potrebbe non essere coerente. Ad esempio, se il modello di istanza include uno script di avvio per installare Apache HTTP Server 2.0 (il pacchetto apache2
), assicurati che lo script specifichi la versione esatta di apache2
da installare, ad esempio la versione 2.4.53
. Per ulteriori informazioni, vedi
Modelli di istanza deterministici.
Migrazione a Spanner
Puoi eseguire la migrazione dei dati in Spanner da altri database come MySQL, SQL Server e Oracle Database. La procedura di migrazione dipende da fattori come il database di origine, le dimensioni dei dati, i vincoli di tempo di inattività e la complessità del codice dell'applicazione. Per aiutarti a pianificare e implementare la migrazione a Spanner in modo efficiente, offriamo una gamma di strumenti di Google Cloud e di terze parti. Per ulteriori informazioni, vedi Panoramica della migrazione.
Amministrazione di database
Con Spanner non è necessario configurare o monitorare la replica o il failover. La replica sincrona e il failover automatico sono integrati. La tua applicazione non presenta tempi di inattività per la manutenzione e il failover del database. Per ridurre ulteriormente la complessità operativa, puoi configurare la scalabilità automatica. Se la scalabilità automatica è abilitata, non è necessario monitorare e scalare la dimensione dell'istanza manualmente.
Ulteriori considerazioni operative
Quando crei l'architettura per il tuo carico di lavoro, tieni conto delle best practice e dei consigli generali per l'efficienza operativa descritti nel framework dell'architettura di Google Cloud: eccellenza operativa.
Ottimizzazione delle prestazioni
Questa sezione descrive i fattori da considerare quando utilizzi questa architettura di riferimento per progettare e creare una topologia globale in Google Cloud che soddisfi i requisiti di prestazioni dei tuoi carichi di lavoro.
Posizionamento VM
Per i carichi di lavoro che richiedono una bassa latenza di rete inter-VM, puoi creare un criterio di posizionamento compatto e applicarlo al modello del gruppo di istanze gestite. Quando il gruppo di istanze gestite crea le VM, le posiziona su server fisici vicini tra loro. Per ulteriori informazioni, vedi Riduci la latenza utilizzando criteri di posizionamento compatto.
Tipi di macchine VM
Compute Engine offre un'ampia gamma di tipi di macchina tra cui puoi scegliere in base ai tuoi costi e prestazioni i tuoi requisiti. I tipi di macchina sono raggruppati in serie e famiglie di macchine. La tabella seguente fornisce un riepilogo delle famiglie di macchine consigliate per diversi tipi di carichi di lavoro:
Requisito | Famiglia di macchine consigliata |
---|---|
Miglior rapporto prezzo/prestazioni per diversi carichi di lavoro | Famiglia di macchine per uso generico |
Massime prestazioni per core e ottimizzate per carichi di lavoro ad alta intensità di calcolo | Famiglia di macchine ottimizzate per il calcolo |
Rapporto memoria/vCPU elevato per carichi di lavoro che richiedono molta memoria | Famiglia di macchine ottimizzate per la memoria |
GPU per carichi di lavoro a elevata parallelizzazione | Famiglia di macchine ottimizzate per l'acceleratore |
Utilizzo ridotto dei core e elevata densità di archiviazione | Famiglia di macchine ottimizzate per lo spazio di archiviazione |
Per ulteriori informazioni, consulta la guida alle risorse e al confronto per le famiglie di macchine.
Multi-threading delle VM
Ogni CPU virtuale (vCPU) allocata a una VM di Compute Engine implementato come un singolo multithread hardware. Per impostazione predefinita, due vCPU condividono un core CPU fisico. Per carichi di lavoro altamente paralleli o che eseguono di calcoli in virgola mobile (come l'analisi della sequenza genetica e i il modello di rischio), puoi migliorare le prestazioni riducendo il numero di thread in esecuzione su ciascun core della CPU fisico. Per ulteriori informazioni, consulta Impostare il numero di thread per core.
Network Service Tiers
Network Service Tiers ti consente di ottimizzare i costi e le prestazioni della rete dei tuoi carichi di lavoro. A seconda dei tuoi requisiti, puoi scegliere il livello Premium o Standard.
L'architettura in questo documento utilizza un bilanciatore del carico esterno globale con un indirizzo IP esterno e backend in più regioni. Questa architettura richiede a utilizzare il livello Premium, che usa la rete backbone globale altamente affidabile di Google per ridurre al minimo la perdita di pacchetti e la latenza.
Se utilizzi bilanciatori del carico esterni regionali e indirizzi il traffico alle regioni tramite Cloud DNS, puoi scegliere il livello Premium o Standard a seconda dei tuoi requisiti. I prezzi del livello Standard sono inferiori a quelli del livello Premium. Il livello Standard è adatto al traffico non sensibile alla perdita di pacchetti e che non ha requisiti di bassa latenza.
Prestazioni Spanner
Quando esegui il provisioning di un'istanza Spanner, specifichi i criteri di computing dell'istanza in termini di numero di nodi o unità di elaborazione. Monitora l'utilizzo delle risorse dell'istanza Spanner e Scalare la capacità in base al carico previsto e alle prestazioni dell'applicazione i tuoi requisiti. Puoi scalare la capacità di un'istanza Spanner manualmente o automaticamente. Per ulteriori informazioni, vedi Panoramica della scalabilità automatica.
Con una configurazione multiregionale, Spanner replica i dati in modo sincrono tra più regioni. Questa replica consente una bassa latenza operazioni di lettura da più posizioni. Il compromesso è una latenza più elevata per le operazioni di scrittura, perché le repliche del quorum sono distribuite su più regioni. Per ridurre al minimo la latenza per le transazioni di lettura/scrittura in una configurazione con più regioni, Spanner utilizza il routing consapevole del leader (abilitato per impostazione predefinita).
Per suggerimenti su come ottimizzare le prestazioni di Spanner di Compute Engine, consulta la documentazione seguente:
- Best practice per il rendimento per le configurazioni multiregione
- Best practice per la progettazione dello schema
- Best practice per il caricamento collettivo
- Best practice per Data Manipulation Language
- Best practice per SQL
Memorizzazione nella cache
Se la tua applicazione pubblica asset di siti web statici e se la tua architettura include un bilanciatore del carico delle applicazioni esterno globale, puoi utilizzare Cloud CDN per memorizzare nella cache i contenuti statici a cui viene eseguito spesso l'accesso più vicino agli utenti. Cloud CDN può migliorare le prestazioni per gli utenti, ridurre le risorse dell'infrastruttura l'utilizzo nel backend e ridurre i costi di distribuzione della rete. Per ulteriori informazioni, consulta Prestazioni web più veloci e protezione web migliorata per il bilanciamento del carico.
Altre considerazioni sul rendimento
Quando crei l'architettura per il carico di lavoro, considera la soluzione migliore in generale pratiche e consigli forniti in Framework dell'architettura Google Cloud: ottimizzazione delle prestazioni.
Passaggi successivi
- Scopri di più sui prodotti Google Cloud utilizzati in questa architettura di riferimento:
- Scopri di più sulla replica e sulla coerenza in Spanner:
- Inizia la migrazione dei carichi di lavoro a Google Cloud.
- Esplora e valuta archetipi di deployment che puoi scegliere per creare architetture per i tuoi carichi di lavoro cloud.
- Esamina le opzioni di architettura per progettare un'infrastruttura affidabile per i tuoi carichi di lavoro in Google Cloud.
- Deployment di GFE programmabili utilizzando Google Cloud Armor, il bilanciamento del carico e Cloud CDN.
- Per altre architetture di riferimento, diagrammi e best practice, visita il Centro architetture di Google Cloud.
Collaboratori
Autore: Kumar Dhanagopal | Sviluppatore di soluzioni cross-product
Altri collaboratori:
- Ben Good | Solution Architect
- Daniel Lees | Cloud Security Architect
- Gleb Otochkin | Cloud Advocate, database
- Justin Makeig | Product Manager
- Mark Schlagenhauf | Technical Writer, Networking
- Pagina Sekou | Product manager di outbound
- Steve McGhee | Consulente dell'affidabilità
- Victor Moreno | Product Manager, Cloud Networking