Hosting di siti web

Last reviewed 2024-06-11 UTC

Questo articolo illustra come ospitare un sito web su Google Cloud. Google Cloud offre una piattaforma solida, flessibile, affidabile e scalabile per la gestione di siti web. Google ha creato Google Cloud utilizzando la stessa infrastruttura che Google utilizza per pubblicare contenuti da siti come Google.com, YouTube e Gmail. Puoi ospitare i contenuti del tuo sito web utilizzando il tipo e il design dell'infrastruttura più adatti alle tue esigenze.

Questo articolo potrebbe esserti utile se:

  • Conosce come creare un sito web e ha già eseguito il deployment e la gestione di un'infrastruttura di web hosting.
  • Valutare se e come eseguire la migrazione del sito a Google Cloud.

Se vuoi creare un sito web semplice, valuta la possibilità di utilizzare Google Sites, uno strumento strutturato di creazione di wiki e pagine web. Per saperne di più, consulta la guida di Sites.

Scelta di un'opzione

Se non hai mai utilizzato Google Cloud, è un approccio ragionevole iniziare utilizzando il tipo di tecnologia con cui hai già familiarità. Ad esempio, se attualmente utilizzi server hardware o macchine virtuali (VM) per ospitare il tuo sito, magari con un altro cloud provider o sul tuo hardware, Compute Engine ti offre un paradigma familiare. Se utilizzi già un'offerta Platform as a Service (PaaS), come Heroku o Engine Yard, App Engine potrebbe essere il punto di partenza migliore. Se preferisci il serverless computing, Cloud Run probabilmente è una buona opzione.

Dopo aver acquisito familiarità con Google Cloud, potrai scoprire la ricchezza dei prodotti e dei servizi offerti da Google Cloud. Ad esempio, se hai iniziato a utilizzare Compute Engine, potresti aumentare le capacità del tuo sito utilizzando Google Kubernetes Engine (GKE) o eseguire la migrazione di alcune o tutte le funzionalità in App Engine e Cloud Run.

La tabella seguente riassume le opzioni di hosting su Google Cloud:

Opzione Prodotto Archiviazione dei dati Bilanciamento del carico Scalabilità Logging e monitoraggio
Sito web statico

Cloud Storage

Firebase Hosting

Bucket Cloud Storage

HTTP(S) facoltativo

Automaticamente

Cloud Logging

Cloud Monitoring

Macchine virtuali Compute Engine

Cloud SQL, Cloud Storage, Firestore e Bigtable, oppure puoi utilizzare un altro provider di archiviazione esterno.

Dischi permanenti basati su disco rigido, denominati dischi permanenti standard e dischi permanenti a stato solido (SSD).

HTTP(S)

Proxy TCP

Proxy SSL

Terminazione IPv6

Rete

Tra regioni

Interna

Automaticamente con i gruppi di istanze gestite

Cloud Logging

Cloud Monitoring

Console di Monitoring

Container GKE Simile a Compute Engine, ma interagisce con i dischi permanenti

Rete

HTTP(S)

Gestore della scalabilità automatica dei cluster

Cloud Logging

Cloud Monitoring

Console di Monitoring

Piattaforma gestita

App Engine

Servizi Google Cloud come Cloud SQL, Firestore, Cloud Storage e database di terze parti accessibili

HTTP(S)

Gestito da Google

Gestito da Google

Cloud Logging

Cloud Monitoring

Console di Monitoring

Serverless

Cloud Run

Servizi Google Cloud come Cloud SQL, Firestore, Cloud Storage e database di terze parti accessibili

HTTP(S)

Gestito da Google

Gestito da Google

Cloud Logging

Cloud Monitoring

Console di Monitoring

Questo articolo può aiutarti a comprendere le principali tecnologie che puoi utilizzare per l'hosting web su Google Cloud e darti un'idea di come funzionano. L'articolo fornisce i link alla documentazione completa, ai tutorial e agli articoli sulle soluzioni che possono aiutarti a capire quando è tutto pronto.

Informazioni sui costi

Poiché il numero di variabili è elevato e ogni implementazione è diversa, non si tratta di un argomento di cui questo articolo può fornire consigli specifici sui costi. Per comprendere i principi di Google su come funzionano i prezzi su Google Cloud, consulta la pagina dei prezzi. Per comprendere i prezzi dei singoli servizi, consulta la sezione dei prezzi dei prodotti. Puoi anche utilizzare il Calcolatore prezzi per stimare come potrebbe essere il tuo utilizzo di Google Cloud. Puoi fornire i dettagli dei servizi che vuoi utilizzare e visualizzare una stima dei prezzi.

Configurazione dei servizi dei nomi di dominio

In genere, è consigliabile registrare un nome di dominio per il sito. Puoi utilizzare un registrar di nomi di dominio pubblico per registrare un nome univoco per il tuo sito. Se vuoi il controllo completo del tuo DNS (Domain Name System), puoi utilizzare Cloud DNS come provider DNS. La documentazione di Cloud DNS include una guida rapida per iniziare.

