Hosting di siti web

Last reviewed 2024-06-11 UTC

Questo articolo spiega 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 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 il design dell'infrastruttura più adatti alle tue esigenze.

Questo articolo potrebbe esserti utile se:

  • Conoscenza di come creare un sito web, inoltre ha eseguito il deployment e ne ha eseguito infrastruttura di hosting web.
  • Valutare se e come eseguire la migrazione del tuo sito a Google Cloud.

Se vuoi creare un sito web semplice, ti consigliamo di utilizzare Google Sites, uno strumento di creazione di pagine web e wiki strutturate. Per saperne di più, consulta la guida di Sites.

Scelta di un'opzione

Se non hai mai utilizzato Google Cloud, è ragionevole iniziare utilizzando il tipo di tecnologia che conosci già. Ad esempio, se al momento utilizzi server hardware o macchine virtuali (VM) per ospitare il tuo sito, magari con un altro provider cloud o sul tuo hardware, Compute Engine ti offre un paradigma familiare. Se usi già un'offerta PaaS (Platform as a Service), 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 per te.

Dopo aver acquisito familiarità con Google Cloud, puoi esplorare la gamma di prodotti e servizi offerti da Google Cloud. Ad esempio, se hai iniziato a utilizzare Compute Engine, puoi aumentare le funzionalità del tuo sito utilizzando Google Kubernetes Engine (GKE) o eseguendo la migrazione di alcune o tutte le funzionalità ad 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 dischi permanenti 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 di monitoraggio

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 monitoraggio

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

Monitoraggio console

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 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. L'articolo fornisce link a documentazione completa, tutorial e articoli sulle soluzioni che possono aiutarti ad acquisire una conoscenza più approfondita, quando è tutto pronto.

Informazioni sui costi

Poiché esistono molte variabili e ogni implementazione è diversa, non è 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 i prezzi dei prodotti . Puoi anche utilizzare il calcolatore dei prezzi per stimare il tuo utilizzo di Google Cloud. Puoi fornire i dettagli dei servizi che vuoi usare e vedrai 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 della tua DNS (Domain Name System), puoi utilizzare Cloud DNS come provider DNS. La documentazione di Cloud DNS include una guida rapida per iniziare.

Se hai già un provider DNS che vuoi utilizzare, in genere 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, crea un record CNAME per www per 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 tuo registrar di nomi 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 tuo registrar di nomi di dominio abbia i server dei nomi corretti associati al tuo dominio.

Dopo aver apportato le modifiche al DNS, gli aggiornamenti dei record possono richiedere del tempo si propagano a seconda dei valori di durata (TTL) nella zona. Se si tratta di un nuovo nome host, le modifiche entrano in vigore rapidamente poiché i resolver non hanno valori precedenti memorizzati nella cache e possono contattare il provider DNS per ottenere le informazioni necessarie per indirizzare le richieste.

Hosting di un sito web statico

Il modo più semplice per pubblicare contenuti di un sito web tramite HTTP(S) è ospitare pagine web statiche. Le pagine web statiche vengono pubblicate senza modifiche, come sono state scritte, in genere utilizzando HTML. L'utilizzo di un sito web statico è una buona opzione se le pagine del tuo sito cambiano raramente dopo essere state pubblicate, ad esempio i post del blog o le 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, ti consigliamo di prendere in considerazione le altre opzioni discusse 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 puoi verificare la proprietà del dominio e utilizza il tuo nome di dominio.

Puoi creare le pagine web statiche come preferisci. Ad esempio, puoi scrivere manualmente le pagine utilizzando HTML e CSS. Puoi usare un generatore di siti statico, come Jekyll Fantasma o Hugo, per creare i contenuti. Con i generatori di siti statici puoi creare un sito web statico authoring in markdown, e fornendo modelli e strumenti. Generatori di siti in genere fornire un server web locale che puoi utilizzare per visualizzare l'anteprima dei tuoi contenuti.

Una volta che il sito statico è attivo, puoi aggiornare le pagine statiche utilizzando qualsiasi procedura che preferisci. Questo processo può essere semplice come copiare a mano un aggiornata al bucket. Potresti scegliere di usare un approccio più automatizzato ad esempio l'archiviazione dei contenuti su GitHub e l'utilizzo di un webhook di eseguire un che aggiorna il bucket. Un sistema ancora più avanzato potrebbe utilizzare uno strumento di integrazione/distribuzione continua (CI/CD), come Jenkins, per aggiornare i contenuti nel bucket. Jenkins dispone di un plug-in Cloud Storage che fornisce un Google Cloud Storage Uploader passaggio post-build per pubblicare gli elementi delle build in Cloud Storage.

