Hosting di siti web

Last reviewed 2024-06-11 UTC

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

Questo articolo potrebbe esserti utile se:

  • Conoscenza di come creare un sito web e aver eseguito il deployment e l'esecuzione di alcune infrastrutture di web hosting in precedenza.
  • Valutare se e come eseguire la migrazione del sito a Google Cloud.

Se vuoi creare un sito web semplice, ti consigliamo di utilizzare Google Sites, uno strumento strutturato per la creazione di wiki e pagine web. Per saperne di più, visita la Guida di Sites.

Scegliere un'opzione

Se non hai mai utilizzato Google Cloud, è ragionevole iniziare utilizzando 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 provider di servizi cloud o sul tuo hardware, Compute Engine ti offre un paradigma familiare. Se preferisci il serverless computing, allora Cloud Run è probabilmente una buona opzione per te. Se utilizzi un'offerta Platform as a Service (PaaS), come Heroku o Engine Yard, allora App Engine può essere il punto di partenza migliore.

Dopo aver acquisito familiarità con Google Cloud, puoi esplorare la ricchezza di prodotti e servizi offerti da Google Cloud . Ad esempio, se hai iniziato a utilizzare 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 fornitore di spazio di archiviazione esterno.

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

HTTP(S)

Proxy TCP

Proxy SSL

Terminazione IPv6

Rete

Tra regioni

Interno

Automaticamente con i gruppi di istanze gestite

Cloud Logging

Cloud Monitoring

Console 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 Monitoring

Serverless

Cloud Run

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 monitoraggio

Piattaforma gestita

App Engine

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 monitoraggio

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 le tecnologie. L'articolo fornisce link a documentazione completa, tutorial e articoli sulle soluzioni che possono aiutarti ad approfondire la tua comprensione quando sei pronto.

Informazioni sui costi

Poiché esistono molte variabili e ogni implementazione è diversa, non rientra nell'ambito di questo articolo fornire consigli specifici sui costi. Per comprendere i principi di Google sul funzionamento dei prezzi su Google Cloud, consulta la pagina dei prezzi. Per comprendere i prezzi dei singoli servizi, consulta la sezione Prezzi dei prodotti. Puoi anche utilizzare il calcolatore prezzi per stimare il tuo utilizzo di Google Cloud . Puoi fornire dettagli sui servizi che vuoi utilizzare e poi visualizzare una stima dei prezzi.

Configurazione dei servizi di nomi di dominio

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

Se hai un provider DNS esistente che vuoi utilizzare, in genere devi creare un paio di record con quel provider. Per un nome di dominio come example.com, crea un record A con il tuo provider DNS. Per il sottodominio www.example.com, crea un record CNAME per www in modo da indirizzarlo 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 registrar del nome di dominio è anche il tuo provider DNS, probabilmente non devi fare altro. Se utilizzi provider separati per la registrazione e il DNS, assicurati che il registrar del nome di dominio disponga dei server dei nomi corretti associati al tuo dominio.

Dopo aver apportato le modifiche al DNS, la propagazione degli aggiornamenti dei record può richiedere un po' di tempo, a seconda dei valori di durata (TTL) nella zona. Se si tratta di un nuovo nome host, le modifiche entrano in vigore rapidamente perché i resolver DNS non hanno memorizzato nella cache i valori precedenti 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 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 opzione se le pagine del tuo sito cambiano raramente dopo la pubblicazione, ad esempio i post del blog o le pagine che fanno parte del sito web di una piccola impresa. Puoi fare molto con le pagine web statiche, ma se hai bisogno che il tuo sito abbia interazioni solide con gli utenti tramite codice lato server, devi 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 puoi verificare di essere il proprietario 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. Puoi utilizzare un generatore di siti statici, come Jekyll, Ghost o Hugo, per creare i contenuti. Con i generatori di siti statici, crei un sito web statico creando in markdown e fornendo modelli e strumenti. I generatori di siti in genere forniscono un server web locale che puoi utilizzare per visualizzare l'anteprima dei tuoi contenuti.

