Hosting di siti web

Last reviewed 2023-02-28 UTC

Questo articolo illustra come ospitare un sito web su Google Cloud. Google Cloud offre una piattaforma solida, flessibile, affidabile e scalabile per la pubblicazione di siti web. Google ha creato Google Cloud utilizzando la stessa infrastruttura utilizzata da Google 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:

  • Saper creare un sito web e aver già distribuito ed eseguito un'infrastruttura di web hosting.
  • Valutare se e come eseguire la migrazione del tuo sito a Google Cloud.

Se vuoi creare un sito web semplice, potresti usare Google Sites, uno strumento strutturato per la creazione di wiki e pagine web. Per maggiori informazioni, visita la Guida di Sites.

Scelta di un'opzione

Google Cloud è un approccio ragionevole per iniziare, usando il tipo di tecnologia che già conosci. 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 fornisce 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 computing serverless, probabilmente Cloud Run è una buona opzione per te.

Una volta acquisita familiarità con Google Cloud, puoi esplorare la ricchezza di prodotti e servizi offerti da Google Cloud. Ad esempio, se hai iniziato utilizzando Compute Engine, potresti aumentare le funzionalità del tuo sito utilizzando Google Kubernetes Engine (GKE) o eseguire la migrazione di alcune o di tutte le funzionalità ad App Engine e Cloud Run.

La seguente tabella 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

IP

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 in modo diverso

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 link per completare documentazione, tutorial e articoli sulle soluzioni, che possono aiutarti a comprendere meglio il problema quando è tutto pronto.

Informazioni sui costi

Poiché le variabili sono numerose e ogni implementazione è diversa, non rientra nell'ambito di questo articolo 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 l'aspetto del tuo utilizzo di Google Cloud. Puoi fornire dettagli sui servizi che vuoi utilizzare e poi visualizzare una stima dei prezzi.

Configurazione dei servizi dei nomi di dominio

In genere, è necessario registrare un nome di dominio per il sito. Puoi utilizzare un registrar dei nomi di dominio pubblico, ad esempio Google Domains, per registrare un nome univoco per il tuo sito. Se vuoi il controllo completo del tuo sistema dei nomi di dominio (DNS), 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, crei un record A con il tuo provider DNS. Per il sottodominio www.example.com, devi creare un record CNAME per www in modo che lo 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 non devi fare altro. Se utilizzi provider diversi per la registrazione e il DNS, assicurati che il 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 entrano in vigore rapidamente perché i resolver DNS non hanno valori precedenti memorizzati nella cache e possono contattare il provider DNS per ottenere le informazioni necessarie per il routing delle richieste.

Hosting di un sito web statico

Il modo più semplice per pubblicare i contenuti del sito web tramite HTTP(S) è ospitare pagine web statiche. Le pagine web statiche vengono pubblicate senza modifiche, così come sono state scritte, di solito utilizzando HTML. L'utilizzo di un sito web statico è una buona soluzione se le pagine del tuo sito cambiano raramente dopo la pubblicazione, ad esempio post del blog o pagine che fanno parte di un sito web di piccole imprese. Puoi fare molto con le pagine web statiche, ma se vuoi 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 tuoi dati direttamente da storage.googleapis.com oppure verificare la proprietà del tuo dominio e utilizzare il tuo nome di dominio.

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

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

Se hai un'app web che deve pubblicare contenuti statici o contenuti multimediali caricati dall'utente, 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 in modo diretto e sicuro senza eseguire il proxy tramite i server.

Per ottimizzare le prestazioni del 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 fornisce un hosting statico rapido e sicuro per l'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 singolo comando.

Ecco alcuni vantaggi di Firebase Hosting:

  • SSL a configurazione zero è integrato in Firebase Hosting. Esegue gratuitamente il provisioning dei certificati SSL su domini personalizzati.
  • Tutti i contenuti vengono pubblicati tramite HTTPS.
  • I tuoi contenuti vengono distribuiti agli utenti da edge CDN in tutto il mondo.
  • Utilizzando 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 target di deployment al processo di compilazione.
  • Hai a disposizione funzionalità di gestione delle release, come il deployment atomico di nuovi asset, il controllo completo delle versioni e i rollback con un solo clic.
  • Hosting offre una configurazione utile per le app a pagina singola e altri siti più 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 Infrastructure as a Service (IaaS), Google Cloud offre 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 all'uso, ma spetta a te eseguirne il provisioning e gestirle. Il vantaggio in questo caso è il controllo completo dei sistemi e la flessibilità illimitata.

