- 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上週推出了一項功能,讓Cloud Run只需一次執行就能在多個區域使用。
簡而言之,多區域服務是指,例如,我們假設有首爾、倫敦和拉斯維加斯三個區域。
以往需要使用腳本個別部署到多個區域,而新功能則允許使用單一腳本部署到多個區域。
事實上,在正式推出之前,我閱讀了關於此項服務的文檔,對此功能抱有很大的期待,但實際上卻有點失望。
雖然之前也可以使用腳本一次部署多個,但由於它們最終會並行運作,因此時間上並沒有太大的差異,所以對這方面沒有太大的期待。然而,由於這是一次性部署,因此無法為每個區域設定不同的環境變數。
因此,我們一直以來都使用個別Cloud Run在不同區域使用不同的值連接到不同的資料庫或GCS,但現在這個功能卻出現了問題。
第二個問題是,在重複部署的過程中,有時會想刪除舊的記錄,但這也無法個別控制。舊版本會以唯讀模式保留,無法個別刪除。
雖然有很多缺點,但優點是……可以將多個Cloud Run "整合"起來。
我們的服務大量使用Cloud Run和多個區域,目前大約有50個,所有正在進行的工作完成後將增加到100個左右。如果使用多區域服務,則可以減少到10到20個左右。(只是隱藏起來而已。)
首先,腳本如下所示。
執行上述腳本後,將部署如下。
Cloud Run
首先,同名的Cloud Run將部署到每個區域,最上層將建立同名的資料夾(?)。
整合後的畫面如下所示。
Cloud Run - 摺疊畫面
事實上,如果數量較少,則幫助不大,但如果假設它部署到40個區域,則會非常有幫助。(當然不一定要達到那麼多…)
顯示為唯讀。
大多數功能在嘗試修改時都會顯示為唯讀。雖然文檔中提到了此功能,但API似乎存在問題,無法正常運作。
相關文檔位於此處。
gcloud相關文檔在此處。目前僅支援Alpha/Beta版本,不支援正式版本。此外,文檔中根本沒有提到上述的--regions選項。(應該很快就會更新吧?)
我們想要的是……實際上沒有其他要求,如果可以像PORT一樣將環境變數作為預設值提供就好了。當然,我知道目前也可以通過Metadata伺服器提供各種資訊,但事實上,這需要使用Fetch來獲取,很不方便。(而且這也是一種資源…)
由於目前還處於預覽階段,希望它會越來越好。(剛推出就抱怨似乎不太好…)
评论0