Se vuoi utilizzare un provider DNS esistente, di solito devi creare un paio di record con quel provider. Per un nome di dominio come example.com, devi creare un record A con il tuo provider DNS. Per il sottodominio www.example.com, puoi creare un record CNAME per www in modo che punti al dominio example.com. Il record A mappa un nome host a un indirizzo IP. Il record CNAME crea un alias per il record A.

Se il tuo registrar dei nomi di dominio è anche il tuo provider DNS, probabilmente è tutto ciò che devi fare. Se utilizzi provider separati per la registrazione e il DNS, assicurati che il tuo registrar dei nomi di dominio abbia i server dei nomi corretti associati al tuo dominio.

Dopo aver apportato le modifiche al DNS, la propagazione degli aggiornamenti dei record può richiedere del tempo a seconda dei valori di durata (TTL) nella tua zona. Se si tratta di un nuovo nome host, le modifiche vengono applicate rapidamente perché i risolutori DNS non dispongono di valori precedenti memorizzati nella cache e possono contattare il provider DNS per ottenere le informazioni necessarie per instradare le richieste.

Hosting di un sito web statico

Il modo più semplice per pubblicare contenuti di siti web tramite HTTP(S) è ospitare pagine web statiche. Le pagine web statiche vengono pubblicate invece come sono state scritte, solitamente tramite HTML. Utilizzare un sito web statico è una buona soluzione se le pagine del tuo sito raramente cambiano dopo la pubblicazione, ad esempio post di blog o pagine che fanno parte di un sito web di piccole imprese. Puoi fare molte cose con le pagine web statiche, ma se hai bisogno che il tuo sito abbia interazioni solide con gli utenti tramite codice lato server, dovresti prendere in considerazione le altre opzioni descritte in questo articolo.

Hosting di un sito web statico con Cloud Storage

Per ospitare un sito statico in Cloud Storage, devi creare un bucket Cloud Storage, caricare i contenuti e testare il nuovo sito. Puoi pubblicare i dati direttamente da storage.googleapis.com oppure verificare di essere il proprietario del dominio e utilizzare il nome di dominio.

Puoi creare le pagine web statiche come preferisci. Ad esempio, puoi creare manualmente le pagine utilizzando HTML e CSS. Per creare i contenuti, puoi utilizzare un generatore statico di siti, ad esempio Jekyll, Ghost o Hugo. I generatori di siti statici consentono di creare un sito web statico tramite la creazione con markdown e la fornitura di modelli e strumenti. I generatori di siti in genere forniscono un server web locale che puoi utilizzare per visualizzare l'anteprima dei tuoi contenuti.

Quando il sito statico funziona, puoi aggiornare le pagine statiche utilizzando la procedura che preferisci. Questo processo può essere semplice come copiare manualmente una pagina aggiornata nel bucket. Potresti scegliere di utilizzare un approccio più automatizzato, ad esempio archiviare i contenuti su GitHub e quindi utilizzare un webhook per eseguire uno script che aggiorna il bucket. Un sistema ancora più avanzato potrebbe utilizzare uno strumento di integrazione continua/pubblicazione continua (CI/CD), come Jenkins, per aggiornare i contenuti nel bucket. Jenkins dispone di un plug-in Cloud Storage che fornisce un passaggio post-generazione Google Cloud Storage Uploader per pubblicare gli artefatti della build su Cloud Storage.

Se hai un'app web che deve pubblicare contenuti statici o contenuti statici caricati dagli utenti, l'utilizzo di Cloud Storage può essere un modo conveniente ed efficiente per ospitare e pubblicare questi contenuti, riducendo al contempo la quantità di richieste dinamiche alla tua app web.

Inoltre, Cloud Storage può accettare direttamente i contenuti inviati dagli utenti. Questa funzionalità consente agli utenti di caricare file multimediali di grandi dimensioni direttamente e in modo sicuro senza eseguire il proxy attraverso i server.

Per ottenere le migliori prestazioni dal tuo sito web statico, consulta le best practice per Cloud Storage.

Per ulteriori informazioni, consulta le seguenti pagine:

Hosting di un sito web statico con Firebase Hosting

Firebase Hosting offre un hosting statico rapido e sicuro per la tua app web. Con Firebase Hosting, puoi eseguire il deployment di app web e contenuti statici su una rete CDN (Content Delivery Network) globale utilizzando un solo comando.