Se hai un'app web che deve pubblicare contenuti statici o contenuti statici caricati dagli utenti, Cloud Storage può essere un modo efficiente di ospitare e pubblicare questi contenuti, riducendo al contempo la quantità 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 dover utilizzare un proxy tramite i tuoi 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 veloce e sicuro per la tua app web. Con Firebase Hosting ti permette di eseguire il deployment di app web e contenuti statici a una rete CDN (Content Delivery Network) globale tramite un singolo comando.

Ecco alcuni vantaggi dell'utilizzo di Firebase Hosting:

  • La tecnologia SSL senza necessità di configurazione è integrata in Firebase Hosting. Esegue il provisioning di certificati SSL su domini personalizzati gratuitamente.
  • Tutti i tuoi contenuti vengono pubblicati tramite HTTPS.
  • I tuoi contenuti vengono distribuiti agli utenti dai server perimetrali della rete CDN in tutto il mondo.
  • Con l'interfaccia a riga di comando di Firebase, puoi avviare la tua app in pochi secondi. Utilizza gli strumenti a riga di comando per aggiungere le destinazioni di deployment nel processo di compilazione.
  • Offre funzionalità di gestione delle release, come il deployment atomico di nuovi asset, controllo completo delle versioni e rollback con un solo clic.
  • Hosting offre una configurazione utile per le app a pagina singola e altri siti simili alle app.
  • L'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 fornisce Compute Engine. Compute Engine fornisce un'infrastruttura di calcolo 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 disponibili, affidabili e pronti all'uso, ma la scelta il provisioning e la gestione. Il vantaggio, in questo caso, è che hai a disposizione il controllo dei sistemi e la flessibilità illimitata.

Usa Compute Engine per progettare ed eseguire il deployment di quasi tutti i servizi di hosting di siti web il sistema desiderato. Puoi utilizzare le VM, chiamate istanze, per creare la tua app, proprio come faresti se avessi la tua infrastruttura hardware. Compute Engine offre una varietà di tipi per personalizzare per soddisfare le tue esigenze e il tuo budget. Puoi scegliere quali sistemi operativi sistemi, stack di sviluppo, linguaggi, framework, servizi e altri software le tecnologie 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 una LAMP pila o WordPress con Cloud Marketplace. Il sistema esegue il deployment di una in pochi minuti su una singola istanza. Prima di eseguire il deployment, Cloud Marketplace mostra le stime dei costi per l'esecuzione del sito, fornisce informazioni chiare sulle versioni dei componenti software che vengono installati per te e ti 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 le istanze di Compute Engine, le relative configurazioni e il software.

Configurazione manuale

Puoi anche creare l'infrastruttura su Compute Engine manualmente, creando la configurazione 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 o forse preferisci installare e configurare tutto autonomamente.

Fornire un framework completo e best practice per la creazione di un sito web è che esulano dall'ambito di questo articolo. Tuttavia, da un punto di vista generale, l'aspetto tecnico della configurazione di un'infrastruttura di hosting web su Compute Engine richiede che tu:

  • Comprendi i requisiti. Se stai creando un nuovo sito web, assicurati comprendi i componenti di cui hai bisogno, come istanze, esigenze di archiviazione e la tua infrastruttura di rete. Se esegui la migrazione dell'app da una soluzione esistente, probabilmente conosci già questi requisiti, ma devi valutare come la configurazione esistente viene mappata ai servizi Google Cloud.
  • Pianifica la progettazione. Pensa alla tua architettura e prendi nota la progettazione. Fornisci una descrizione il più dettagliata possibile.
  • Crea i componenti. I componenti che in genere potresti considerare 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 disco rigido permanente, puoi creare anche questo. Gli strumenti Infrastructure as Code, come Terraform, rendono questo processo facile e ripetibile.
  • Configura e personalizza. Dopo aver ottenuto i componenti necessari, doverli configurare, installare e configurare il software, nonché scrivere ed eseguire il codice di personalizzazione di cui hai bisogno. Puoi replicare la configurazione eseguendo script shell, il che contribuisce ad accelerare i deployment futuri. Anche in questo caso Terraform è utile, in quanto fornisce modelli di configurazione dichiarativi e flessibili per il deployment automatico delle risorse. Tu sfruttare anche strumenti di automazione IT come Burattino e Cuoco.
  • Implementa gli asset. Presumibilmente hai pagine web e immagini.
  • Esegui il test. Verifica che tutto funzioni come previsto.
  • Esegui il deployment in produzione. Rendi il tuo sito visibile e utilizzato da tutti.

