什麼是無伺服器運算?

無伺服器運算是一種雲端運算執行作業模型,可根據使用需求來分配機器資源。採用無伺服器模式能讓開發人員建構及執行應用程式,而不必管理任何伺服器,而且只需支付資源實際用量的費用。執行應用程式程式碼的雲端基礎架構則由雲端服務供應商負責佈建、管理及調度資源。

雖然名稱可能會造成誤解,但無伺服器並非「沒有任何伺服器」。無伺服器應用程式能讓您省去與應用程式開發作業相關聯的例行基礎架構工作。您無法查看及設定執行應用程式的機器,也無須管理或擴充應用程式。換句話說,您支付的是伺服器服務的費用,而非伺服器本身的費用。

從開發作業的角度來看,這就像沒有任何伺服器存在一樣。開發人員只需編寫程式碼,然後部署至實際工作環境,其餘的工作完全由雲端服務供應商處理。

無伺服器運算如何運作?

在建構應用程式時,開發人員通常需要執行許多其他的伺服器管理工作,以便部署程式碼,例如定義處理及儲存資料所需的資源、修補作業和負載平衡機制等。這些額外項目會拉長佈建時間,增加額外的營運負擔,最終降低開發團隊的工作效率。

無伺服器運算的目標是為開發人員提供無形的「無伺服器」體驗,讓開發人員不必考慮伺服器或執行應用程式可能需要的任何資源。服務供應商會在幕後執行所有工作,確保您有資源可執行程式碼並滿足需求,而無須支付閒置容量的費用。

以下提供一個簡單的比喻,讓您更容易瞭解無伺服器運算的運作方式

不妨將無伺服器技術想像成,家中的供水。您可以自己挖井、測試水質、安裝並維護所有必要的外部管路,讓水可以輸送到家裡。您也可以直接連接所在城市的主要供水系統。只要在需要用水時打開水龍頭,就能取得所需的量,而該城市也會根據您每月確切的用水量寄送帳單給您。

同樣地,雲端服務供應商會自動啟動執行無伺服器應用程式所需的基礎架構資源和執行階段環境,執行作業完成後,再將配置資源自動縮減至零。一般而言,系統會依據執行期間所使用的資源向您收費。不過,實際收費方式可能因服務和供應商而異。

無伺服器與其他類型雲端運算的比較

可是,不是也有其他類型的雲端運算服務以即付即用的方式提供隨選資源嗎?基礎架構式服務 (IaaS)平台式服務 (PaaS) 等雲端服務模型確實也提供隨選運算資源存取方式。

不過,即使您未使用,分配給您的雲端基礎架構仍會保持運作中狀態。如要隨著使用者需求的變動來增減配置的資源,您也必須自行擴充伺服器容量,或設定應用程式。

另一方面,無伺服器架構是事件導向。因此如果採用這種模型,供應商只會在事件觸發程式碼執行時提供資源,並隨時應要求自動擴充。

無伺服器運算的範例和用途

在無伺服器雲端運算領域,通常有兩種服務:函式即服務 (FaaS) 和後端即服務 (BaaS)。

FaaS 會提供執行應用程式邏輯以回應要求所需的運算資源。這些邏輯 (或函式) 片段會在雲端服務供應商全代管的容器中執行。無伺服器應用程式通常會拆分成個別的函式,每個函式執行一個動作以回應事件。

BaaS 以服務形式提供網頁或行動應用程式的完整後端功能,例如驗證服務、資料庫管理、雲端儲存空間、推播通知和託管。BaaS 也能讓您免去管理伺服器、容器或虛擬機器的需求。

在開發領域,「無伺服器」一詞通常用於描述 FaaS 服務。不過請注意,就技術而言,FaaS 只是無伺服器技術的一個子集。無伺服器運算涵蓋能讓使用者省去伺服器管理、設定、資源調度和帳單等工作的任何類型服務,包括資料庫、儲存空間、事件串流、訊息傳遞和 API 閘道等。

一般來說,無伺服器運算主要仍用於執行簡易的短暫性工作。最常見的無伺服器運算範例包括:

  • 第三方服務和 API 整合項目
  • 執行排定的工作,例如每日報表、備份或商業邏輯
  • IT 流程自動化,例如自動移除存取權、啟動法規遵循安全性檢查,或傳送核准訊息等
  • 即時處理結構化和非結構化資料
  • 自動持續整合/持續推送軟體更新 (CI/CD) pipeline
  • REST API 後端
  • 依據條件觸發動作或執行已排定的工作 (例如每日報表、備份或商業邏輯)
  • 非同步處理
  • 即時或已排定的通知

無伺服器運算的優點

提高開發人員工作效率

採用無伺服器技術能讓開發人員專心編寫程式碼並將商業邏輯最佳化,而不必費心佈建、管理或擴充基礎架構。

立即可用的擴充能力

無伺服器架構本身就會動態調整資源配置。有別於其他類型雲端運算必須依賴微調規則,無伺服器的自動調度資源功能會隨時運作,並能將配置資源縮減至零。

具彈性的計費方式

無伺服器運算服務的定價模式通常是根據實際用量和執行函式所需時間來計費。你不用為閒置容量付費,因此能降低執行及管理伺服器所需的營運成本。

加快部署速度

有了無伺服器技術,開發運作團隊就不必花時間定義任何整合、測試、推送或部署程式碼所需的基礎架構。他們只需編寫程式碼並部署至實際工作環境。

支援所有語言

無伺服器環境支援任何語言或架構,能讓團隊使用自己最擅長的語言或搭配自己最熟悉的架構 (例如 Go、Python、Java、Node.js、.NET 等) 進行開發。

無伺服器運算的缺點

無伺服器運算的最大缺點之一,就是這仍是較新的技術。因此,目前還不適合應用在所有可能的用途。

此外,無伺服器技術具有刻意設計的短暫使用特性,並能將配置資源縮減至零,因此不適合特定類型的應用程式使用。這項技術並非為了長時間執行程式碼所打造,也不一定適用於嚴格要求低延遲的應用程式,例如金融服務應用程式。

最後還有一點,將所有運算資源的管理工作交給第三方供應商雖然有其優點,但也可能伴隨著許多缺點。雖然可將省下的時間用於編寫程式碼,但遷移至新雲端服務供應商的過程可能也困難重重。此外,您也無法掌握服務執行的位置和方式,而且對於資源調度方式、用於執行程式碼的硬體類型,以及災難復原情況等,控管能力都會受到限制。

不過,無伺服器運算仍有許多值得推薦的優點,特別是機構如果希望協助開發人員加快作業速度,並且想尋找更符合成本效益的簡單方法來建構雲端應用程式,就非常適合。

可以確定的是,隨著無伺服器運算技術持續演進,現有的一些弱點將會陸續解決。特別值得一提的是,無論是透過開放原始碼導入無伺服器技術,或是設法提升雲端服務的開放性,以便讓解決方案能在不同平台和環境中使用,目前都已獲得顯著的進展。

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。
與 Google Cloud 銷售專員聯絡,深入探討貴公司面臨的獨特挑戰。

展開下一步行動

運用價值 $300 美元的免費抵免額和超過 20 項一律免費的產品,開始在 Google Cloud 中建構產品與服務。

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
控制台
Google Cloud