作為 GCP 的新手,我有一個關于在特定情況下使用哪種架構的問題。
假設我有一個在 App 引擎上運行的 Django 網站(靈活的環境?)。用戶將影像上傳到網站。我想首先使用 Google Vision API 對影像執行一些標簽檢測,然后將標簽和影像提供給連接了 GPU 的 VM(全部在 Google 云上運行),以對影像進行額外的計算成本高的作業。在 VM 完成作業后,生成的影像可供用戶下載或發送到用戶電子郵件。
由于在 VM GPU 端花費的時間相對較多,并且由于該網站將被全球用戶訪問,我想減少整體延遲時間并為作業選擇最有效的架構。
我的第一個想法是:
- 將圖片上傳到谷歌云存盤;
- 使用 GC 函式執行一些快速轉換,然后呼叫 Google Vision API;
- 將生成的標簽和轉換后的影像拉到 VM 并在 VM 端進行計算;
- 將最終影像上傳到 Google Cloud Storage。
現在,在存盤桶和 APP 引擎以及兩側的虛擬機之間來回跳動很多。我想知道是否有 1)更快和 2)更有效的資源方式來實作相同的目標。
uj5u.com熱心網友回復:
如果您的網站可以在全球范圍內訪問,那么您的 App Engine 選擇是錯誤的:App Engine 只能部署在一個地區,而不是全球范圍內。
對于前端,我建議改用 Cloud Run(或 VM,但我不喜歡 VM)并在前面放置一個 HTTPS 負載均衡器。像這樣,物理延遲減少了。
而且,檔案也必須存盤在最近的區域中,因此在不同區域的云存盤中。
最后,在每個區域復制 VM/GPU 基礎架構(這可能會很昂貴,但這是減少延遲的最佳方式。
你的程序是正確的。我建議您在 VM 上公開一個 API,以便在檔案準備好時通知它。您可以使用Cloud Storage 上的 PubSub 通知來接收 PubSub 中的事件,然后創建推送訂閱以直接呼叫您的 VM(而不是云函式)。
像這樣,您洗掉一個組件并在 VM 端執行所有處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507770.html
標籤:Google Cloud Collective 谷歌应用引擎 谷歌云平台 虚拟机 视觉API