簡體   English   中英

Google Serverless function - 它可以運行一個進程還是只運行一個程序?

[英]Google Serverless function - Can it run a process or just a single program?

我們有一個 shell 腳本,它通過多個步驟運行 java 和 python 程序的組合。 在 AWS 中,當我們需要同時運行多個時,我們會發送一個參數集和一個請求到所有預先構建的虛擬機(服務器列表是 CV-1、CV-2、CV-3 等)。 其中幾個進程可以同時運行,除了數據庫更新之外,它們沒有任何相互依賴關系。 我們有多達 16 個虛擬機同時運行,沒有任何問題,只有一個控制實例可以跟蹤每個虛擬機何時完成。

我們正在尋找更多的可擴展性。 如果我們不需要讓 16 台機器“運行”並等待啟動它們,那就太好了。 我們希望能夠啟動盡可能多的項目,但同樣有興趣在它們空閑時不為它們付費。 它們有超過 80% 的時間處於空閑狀態。 但是一旦我們需要它們,我們就需要它們,因為其中一些可能需要一段時間才能完成。 機器尺寸都一樣。 這也可能是個問題。

我正在研究 google server less examples,雖然它似乎是我需要的,但它是否按我希望的方式工作並不完全清楚。 我希望我可以將所有程序(python、Java、shell)放在一個容器中,並即時實例化機器的一個實例。 我只需要傳遞 3 個參數,這看起來很容易。

我感到困惑的地方是它能夠運行什么 我還沒有看到啟動 shell 腳本或 python 程序的示例。 很多 Java “hello world” 就我現在的專業水平來說還不錯,但我沒有看到任何運行 shell 腳本的東西。 即使是 python “腳本”也是可以接受的,甚至可能更好。

每個腳本運行 10 分鍾到 5 小時,具體取決於輸入的大小。 所以4-5分鍾的啟動不會打擾我們。 大多數在 20 分鍾范圍內,大約 5% 在 4+ 小時范圍內。

問題確實是:這種方法是否適用於 Google 無服務器? 如果它沒有,那么這些 rest 無關緊要!

謝謝

無服務器計算產品(Cloud Run、Cloud Function、App Engine)響應 HTTP 請求。 所以你需要暴露一個 HTTP 服務器來使用這些服務。 無法進行后台處理,時間有限

  • 雲函數 9 分鍾
  • Cloud Run 60 分鍾
  • 24 小時使用 App Engine 標准,帶有基本或手動縮放 + Cloud Task

如果您需要運行后台進程,或者沒有 https 進程,您可以使用 Cloud Build 作弊(使用您的容器並在虛假構建中運行您想要的命令),或者您可以使用AI Platform 自定義訓練來運行您的容器數小時。

這個最新的解決方案是唯一支持 GPU 容量的解決方案。

您將需要更新或重新設計您的流程以適應此 model。 根據您的要求,我認為可移植性不是立即的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM