- Serve traffic from multiple regions | Cloud Run Documentation | Google Cloud
- You can return faster responses to your users around the world by deploying services in multiple regions and routing your users to the nearest region. Deploying across multiple regions delivers low latency and higher availability in case of regional outages.
GCP ha rilasciato la settimana scorsa una funzionalità che consente di utilizzare Cloud Run in più regioni con una sola esecuzione.
Per riassumere brevemente il servizio multi-regione, supponiamo di avere le regioni di Seoul, Londra e Las Vegas.
In precedenza, era necessario distribuire singolarmente più regioni utilizzando uno script. La nuova funzionalità consente di distribuire più regioni con un singolo script.
In realtà, prima del rilascio, avevo letto la documentazione del servizio e mi aspettavo molto da questa funzionalità, ma in realtà sono rimasto un po' deluso.
La distribuzione utilizzando script, anche se si fa in una sola volta, non cambia molto perché, comunque, funziona in parallelo e quindi i tempi non sono molto diversi. Non mi aspettavo molto da questo aspetto, ma poiché tutto viene distribuito in una sola volta, non è possibile impostare variabili d'ambiente diverse per ogni regione.
Quindi, ho usato molto la funzionalità che consente a ogni Cloud Run di utilizzare valori diversi per regione per connettersi a diversi database o GCS, ma questa funzionalità ha iniziato a dare problemi.
Il secondo problema è che, ripetendo la distribuzione, a volte si vuole eliminare la cronologia precedente, ma questo non può essere controllato singolarmente. Le versioni precedenti non possono essere eliminate singolarmente perché sono in modalità di sola lettura.
Ci sono diversi svantaggi, ma come vantaggio... è possibile "raggruppare" più Cloud Run.
Nel nostro servizio, dato che utilizziamo molti Cloud Run e molte regioni, attualmente ne abbiamo circa 50, e una volta completato il lavoro attuale, arriveremo a circa 100. Utilizzando il servizio multi-regione, possiamo ridurli a 10-20. (Si tratta solo di nasconderli.)
Ecco lo script.
L'esecuzione dello script sopra riportato produce la seguente distribuzione.
Cloud Run
Innanzitutto, Cloud Run con lo stesso nome viene distribuito in ogni regione e una cartella(?) con lo stesso nome viene creata al livello superiore.
L'aspetto raggruppato è il seguente.
Cloud Run - Schermata ripiegata
In realtà, se il numero è piccolo, non è di grande aiuto, ma se si suppone che sia distribuito in 40 regioni, è di grande aiuto. (Anche se non è proprio così...)
Indicato come di sola lettura.
Per la maggior parte delle funzionalità, quando si tenta di apportare modifiche, viene visualizzato "sola lettura". La documentazione indica che la funzionalità è fornita, ma non funziona correttamente, probabilmente a causa di un problema con l'API.
Ecco la documentazione pertinente.
Ecco la documentazione relativa a gcloud. Al momento supporta solo le versioni alpha/beta, non la versione stabile. Inoltre, l'opzione --regions menzionata sopra non è presente nella documentazione. (Spero che venga aggiornata presto?)
Quello che vorrei è semplicemente che la variabile d'ambiente PORT fosse fornita come valore predefinito, come accade attualmente. So che vengono fornite diverse informazioni tramite il server metadata, ma è scomodo doverle recuperare manualmente con Fetch. (Inoltre, anche quello consuma risorse...)
Essendo ancora in anteprima, spero che migliori. (Lamentarsi subito dopo il rilascio...)
Commenti0