Memorizzazione dei dati con Compute Engine

La maggior parte dei siti web ha bisogno di un qualche tipo di spazio di archiviazione. Potrebbe essere necessario spazio di archiviazione per motivi, come il salvataggio dei 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, che è 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.
  • 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 a cui si accede 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 offre la scelta più economica per l'archiviazione, il backup ripristino di emergenza.
  • Dischi permanenti su Compute Engine da utilizzare come spazio di archiviazione principale per le tue istanze. Compute Engine offre Entrambi i dischi permanenti basati su disco rigido, denominati dischi permanenti standard, e dischi permanenti a stato solido (SSD). Puoi anche scegliere di configurare la tecnologia di archiviazione che preferisci su Compute Engine utilizzando i 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 Scegliere un'opzione di archiviazione.

Bilanciamento del carico con Compute Engine

Per qualsiasi sito web che operi 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 l'architettura dei server web bilanciati in base al 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: Bilanciamento del carico HTTP(S) con Nginx una possibile soluzione che puoi usare al posto di Compute Engine con il bilanciatore del carico di rete passthrough esterno regionale.

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

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

Scalabilità automatica con Compute Engine

Puoi configurare l'architettura in modo da aggiungere e rimuovere i server in base alle variazioni della domanda. Questo approccio può contribuire a garantire il buon funzionamento del tuo sito durante i picchi di carico, mantenendo al contempo i costi sotto controllo durante i periodi di domanda più tipici. Compute Engine fornisce un'automazione di scalabilità 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 ha gruppi di istanze gestite e non gestite, utilizzare solo gruppi di istanze gestite con un gestore della scalabilità automatica. Per ulteriori informazioni, vedi con scalabilità automatica su Compute Engine.

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

Logging e monitoraggio con Compute Engine

Google Cloud include funzionalità che puoi utilizzare per tenere d'occhio cosa accade sul 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 quelli di terze parti utilizzando un agente di logging.

Logging

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

Cloud Monitoring fornisce anche controlli di uptime, che inviano richieste ai tuoi siti web per vedere se rispondono. Puoi monitorare la disponibilità di un sito web implementando un criterio di avviso che crei 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 con Kubernetes.

Utilizzo dei container con GKE

Potresti già utilizzare i container, ad esempio quelli di Docker. Per l'hosting web, i contenitori 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 web server e un database. Puoi eseguire questi componenti in contenitori separati, modificando e aggiornando un componente senza influire sull'altro. Man mano che il design della tua app diventa più complesso, i container sono una buona scelta per 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 eseguire: la tua app e le sue dipendenze sono in bundle. Puoi eseguire i container su una una varietà di piattaforme, senza doversi preoccupare dei dettagli di sistema sottostanti.
  • Implementazione rapida. Al momento del deployment, il sistema viene creato da una un set di definizioni e immagini, per eseguire rapidamente il deployment delle parti. in modo affidabile e automatico. I container sono in genere piccoli e vengono dispiacciati molto più rapidamente rispetto, ad esempio, alle macchine virtuali.

Il calcolo dei contenitori 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é gestire i singoli contenitori o creare e arrestare manualmente ogni contenitore, puoi gestire automaticamente il cluster tramite GKE, che utilizza la configurazione che definisci.
  • Registrazione delle immagini. Container Registry o Artifact Registry forniscono spazio di archiviazione privato per le immagini Docker su Google Cloud. Puoi accedi al registry tramite un protocollo HTTPS di eseguire il pull delle immagini da qualsiasi macchina, che si tratti di un su un'istanza Compute Engine o sul tuo hardware. Il servizio di registry ospita le tue immagini personalizzate in Cloud Storage nel tuo progetto Google Cloud. Questo approccio garantisce per impostazione predefinita che le immagini personalizzate siano accessibili solo dall'entità con accesso al tuo progetto.
  • Mobilità. Ciò significa che hai la flessibilità di spostare e combinare i carichi di lavoro con altri provider cloud o di combinare i carichi di lavoro di cloud computing con le implementazioni on-premise per creare una soluzione ibrida.

