iT邦幫忙

2023 iThome 鐵人賽

DAY 10
1
Software Development

Google Cloud Platform 零基礎入門系列 第 10

GCP 零基礎入門 (10) - 運算服務 - Cloud Run

  • 分享至 

  • xImage
  •  

哈囉大家好,我是古古

前幾篇文章有介紹了許多 Google Cloud 中好用的運算服務,那麼這篇文章就會來介紹最後一種常見的運算服務,也就是同樣屬於 FaaS 服務的 Cloud Run

什麼是 Cloud Run?


Cloud Run 也是 Google Cloud 中的 FaaS 運算服務,因此在 Google Cloud 中,是有兩種運算服務同為 FaaS 架構的,一個是在之前「Day 8 - 運算服務 - Cloud Functions」提到的 Cloud Functions,另一個就是這篇文章中的 Cloud Run

在前面的文章中有介紹到 Cloud Functions,基本上 Cloud Functions 就是很純的 FaaS 服務,也就是「撰寫輕量化、單一功能的小程式」,因此免除了 Server 架設環境的步驟,所以在部署上就可以更快的完成

不過在 Cloud Functions 的概念中,這些小程式 都不是 Web Server,而只是圖片轉換、或是生成縮圖這種單一性質的功能

所以 Google 就嘗試魔改了 Cloud Functions 的概念,提出 Cloud Run 這個新的運算服務,在 Cloud Run 中,只是將這些「單一功能的小程式」,改成是比較重一點的「Web Server」,但一樣是有前端的 request 來才開啟這個 Web Server 的服務,request 走了就 shutdown 這個 Web Server

因此 Cloud Run 的用途,即是可以「讓我們可以使用 FaaS 的概念,去執行 Web Server 的程式」

https://ithelp.ithome.com.tw/upload/images/20230924/20151036S3eSHg1ZjJ.png

補充:Cloud Run 和 Cloud Functions 的差別在哪裡?

  • Cloud Functions:經典的 FaaS 服務,所有的程式都是「輕量化、單一功能的」

  • Cloud Run:汲取 Cloud Functions 的 FaaS 服務的概念,只是將單一功能的小程式替換成是 Web Server 而已,不過一樣是有請求來才啟動 Web Server,請求走就 shutodown Web Server

不過也因為 Cloud Functions 和 Cloud Run 都是使用了 FaaS 的概念在設計,所以他們兩個就都是屬於 Serverless 無伺服器運算的一員

為了區分方便,Google 把 Cloud Functions 定義為 Serveless logic,而 Cloud Run 則定義為 Serverless platform,因此在下圖中也可以看到,這兩種運算服務都是屬於 Serverless 系列的分類

https://ithelp.ithome.com.tw/upload/images/20230924/20151036SNTtSu92TQ.png

Cloud Run 的特性


由於 Cloud Run 本身仍舊是遵循 FaaS 服務的特性,而 FaaS 的宗旨概念是 Serverless (無伺服器運算),因此 Cloud Run 是不會長期運行一個 Web Server 在那裡傻傻的等請求過來,而是請求來才啟動 Web Server 處理 request,請求走就 shutdown Web Server,達到無伺服器的效果

因此要能夠讓 Cloud Run 運行的重要關鍵,即是 「該程式必須是一個能夠快速啟動的 Web Server」,這樣子當請求來 Cloud Run 要馬上開機來處理的時候,才不會開機太久導致請求卡在那裡

因此大家如果想要使用 Cloud Run 來運行 Web Server 的話,必須要考慮該 Web Server 是否具備快速的啟動速度

補充:以 Java 後端的 Spring Boot 框架為例,Spring Boot 有在研發一個新的 JVM(名字叫做 GraalVM),嘗試加速 Spring Boot 程式的啟動速度,所以目前也是有許多框架已經著手開發,為將來的 FaaS 運算服務佈局

Cloud Run 的計費方式


也因為 Cloud Run 的運行邏輯是「當 request 來了才啟動 Web Server 去處理」,因此在計費方式上,在開機和關機的過程中,會有一段時間是 Cloud Run 自己在拉資源來處理,而那一段 Cloud Run 佔用的時間是不計費的

所以大家只要付費 handling request 和 Web Server 開機關機的時數即可

https://ithelp.ithome.com.tw/upload/images/20230924/20151036ylbKk3TbjH.png

總結


這篇文章先介紹了 Cloud Run 這個 FaaS 運算服務的用途,以及介紹了他和 Cloud Functions 之間的差別,最後也介紹了 Cloud Run 的特性和計費方式

那麼到這邊為止,我們就介紹完了 Google Cloud 中的五種常見的運算服務了,所以下一篇文章,我們就會來總結一下,在這個運算服務的章節裡都介紹了哪些服務,那我們就下一篇文章見啦!

相關連結



上一篇
GCP 零基礎入門 (9) - 運算服務 - Google Kubernetes Engine (GKE)
下一篇
GCP 零基礎入門 (11) - 運算服務總結
系列文
Google Cloud Platform 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言