Ecco alcuni vantaggi che ottieni utilizzando Firebase Hosting:

  • SSL a configurazione zero è integrato in Firebase Hosting. Esegue il provisioning dei certificati SSL sui domini personalizzati gratuitamente.
  • Tutti i tuoi contenuti vengono pubblicati tramite HTTPS.
  • I tuoi contenuti vengono resi disponibili agli utenti dai margini CDN in tutto il mondo.
  • Con l'interfaccia a riga di comando di Firebase puoi rendere la tua app operativa in pochi secondi. Usa gli strumenti a riga di comando per aggiungere destinazioni di deployment alprocesso di compilazioned.
  • Offre funzionalità di gestione delle release, come il deployment atomico di nuovi asset, il controllo delle versioni completo e i rollback con un solo clic.
  • Hosting offre una configurazione utile per le app con una sola pagina e altri siti simili alle app.
  • Hosting è progettato per essere utilizzato senza problemi con altre funzionalità di Firebase.

Per ulteriori informazioni, consulta le seguenti pagine:

Utilizzo delle macchine virtuali con Compute Engine

Per i casi d'uso di Infrastructure as a Service (IaaS), Google Cloud fornisce Compute Engine. Compute Engine offre una solida infrastruttura di computing, ma devi scegliere e configurare i componenti della piattaforma che vuoi utilizzare. Con Compute Engine, è tua responsabilità configurare, amministrare e monitorare i sistemi. Google garantisce che le risorse siano disponibili, affidabili e pronte per l'uso, ma spetta a te eseguirne il provisioning e la gestione. Il vantaggio, in questo caso, è che hai il controllo completo dei sistemi e una flessibilità illimitata.

Usa Compute Engine per progettare ed eseguire il deployment di quasi tutti i sistemi di hosting di siti web che desideri. Puoi utilizzare le VM, chiamate istanze, per creare la tua app, proprio come faresti con la tua infrastruttura hardware. Compute Engine offre una varietà di tipi di macchine per personalizzare la tua configurazione in base alle tue esigenze e al tuo budget. Puoi scegliere quali sistemi operativi, stack di sviluppo, linguaggi, framework, servizi e altre tecnologie software preferisci.

Configurazione automatica con Google Cloud Marketplace

Il modo più semplice per eseguire il deployment di uno stack di web hosting completo è utilizzare Google Cloud Marketplace. Con pochi clic, puoi eseguire il deployment di una qualsiasi delle oltre 100 soluzioni completamente realizzate con Google click-to-deploy o Bitnami.

Cloud Marketplace

Ad esempio, puoi configurare uno stack LAMP o WordPress con Cloud Marketplace. Il sistema esegue il deployment di uno stack software completo e funzionante in pochi minuti. Prima del deployment, Cloud Marketplace mostra le stime dei costi per l'esecuzione del sito, fornisce informazioni chiare sulle versioni dei componenti software che installa e consente di personalizzare la configurazione modificando i nomi delle istanze dei componenti, scegliendo il tipo di macchina e le dimensioni del disco. Dopo il deployment, hai il controllo completo sulle istanze di Compute Engine, sulle relative configurazioni e sul software.

Configurazione manuale

Puoi anche creare manualmente la tua infrastruttura su Compute Engine, creando la tua configurazione da zero o creando un deployment di Google Cloud Marketplace. Ad esempio, potresti voler utilizzare una versione di un componente software non offerto da Cloud Marketplace o forse preferisci installare e configurare tutto in autonomia.

L'offerta di un framework completo e di best practice per la configurazione di un sito web esula dall'ambito di questo articolo. Ma, da un punto di vista generale, il lato tecnico della configurazione di un'infrastruttura di web hosting su Compute Engine richiede quanto segue:

  • Comprendi i requisiti. Se stai creando un nuovo sito web, assicurati di comprendere i componenti di cui hai bisogno, ad esempio istanze, esigenze di archiviazione e infrastruttura di rete. Se esegui la migrazione della tua app da una soluzione esistente, probabilmente conosci già questi requisiti, ma devi pensare a come la tua configurazione esistente viene mappata ai servizi Google Cloud.
  • Pianifica la progettazione. Pensa alla tua architettura e scrivi il tuo progetto. Cerca di essere il più esplicito possibile.
  • Crea i componenti. I componenti che solitamente potrebbero essere considerati asset fisici, come computer e switch di rete, vengono forniti tramite i servizi di Compute Engine. Ad esempio, se vuoi un computer, devi creare un'istanza Compute Engine. Se vuoi un disco rigido permanente, devi creare anche quello. Gli strumenti Infrastructure as Code, come Terraform, rendono questo processo facile e ripetibile.
  • Configura e personalizza. Dopo aver ottenuto i componenti desiderati, devi configurarli, installare e configurare il software e scrivere ed eseguire il deployment del codice di personalizzazione di cui hai bisogno. Puoi replicare la configurazione eseguendo script shell, contribuendo a velocizzare i deployment futuri. Anche Terraform è utile in questo caso, fornendo modelli di configurazione dichiarativi e flessibili per il deployment automatico delle risorse. Puoi anche sfruttare strumenti di automazione IT come Puppet e Chef.
  • Implementa gli asset. Presumibilmente hai pagine web e immagini.
  • Prova. Verifica che tutto funzioni come previsto.
  • Esegui il deployment in produzione. Rendi il tuo sito visibile e utilizzato da tutti.

Archiviazione dei dati con Compute Engine

La maggior parte dei siti web richiede un qualche tipo di spazio di archiviazione. Potresti aver bisogno di spazio di archiviazione per diversi motivi, ad esempio per salvare i file caricati dagli utenti e, naturalmente, gli asset utilizzati dal tuo sito.

Google Cloud offre una varietà di servizi di archiviazione gestiti, tra cui:

  • Un database SQL in Cloud SQL, un servizio di database relazionale completamente gestito per MySQL, PostgreSQL e SQL Server.
  • Due opzioni per l'archiviazione dei dati NoSQL: Firestore e Bigtable.
  • Memorystore, un servizio di datastore in memoria completamente gestito per Redis e Memcached Redis e Memcached.
  • Archiviazione di oggetti coerente, scalabile e di grande capacità in Cloud Storage. Cloud Storage è disponibile in diverse classi:
    • L'opzione Standard offre la massima disponibilità.
    • Nearline è una scelta a basso costo ideale per i dati consultati meno di una volta al mese.
    • Coldline offre una scelta a basso costo ideale per i dati a cui si accede meno di una volta a trimestre.
    • Archive offre la scelta più economica per l'archiviazione, il backup e il ripristino di emergenza.
  • Dischi permanenti su Compute Engine da utilizzare come spazio di archiviazione principale per le tue istanze. Compute Engine offre dischi permanenti su disco rigido, denominati dischi permanenti standard, e dischi permanenti a stato solido (SSD). Puoi anche scegliere di configurare la tua tecnologia di archiviazione preferita su Compute Engine utilizzando dischi permanenti. Ad esempio, puoi configurare PostgreSQL come database SQL o MongoDB come spazio di archiviazione NoSQL. Per comprendere la gamma completa e i vantaggi dei servizi di archiviazione su Google Cloud, consulta Scelta di un'opzione di archiviazione.

Bilanciamento del carico con Compute Engine

Per qualsiasi sito web che opera su larga scala è spesso un requisito l'utilizzo di tecnologie di bilanciamento del carico per distribuire il carico di lavoro tra i server. Hai a disposizione una serie di opzioni per la progettazione di server web con bilanciamento del carico su Compute Engine, tra cui:

Il deployment del bilanciamento del carico è flessibile e puoi usare Compute Engine con le tue soluzioni esistenti. Ad esempio, il bilanciamento del carico HTTP(S) con Nginx è una possibile soluzione che puoi utilizzare al posto del bilanciatore del carico di Compute Engine.

Distribuzione di contenuti con Compute Engine

Poiché il tempo di risposta è una metrica fondamentale per qualsiasi sito web, l'utilizzo di una CDN per ridurre la latenza e aumentare le prestazioni è spesso un requisito necessario, soprattutto per un sito con traffico web globale.

Cloud CDN utilizza i punti di presenza perimetrali di Google, distribuiti globalmente, per distribuire contenuti dalle posizioni della cache più vicine agli utenti. Cloud CDN utilizza il bilanciamento del carico HTTP(S). Per gestire i contenuti da Compute Engine, Cloud Storage o entrambi da un singolo indirizzo IP, abilita Cloud CDN per un bilanciatore del carico HTTP(S).

Scalabilità automatica con Compute Engine

Puoi configurare la tua architettura in modo da aggiungere e rimuovere server in base alle variazioni della domanda. Questo approccio può aiutarti a garantire che il tuo sito abbia un buon rendimento durante i periodi di picco, mantenendo i costi sotto controllo durante i periodi di domanda più tipici. Compute Engine fornisce un gestore della scalabilità automatica che puoi utilizzare a questo scopo.

La scalabilità automatica è una funzionalità dei gruppi di istanze gestite. Un gruppo di istanze gestite è un pool di istanze di macchine virtuali omogenee, create da un modello di istanza comune. Un gestore della scalabilità automatica aggiunge o rimuove istanze in un gruppo di istanze gestite. Sebbene Compute Engine abbia gruppi di istanze gestite e non gestite, puoi utilizzare solo i gruppi di istanze gestite con un gestore della scalabilità automatica. Per maggiori informazioni, consulta la pagina sulla scalabilità automatica su Compute Engine.

Per un'analisi approfondita di ciò che serve per creare una soluzione per app web scalabile e resiliente, consulta Creazione di app web scalabili e resilienti.

Logging e monitoraggio con Compute Engine

Google Cloud include funzionalità che puoi utilizzare per tenere traccia di ciò che accade nel tuo sito web.

Cloud Logging raccoglie e archivia i log da app e servizi su Google Cloud. Puoi visualizzare o esportare i log e integrare quelli di terze parti utilizzando un agente di logging.

Logging