Archiviazione dei dati con GKE

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

Un'istanza Compute Engine include un disco collegato. Quando utilizzi Compute Engine, il volume del disco rimane associato all'istanza finché esiste. Puoi anche scollegare il disco e utilizzarlo con un in esecuzione in un'istanza Compute Engine. Tuttavia, in un contenitore, 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 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 impedire che i file di dati vengano eliminati quando utilizzi GKE.

Per comprendere le funzionalità e i vantaggi di un volume, è necessario innanzitutto conoscere un po' sui pod. Puoi pensare a un pod come a un host logico specifico dell'app per uno o più container. Un pod viene eseguito su un nodo in esecuzione in un'istanza Compute Engine. Quando i container sono membri di un pod, possono condividere delle risorse, tra cui un insieme di volumi di archiviazione condivisa. Questi volumi consentono ai dati per sopravvivere ai riavvii dei container e per essere condivisi tra i container all'interno pod. Naturalmente, puoi anche utilizzare un singolo container e volume in un pod, ma è un'astrazione necessaria per collegare logicamente queste risorse e l'altro.

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

Bilanciamento del carico con GKE

Molte architetture di hosting web di grandi dimensioni devono avere più server in esecuzione che possono condividere le richieste di traffico. Poiché puoi creare e gestire più contenitori, nodi e pod con GKE, è la soluzione ideale per un sistema di hosting web con bilanciamento del carico.

Utilizzo del bilanciamento del carico di rete

Il modo più semplice per creare un bilanciatore del carico in GKE è usare di Compute Engine del carico di rete. 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. Rete il bilanciamento del carico utilizza regole di forwarding. Queste regole rimandano ai 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, ad esempio HTTPS, basato sui contenuti o tra regioni, puoi integrare con il protocollo HTTP/HTTPS di Compute Engine di bilanciamento del carico. Kubernetes fornisce Risorsa in entrata che incapsula una raccolta di regole per il routing il traffico esterno verso gli 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 per 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. Questo verifica periodicamente se sono presenti pod in attesa nodo con risorse gratuite, ma che non sono pianificati. Se esistono pod di questo tipo, il gestore della scalabilità automatica ridimensiona il pool di nodi se il ridimensionamento consente di pianificare i pod in attesa.

Il gestore della scalabilità automatica dei 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 in un'altra posizione, il nodo viene eliminato.

Per saperne di più sul gestore della scalabilità automatica del cluster, sui suoi limiti consulta le best practice Documentazione del gestore della scalabilità automatica dei cluster.

Logging e monitoraggio con GKE

Come su Compute Engine, Logging e Monitoraggio fornire 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.

Il monitoraggio fornisce dashboard e avvisi per il tuo sito. Puoi configurare Monitoring con Console Google Cloud. Puoi esaminare le metriche delle prestazioni dei servizi cloud, delle macchine virtuali e dei server open source più comuni come MongoDB, Apache, Nginx ed Elasticsearch. Puoi utilizzare lo l'API Monitoring per recuperare i dati di monitoraggio e creare metriche di valutazione.

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 per quanto riguarda la facilità di packaging, deployment e gestione. Per le tue esigenze di flusso di lavoro CI/CD, puoi utilizzare gli strumenti creati per il cloud, come Cloud Build e Cloud Deploy, o strumenti comuni come Jenkins. Per ulteriori informazioni, consulta 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 codifica delle funzionalità e lasciare che sia Google a occuparsi della gestione dell'infrastruttura di supporto. App Engine offre una vasta gamma di funzionalità che semplificano notevolmente la scalabilità, il bilanciamento del carico, il logging, il monitoraggio e la sicurezza rispetto a quanto faresti se dovessi crearli e gestirli autonomamente. App Engine ti consente di scrivere codice in diversi linguaggi di programmazione e può utilizzare una serie di altri servizi Google Cloud.

App Engine fornisce l'ambiente standard, che ti consente di eseguire le app in un ambiente sicuro e con limitazioni tramite sandbox. L'ambiente standard di App Engine distribuisce le richieste su più server e scala i server per soddisfare la domanda di traffico. L'app viene eseguita in un 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, runtime personalizzati, per una scelta più ampia dei linguaggi di programmazione. Puoi anche della flessibilità offerta da Compute Engine, ad esempio e potrai scegliere tra una vasta gamma di opzioni di CPU e memoria.