Una volta che il sito statico funziona, puoi aggiornare le pagine statiche utilizzando qualsiasi procedura. Questa procedura può essere semplice come copiare manualmente una pagina aggiornata nel bucket. Puoi scegliere di utilizzare un approccio più automatizzato, ad esempio memorizzare i contenuti su GitHub e poi utilizzare un webhook per eseguire uno script che aggiorna il bucket. Un sistema ancora più avanzato potrebbe utilizzare uno strumento di integrazione continua/distribuzione continua (CI/CD), come Jenkins, per aggiornare i contenuti nel bucket. Jenkins ha un plug-in Cloud Storage che fornisce un passaggio post-build Google Cloud Storage Uploader per pubblicare gli artefatti di build in Cloud Storage.

Se hai un'app web che deve fornire contenuti statici o multimediali statici caricati dall'utente, l'utilizzo di Cloud Storage può essere un modo conveniente ed efficiente per ospitare e fornire questi contenuti, riducendo al contempo la quantità di richieste dinamiche della 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 utilizzare proxy tramite i tuoi server.

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

Per saperne di più, consulta le pagine seguenti:

Hosting di un sito web statico con Firebase Hosting

Firebase Hosting fornisce hosting statico rapido e sicuro per la tua app web. Con Firebase Hosting, puoi eseguire il deployment di app web e contenuti statici in una rete di distribuzione dei contenuti (CDN) globale utilizzando un unico comando.

Ecco alcuni vantaggi che ottieni quando utilizzi Firebase Hosting:

  • La tecnologia SSL senza necessità di configurazione è integrata in Firebase Hosting. Esegue il provisioning di certificati SSL sui domini personalizzati senza costi.
  • Tutti i tuoi contenuti vengono pubblicati tramite HTTPS.
  • I tuoi contenuti vengono distribuiti agli utenti dai server edge della rete CDN in tutto il mondo.
  • Utilizzando l'interfaccia a riga di comando di Firebase, puoi rendere la tua app operativa in pochi secondi. Utilizza gli strumenti a riga di comando per aggiungere le destinazioni di deployment al processo di build.
  • 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.
  • L'hosting offre una configurazione utile per le app a pagina singola e altri siti più simili ad app.
  • Hosting è progettato per essere utilizzato senza problemi con altre funzionalità di Firebase.

Per saperne di più, consulta le pagine seguenti:

Utilizzo di macchine virtuali con Compute Engine

Per i casi d'uso di Infrastructure as a Service (IaaS), Google Cloud fornisce Compute Engine. Compute Engine fornisce un'infrastruttura di computing solida, 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 la gestione. Il vantaggio, in questo caso, è che hai il controllo completo dei sistemi e una flessibilità illimitata.

Utilizza Compute Engine per progettare ed eseguire il deployment di quasi tutti i sistemi di hosting web che preferisci. Puoi utilizzare le VM, chiamate istanze, per creare la tua app, proprio come faresti se avessi la tua infrastruttura hardware. Compute Engine offre una serie 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 le 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 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 su una singola istanza. 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 delle istanze Compute Engine, delle loro configurazioni e del software.

Configurazione manuale

Puoi anche creare manualmente la tua infrastruttura su Compute Engine, partendo da zero o basandoti su un deployment di Google Cloud Marketplace. Ad esempio, potresti voler utilizzare una versione di un componente software non offerta da Cloud Marketplace oppure potresti preferire installare e configurare tutto in autonomia.