Cloud Monitoring fornisce dashboard e avvisi per il tuo sito. Per configurare Monitoring puoi utilizzare la console Google Cloud. Puoi esaminare le metriche delle prestazioni per servizi cloud, macchine virtuali e server open source comuni come MongoDB, Apache, Nginx ed Elasticsearch. Puoi usare l'API Cloud Monitoring per recuperare i dati di monitoraggio e creare metriche personalizzate.

Cloud Monitoring fornisce anche controlli di uptime, che inviano richieste ai tuoi siti web per verificare se rispondono. Puoi monitorare la disponibilità di un sito web eseguendo il deployment di un criterio di avviso che crea un incidente se il controllo di uptime non va a buon fine.

Gestione di DevOps con Compute Engine

Per informazioni sulla gestione di DevOps con Compute Engine, consulta i seguenti articoli:

Utilizzo dei container con GKE

Forse stai già utilizzando container, come quelli di Docker. Per l'hosting web, i container offrono diversi vantaggi, tra cui:

  • Componentizzazione. Puoi utilizzare i container per separare i vari componenti della tua app web. Ad esempio, supponiamo che il tuo sito esegua un server web e un database. Puoi eseguire questi componenti in container separati, modificando e aggiornando un componente senza influire sull'altro. Man mano che la progettazione della tua app diventa più complessa, i container sono una soluzione adatta per un'architettura orientata ai servizi, inclusi i microservizi. Tra gli altri obiettivi, questo tipo di progettazione supporta la scalabilità.
  • Portabilità. Un container ha tutto ciò che serve per essere eseguito: la tua app e le sue dipendenze sono in un unico bundle. Puoi eseguire i container su varie piattaforme, senza preoccuparti dei dettagli del sistema sottostanti.
  • Implementazione rapida. Al momento del deployment, il sistema viene creato a partire da un insieme di definizioni e immagini, in modo da poter eseguire il deployment delle parti in modo rapido, affidabile e automatico. I container sono in genere di piccole dimensioni e il deployment è molto più rapido rispetto, ad esempio, alle macchine virtuali.

Il container computing su Google Cloud offre ancora più vantaggi per l'hosting web, tra cui:

  • Orchestrazione. GKE è un servizio gestito basato su Kubernetes, il sistema open source di orchestrazione dei container introdotto da Google. Con GKE, il codice viene eseguito in container che fanno parte di un cluster composto da istanze di Compute Engine. Anziché amministrare i singoli container o creare e arrestare manualmente ciascun container, puoi gestire il cluster automaticamente tramite GKE, che utilizza la configurazione che hai definito.
  • Registrazione delle immagini. Container Registry o Artifact Registry fornisce spazio di archiviazione privato per le immagini Docker su Google Cloud. Puoi accedere al registro tramite un endpoint HTTPS e poter eseguire il pull delle immagini da qualsiasi macchina, che si tratti di un'istanza Compute Engine o del tuo hardware. Il servizio di registro ospita le immagini personalizzate in Cloud Storage all'interno del tuo progetto Google Cloud. Questo approccio garantisce che, per impostazione predefinita, le immagini personalizzate siano accessibili solo dalle entità che hanno accesso al tuo progetto.
  • Mobilità. Ciò significa che hai la flessibilità di spostare e combinare i carichi di lavoro con altri cloud provider o combinare carichi di lavoro di cloud computing con implementazioni on-premise per creare una soluzione ibrida.

Archiviazione dei dati con GKE

Poiché GKE viene eseguito su Google Cloud e utilizza le istanze di Compute Engine come nodi, le opzioni di archiviazione hanno molto in comune con l'archiviazione su Compute Engine. Puoi accedere a Cloud SQL, Cloud Storage, Firestore e Bigtable tramite le relative API oppure puoi utilizzare un altro provider di archiviazione esterno, se preferisci. Tuttavia, GKE interagisce con i dischi permanenti di Compute Engine in un modo diverso rispetto a una normale istanza di Compute Engine.

Un'istanza Compute Engine include un disco collegato. Quando utilizzi Compute Engine, finché l'istanza esiste, il volume del disco rimane con l'istanza. Puoi anche scollegare il disco e utilizzarlo con un'altra istanza. In un container, invece, i file su disco sono temporanei. Al riavvio di un container, ad esempio dopo un arresto anomalo, i file su disco vengono persi. Kubernetes risolve questo problema utilizzando le astrazioni di volume e classe di archiviazione. Un tipo di classe di archiviazione è GCE PD. Ciò significa che puoi utilizzare i dischi permanenti di Compute Engine con i container per impedire che i tuoi file di dati vengano eliminati quando utilizzi GKE.

