我正在創建一個 Node 應用程式,它具有 express、swagger 和 Agenda 用于運行計劃的作業。在 GCP 中部署它的最佳方法是什么。我應該使用 App Engine 還是 Cloud run。
根據我在 Cloud Run 中的理解,它將在 docker for App Engine 之類的容器中運行,它只會使用我的應用程式并托管它。請賜教我該怎么辦?
干杯,凸輪
uj5u.com熱心網友回復:
App Engine 是一種平臺即服務。這意味著您只需部署代碼,平臺會為您完成所有其他作業。例如,如果您的應用非常成功,App Engine 將自動創建更多實體來處理增加的數量。
它自動從 0 擴展到無限實體(它在下面使用 GCE)。它有 2 種口味的標準環境和靈活環境。標準環境非常快,當沒有人使用您的應用程式時,可以縮小到 0 個實體,可以在幾秒鐘內向上和向下擴展,并且有專門的 Google 服務和庫用于快取、身份驗證等。標準環境的警告是它非常嚴格因為它在沙箱中運行。最近添加的是 Node.js (8.x) 和 Python 3.x。靈活的環境更加開放,因為它允許您使用自定義運行時,因為它使用 docker 容器。因此,如果您的運行時在提供的運行時中不可用,您始終可以為執行環境創建自己的 dockerfile。需要注意的是,即使沒有人使用您的應用程式,它也需要至少運行 1 個實體,
閱讀有關 App Engine 的更多資訊
App Engine 用于部署代碼,Cloud Run 用于部署容器,而容器是當今的要求。Cloud Run 運行容器,因此每次發布您都必須構建一個容器并將其推送到 GCP。
App Engine Standard 的 Cloud Run、App Engine Flexible 和較新的運行時專為可移植性而設計(您可以使用開源庫或標準庫,而不僅僅是 Google 庫)。Cloud Run 和 App Engine Flexible 允許自定義運行時。
Cloud Run 讓您可以自由地將基礎架構擴展到混合和多云環境。
閱讀有關 Cloud Run 的更多資訊
您應該考慮的差異:
對于低流量應用程式,設定為自動擴展的 Cloud Run 或 App Engine Standard 都比設定為手動/基本擴展的 App Engine Standard 或 App Engine Flexible 便宜。Cloud Run 僅在處理請求時運行。設定為自動縮放的 App Engine 在不處理請求時會關閉。這意味著對于這兩種型別,當您的應用程式未運行時,您不會使用資源,Google 只會針對您消耗的資源向您收費。此外,App Engine 標準版提供每日免費資源配額,因此您只需為超出免費配額的資源消耗付費。設定為手動/基本擴展的 App Engine Flexible 或 App Engine Standard 必須至少有 1 個實體連續運行,這意味著它們運行整整一個月,這反過來意味著您將支付更多費用。
App Engine 的回應速度平均比 Cloud Run 快 56 毫秒。這里需要注意的是,這些時間在運行之間差異很大,有時是三倍或四倍。來自 Cloud Run 的總請求大小更大,因為它默認不 gzip 檔案。這兩種服務的最大區別在于,除非收到請求,否則 Cloud Run 不會運行您的容器。當一個請求進來時,它會做一些事情: [i] 啟動容器 [ii] 服務請求 [iii] 關閉容器 當然,這樣做也可以節省很多錢,所以這里的權衡是無論您更關心優化速度還是成本。
AppEngine 只能部署到單個區域。如果您希望 AppEngine 應用程式是多區域的,那么您需要每個區域一個專案。Cloud run 允許您將服務部署到單個專案中的每個區域,從而使您的 API 真正全球化,所有這些都在單個專案中
Cloud Run 還允許您設定靜態 IP 地址,這是 AppEngine 無法獲得的。這對于您需要中繼郵件或連接到其他一些通過 IP 地址限制訪問的服務的情況很有幫助。此外,AppEngine 仍然有一些 Cloud Run 沒有的東西(比如 Identity Aware Proxy)。
Cloud Run 中的 docker 映像支持也比您從 AppEngine Standard 獲得的更通用,而且 Cloud Run 有更強大的選項可供選擇(更多 ram、cpu 等)。
1 https://cloud.google.com/appengine/docs/standard/nodejs/quickstart 2 https://cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-nodejs-service
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491247.html