Fornire un framework completo e le best practice per la configurazione di un sito web non rientra nell'ambito di questo articolo. Ma da un punto di vista generale, l'aspetto tecnico della configurazione di un'infrastruttura di web hosting su Compute Engine richiede di:

  • Comprendere i requisiti. Se stai creando un nuovo sito web, assicurati di comprendere i componenti necessari, come le istanze, le esigenze di archiviazione e l'infrastruttura di rete. Se esegui la migrazione della tua app da una soluzione esistente, probabilmente comprendi già questi requisiti, ma devi riflettere su come la tua configurazione esistente viene mappata ai Google Cloud servizi.
  • Pianifica il design. Pensa alla tua architettura e annota il tuo progetto. Fornisci una descrizione il più esplicita possibile.
  • Crea i componenti. I componenti che di solito consideri come asset fisici, come computer e switch di rete, vengono forniti tramite i servizi in Compute Engine. Ad esempio, se vuoi un computer, devi creare un'istanza Compute Engine. Se vuoi un hard disk permanente, crealo. Gli strumenti Infrastructure as Code, come Terraform, rendono questo processo semplice e ripetibile.
  • Configura e personalizza. Dopo aver ottenuto i componenti che ti interessano, devi configurarli, installare e configurare il software e scrivere e implementare il codice di personalizzazione che ti serve. Puoi replicare la configurazione eseguendo script shell, il che contribuisce ad accelerare i deployment futuri. Anche Terraform è utile in questo caso, in quanto fornisce modelli di configurazione dichiarativi e flessibili per il deployment automatico delle risorse. Puoi anche sfruttare strumenti di automazione IT come Puppet e Chef.
  • Esegui il deployment degli asset. Presumibilmente, hai pagine web e immagini.
  • Test. Verifica che tutto funzioni come previsto.
  • Esegui il deployment in produzione. Apri il tuo sito in modo che tutti possano vederlo e utilizzarlo.

Archiviazione dei dati con Compute Engine

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

Google Cloud fornisce una serie di servizi di archiviazione gestita, 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 archiviazione dei dati in memoria completamente gestito per Redis e Memcached.
  • Archiviazione di oggetti coerente, scalabile e di grande capacità in Cloud Storage. Cloud Storage è disponibile in diverse classi:
    • 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 consultati meno di una volta al 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 sia dischi permanenti basati su disco rigido, chiamati dischi permanenti standard, sia 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 l'intera gamma e i vantaggi dei servizi di archiviazione su Google Cloud, consulta i Google Cloud prodotti di archiviazione.

Bilanciamento del carico con Compute Engine

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

Il deployment del bilanciamento del carico è flessibile e puoi utilizzare Compute Engine con le tue soluzioni esistenti. Ad esempio, il bilanciamento del carico HTTP(S) mediante Nginx è una possibile soluzione che potresti utilizzare al posto del bilanciatore del carico 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 punti di presenza perimetrali di Google, distribuiti a livello globale, per distribuire i 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 entrambi da un singolo indirizzo IP, attiva Cloud CDN per un bilanciatore del carico HTTP(S).

Scalabilità automatica con Compute Engine

Puoi configurare l'architettura in modo da aggiungere e rimuovere server in base alla domanda. Questo approccio può contribuire a garantire che il tuo sito funzioni bene in condizioni di carico di picco, mantenendo al contempo 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 template di istanza comune. Un gestore della scalabilità automatica aggiunge o rimuove istanze in un gruppo di istanze gestite. Sebbene Compute Engine disponga sia di gruppi di istanze gestite sia di gruppi di istanze non gestite, puoi utilizzare solo i gruppi di istanze gestite con un gestore della scalabilità automatica. Per saperne di più, consulta la pagina relativa alla scalabilità automatica su Compute Engine.

Per un'analisi approfondita di ciò che serve per creare una soluzione di 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 monitorare l'attività del tuo sito web.

Cloud Logging raccoglie e archivia i log di 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. La configurazione di Monitoring viene effettuata con la Google Cloud console. Puoi esaminare le metriche delle prestazioni per i servizi cloud, le macchine virtuali e i server open source più comunemente utilizzati come MongoDB, Apache, Nginx ed Elasticsearch. Puoi utilizzare 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 implementando una policy 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 Test di carico distribuito mediante Kubernetes.

Utilizzo dei container con GKE

