Questo articolo illustra come ospitare un sito web su Google Cloud. Google Cloud offre una piattaforma solida, flessibile, affidabile e scalabile per servire i siti web. Google ha creato Google Cloud utilizzando la stessa infrastruttura utilizzata da Google per fornire contenuti da siti come Google.com, YouTube e Gmail. Puoi servire i contenuti del tuo sito web utilizzando il tipo e il design dell'infrastruttura che meglio si adatta alle tue esigenze Potresti trovare utile questo articolo se sei: - Conoscenza di come creare un sito Web e aver già distribuito ed eseguito alcune infrastrutture di servizio Web - Valutare se e come migrare il tuo sito su Google Cloud Se desideri creare un sito web semplice, prendi in considerazione l'utilizzo di Google Sites, uno strumento strutturato per la creazione di pagine web e wiki. Per ulteriori informazioni, visita la guida di Sites ## Scelta di un'opzione Se sei nuovo nell'utilizzo di Google Cloud, è un approccio ragionevole iniziare utilizzando il tipo di tecnologia con cui hai già familiarità. Ad esempio, se attualmente utilizzi server hardware o macchine virtuali (VM) per ospitare il tuo sito, magari con un altro provider cloud 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 senza server, Cloud Run è probabilmente una buona opzione per te Dopo aver acquisito maggiore 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 tutte le funzionalità ad App Engine e Cloud Run La seguente tabella riassume le tue opzioni di hosting su Google Cloud: |Opzioni||Prodotto||Archiviazione dati||Bilanciamento del carico||Scalabilità||Registrazione e monitoraggio| |Sito web statico|| | Archiviazione cloud Hosting Firebase |Secchio Cloud Storage|| | HTTP(S) facoltativo |Automaticamente| |Macchine virtuali||Compute Engine|| | API Cloud SQL Admin, API Cloud Storage, API Datastore e API Cloud Bigtable oppure puoi utilizzare un altro provider di archiviazione esterno Dischi persistenti basati su disco rigido, chiamati | | HTTP(S) Proxy TCP Proxy SSL Terminazione IPv6 Rete Interregionale Interno |Automaticamente con i gruppi di istanze gestite| |Contenitori||GKE||Simile a Compute Engine ma interagisce con i dischi permanenti in modo diverso||Rete | HTTP(S) |Autoscaler del cluster| |Piattaforma gestita|| | Motore dell'app |Servizi Google Cloud come Cloud SQL, Firestore, Cloud Storage e database di terze parti accessibili|| | HTTP(S) Gestito da Google |Gestito da Google| |Senza server|| | Corsa delle nuvole |Servizi Google Cloud come Cloud SQL, Firestore, Cloud Storage e database di terze parti accessibili|| | HTTP(S) Gestito da Google |Gestito da Google| Questo articolo può aiutarti a comprendere le principali tecnologie che puoi utilizzare per i servizi web su Google Cloud e darti un'idea di come funzionano le tecnologie. L'articolo fornisce collegamenti a documentazione completa, esercitazioni e articoli di soluzioni che possono aiutarti a sviluppare una comprensione più profonda, quando sei pronto ## Comprensione dei costi Poiché ci sono così tante variabili 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 sui prezzi dei prodotti. Puoi anche utilizzare il calcolatore dei prezzi per stimare come potrebbe essere il tuo utilizzo di Google Cloud. Puoi fornire dettagli sui servizi che desideri utilizzare e quindi visualizzare una stima dei prezzi ## Configurazione dei servizi dei nomi di dominio Di solito, vorrai registrare un nome di dominio per il tuo sito. Puoi utilizzare un registrar di nomi di dominio pubblico, come Google Domains, per registrare un nome univoco per il tuo sito. Se desideri il controllo completo del tuo DNS (Domain Name System), puoi utilizzare Cloud DNS come provider DNS. La documentazione di Cloud DNS include una guida rapida per iniziare Se disponi di un provider DNS esistente che desideri utilizzare, in genere è necessario creare un paio di record con quel provider. Per un nome di dominio come esempio.com, crei un file Un record con il tuo provider DNS. Per il sottodominio www.example.com, crei un Record CNAME per www per puntare esso al dominio esempio.com. Il Un record associa un nome host a un indirizzo IP Il Il record CNAME crea un alias per il Un record Se il tuo registrar di nomi di dominio è anche il tuo provider DNS, probabilmente è tutto ciò che devi fare. Se utilizzi provider separati per la registrazione e il DNS, assicurati che il tuo registrar del nome 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 TTL (time-to-live) nella tua zona. Se si tratta di un nuovo nome host, le modifiche entrano in vigore rapidamente poiché 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 servire il contenuto del sito web su HTTP(S) è l'hosting *pagine web statiche*. Vengono servite pagine web statiche immutati, come sono stati scritti, di solito utilizzando HTML. Utilizzo di un sito web statico è una buona opzione se le pagine del tuo sito cambiano raramente dopo essere state modificate pubblicati, come post di blog o pagine che fanno parte di una piccola impresa sito web. Puoi fare molto con le pagine web statiche, ma se hai bisogno che il tuo sito lo faccia avere solide interazioni con gli utenti attraverso il codice lato server, dovresti considerare 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 file Secchio di archiviazione cloud, carica il contenuto e testa il tuo nuovo sito. Puoi servire i tuoi dati direttamente da storage.googleapis.com, o puoi verifica di essere il proprietario del tuo dominio e uso il tuo nome di dominio Puoi creare le tue pagine web statiche come preferisci. Ad esempio, potresti creare manualmente le pagine utilizzando HTML e CSS. Puoi usare un *generatore di siti statici*, come Jekyll, Fantasma, o Ugo, per creare il contenuto Con i generatori di siti statici, crei un sito Web statico creazione in ribasso, e fornendo modelli e strumenti. Generatori di siti in generale fornire un server Web locale che è possibile utilizzare per visualizzare in anteprima il contenuto Dopo che il tuo sito statico funziona, puoi aggiornare le pagine statiche utilizzando any processo che ti piace. Questo processo può essere semplice come copiare a mano un file pagina aggiornata nel bucket. Potresti scegliere di utilizzare un approccio più automatizzato, come archiviare i tuoi contenuti su GitHub e quindi utilizzare a webhook eseguire un script che aggiorna il bucket. Un sistema ancora più avanzato potrebbe utilizzare a strumento di integrazione continua/consegna continua (CI/CD), ad esempio Jenkins, per aggiornare il contenuto del file secchio. Jenkins ha un Cloud Storage collegare che fornisce un Fase di post-compilazione di Google Cloud Storage Uploader per pubblicare la build artefatti in Cloud Storage Se disponi di un'app web che deve servire contenuti statici o contenuti multimediali statici caricati dall'utente, l'utilizzo di Cloud Storage può essere un modo conveniente ed efficiente per ospitare e servire 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 funzione consente agli utenti di caricare file multimediali di grandi dimensioni in modo diretto e sicuro senza proxy attraverso i server Per ottenere le migliori prestazioni dal tuo sito web statico, consulta Best practice per Cloud Storage Per ulteriori informazioni, consultare le seguenti pagine: - Hosting di un sito web statico - J sta per Jenkins (post sul blog) - Band Aid 30 su Google Cloud (post del blog) - Documentazione sull'archiviazione cloud Hosting di un sito web statico con Firebase HostingFirebase Hosting fornisce un hosting statico rapido e sicuro per la tua app web.Con Firebase Hosting, puoi distribuire app Web e contenuti statici a una rete globale di distribuzione di contenuti (CDN) utilizzando un singolo comandoEcco alcuni vantaggi che ottieni quando usa Firebase Hosting:- SSL a configurazione zero è integrato in Firebase Hosting.Fornisce certificati SSL su domini personalizzati gratuitamente- Tutti i tuoi contenuti vengono serviti tramite HTTPS- I tuoi contenuti vengono consegnati ai tuoi utenti dai confini CDN di tutto il mondo- Utilizzando l'interfaccia a riga di comando di Firebase, puoi rendere operativa la tua app in pochi secondi.Utilizza gli strumenti della riga di comando per aggiungere obiettivi di distribuzione nel tuo processo di compilazione- Ottieni funzionalità di gestione del rilascio, come la distribuzione atomica di nuove risorse, il versioning completo e la possibilità di eseguire un clic rollback- L'hosting offre una configurazione utile per app a pagina singola e altri siti che sono più simili ad app- L'hosting è progettato per essere utilizzato senza problemi con altre funzionalità di FirebasePer ulteriori informazioni, consulta le pagine seguenti:## Utilizzo di macchine virtuali con Compute EnginePer i casi d'uso dell'infrastruttura distribuita come servizio (IaaS) , Google Cloud fornisce Compute Engine.Compute Engine fornisce una solida infrastruttura di elaborazione, ma devi scegliere e configurare i componenti della piattaforma che desideri utilizzare.Con Compute Engine, è tua responsabilità configurare, amministrare e monitorare i sistemi.Google garantisce che le risorse siano disponibili, affidabili e pronte per l'uso, ma spetta a te fornirle e gestirle.Il vantaggio, qui, è che hai il controllo completo dei sistemi e una flessibilità illimitataUsa Compute Engine per progettare e implementare quasi tutti i sistemi di gestione dei siti web che desideri.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 di macchine per personalizzare la tua configurazione in base alle tue esigenze e al tuo budget.Puoi scegliere quali sistemi operativi, stack di sviluppo, linguaggi, framework, servizi e altre tecnologie software preferisciConfigurazione automatica con Google Cloud MarketplaceIl il modo più semplice per eseguire il deployment di uno stack di servizi Web completo è utilizzare Google Cloud Marketplace.Con pochi clic, puoi implementare una qualsiasi delle oltre 100 soluzioni completamente realizzate con Google Click to Deploy o BitnamiAd esempio, puoi configurare uno stack LAMP o WordPress con Cloud Marketplace.Il sistema distribuisce uno stack software completo e funzionante in pochi minuti su una singola istanza.Prima della distribuzione, Cloud Marketplace mostra le stime dei costi per l'esecuzione del sito, fornisce informazioni chiare su quali versioni dei componenti software installa per te e ti consente di personalizzare la configurazione modificando i nomi delle istanze dei componenti, scegliendo il tipo di macchina e scegliendo una dimensione del disco.Dopo la distribuzione, hai il controllo completo sulle istanze di Compute Engine, sulle loro configurazioni e sul softwareConfigurazione manualePuoi anche creare la tua infrastruttura su Compute Engine manualmente, creando la configurazione da zero o basandosi su un'implementazione 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 da soloFornire un servizio completo quadro e le migliori pratiche per la creazione di un sito web va oltre lo scopo di questo articolo.Ma da un punto di vista generale, l'aspetto tecnico della configurazione di un'infrastruttura di servizi web su Compute Engine richiede che tu:Capisca i requisiti.Se stai costruendo un nuovo sito web, assicurati di comprendere i componenti di cui hai bisogno, come le istanze, le esigenze di archiviazione e l'infrastruttura di rete.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 il design.Pensa alla tua architettura e scrivi il tuo design.Sii il più esplicito possibile.Crea i componenti.I componenti che di solito potresti considerare risorse fisiche, come computer e switch di rete, vengono forniti tramite i servizi in Compute Engine.Ad esempio, se desideri un computer, devi creare un'istanza di Compute Engine.Se vuoi un hard disk persistente, crea anche quello.Cloud Deployment Manager o Terraform rende questo processo facile e ripetibile.Configura e personalizza. Dopo aver ottenuto i componenti desiderati, è necessario configurarli, installare e configurare il software e scrivere e distribuire il codice di personalizzazione necessario.È possibile replicare la configurazione eseguendo gli script della shell, il che aiuta a velocizzare le distribuzioni future.Deployment Manager aiuta anche in questo caso, fornendo modelli di configurazione dichiarativi e flessibili per la distribuzione automatica delle risorse.Puoi anche sfruttare gli strumenti di automazione IT come Puppet e Chef.Distribuisci le risorse.Presumibilmente hai pagine web e immagini.Prova.Verifica che tutto funzioni come previsto.Distribuisci in produzione.Apri il tuo sito affinché il mondo lo possa vedere e utilizzarePer aiutarti a iniziare e capire com'è configurare manualmente le istanze di Compute Engine, prova una o più di i seguenti tutorial:Archiviazione dei dati con Compute Engine La maggior parte dei siti Web necessita di un qualche tipo di spazio di archiviazione. Potresti aver bisogno di spazio di archiviazione per una serie di motivi, ad esempio il salvataggio dei file caricati dagli utenti e, naturalmente, le risorse utilizzate dal tuo sito Google Cloud offre una varietà di servizi di archiviazione gestiti, tra cui: - Un database SQL in Cloud SQL, basato su MySQL - Due opzioni per l'archiviazione dei dati NoSQL: Firestore e Cloud Bigtable - Archiviazione di oggetti coerente, scalabile e di grande capacità in Archiviazione cloud Cloud Storage è disponibile in diverse classi: - Standard offre la massima disponibilità - Nearline offre 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 e il ripristino di emergenza - Dischi permanenti su Compute Engine da utilizzare come storage principale per le tue istanze. Offerte di Compute Engine entrambi i dischi persistenti basati su disco rigido, chiamati dischi persistenti standard e dischi persistenti a stato solido (SSD). Puoi anche scegliere di configurare la tua tecnologia di archiviazione preferita su Compute Engine utilizzando dischi permanenti. Ad esempio, puoi impostare PostgreSQL come database SQL o MongoDB come archivio NoSQL. Per comprendere l'intera gamma e i vantaggi dei servizi di archiviazione su Google Cloud, vedi Scelta di un'opzione 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 una varietà di opzioni quando progetti i tuoi server web con bilanciamento del carico su Compute Engine, tra cui: - Bilanciamento del carico HTTP(S). Spiega i fondamenti dell'utilizzo di Cloud Load Balancing - Bilanciamento del carico basato sul contenuto. Dimostra come distribuire il traffico a diverse istanze in base all'URL in entrata - Bilanciamento del carico tra regioni. Dimostra la configurazione di istanze VM in diverse regioni e l'utilizzo del bilanciamento del carico HTTP o HTTPS per distribuire il traffico tra le regioni - Bilanciamento del carico del proxy TCP. Illustra l'impostazione del bilanciamento del carico del proxy TCP globale per un servizio che esiste in più regioni - Bilanciamento del carico del proxy SSL. Illustra l'impostazione del bilanciamento del carico del proxy SSL globale per un servizio che esiste in più regioni - Terminazione IPv6 per bilanciamento del carico HTTP(S), proxy SSL e proxy TCP. Spiega la terminazione IPv6 e le opzioni per la configurazione dei bilanciamenti del carico per gestire le richieste IPv6 - Bilanciamento del carico di rete. Mostra uno scenario di base che imposta una configurazione di bilanciamento del carico di livello 3 per distribuire il traffico HTTP tra le istanze integre - Bilanciamento del carico tra regioni utilizzando i backend di Microsoft IIS. Mostra come utilizzare il bilanciatore del carico di Compute Engine per distribuire il traffico ai server Microsoft Internet Information Services (IIS). - Configurazione del bilanciamento del carico interno È possibile configurare un bilanciamento del carico che distribuisce il traffico di rete su una rete privata non esposta a Internet. Il bilanciamento del carico interno è utile non solo per le app intranet in cui tutto il traffico rimane su una rete privata, ma anche per le app Web complesse in cui un front-end richiede ai server di back-end utilizzando una rete privata L'implementazione del bilanciamento del carico è flessibile e puoi utilizzare Compute Engine con le tue soluzioni esistenti. Ad esempio, il bilanciamento del carico HTTP(S) tramite Nginx è una possibile soluzione che potresti utilizzare 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 un 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 edge distribuiti a livello globale di Google 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, abilita Cloud CDN per un bilanciatore del carico HTTP(S) Scalabilità automatica con Compute Engine Puoi configurare la tua architettura per aggiungere e rimuovere server al variare della domanda. Questo approccio può aiutare a garantire che il tuo sito funzioni bene sotto i picchi di carico, mantenendo i costi sotto controllo durante i periodi di domanda più tipici. Compute Engine fornisce un gestore della scalabilità automatica che puoi utilizzare a questo scopo La scalabilità automatica è una funzionalità dei gruppi di istanze gestite. Un gruppo di istanze gestite è un pool di istanze di macchine virtuali omogenee, create da un modello di istanza comune. Un gestore della scalabilità automatica aggiunge o rimuove istanze in un gruppo di istanze gestite. Sebbene Compute Engine disponga di gruppi di istanze gestite e non gestite, puoi utilizzare solo gruppi di istanze gestite con un gestore della scalabilità automatica. Per ulteriori informazioni, consulta scalabilità automatica su Compute Engine Per uno sguardo approfondito a ciò che serve per creare una soluzione di app Web scalabile e resiliente, vedere Creazione di app Web scalabili e resilienti Logging e monitoraggio con Compute Engine Google Cloud include funzionalità che puoi utilizzare per tenere d'occhio ciò che accade con il tuo sito web Cloud Logging raccoglie e archivia i log da app e servizi su Google Cloud. È possibile visualizzare o esportare registri e integrare registri di terze parti utilizzando un agente di registrazione Cloud Monitoring fornisce dashboard e avvisi per il tuo sito.Configura il monitoraggio con Google Cloud Console.Puoi rivedere le metriche delle prestazioni per servizi cloud, macchine virtuali e server open source comuni come MongoDB, Apache, Nginx ed Elasticsearch.Puoi utilizzare l'API di Cloud Monitoring per recuperare i dati di monitoraggio e creare metriche personalizzateCloud 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 crea un incidente se il controllo del tempo di attività fallisceGestione di DevOps con Compute EnginePer informazioni sulla gestione di DevOps con Compute Engine, consulta i seguenti articoli:- Test del carico distribuito utilizzando Kubernetes- Esecuzione di Spinnaker su Compute Engine- Gestione dei deployment su Google Cloud con Spinnaker# # Utilizzo di container con GKEPotresti già utilizzare container, come i container Docker.Per il servizio Web, i contenitori offrono numerosi vantaggi, tra cui:Componentizzazione.Puoi utilizzare i contenitori per separare i vari componenti della tua app web.Ad esempio, supponi che il tuo sito esegua un server Web e un database.Puoi eseguire questi componenti in contenitori separati, modificando e aggiornando un componente senza influenzare l'altro.Man mano che il design della tua app diventa più complesso, i container si adattano bene a un'architettura orientata ai servizi, inclusi i microservizi.Questo tipo di progettazione supporta la scalabilità, tra gli altri obiettivi.Portabilità.Un contenitore ha tutto ciò di cui ha bisogno per eseguire la tua app e le sue dipendenze sono raggruppate insieme.Puoi eseguire i tuoi container su una varietà di piattaforme, senza preoccuparti dei dettagli del sistema sottostante.Distribuzione rapida.Quando è il momento di implementare, il tuo sistema viene creato da una serie 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 si distribuiscono molto più rapidamente rispetto, ad esempio, alle macchine virtualiIl container computing su Google Cloud offre ancora più vantaggi per i server 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 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 chiudere ogni container manualmente, puoi gestire automaticamente il cluster tramite GKE, che utilizza la configurazione che definisci.Registrazione dell'immagine.Container Registry o Artifact Registry fornisce l'archiviazione privata per le immagini Docker su Google Cloud.Puoi accedere al registro tramite un endpoint HTTPS, in modo da estrarre le 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 progetto Google Cloud.Questo approccio garantisce per impostazione predefinita che le tue immagini personalizzate siano accessibili solo ai principali che hanno accesso al tuo progetto.Mobilità.Ciò significa che hai la flessibilità di spostare e combinare carichi di lavoro con altri fornitori di servizi cloud o di combinare carichi di lavoro di cloud computing con implementazioni locali per creare una soluzione ibridaArchiviazione dei dati con GKEPoiché GKE viene eseguito su Google Cloud e utilizza le istanze di Compute Engine come nodi, le tue opzioni di archiviazione hanno molto in comune con l'archiviazione su Compute Engine.Puoi accedere a Cloud SQL, Cloud Storage, Datastore e Bigtable tramite le loro API oppure, se lo desideri, puoi utilizzare un altro provider di archiviazione esterno.Tuttavia, GKE interagisce con i dischi permanenti di Compute Engine in modo diverso rispetto a una normale istanza di Compute EngineUn'istanza di Compute Engine include un disco collegato.Quando utilizziCompute Engine, finché esiste l'istanza, il volume del disco rimane con l'istanza.Puoi anche staccare il disco e usarlo con un'altraistanza.Ma in un contenitore, i file su disco sono effimeri.Quando un contenitoresi riavvia, ad esempio dopo un arresto anomalo, i file su disco vengono persi.Kubernetes risolvequesto problema utilizzando unvolumeastrazione e un tipo di volume ègcePersistentDiskCiò significa che puoi utilizzare i dischi permanenti di Compute Engine con i contenitori perevitare che i tuoi file di dati vengano eliminati quando utilizzi GKEPer comprendere le funzionalità e i vantaggi di un volume , dovresti prima capire qualcosa 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'istanza del nodo.Quando i container sono membri di un pod, possono condividere diverse risorse, incluso un insieme di volumi di archiviazione condivisi.Questi volumi consentono ai dati di sopravvivere ai riavvii del contenitore e di essere condivisi tra i contenitori all'interno del pod.Naturalmente, puoi anche utilizzare un singolo contenitore e volume in un pod, ma il pod è un'astrazione necessaria per connettere logicamente queste risorse tra loroPer un esempio , vedi il tutorial Utilizzo di dischi persistenti con WordPress e MySQLBilanciamento del carico con GKEMolte grandi architetture di server web devono avere più server in esecuzione in grado di condividere le richieste di traffico.Poiché puoi creare e gestire più container, nodi e pod con GKE, è una scelta naturale per un sistema di pubblicazione web con bilanciamento del caricoUtilizzo del bilanciamento del carico di reteIl 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 tuoi sistemi in base ai dati del protocollo Internet in entrata, come l'indirizzo, la porta e il tipo di protocollo.Il bilanciamento del carico di rete utilizza regole di inoltro.Queste regole puntano ai pool di destinazione che elencano quali istanze sono disponibili per essere utilizzate per il bilanciamento del carico Con il bilanciamento del carico di rete, puoi bilanciare il carico di protocolli aggiuntivi basati su TCP/UDP come il traffico SMTP e la tua app può ispezionare direttamente i pacchetti È possibile distribuire il bilanciamento del carico di rete semplicemente aggiungendo il tipo: LoadBalancer campo nel 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 instradare il traffico esterno agli endpoint Kubernetes. In GKE, una risorsa Ingress gestisce il provisioning e la configurazione del bilanciatore del carico HTTP/HTTPS di Compute Engine Per ulteriori informazioni sull'utilizzo del bilanciamento del carico HTTP/HTTPS in GKE, consulta Configurazione del bilanciamento del carico HTTP con Ingress Ridimensionamento con GKE Per il ridimensionamento automatico dei cluster, puoi usare Cluster Autoscaler. Questa funzione verifica periodicamente se sono presenti pod in attesa di un nodo con risorse libere ma non pianificati. Se tali pod esistono, il gestore della scalabilità automatica ridimensiona il pool di nodi se il ridimensionamento consentirebbe la pianificazione dei pod in attesa Cluster Autoscaler monitora anche l'utilizzo di tutti i nodi. Se un nodo non è necessario per un lungo periodo di tempo e tutti i suoi pod possono essere programmati altrove, il nodo viene eliminato Per ulteriori informazioni su Cluster Autoscaler, i suoi limiti e le best practice, consulta la documentazione di Cluster Autoscaler Logging e monitoraggio con GKE Come su Compute Engine, Logging and Monitoring fornisce i tuoi servizi di logging e monitoraggio. La registrazione raccoglie e archivia i registri da app e servizi. È possibile visualizzare o esportare registri e integrare registri di terze parti utilizzando un agente di registrazione Il monitoraggio fornisce dashboard e avvisi per il tuo sito. Puoi configurare il monitoraggio con Google Cloud Console. Puoi esaminare le metriche delle prestazioni per servizi cloud, macchine virtuali e server open source comuni come MongoDB, Apache, Nginx ed Elasticsearch. Puoi utilizzare l'API di monitoraggio per recuperare i dati di monitoraggio e creare metriche personalizzate Gestione di DevOps con GKE Quando utilizzi GKE, ottieni già molti dei vantaggi a cui la maggior parte delle persone pensa quando pensa a DevOps. Ciò è particolarmente vero quando si tratta di facilità di creazione di pacchetti, implementazione e gestione. Per le tue esigenze di flusso di lavoro CI/CD, puoi sfruttare strumenti popolari come Jenkins. Vedere i seguenti articoli: ## Basandosi su una piattaforma gestita con App Engine Su Google Cloud, la piattaforma gestita come servizio (PaaS) si chiama App Engine. Quando crei il tuo sito web su App Engine, puoi concentrarti sulla codifica delle tue funzionalità e lasciare che Google si occupi della gestione dell'infrastruttura di supporto. App Engine offre un'ampia gamma di funzionalità che rendono la scalabilità, il bilanciamento del carico, la registrazione, il monitoraggio e la sicurezza molto più semplici che se dovessi crearle e gestirle tu stesso. App Engine ti consente di codificare in una varietà di linguaggi di programmazione e può 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 e in modalità sandbox. L'ambiente standard di App Engine distribuisce le richieste su più server e ridimensiona i server per soddisfare le richieste di traffico. La tua app viene eseguita nel proprio ambiente sicuro e affidabile, indipendente dall'hardware, dal sistema operativo o dalla posizione fisica del server 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 è possibile utilizzare runtime aggiuntivi, inclusi runtime personalizzati, per più scelte di linguaggi di programmazione. Puoi anche sfruttare parte della flessibilità offerta da Compute Engine, come la scelta tra una varietà di opzioni di CPU e memoria Linguaggi di programmazione L'ambiente standard di 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 personalizzata o un Dockerfile Se il linguaggio di programmazione che utilizzi è una preoccupazione primaria, devi decidere se i tempi di esecuzione forniti dall'ambiente standard di App Engine soddisfano i tuoi requisiti. In caso contrario, dovresti prendere in considerazione l'utilizzo dell'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: - Ciao mondo in Python - Ciao mondo in Java - Ciao mondo in PHP - Ciao mondo in Ruby - Ciao mondo in movimento - Ciao mondo in Node.js I seguenti tutorial possono aiutarti a iniziare a utilizzare l'ambiente flessibile: - Iniziare con Python - Iniziare con Java - Iniziare con PHP - Iniziare con Go - Iniziare con Node.js - Iniziare con Ruby - Introduzione a .NET Archiviazione dei dati con App Engine App Engine offre opzioni per l'archiviazione dei dati: |Nome||Struttura||Consistenza| |Firestore||Senza schema||Fortemente consistente.| |Cloud SQL||Relazionale||Fortemente coerente.| |Cloud Storage||File e metadati associati||Fortemente coerente tranne quando si eseguono operazioni di elenco che ottengono un elenco di bucket o oggetti.| È inoltre possibile utilizzare diversi database di terze parti con l'ambiente standard Per ulteriori dettagli sull'archiviazione in App Engine, consulta Scegliere un'opzione di archiviazione, quindi selezionare il linguaggio di programmazione preferito Quando si utilizza l'ambiente flessibile, è possibile utilizzare tutte le stesse opzioni di archiviazione possibili con l'ambiente standard e anche una gamma più ampia di database di terze parti. Per ulteriori informazioni sui database di terze parti nell'ambiente flessibile, vedere 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 arrivo alle istanze di backend appropriate ed esegue il bilanciamento del carico per te. Tuttavia, se desideri sfruttare le funzionalità complete di bilanciamento del carico HTTP(S) di livello aziendale di Google Cloud, puoi utilizzare i gruppi di endpoint di rete senza server Per il ridimensionamento, App Engine può creare e disattivare automaticamente le istanze in base alle fluttuazioni del traffico oppure puoi specificare un numero di istanze da eseguire indipendentemente dalla quantità di traffico Registrazione e monitoraggio con App Engine In App Engine, le richieste vengono registrate automaticamente e puoi visualizzarle accede alla console di Google Cloud. Funziona anche con App Engine librerie standard specifiche della lingua che forniscono funzionalità di registrazione e inoltra le voci di log ai log nella console di Google Cloud. Per esempio, in Python puoi usare il modulo di registrazione Python standard e a Giava puoi integrare l'append di logback o java.util.logging con registrazione cloud. Questo approccio abilita tutte le funzionalità di Cloud Logging e richiede solo poche righe di codice specifico di Google Cloud Cloud Monitoring offre funzionalità per il monitoraggio delle tue app App Engine. Tramite la console di 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 codice a modo tuo senza preoccuparti dell'infrastruttura sottostante. Puoi creare applicazioni serverless full-stack con l'archiviazione, i database, il machine learning e altro ancora di Google 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 altamente scalabili 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 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 comprenderne le quote e i limiti per i tuoi casi d'uso. I file possono essere archiviati temporaneamente per l'elaborazione in un'istanza di contenitore, ma questo spazio di archiviazione esce dalla memoria disponibile per il servizio come descritto nel contratto di runtime Per l'archiviazione persistente, 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, instrada automaticamente le richieste in entrata ai container back-end appropriati ed esegue il bilanciamento del carico per te. Tuttavia, se desideri sfruttare le funzionalità complete di bilanciamento del carico HTTP(S) di livello aziendale di Google Cloud, puoi utilizzare i gruppi di endpoint di rete senza server 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 tuo servizio Per Cloud Run, Google Cloud gestisce la scalabilità automatica delle istanze di container per te. Ogni revisione viene ridimensionato automaticamente in base al numero di istanze di container necessarie per la gestione tutte le richieste in arrivo. Quando una revisione non riceve traffico, per impostazione predefinita è ridimensionato a zero istanze di contenitore. Tuttavia, se lo desideri, puoi farlo modificare questa impostazione predefinita per specificare un'istanza da mantenere inattiva o *caldo* usando l'impostazione delle istanze minime Registrazione e monitoraggio con Cloud Run Cloud Run dispone di due tipi di log, che vengono inviati automaticamente a Cloud Logging: - Registri delle richieste: registri delle richieste inviate ai servizi Cloud Run. Questi registri vengono creati automaticamente - Registri del contenitore: registri emessi dalle istanze del contenitore, in genere dal proprio codice, scritti nelle posizioni supportate come descritto in Scrittura dei registri del contenitore Puoi visualizzare i log per il tuo servizio in due modi: - Utilizza la pagina Cloud Run nella console di Google Cloud - Utilizza Cloud Logging Logs Explorer nella console di Google Cloud Entrambi questi metodi di visualizzazione esaminano gli stessi log archiviati in Cloud Logging, ma Logs Explorer fornisce maggiori dettagli e più funzionalità di filtraggio Cloud Monitoring fornisce monitoraggio delle prestazioni, metriche e controlli del tempo di attività di Cloud Run, oltre ad avvisi per l'invio di notifiche quando vengono superate determinate soglie di metriche. Si applicano i prezzi della suite operativa di Google Cloud, il che significa che non ci sono costi per le metriche sulla 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 installazione o configurazione richiesta*. Ciò significa che le metriche del tuo I servizi Cloud Run vengono acquisiti automaticamente quando sono in esecuzione ## Creazione di sistemi di gestione dei contenuti Servire un sito web significa gestire le risorse del tuo sito web. Cloud Storage fornisce un repository globale per queste risorse. Un'architettura comune esegue il deployment dei contenuti statici in Cloud Storage e quindi si sincronizza con Compute Engine per eseguire il rendering delle pagine dinamiche. Cloud Storage funziona con molti sistemi di gestione dei contenuti di terze parti, come WordPress, Drupal e Joomla. Cloud Storage offre anche un'API compatibile con Amazon S3, quindi qualsiasi sistema che funziona con Amazon S3 può funzionare con Cloud Storage Il diagramma seguente è un'architettura di esempio per un sistema di gestione dei contenuti ## Qual è il prossimo - Esplora architetture di riferimento, diagrammi, tutorial e best practice su Google Cloud. Dai un'occhiata al nostro Cloud Architecture Center.