Utilizza Compute Engine per progettare ed eseguire il deployment di quasi tutti i sistemi di hosting di siti web che vuoi. Puoi utilizzare le VM, chiamate istanze, per creare la tua app, come faresti con la tua infrastruttura hardware. Compute Engine offre una varietà di tipi di macchine per personalizzare la configurazione in base alle tue esigenze e al tuo budget. Puoi scegliere i sistemi operativi, gli stack di sviluppo, i linguaggi, i framework, i servizi e altre tecnologie software che 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 funzionante in pochi minuti su una singola istanza. Prima del deployment, Cloud Marketplace mostra una stima dei costi per l'esecuzione del sito, fornisce informazioni chiare sulle versioni dei componenti software che installa per te e ti consente di personalizzare la configurazione cambiando 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 loro configurazioni e sul software.

Configurazione manuale

Puoi anche creare manualmente la tua infrastruttura su Compute Engine, creando la configurazione da zero o utilizzando 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.

Fornire un framework completo e le best practice per la configurazione di un sito web vanno oltre l'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 che tu:

  • Comprendi i requisiti. Se stai creando un nuovo sito web, assicurati di comprendere i componenti necessari, ad esempio istanze, esigenze di archiviazione e infrastruttura di networking. Se stai eseguendo 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. Rifletti sulla tua architettura e scrivi il tuo progetto. Cerca di essere il più esplicito possibile.
  • Crea i componenti. I componenti che in genere si considerano come asset fisici, come computer e switch di rete, vengono forniti tramite servizi in Compute Engine. Ad esempio, se vuoi un computer, devi creare un'istanza Compute Engine. Se vuoi un disco rigido permanente, puoi creare anche quello. Gli strumenti Infrastructure as Code, come Terraform, rendono questo processo semplice e ripetibile.
  • Configura e personalizza. Dopo aver ottenuto i componenti desiderati, devi configurarli, installare e configurare il software, nonché scrivere ed eseguire il deployment di qualsiasi codice di personalizzazione necessario. Puoi replicare la configurazione eseguendo script shell, che contribuiscono a velocizzare i deployment futuri. Terraform è utile anche 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. Presumiamo che tu abbia pagine web e immagini.
  • Esegui test. Verifica che tutto funzioni come previsto.
  • Eseguire il deployment in produzione. Apri il tuo sito affinché tutti possano visualizzarlo e utilizzarlo.

Per iniziare e capire cosa significa configurare manualmente le istanze di Compute Engine, prova uno o più dei tutorial seguenti:

Archiviazione dei dati con Compute Engine

La maggior parte dei siti web richiede un qualche tipo di spazio di archiviazione. Potresti avere bisogno di spazio di archiviazione per vari motivi, ad esempio per salvare i file caricati dagli utenti o, 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 ad alta capacità in Cloud Storage. Cloud Storage è disponibile in diverse classi:
    • La versione standard offre la massima disponibilità.
    • Nearline è la scelta ideale a basso costo 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 al trimestre.
    • Archive è 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 istanze. Compute Engine offre dischi permanenti basati 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, vedi Scegliere un'opzione di archiviazione.

Bilanciamento del carico con Compute Engine

Per qualsiasi sito web che opera su larga scala, è spesso necessario utilizzare tecnologie di bilanciamento del carico per distribuire il carico di lavoro tra i server. Per la progettazione dei server web con bilanciamento del carico su Compute Engine hai a disposizione varie opzioni, tra cui:

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

Distribuzione dei 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, soprattutto per un sito con traffico web globale.

Cloud CDN utilizza i POP perimetrali di Google, distribuiti in tutto il mondo, per distribuire contenuti dalle posizioni della cache più vicine agli utenti. Cloud CDN funziona con il bilanciamento del carico HTTP(S). Per pubblicare contenuti da Compute Engine, Cloud Storage o da entrambi da un singolo indirizzo IP, abilita Cloud CDN per un bilanciatore del carico HTTP(S).

Scalabilità automatica con Compute Engine

Puoi configurare l'architettura per aggiungere e rimuovere server in base alle variazioni della domanda. Questo approccio può contribuire a garantire che il tuo sito abbia buone prestazioni nei picchi di carico, tenendo sotto controllo i costi durante i periodi di domanda più tipici. Compute Engine fornisce un gestore della scalabilità automatica che puoi utilizzare per 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, creato 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 gruppi di istanze gestite con un gestore della scalabilità automatica. Per maggiori informazioni, consulta 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 sotto controllo 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 i log di terze parti utilizzando un agente di logging.

Logging

Cloud Monitoring fornisce dashboard e avvisi per il tuo sito. Puoi configurare Monitoring con la console Google Cloud. Puoi esaminare le metriche delle prestazioni per i servizi cloud, le macchine virtuali e i server open source più comuni, come MongoDB, Apache, Nginx ed Elasticsearch. Con l'API Cloud Monitoring puoi 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

