Questo articolo illustra come ospitare un sito web su Google Cloud. Google Cloud offre una piattaforma solida, flessibile, affidabile e scalabile per la pubblicazione di siti web. Google ha creato Google Cloud utilizzando lo stesso infrastruttura che Google utilizza per pubblicare contenuti da siti come Google.com, YouTube e Gmail. Puoi ospitare i contenuti del tuo sito web utilizzando il tipo e progettazione dell'infrastruttura più adatta 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 sito a Google Cloud.
Se vuoi creare un sito web semplice, valuta la possibilità di utilizzare Google Sites, uno strumento strutturato di creazione di wiki e pagine web. Per ulteriori informazioni, visita Guida di Sites.
Scelta di un'opzione
Se non hai mai utilizzato Google Cloud, è un approccio ragionevole utilizzando il tipo di tecnologia con cui hai già familiarità. Per Ad esempio, se al momento utilizzi server hardware o macchine virtuali (VM) per ospitare sul tuo sito, magari con un altro cloud provider o con il tuo hardware, Compute Engine offre un'esperienza paradigma per te. 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, potrai esplorare la varietà dei prodotti e dei servizi offerti da Google Cloud. Ad esempio: se hai iniziato con Compute Engine, potresti aumentare le capacità del sito utilizzando Google Kubernetes Engine (GKE) o migrare alcune o tutte le funzionalità in App Engine e in 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 | |
Macchine virtuali | Compute Engine | Cloud SQL, Cloud Storage, Firestore e Bigtable oppure puoi usare un altro fornitore 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 | |
Container | GKE | Simile a Compute Engine, ma interagisce con i dischi permanenti in modo diverso |
Rete HTTP(S) |
Gestore della scalabilità automatica dei cluster | |
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 | |
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 |
Questo articolo può aiutarti a comprendere le tecnologie principali che puoi utilizzare per l'hosting web su Google Cloud e dare un'occhiata il funzionamento delle tecnologie. L'articolo fornisce link alla documentazione completa, tutorial e articoli sulle soluzioni, che possono aiutarti a comprendere meglio, quando è tutto pronto.
Informazioni sui costi
Ci sono così tante variabili e ogni implementazione è diversa, esula dall'ambito di questo articolo fornire consigli specifici sui costi. A comprendere i principi di Google relativi al funzionamento dei prezzi su Google Cloud, vedi la pagina dei prezzi. Per comprendere i prezzi dei singoli servizi, consulta i prezzi dei prodotti . Puoi utilizzare anche Calcolatore prezzi per stimare il potenziale utilizzo di Google Cloud. Puoi fornire i dettagli dei servizi che vuoi usare e vedere una stima dei prezzi.
Configurazione dei servizi dei nomi di dominio
In genere, è consigliabile registrare un nome di dominio per il sito. Puoi utilizzare uno dei seguenti registrar dei 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 La documentazione di Cloud DNS include una guida rapida per ottenere parteciperai.
Se vuoi utilizzare un provider DNS esistente, di solito devi
creare un paio di record con quel provider. Per un nome di dominio come
example.com
, crei un record A
con il tuo provider DNS. Per
www.example.com
sottodominio, crei un record CNAME
per www
per puntare
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 dei nomi di dominio è anche il tuo provider DNS, probabilmente che devono fare. Se utilizzi provider separati per la registrazione e il DNS, assicurati che il tuo registrar dei nomi di dominio abbia i server dei nomi corretti associati il 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. Vengono pubblicate pagine web statiche invariate, così come sono state scritte, solitamente tramite HTML. Uso di un sito web statico è una buona opzione se le pagine del tuo sito raramente cambiano dopo che sono pubblicati, ad esempio post di blog o pagine appartenenti a piccole aziende sito web. Puoi fare molto con le pagine web statiche, ma se hai bisogno che il tuo sito interazioni con gli utenti tramite codice lato server, dovresti prendi in considerazione le altre opzioni illustrate 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, potresti creare 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 funziona, puoi aggiornare le pagine statiche utilizzando
il processo 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
di integrazione continua/distribuzione continua (CI/CD), come
Jenkins
di aggiornare i contenuti nel
di sincronizzare la directory di una VM
con un bucket. Jenkins dispone di Cloud Storage
plug-in
che fornisce un passaggio post-build Google Cloud Storage Uploader
per pubblicare la build
gli artefatti 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 direttamente e in modo sicuro senza attraverso i tuoi server.
Per ottenere il massimo rendimento dal tuo sito web statico, consulta Best practice per Cloud Storage.
Per ulteriori informazioni, consulta le seguenti pagine:
- Hosting di un sito web statico
- J sta per Jenkins (post del blog)
- Band Aid 30 su Google Cloud (post del blog)
- Documentazione di Cloud Storage
Hosting di un sito web statico con Firebase Hosting
Firebase Hosting offre un hosting statico rapido e sicuro per la tua app web. Con Firebase Hosting 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 che ottieni utilizzando Firebase Hosting:
- SSL a configurazione zero è integrato in Firebase Hosting. Esegue il provisioning di SSL certificati su domini personalizzati gratuitamente.
- Tutti i tuoi contenuti vengono pubblicati tramite HTTPS.
- I contenuti vengono forniti agli utenti dai lati CDN attorno allo nel mondo.
- Con 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 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 con pagina singola e altri siti simili alle app.
- Hosting è progettato per essere utilizzato senza problemi con altre funzionalità di Firebase.
Per ulteriori informazioni, consulta le seguenti pagine:
Utilizzo delle macchine virtuali con Compute Engine
Per i casi d'uso di Infrastructure as a Service (IaaS), Google Cloud fornisce Compute Engine. Compute Engine offre una solida struttura dell'infrastruttura, 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, instances, per creare proprio come se avessi un'infrastruttura hardware personale. 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.
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 del deployment, Cloud Marketplace mostra le stime dei costi per che eseguono il sito, ti dà informazioni chiare su quali versioni del software componenti che installa per te e ti consente di personalizzare la configurazione modificando i nomi delle istanze dei componenti, scegliendo il tipo di macchina e scegliendo 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 la tua infrastruttura su Compute Engine manualmente, creando la tua configurazione da zero o creando il deployment di Google Cloud Marketplace. Ad esempio, potresti voler utilizzare una la versione di un componente software non offerta da Cloud Marketplace; oppure forse preferisci installare e configurare tutto in autonomia.
Fornire un framework completo e best practice per la creazione di un sito web è che esulano dall'ambito di questo articolo. Ma da un punto di vista generale, il lato tecnico la configurazione di un'infrastruttura di web hosting 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 un già esistente, probabilmente conosci già questi requisiti, ma devi pensare a come la tua configurazione esistente viene mappata Servizi Google Cloud.
- Pianifica la progettazione. Pensa alla tua architettura e annota il tuo la progettazione. Cerca di essere il più esplicito possibile.
- Crea i componenti. I componenti che solitamente consideri risorse fisiche, come computer e switch di rete, attraverso i servizi di Compute Engine. Ad esempio, se vuoi che una 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, contribuendo a velocizzare i deployment futuri. Anche in questo caso Terraform è utile, fornendo modelli di configurazione 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.
- Prova. Verifica che tutto funzioni come previsto.
- Esegui il deployment in produzione. Rendi il tuo sito visibile e utilizzato da tutti.
Archiviazione dei dati con Compute Engine
La maggior parte dei siti web richiede un qualche tipo di spazio di archiviazione. 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, 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:
- L'opzione 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 tua tecnologia di archiviazione preferita su Compute Engine, usando i dischi permanenti. Ad esempio, puoi configurare PostgreSQL come database SQL MongoDB come spazio di archiviazione NoSQL. Per comprendere l'intera gamma e i vantaggi dello spazio 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 di distribuire il carico di lavoro tra i server è spesso un requisito. Hai una varietà di opzioni per la progettazione di server web con bilanciamento del carico Compute Engine, tra cui:
- Bilanciamento del carico HTTP(S).
Illustra le nozioni di base dell'utilizzo di Cloud Load Balancing.
- Bilanciamento del carico basato sui contenuti. Illustra come distribuire il traffico su istanze diverse in base all'URL in entrata.
- Bilanciamento del carico tra regioni. Viene illustrata la configurazione di istanze VM in diverse regioni e l'utilizzo del bilanciamento del carico HTTP o HTTPS per distribuire il traffico tra le varie regioni.
- Bilanciamento del carico del proxy TCP. Viene illustrata la configurazione del bilanciamento del carico del proxy TCP globale per un servizio che esiste in più regioni.
- Bilanciamento del carico del proxy SSL. Viene illustrata la configurazione del bilanciamento del carico del proxy SSL globale per un servizio che esiste in più regioni.
- Terminazione IPv6 per il bilanciamento del carico HTTP(S), per il proxy SSL e per il proxy TCP. Spiega la terminazione IPv6 e le opzioni per configurare i bilanciatori del carico e 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 con backend Microsoft IIS. Mostra come utilizzare il bilanciatore del carico di Compute Engine per distribuire verso i server Microsoft Internet Information Services (IIS).
- Configurazione del bilanciamento del carico interno Puoi configurare un bilanciatore del carico che distribuisca il traffico di rete su un non esposta a internet. Il bilanciamento del carico interno è utile non solo per le app intranet in cui tutto il traffico rimane su una privata, ma anche per le app web complesse in cui invia richieste ai server di backend utilizzando una rete privata.
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
Perché il tempo di risposta è una metrica fondamentale per qualsiasi sito web, l'utilizzo di una rete CDN per una minore latenza e un aumento delle prestazioni sono spesso un requisito, soprattutto per un sito con traffico web globale.
Cloud CDN utilizza il servizio di Google distribuito a livello globale punti di presenza (POP) perimetrali per distribuire contenuti dalle posizioni della cache più vicine a 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 la tua architettura in modo da aggiungere e rimuovere server la domanda può variare. Questo approccio può aiutarti a garantire che il tuo sito abbia un buon rendimento sotto i picchi di carico, mantenendo i costi sotto controllo durante i periodi di domanda più tipici cicli. Compute Engine fornisce un gestore della scalabilità automatica che non ha uno scopo specifico.
La scalabilità automatica è una funzionalità gruppi di istanze gestite. Un gruppo di istanze gestite è un pool di istanze di macchine virtuali omogenee, 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 un'app web scalabile e resiliente per la risoluzione dei problemi, consulta Creazione di app web scalabili e resilienti.
Logging e monitoraggio con Compute Engine
Google Cloud include funzionalità che puoi usare per tenere sotto controllo che accade con il 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 un agente.
Cloud Monitoring fornisce dashboard avvisi per il tuo sito. Puoi configurare Monitoring con 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à del sito web mediante il deployment di un criterio di avviso che crea un incidente se il controllo di uptime non va a buon fine.
Gestione di DevOps con Compute Engine
Per informazioni sulla gestione di DevOps con Compute Engine, vedi Test di carico distribuito con Kubernetes.
Utilizzo dei container con GKE
Forse stai già utilizzando container, ad esempio Docker containerizzati. Per l'hosting web, i container offrono diversi vantaggi, tra cui:
- Componentizzazione. Puoi usare i container per separare i vari della tua app web. Ad esempio, supponiamo che il tuo sito utilizzi un sito web un server web e un database. Puoi eseguire questi componenti in container separati, Modificare e aggiornare un componente senza influire sull'altro. Come tuo di progettazione di un'app più complessa, i container sono perfetti per orientata ai servizi, tra cui microservizi. Tra gli altri obiettivi, questo tipo di progettazione supporta la scalabilità.
- 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 di piccole dimensioni e il deployment più rapidamente rispetto, ad esempio, alle macchine virtuali.
Il container computing su Google Cloud offre ancora più vantaggi per il web di hosting, tra cui:
- Orchestrazione. GKE è un servizio gestito basato su Kubernetes il sistema open source di orchestrazione dei container introdotto da Google. Con GKE, il codice viene eseguito in container che fanno parte di un cluster composto da istanze di Compute Engine. Invece di per l'amministrazione di singoli container o la creazione e l'arresto di manualmente, puoi gestire il cluster automaticamente GKE, che utilizza la configurazione da te definita.
- Registrazione delle immagini. Container Registry o Artifact Registry offre 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 registro che ospita le tue immagini personalizzate in Cloud Storage nel progetto Google Cloud. Questo approccio garantisce, per impostazione predefinita, che le tue immagini personalizzate siano accessibili solo dalle entità che hanno accesso al tuo progetto.
- Mobilità. Ciò significa che hai la flessibilità di spostare e combinare carichi di lavoro con altri cloud provider o combinare carichi di lavoro di cloud computing con implementazioni on-premise per creare una soluzione ibrida.
Archiviazione dei dati con GKE
Poiché GKE viene eseguito su Google Cloud, 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 API, oppure puoi usare un altro fornitore di archiviazione esterno, se preferisci. 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, finché l'istanza esiste, il volume del disco rimane
con l'istanza. Puoi anche scollegare il disco e utilizzarlo con un
in esecuzione in un'istanza Compute Engine. In un container, invece, i file su disco sono temporanei. Quando un container
ad esempio in seguito a un arresto anomalo, i file su disco vengono persi. Kubernetes risolve
questo problema utilizzando
volume
e Classe di archiviazione
astrazioni. 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 grandi architetture di web hosting devono avere più server in esecuzione possono condividere le richieste di traffico. Poiché puoi creare e gestire più di container, nodi e pod con GKE, è una scelta 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 è usare di Compute Engine del carico di rete. Il bilanciamento del carico di rete può bilanciare il carico dei sistemi in base all'orario in entrata dati relativi al protocollo internet, come indirizzo, porta e tipo di protocollo. Rete il bilanciamento del carico utilizza regole di forwarding. Queste regole puntano a pool di destinazione che elenca le istanze disponibili per il bilanciamento del carico.
Con il bilanciamento del carico di rete, puoi bilanciare il carico aggiuntivo basato su TCP/UDP come il traffico SMTP e la tua app può controllare direttamente i pacchetti.
Puoi eseguire il deployment del bilanciamento del carico di rete semplicemente aggiungendo 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, viene eseguita La risorsa Ingress gestisce il provisioning e la configurazione di Compute Engine HTTP/HTTPS.
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 questi pod, il gestore della scalabilità automatica ridimensiona il pool di nodi se il ridimensionamento consente ai pod in attesa di essere pianificati.
Il gestore della scalabilità automatica del cluster monitora anche l'utilizzo di tutti i nodi. Se un nodo non è necessario per un periodo di tempo prolungato e tutti i suoi pod possono essere pianificati 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. Tu può visualizzare o esportare i log e integrare log di terze parti utilizzando un agente Logging.
Monitoring fornisce dashboard e avvisi per nel tuo sito. Puoi configurare Monitoring con Console Google Cloud. Puoi rivedere metriche delle prestazioni per servizi cloud, macchine virtuali e i modelli 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à molte delle è un vantaggio per la maggior parte delle persone quando pensa a DevOps. Ciò è particolarmente vero per quanto riguarda la facilità di pacchettizzazione, deployment e gestione. Per CI/CD per soddisfare le esigenze dei tuoi flussi di lavoro, puoi sfruttare gli strumenti creati per il cloud, come Cloud Build, e Cloud Deploy, o popolari come Jenkins. Per ulteriori informazioni, consulta 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, ottieni di concentrarsi sulla programmazione delle tue funzionalità e lasciare che Google si occupi di gestire dell'infrastruttura di supporto. App Engine offre una vasta gamma di funzionalità che semplificano la scalabilità, il bilanciamento del carico, il logging, il monitoraggio e la sicurezza di doverli creare e gestire personalmente. App Engine ti consente codice in una varietà di linguaggi di programmazione e può utilizzare una e altri servizi Google Cloud.
App Engine fornisce l'ambiente standard, che ti consente di eseguire le app in un ambiente sicuro con sandbox. Lo standard di App Engine distribuisce equamente le richieste su più server e ne scala per soddisfare le esigenze di traffico. La tua app viene eseguita nel suo ambiente sicuro e affidabile indipendentemente dall'hardware, dal sistema operativo o dalla posizione fisica o server web.
Per offrirti più opzioni, App Engine offre l'ambiente flessibile. Quando utilizzi l'ambiente flessibile, l'app viene eseguita in una configurazione le istanze di Compute Engine, ma App Engine gestisce le istanze dell'ambiente di rete. 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. Tu puoi personalizzare questi runtime o fornire il tuo runtime con un o Dockerfile.
Se il linguaggio di programmazione che utilizzi rappresenta una delle principali preoccupazioni, devi decidere se i runtime forniti dall'ambiente standard di App Engine ai tuoi requisiti. Se non lo fanno, è consigliabile 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 tutorial seguenti possono aiutarti a iniziare a utilizzare lo standard App Engine questo ambiente:
- Hello World in Python
- Hello World in Java
- Hello World in PHP
- Hello World in Ruby
- Hello World in Go
- Hello World in Node.js
I tutorial seguenti possono aiutarti a iniziare a utilizzare l'ambiente flessibile:
- Introduzione a Python
- Introduzione a Java
- Introduzione a PHP
- Guida introduttiva a Go
- Introduzione a Node.js
- Introduzione a Ruby
- Introduzione a .NET
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 | Elevata coerenza, tranne quando si eseguono operazioni di elenco che generano 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 usare lo stesso spazio di archiviazione possibili dell'ambiente standard, mentre una gamma più ampia anche dei 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 instrada automaticamente le richieste in entrata le istanze di backend appropriate ed esegue 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.
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
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
in Java
puoi integrare l'appendice logback o java.util.logging
con Cloud Logging. Questo approccio abilita tutte le funzionalità di Cloud Logging
e richiede solo poche righe di codice specifico di Google Cloud.
Cloud Monitoring offre funzionalità per il monitoraggio le app di App Engine. Tramite la console Google Cloud, puoi monitorare incidenti, controlli di uptime e altri dettagli.
Creazione su una piattaforma serverless con Cloud Run
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 full stack con spazio di archiviazione, database, machine learning e altro 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 e scalabili su applicazioni containerizzate su Google Cloud. Paghi solo per il tempo di esecuzione del codice.
Utilizzando i container con Cloud Run, puoi sfruttare tecnologie mature come Nginx, Express.js e Django per creare i tuoi siti web, accedere al tuo database SQL su Cloud SQL ed eseguire il rendering pagine HTML dinamiche.
La documentazione di Cloud Run include un 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, come nel caso di App Engine, puoi scegliere servizi 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 abilitare Cloud CDN o gestire il traffico da più regioni. Inoltre, puoi utilizzare un middleware come API Gateway per migliorare il tuo servizio.
Per Cloud Run, Google Cloud gestisce la scalabilità automatica delle istanze di container per te. 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 modifica questa impostazione predefinita per specificare che un'istanza deve essere mantenuta inattiva o tiepida utilizzando l'impostazione del numero minimo di istanze.
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: log emessi dalle istanze di container, in genere dalle il tuo codice, scritto nelle località supportate come descritto in Scrittura dei log dei container.
Puoi visualizzare i log relativi al tuo servizio in due modi:
- Utilizza la pagina Cloud Run nella console Google Cloud.
- Utilizza Esplora log di Cloud Logging nella console Google Cloud.
Entrambi questi metodi di visualizzazione esaminano gli stessi log archiviati Cloud Logging, ma Esplora log fornisce più dettagli e più funzionalità di filtro.
Cloud Monitoring fornisce Monitoraggio delle prestazioni di Cloud Run, metriche, e i controlli di uptime, oltre agli avvisi per inviare notifiche al superamento di determinate soglie delle metriche. Prezzi di Google Cloud Observability Ciò significa che non viene addebitato alcun costo per le metriche nella versione completamente gestita di Cloud Run. Tieni presente che puoi utilizzare anche Metriche personalizzate di Cloud Monitoring.
Cloud Run è integrato con Cloud Monitoring senza necessità di configurazione. Ciò significa che le metriche I servizi Cloud Run vengono acquisiti automaticamente durante l'esecuzione.
Creazione di sistemi di gestione dei contenuti
Ospitare un sito web significa gestire gli asset del sito. Cloud Storage un repository globale per questi asset. Viene eseguito il deployment di un'architettura comune i contenuti statici su Cloud Storage, per poi sincronizzarli 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 inoltre API compatibile con Amazon S3, in modo che qualsiasi sistema compatibile con Amazon S3 possa funzionare con Cloud Storage.
Il diagramma seguente è un'architettura di esempio per un sistema di gestione dei contenuti.
Passaggi successivi
- Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Dai un'occhiata al nostro Centro architetture cloud.