Linguaggi di programmazione

L'ambiente standard di App Engine fornisce runtime predefiniti e scrivere il codice sorgente in versioni specifiche lingue di programmazione supportati.

Con l'ambiente flessibile, scrivi codice sorgente in una versione di qualsiasi dei lingue 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 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, consulta Scegliere 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 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 Molto coerente, tranne quando vengono eseguite operazioni di elenco che restituiscono un elenco di bucket o oggetti.

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

Per maggiori dettagli sullo spazio di archiviazione in App Engine, vedi Scegliere un'opzione di archiviazione: e seleziona la programmazione che preferisci lingua.

Quando utilizzi l'ambiente flessibile, puoi utilizzare tutte le opzioni di archiviazione disponibili nell'ambiente standard, nonché una gamma più ampia di database di terze parti. Per maggiori informazioni informazioni 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 inoltra automaticamente le richieste in arrivo alle istanze di backend appropriate e esegue il bilanciamento del carico per te. Tuttavia, se vuoi sfruttare le funzionalità complete del bilanciamento del carico HTTP(S) di livello enterprise 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 della quantità di traffico.

Logging e monitoraggio con App Engine

In App Engine, le richieste vengono registrate automaticamente e puoi visualizzarle nella console Google Cloud. App Engine funziona anche con librerie standard specifiche per i linguaggi che forniscono funzionalità di logging e inoltra le voci di log ai log della 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 attivare tutte le funzionalità di Cloud Logging e richiede solo alcune righe di codice specifico per Google Cloud.

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

Creazione su una piattaforma serverless con Cloud Run

Il server serverless di Google Cloud consente di scrivere il codice nel modo che preferisci, senza preoccuparti della struttura sottostante dell'infrastruttura. Puoi creare applicazioni serverless complete servendoti di spazio di archiviazione, database, machine learning e altri servizi di Google Cloud.

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

Utilizzando i container con Cloud Run, puoi sfruttare tecnologie consolidate 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 temporanei e devi conoscerne quote e limiti per i tuoi casi d'uso. I file possono essere archiviati temporaneamente per essere elaborati in un contenitore ma questo spazio di archiviazione esce dalla memoria disponibile per il servizio descritto nel contratto di runtime.

Per l'archiviazione permanente, in modo simile ad App Engine, puoi scegliere i 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, questo instrada automaticamente alle richieste in entrata ai container di backend appropriati ed eseguono il bilanciamento del carico per te. Tuttavia, se vuoi sfruttare le funzionalità complete di Google Cloud, di bilanciamento del carico HTTP(S) di livello enterprise, puoi utilizzare gruppi di endpoint di rete serverless.

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

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

Logging e monitoraggio con Cloud Run

Cloud Run include due tipi di log, che vengono inviate a Cloud Logging:

  • Log delle richieste: log delle richieste inviate ai servizi Cloud Run. Questi log vengono creati automaticamente.
  • Log dei container: i log emessi dalle istanze dei container, in genere dal tuo codice, scritti nelle 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 questi metodi di visualizzazione esaminano gli stessi log archiviati Cloud Logging, ma Esplora log fornisce più dettagli e più funzionalità di filtro.

Cloud Monitoring fornisce monitoraggio del rendimento di Cloud Run, metriche e controlli di uptime, nonché avvisi per inviare notifiche quando vengono superate determinate soglie di 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 alcuna configurazione o configurazione richiesta. Ciò significa che le metriche I servizi Cloud Run vengono acquisiti automaticamente durante l'esecuzione.

Creazione di sistemi di gestione dei contenuti

L'hosting di un sito web significa gestire gli asset del sito web. Cloud Storage un repository globale per questi asset. Un'architettura comune esegue il deployment di contenuti statici in Cloud Storage e poi esegue la sincronizzazione con Compute Engine per eseguire il rendering di pagine dinamiche. Cloud Storage funziona con molti sistemi di gestione dei contenuti di terze parti, come WordPress Drupal e Joomla. Cloud Storage offre inoltre API compatibile con Amazon S3, in modo che qualsiasi sistema compatibile con Amazon S3 possa funzionare con Cloud Storage.

Il diagramma seguente 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. Dai un'occhiata al nostro Centro architetture cloud.