È possibile che tu stia già utilizzando container, ad esempio i container Docker. Per l'hosting web, i container offrono diversi vantaggi, tra cui:

  • Componentizzazione: Puoi utilizzare i container per separare i vari componenti dell'app web. Ad esempio, supponi 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 dell'app diventa più complessa, i container sono ideali per un'architettura orientata ai servizi, inclusi i microservizi. Questo tipo di design supporta la scalabilità, tra gli altri obiettivi.
  • Portabilità. Un container ha tutto ciò di cui ha bisogno per eseguire: l'app e le sue dipendenze sono raggruppate. Puoi eseguire i container su varie piattaforme senza preoccuparti dei dettagli di sistema sottostanti.
  • Implementazione rapida. Al momento del deployment, il sistema è creato a partire da un insieme di definizioni e immagini, per un deployment rapido, affidabile e automatico delle parti. Di solito, i container hanno dimensioni ridotte e il deployment è più rapido rispetto alle VM.

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

  • Orchestrazione. GKE è un servizio gestito basato su Kubernetes, il sistema di orchestrazione di container open source introdotto da Google. Con GKE, il tuo 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 ciascun container manualmente, puoi gestire automaticamente il cluster tramite GKE, che utilizza la configurazione da te definita.
  • Registrazione delle immagini. Container Registry o Artifact Registry fornisce uno spazio di archiviazione privato per le immagini Docker su Google Cloud. Puoi accedere al registro tramite un endpoint HTTPS, in modo da poter eseguire il pull delle immagini da qualsiasi macchina, che si tratti di un'istanza di Compute Engine o del tuo hardware. Il servizio di registro ospita le tue immagini personalizzate in Cloud Storage all'interno del tuo progetto Google Cloud. Questo approccio garantisce che 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 di 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 o puoi utilizzare un altro provider di archiviazione esterno, se preferisci. Tuttavia, GKE interagisce con i dischi permanenti di Compute Engine in 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'istanza diversa. Tuttavia, in un container, i file sul disco sono temporanei. Quando un container si riavvia, ad esempio dopo un arresto anomalo, i file sul 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 l'eliminazione dei file di dati quando utilizzi GKE.

Per comprendere le funzionalità e i vantaggi di un volume, dovresti prima conoscere meglio i pod. È 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 condivisi. Questi volumi consentono ai dati di sopravvivere ai riavvii dei container e di essere condivisi tra i container all'interno del pod. Ovviamente, puoi anche utilizzare un singolo container e un singolo volume in un pod, ma il pod è un'astrazione obbligatoria per connettere logicamente queste risorse l'una all'altra.

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

Bilanciamento del carico con GKE

Molte architetture di web hosting di grandi dimensioni devono disporre di più server in esecuzione in grado di condividere le richieste di traffico. Poiché puoi creare e gestire più container, nodi e pod con GKE, è la scelta ideale 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 è in grado di bilanciare il carico dei sistemi in base ai dati in entrata del protocollo internet, come indirizzo, porta e tipo di protocollo. Il bilanciamento del carico di rete utilizza le regole di forwarding. Queste regole puntano ai pool di destinazione, che elencano le istanze disponibili da utilizzare per il bilanciamento del carico.

Con il bilanciamento del carico di rete, puoi bilanciare il carico di altri protocolli basati su TCP/UDP, come il traffico SMTP, in modo che la tua app possa esaminare 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, il bilanciamento del carico basato sui contenuti o il bilanciamento del carico tra regioni, puoi integrare il tuo servizio GKE con la funzionalità di bilanciamento del carico HTTP/HTTPS di Compute Engine. Kubernetes fornisce la risorsa in entrata che incapsula una raccolta di regole per il routing del 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 saperne di più 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 dei cluster. Questa funzionalità verifica periodicamente se sono presenti pod in attesa di un nodo con risorse gratuite, ma che non sono stati pianificati. 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, sulle sue limitazioni e sulle best practice, consulta la documentazione del gestore della scalabilità automatica dei cluster.

Logging e monitoraggio con GKE

Come su Compute Engine, Logging e Monitoring forniscono i 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 Logging.

Monitoring fornisce dashboard e avvisi per il tuo sito. Puoi configurare Monitoring con la console Google Cloud. Puoi esaminare le metriche delle prestazioni per i servizi cloud, le macchine virtuali e i 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 molti dei vantaggi a cui la maggior parte delle persone pensa a DevOps. Ciò vale in particolar modo per quanto riguarda la facilità di pacchettizzazione, deployment e gestione. Per le tue esigenze di flusso di lavoro CI/CD, puoi sfruttare strumenti creati per il cloud, come Cloud Build e Cloud Deploy, o strumenti diffusi come Jenkins. Per saperne di più, consulta i seguenti articoli:

Creazione su una piattaforma gestita con App Engine

Su Google Cloud, la soluzione gestita Platform as a Service (PaaS) è denominata App Engine. Quando crei il tuo sito web su App Engine, ti concentri sulla programmazione delle tue funzionalità e lascia che sia Google a occuparsi della gestione dell'infrastruttura di supporto. App Engine fornisce un'ampia gamma di funzionalità che rendono la scalabilità, il bilanciamento del carico, il logging, il monitoraggio e la sicurezza molto più semplici rispetto a quando dovevi crearli e gestirli in autonomia. App Engine ti consente di scrivere il codice in vari linguaggi di programmazione e di utilizzare una varietà di altri servizi Google Cloud.

App Engine fornisce l'ambiente standard, che ti consente di eseguire le app in un ambiente sicuro limitato tramite 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, la tua app viene eseguita su istanze di Compute Engine configurabili, ma App Engine gestisce l'ambiente di hosting per te. Ciò significa che puoi utilizzare runtime aggiuntivi, inclusi runtime personalizzati, per più scelte relative ai linguaggi di programmazione. Puoi inoltre sfruttare alcune delle flessibilità offerte da Compute Engine, ad esempio scegliere tra una varietà di opzioni di CPU e memoria.

Linguaggi di programmazione

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

Nell'ambiente flessibile, puoi scrivere il codice sorgente in una versione di uno qualsiasi dei linguaggi di programmazione supportati. Puoi personalizzare questi runtime o fornire il tuo runtime con un'immagine Docker o un Dockerfile personalizzata.

Se il linguaggio di programmazione che utilizzi è una delle tue priorità, devi decidere se i runtime forniti dall'ambiente standard di App Engine soddisfano i tuoi requisiti. In caso contrario, ti consigliamo di utilizzare l'ambiente flessibile.

Per determinare quale ambiente soddisfa meglio le esigenze della tua app, vedi Scelta di 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 ti 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 Coerenza elevata, tranne durante l'esecuzione di operazioni con elenchi che ricevono un elenco di bucket o oggetti.

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

Per maggiori dettagli sull'archiviazione in App Engine, consulta Scelta di un'opzione di archiviazione, quindi seleziona il tuo linguaggio di programmazione preferito.

Quando utilizzi l'ambiente flessibile, puoi usufruire delle stesse opzioni di archiviazione dell'ambiente standard e di una gamma più ampia di database di terze parti. Per saperne di più sui database di terze parti nell'ambiente flessibile, consulta Utilizzo di 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) di livello enterprise 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 a seconda delle fluttuazioni del traffico. In alternativa, puoi specificare un 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 i linguaggi 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 di 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 monitorare le app App Engine. Con 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 nel modo che preferisci senza preoccuparti dell'infrastruttura sottostante. Puoi creare applicazioni serverless complete con archiviazione, database, machine learning e altro ancora di Google Cloud.

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

Utilizzando i container con Cloud Run, puoi sfruttare tecnologie mature come Nginx, Express.js e Django per creare 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 di Cloud Run sono temporanei ed è necessario comprenderne le quote e i limiti per i casi d'uso. I file possono essere archiviati temporaneamente per l'elaborazione in un'istanza di container, ma lo 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 entrata ai container di backend appropriati ed esegue il bilanciamento del carico per te. Tuttavia, se vuoi sfruttare le funzionalità di bilanciamento del carico HTTP(S) di livello enterprise 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 middleware come API Gateway per migliorare il servizio.

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

Logging e monitoraggio con Cloud Run

Cloud Run include 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 del 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 offre maggiori dettagli e funzionalità di filtro.

Cloud Monitoring offre Cloud Run di monitoraggio delle prestazioni, metrics e controlli di uptime, oltre a avvisi per inviare notifiche al superamento di determinate soglie delle metriche. Si applicano i prezzi di Google Cloud Observability, il che significa che non è previsto alcun costo per le metriche nella versione completamente gestita di Cloud Run. Tieni presente che puoi utilizzare anche le metriche personalizzate di Cloud Monitoring.

Cloud Run è integrato con Cloud Monitoring, senza bisogno di alcuna configurazione. Ciò significa che le metriche dei servizi Cloud Run vengono acquisite automaticamente quando sono in esecuzione.

Sviluppare sistemi di gestione dei contenuti

Ospitare un sito web significa gestire gli asset del sito web. Cloud Storage fornisce un repository globale per questi asset. Un'architettura comune esegue il deployment di contenuti statici in Cloud Storage, quindi la sincronizzazione con Compute Engine per 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 inoltre un'API compatibile con Amazon S3, quindi qualsiasi sistema che funziona 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.