Per comprendere le funzionalità e i vantaggi di un volume, devi prima conoscere qualche informazione sui pod. Immagina un pod come un host logico specifico dell'app per uno o più container. Un pod viene eseguito su un'istanza del nodo. Quando i container sono membri di un pod, possono condividere diverse risorse, tra cui un insieme di volumi di archiviazione condivisa. Questi volumi consentono ai dati di sopravvivere ai riavvii dei container e di essere condivisi tra i container all'interno del pod. Naturalmente, puoi anche utilizzare un singolo container e un singolo volume in un pod, ma il pod è un'astrazione necessaria per collegare logicamente queste risorse tra loro.

Per un esempio, consulta il tutorial Utilizzo di dischi permanenti con WordPress e MySQL.

Bilanciamento del carico con GKE

Molte grandi architetture di web hosting devono disporre di più server in grado di condividere le esigenze di traffico. Poiché puoi creare e gestire più container, nodi e pod con GKE, è la scelta più naturale per un sistema di web hosting con bilanciamento del carico.

Utilizzo del bilanciamento del carico di rete

Il modo più semplice per creare un bilanciatore del carico in GKE è utilizzare il bilanciamento del carico di rete di Compute Engine. Il bilanciamento del carico di rete può bilanciare il carico dei sistemi in base ai dati del protocollo internet in entrata, come l'indirizzo, la porta e il tipo di protocollo. Il bilanciamento del carico di rete utilizza le regole di forwarding. Queste regole puntano a pool di destinazione che elencano le istanze disponibili per essere utilizzate per il bilanciamento del carico.

Con il bilanciamento del carico di rete, puoi bilanciare il carico di protocolli aggiuntivi basati su TCP/UDP, come il traffico SMTP, e la tua app può ispezionare direttamente i pacchetti.

Puoi eseguire il deployment del bilanciamento del carico di rete semplicemente aggiungendo il campo type: LoadBalancer al file di configurazione del servizio.

Utilizzo del bilanciamento del carico HTTP(S)

Se hai bisogno di funzionalità di bilanciamento del carico più avanzate, come il bilanciamento del carico HTTPS, basato sui contenuti o tra regioni, puoi integrare il tuo servizio GKE con la funzionalità di bilanciamento del carico HTTP/HTTPS di Compute Engine. Kubernetes fornisce la risorsa Ingress che incapsula una raccolta di regole per instradare il traffico esterno agli endpoint Kubernetes. In GKE, una risorsa Ingress gestisce il provisioning e la configurazione del bilanciatore del carico HTTP/HTTPS di Compute Engine.

Per ulteriori informazioni sull'utilizzo del bilanciamento del carico HTTP/HTTPS in GKE, consulta Configurare il bilanciamento del carico HTTP con Ingress.

Scalabilità con GKE

Per il ridimensionamento automatico dei cluster, puoi utilizzare il gestore della scalabilità automatica del cluster. Questa funzionalità controlla periodicamente se esistono pod in attesa di un nodo con risorse gratuite, ma che non sono in fase di pianificazione. Se esistono pod di questo tipo, il gestore della scalabilità automatica ridimensiona il pool di nodi se il ridimensionamento consente la pianificazione dei pod in attesa.

Il gestore della scalabilità automatica del cluster monitora anche l'utilizzo di tutti i nodi. Se un nodo non è necessario per un periodo di tempo prolungato e tutti i suoi pod possono essere pianificati altrove, il nodo viene eliminato.

Per ulteriori informazioni sul gestore della scalabilità automatica del cluster, sui suoi limiti e sulle best practice, consulta la documentazione del gestore della scalabilità automatica dei cluster.

Logging e monitoraggio con GKE

Come in Compute Engine, Logging e Monitoring forniscono i tuoi servizi di logging e monitoraggio. Logging raccoglie e archivia i log di app e servizi. Puoi visualizzare o esportare i log e integrare i log di terze parti utilizzando un agente di logging.

Monitoring fornisce dashboard e avvisi per il tuo sito. Per configurare Monitoring puoi utilizzare la console Google Cloud. È possibile esaminare le metriche delle prestazioni per servizi cloud, macchine virtuali e server open source più comuni come MongoDB, Apache, Nginx ed Elasticsearch. Puoi utilizzare l'API Monitoring per recuperare i dati di monitoraggio e creare metriche personalizzate.

Gestione di DevOps con GKE

Quando utilizzi GKE, ottieni già molti dei vantaggi che la maggior parte delle persone pensa a DevOps. Questo è particolarmente importante per quanto riguarda la facilità di pacchettizzazione, deployment e gestione. Per le tue esigenze del flusso di lavoro CI/CD, puoi sfruttare strumenti creati per il cloud, come Cloud Build e Cloud Deploy, oppure strumenti popolari come Jenkins. Per ulteriori informazioni, leggi i seguenti articoli:

Creazione su una piattaforma gestita con App Engine