Potresti già utilizzare container, ad esempio i container Docker. Per l'hosting web, i container offrono diversi vantaggi, tra cui:

  • Componentizzazione. Puoi utilizzare i contenitori 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 il design della tua app diventa più complesso, i container sono adatti a un'architettura orientata ai servizi, inclusi i microservizi. Questo tipo di progettazione supporta la scalabilità, tra gli altri obiettivi.
  • Portabilità. Un container ha tutto ciò che serve per essere eseguito: l'app e le relative dipendenze sono raggruppate insieme. Puoi eseguire i container su una varietà di piattaforme, senza preoccuparti dei dettagli del sistema sottostante.
  • Deployment rapido. Al momento del deployment, il sistema viene creato a partire da un insieme di definizioni e immagini, in modo che le parti possano essere implementate in modo rapido, affidabile e automatico. I container sono in genere piccoli e vengono distribuiti molto più rapidamente 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 di orchestrazione dei container open source 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 singoli container o creare e chiudere manualmente ogni container, puoi gestire automaticamente il cluster tramite GKE, che utilizza la configurazione che definisci.
  • Registrazione dell'immagine. Artifact Registry fornisce spazio di archiviazione privato per le immagini Docker su Google Cloud. Puoi accedere al registry 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 nel tuo progettoGoogle Cloud . Questo approccio garantisce per impostazione predefinita che le tue immagini personalizzate siano accessibili solo alle 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 i 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 fornitore di spazio di archiviazione esterno, se preferisci. Tuttavia, GKE interagisce con i dischi permanenti Compute Engine in modo diverso rispetto a una normale istanza 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 persino scollegare il disco e utilizzarlo con un'altra istanza. In un container, invece, i file su disco sono temporanei. Quando un container viene riavviato, ad esempio dopo un arresto anomalo, i file su disco vengono persi. Kubernetes risolve questo problema utilizzando le astrazioni volume e StorageClass. 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, devi prima capire qualcosa in più sui pod. Puoi considerare un pod come un host logico specifico per l'app per uno o più container. Un pod viene eseguito su un'istanza di 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. Naturalmente, puoi utilizzare anche un singolo container e volume in un pod, ma il pod è un'astrazione obbligatoria 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 architetture di web hosting di grandi dimensioni devono avere più server in esecuzione che possano condividere la domanda di traffico. Poiché puoi creare e gestire più container, nodi e pod con GKE, è una soluzione 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 può bilanciare il carico dei sistemi in base ai dati del protocollo internet in entrata, come indirizzo, porta e 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 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, 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, 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 Ingress 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 ulteriori informazioni sull'utilizzo del bilanciamento del carico HTTP/HTTPS in GKE, consulta Configurazione del 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 sono presenti pod in attesa di un nodo con risorse libere, ma non vengono pianificati. Se esistono questi pod, il gestore della scalabilità automatica ridimensiona il node pool se il ridimensionamento consentirebbe 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 relativi pod possono essere pianificati altrove, il nodo viene eliminato.

Per saperne di più sul gestore della scalabilità automatica dei cluster, sui suoi limiti 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 di logging.

Monitoring fornisce dashboard e avvisi per il tuo sito. La configurazione di Monitoring viene effettuata con la Google Cloud console. Puoi esaminare le metriche delle prestazioni per i servizi cloud, le macchine virtuali e i server open source 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 associa a DevOps. Questo è particolarmente vero quando si tratta di facilità di packaging, deployment e gestione. Per le esigenze del flusso di lavoro CI/CD, puoi sfruttare strumenti creati per il cloud, come Cloud Build e Cloud Deploy, o strumenti popolari come Jenkins. Per ulteriori informazioni, leggi i seguenti articoli:

Creazione su una piattaforma serverless con Cloud Run

La piattaforma serverless diGoogle Cloudti consente di scrivere il codice nel modo che preferisci, senza preoccuparti dell'infrastruttura sottostante. Puoi creare applicazioni serverless complete con spazio di archiviazione, database, machine learning e altro ancora diGoogle Cloud.

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

Utilizzando i container con Cloud Run, puoi sfruttare tecnologie avanzate 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 guida rapida per iniziare.

Archiviazione dei dati con Cloud Run

I container Cloud Run sono effimeri e devi comprendere le loro quote e limiti per i tuoi casi d'uso. I file possono essere archiviati temporaneamente per l'elaborazione in un'istanza container, ma questo spazio di archiviazione viene utilizzato dalla memoria disponibile per il servizio, come descritto nel contratto di runtime.

Per l'archiviazione permanente, in modo simile ad App Engine, puoi scegliere i servizi di Google Cloudcome 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, questo 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à complete di bilanciamento del carico HTTP(S) di livello enterprise di Google Cloud, puoi utilizzare i gruppi di endpoint di rete serverless.

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

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

Logging e monitoraggio con Cloud Run

Cloud Run ha 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 container, in genere dal tuo codice, scritti in posizioni supportate come descritto in Scrivere 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 i metodi di visualizzazione esaminano gli stessi log archiviati in Cloud Logging, ma Esplora log fornisce più dettagli e più funzionalità di filtro.

Cloud Monitoring fornisce il monitoraggio delle prestazioni di Cloud Run, metriche e controlli di uptime, oltre ad avvisi per inviare notifiche quando vengono superate determinate soglie delle metriche. Si applicano i prezzi di Google Cloud Observability, il che significa che non vengono addebitati costi 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 richiedere configurazione. Ciò significa che le metriche dei tuoi servizi Cloud Run vengono acquisite automaticamente quando sono in esecuzione.

Creazione su una piattaforma gestita con App Engine

Su Google Cloud, la piattaforma PaaS (Platform as a Service) gestita si chiama App Engine. Quando crei il tuo sito web su App Engine, puoi concentrarti sulla codifica delle funzionalità e lasciare che Google si occupi della gestione dell'infrastruttura di supporto. App Engine offre un'ampia gamma di funzionalità che rendono scalabilità, bilanciamento del carico, logging, monitoraggio e sicurezza molto più semplici rispetto a quando devi crearli e gestirli autonomamente. App Engine ti consente di codificare in una varietà di linguaggi di programmazione e può utilizzare una varietà di altri Google Cloud servizi.

App Engine fornisce l'ambiente standard, che ti consente di eseguire 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 la domanda di traffico. La tua app viene eseguita in un ambiente sicuro, affidabile e 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 Compute Engine configurabili, ma App Engine gestisce l'ambiente di hosting per te. Ciò significa che puoi utilizzare runtime aggiuntivi, inclusi runtime personalizzati, per avere più opzioni di linguaggi di programmazione. Puoi anche sfruttare alcune delle flessibilità offerte da Compute Engine, ad esempio la scelta tra una serie di opzioni di CPU e memoria.

Linguaggi di programmazione

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

Con l'ambiente flessibile, scrivi 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 personalizzati.

Se il linguaggio di programmazione che utilizzi è una preoccupazione primaria, 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, consulta Scelta di un ambiente App Engine.

Tutorial introduttivi per lingua

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

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

Archiviazione dei dati con App Engine

App Engine offre diverse opzioni per archiviare i dati:

Nome Struttura Coerenza
Firestore Senza schema Coerenza elevata.
Cloud SQL Relazionale Coerenza elevata.
Cloud Storage File e relativi metadati Fortemente coerente, tranne quando esegui operazioni di elenco che recuperano un elenco di bucket o oggetti.

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

Per maggiori dettagli sullo spazio di archiviazione in App Engine, vedi Scegliere un'opzione di archiviazione, poi seleziona il linguaggio di programmazione che preferisci.

Quando utilizzi l'ambiente flessibile, puoi utilizzare tutte le stesse opzioni di archiviazione dell'ambiente standard, nonché 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à complete di bilanciamento del carico HTTP(S) di livello enterprise di Google Cloud, puoi utilizzare i gruppi di endpoint di rete serverless.

Per lo scaling, App Engine può creare e chiudere automaticamente le istanze in base alle fluttuazioni del traffico oppure 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 anche con librerie standard specifiche per la lingua che forniscono funzionalità di logging e inoltrano 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 consente di utilizzare tutte le funzionalità di Cloud Logging e richiede solo poche righe di codice specifiche di Google Cloud.

Cloud Monitoring fornisce funzionalità per monitorare le tue app App Engine. Tramite la console Google Cloud , puoi monitorare incident, controlli di uptime e altri dettagli.

Creazione di sistemi di gestione dei contenuti

Ospitare un sito web significa gestire gli asset del tuo sito web. Cloud Storage fornisce un repository globale per questi asset. Un'architettura comune esegue il deployment di contenuti statici in Cloud Storage e poi 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 anche un'API compatibile con Amazon S3, quindi qualsiasi sistema che funziona con Amazon S3 può funzionare con Cloud Storage.

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

Passaggi successivi

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