前言
Google App Engine (GAE) 提供了兩種部屬環境可以選擇, 對於剛接觸這個服務的新手, 一定很難搞清楚這兩者的差別到底在哪裡, 以下就做個簡單的介紹跟比較
Standard Environment
為 Serveless 的服務架構, 當服務沒有被使用時則自動釋放計算資源, 好處是當資源被釋放之後 Google 不會跟你收錢Standard Environment 在作水平擴展時也比較快, 畢竟它不需要額外花時間重建 VM 然後再重新安裝系統
而 Standard Environment 部屬所花的時間也是遠少於 Flexible Environment, 通常不到一分鐘就可以完成部屬
如果不需要特定的 Runtime 或是也不關心底層 Infra 的配置, 基本上 Standard Environment 是最佳的選擇。
Flexible Environment
Flexible Environment 的底層是跑 GCE 的 VM, 在部屬的時候必須聲明 VM 的規格, 而就算服務沒有被使用 Google 還是會收維運 VM 的相關費用, 但好處是在專用的 VM 上跑服務不會有 Cold Start 的問題除此之外, 部屬在 Flexible Environment 上的服務, 是以容器的形式跑在 VM 裡的, 所以在部屬的時候需要額外花時間將原始碼打包成容器映像, 因此部屬的時間通常會比較長
Flexible Environment 擁有更多的彈性去客製化部屬環境, 可以將客製化的環境打包在容器裡, 再直接將容器上傳上去部屬, 或是直接 SSH 連進 VM 裝套件都是做得到的, 因此能夠隨意的客製化部屬環境, 或許是讓人選擇 Flexible Environment 最大的原因
比較表
總之, 若想要客製部屬的環境, 毫無疑問 Flexible Environment 會是最佳的選擇, 但若偏好使用 Serverless 的服務架構跟收費模式, 那可以試試 Standard Environment
參考資料
https://cloud.google.com/appengine/docs/standard/python/how-instances-are-managed#timeout
留言
張貼留言