Su Google Cloud, la soluzione Platform as a Service (PaaS) gestita è chiamata App Engine. Quando crei il tuo sito web su App Engine, puoi concentrarti sulla programmazione delle tue funzionalità e lasciare che sia Google a gestire l'infrastruttura di supporto. App Engine offre una vasta gamma di funzionalità che rendono la scalabilità, il bilanciamento del carico, il logging, il monitoraggio e la sicurezza molto più semplici rispetto a quanto accadrebbe con la creazione e la gestione in autonomia. App Engine consente di scrivere codice in diversi linguaggi di programmazione e può utilizzare una varietà di altri servizi Google Cloud.

App Engine fornisce l'ambiente standard, che consente di eseguire le app in un ambiente sicuro con sandbox. L'ambiente standard di App Engine distribuisce le richieste su più server e scala i server per soddisfare le esigenze di traffico. L'app viene eseguita nel proprio ambiente sicuro e affidabile, indipendente dall'hardware, dal sistema operativo o dalla posizione fisica del server.

L'app web utilizza App Engine e altri componenti

Per offrirti più opzioni, App Engine offre l'ambiente flessibile. Quando utilizzi l'ambiente flessibile, l'app viene eseguita su istanze di Compute Engine configurabili, ma App Engine gestisce l'ambiente di hosting per te. Ciò significa che puoi usare runtime aggiuntivi, inclusi runtime personalizzati, per avere più scelte sul linguaggio di programmazione. Puoi inoltre sfruttare una parte della flessibilità offerta da Compute Engine, ad esempio la scelta tra una vasta gamma di opzioni di CPU e memoria.

Linguaggi di programmazione

L'ambiente standard App Engine fornisce runtime predefiniti e tu scrivi codice sorgente in versioni specifiche dei linguaggi di programmazione supportati.

Con l'ambiente flessibile, scrivi codice sorgente in una versione di uno qualsiasi dei linguaggi di programmazione supportati. Puoi personalizzare questi runtime o fornire il tuo con un'immagine Docker o un Dockerfile personalizzati.

Se il linguaggio di programmazione che utilizzi rappresenta un problema primario, devi decidere se i runtime forniti dall'ambiente standard di App Engine soddisfano i tuoi requisiti. In caso contrario, dovresti valutare l'uso dell'ambiente flessibile.

Per determinare quale ambiente soddisfa meglio le esigenze della tua app, consulta Scegliere un ambiente App Engine.

Tutorial introduttivi per lingua

I tutorial seguenti possono aiutarti a iniziare a utilizzare l'ambiente standard di App Engine:

I tutorial seguenti possono aiutarti a iniziare a utilizzare l'ambiente flessibile:

Archiviazione dei dati con App Engine

App Engine offre opzioni per l'archiviazione dei dati:

Nome Strutturazione Coerenza
Firestore Senza schema Coerenza elevata.
Cloud SQL Relazionale Coerenza elevata.
Cloud Storage File e metadati associati A elevata coerenza, tranne quando si eseguono operazioni di elenco che ricevono un elenco di bucket o oggetti.

Puoi anche utilizzare diversi database di terze parti con l'ambiente standard.

Per ulteriori dettagli sull'archiviazione in App Engine, consulta Scelta di un'opzione di archiviazione, quindi seleziona il linguaggio di programmazione che preferisci.

Quando utilizzi l'ambiente flessibile, puoi utilizzare le stesse opzioni di archiviazione che puoi utilizzare con l'ambiente standard, nonché una gamma più ampia di database di terze parti. Per ulteriori informazioni sui database di terze parti nell'ambiente flessibile, consulta Utilizzo dei database di terze parti.

Bilanciamento del carico e scalabilità automatica con App Engine

Per impostazione predefinita, App Engine instrada automaticamente le richieste in entrata alle istanze di backend appropriate ed esegue il bilanciamento del carico per te. Tuttavia, se vuoi sfruttare le funzionalità di bilanciamento del carico HTTP(S) con funzionalità complete di Google Cloud, puoi utilizzare i gruppi di endpoint di rete serverless.

Per la scalabilità, App Engine può creare e arrestare automaticamente le istanze in base alle fluttuazioni del traffico oppure puoi specificare il numero di istanze da eseguire indipendentemente dalla quantità di traffico.

Logging e monitoraggio con App Engine

In App Engine, le richieste vengono registrate automaticamente e puoi visualizzare questi log nella console Google Cloud. App Engine funziona inoltre con librerie standard specifiche per il linguaggio che forniscono funzionalità di logging e inoltra le voci di log ai log nella console Google Cloud. Ad esempio, in Python puoi utilizzare il modulo di logging Python standard e in Java puoi integrare l'appender logback o java.util.logging con Cloud Logging. Questo approccio abilita tutte le funzionalità di Cloud Logging e richiede solo poche righe di codice specifico per Google Cloud.

Cloud Monitoring offre funzionalità per il monitoraggio delle app di App Engine. Tramite la console Google Cloud puoi monitorare incidenti, controlli di uptime e altri dettagli.

Creazione su una piattaforma serverless con Cloud Run

