白話文解說 Serverless 架構

很久以前被 Serverless 這個 fancy 的詞給唬到,想說是什麼雲端運算黑科技,沒有 Server 還可以提供服務!? 後來才發現是大誤解⋯⋯。

Serverless 還是需要 Server 提供服務,只是對開發者而言不再需要像傳統開發方式那般經歷以下 4 個階段:

  1. 開發應用
  2. 架設伺服器、環境
  3. 部署應用
  4. 維運

對使用 Serverless 架構的開發者而言,簡化為只需要 1 步:

「開發應用」

剩下都由雲端運算的服務提供商幫忙搞定,所以 Serverless 解決方案(AWS lambda, Google Cloud Functions 等等)都是讓開發者上傳程式碼而已,剩下的伺服器架設、部署、維運都是雲端運算服務提供商負責,使用費用也相對低廉,用多少算多少,而且多數每個月都有免費額度可以使用,只要在額度內可以蹭免錢的 A_A

其實它就像是 1 個 API 端點,只是它只在雲端服務提供商那端收到 HTTP requests 或者被事件觸發時,才會特別把你的程式招喚出來提供服務,如果處於閒置狀態的話,運算資源就會被回收,讓你的程式再次進入休眠狀態,所以它會有稍微高一點的 latency 問題(因為喚醒執行環境與執行程式需要時間,專業術語稱為 Cold Start / 冷啟動),如果你的服務對 latency 很要求,最好別用 Serverless……。

Serverless 架構對於新創或者預算抓很緊的公司來說,絕對是需要納入考量的架構,建議可以把一些非核心的功能放到 Serverless 架構,減少租用額外伺服器的需要,將資金花在刀口上。

Serverless 架構適合應用在:

  1. Web 後端,建議非核心業務,例如把核心結帳功能用 Serverless 架構應該會很頭痛,但像是訂閱電子報、文章留言就很適合交給 Serverless 架構
  2. Event-driven processing, 這種有事件觸發才執行的工作,特別適合 Serverless 架構,例如收到付款成功事件後觸發列印發票的功能,可以省去架伺服器常駐等監聽事件被觸發的情況
  3. Cron jobs 以及 ETL pipelines, 這 2 種應用情境,都是對於 latency 要求相對小的情境,畢竟對於動輒要執行個好幾秒到數十分鐘的工作而言,幾百 ms 的延遲真的不算什麼

不過 Severless 並沒有 1 個標準,所以每個雲端運算服務提供商的規定都不太一樣,這會導致 Serverless 無法無縫轉換雲端服務提供商,做些修改都是勢必的⋯⋯。

以上!

Facebook Threads X

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!