La piattaforma serverless di Google Cloud ti consente di scrivere il codice a modo tuo senza preoccuparti dell'infrastruttura sottostante. Puoi creare applicazioni serverless full stack con spazio di archiviazione, database, machine learning e altri strumenti di Google Cloud.

Per i siti web containerizzati, puoi eseguirne il deployment in Cloud Run oltre a utilizzare GKE. Cloud Run è una piattaforma serverless completamente gestita che consente di eseguire applicazioni containerizzate altamente scalabili su Google Cloud. Paghi solo per il tempo di esecuzione del codice.

Utilizzando i container con Cloud Run, puoi sfruttare tecnologie mature come Nginx, Express.js e Django per creare i tuoi siti web, accedere al tuo database SQL su Cloud SQL ed eseguire il rendering di pagine HTML dinamiche.

La documentazione di Cloud Run include una quickstart per iniziare.

Archiviazione dei dati con Cloud Run

I container Cloud Run sono temporanei ed è necessario conoscerne quote e limiti per i tuoi casi d'uso. I file possono essere archiviati temporaneamente per l'elaborazione in un'istanza di container, ma questo spazio di archiviazione esce dalla memoria disponibile per il servizio, come descritto nel contratto di runtime.

Per l'archiviazione permanente, come per App Engine, puoi scegliere servizi di Google Cloud come Cloud Storage, Firestore o Cloud SQL. In alternativa, puoi anche utilizzare una soluzione di archiviazione di terze parti.

Bilanciamento del carico e scalabilità automatica con Cloud Run

Per impostazione predefinita, quando crei su Cloud Run, instrada automaticamente le richieste in arrivo ai container back-end appropriati ed esegue il bilanciamento del carico per te. Tuttavia, se vuoi sfruttare le funzionalità di bilanciamento del carico HTTP(S) con funzionalità complete di Google Cloud, puoi utilizzare i gruppi di endpoint di rete serverless.

Con il bilanciamento del carico HTTP(S), puoi abilitare Cloud CDN o gestire il traffico da più regioni. Inoltre, puoi utilizzare un middleware come API Gateway per migliorare il tuo servizio.

Per Cloud Run, Google Cloud gestisce per te la scalabilità automatica delle istanze di container. Ogni revisione viene scalata automaticamente al numero di istanze di container necessario per gestire tutte le richieste in entrata. Quando una revisione non riceve traffico, viene scalata per impostazione predefinita a zero istanze di container. Tuttavia, se vuoi, puoi modificare questa impostazione predefinita per specificare un'istanza da mantenere inattiva o inattiva utilizzando l'impostazione istanze minime.

Logging e monitoraggio con Cloud Run

Cloud Run dispone di due tipi di log, che vengono inviati automaticamente a Cloud Logging:

  • Log delle richieste: log delle richieste inviate ai servizi Cloud Run. Questi log vengono creati automaticamente.
  • Log dei container: log emessi dalle istanze di container, in genere dal tuo codice, scritti nelle località supportate come descritto in Scrittura dei log dei container.

Puoi visualizzare i log relativi al tuo servizio in due modi:

  • Utilizza la pagina Cloud Run nella console Google Cloud.
  • Utilizza Esplora log di Cloud Logging nella console Google Cloud.

Entrambi questi metodi di visualizzazione esaminano gli stessi log archiviati in Cloud Logging, ma Esplora log fornisce ulteriori dettagli e funzionalità di filtro.

Cloud Monitoring fornisce monitoraggio delle prestazioni, metrics e controlli di uptime di Cloud Run, oltre ad avvisi per l'invio di notifiche al superamento di determinate soglie delle metriche. Si applicano i prezzi di Google Cloud Observability, il che significa che non viene addebitato alcun costo per le metriche nella versione completamente gestita di Cloud Run. Tieni presente che puoi anche utilizzare le metriche personalizzate di Cloud Monitoring.

Cloud Run è integrato con Cloud Monitoring senza necessità di impostazione o configurazione. Ciò significa che le metriche dei servizi Cloud Run vengono acquisite automaticamente durante l'esecuzione.

Creazione di sistemi di gestione dei contenuti

Ospitare un sito web significa gestire gli asset del sito. Cloud Storage offre un repository globale per questi asset. Un'architettura comune esegue il deployment di contenuti statici su Cloud Storage, quindi si sincronizza con Compute Engine per eseguire il rendering delle pagine dinamiche. Cloud Storage funziona con molti sistemi di gestione dei contenuti di terze parti, come WordPress, Drupal e Joomla. Cloud Storage offre anche un'API compatibile con Amazon S3, quindi qualsiasi sistema compatibile con Amazon S3 può funzionare con Cloud Storage.

Il diagramma seguente è un'architettura di esempio per un sistema di gestione dei contenuti. Sistema di gestione dei contenuti su Google Cloud

Passaggi successivi

  • Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Visita il nostro Cloud Architecture Center.