什麼是無伺服器運算?

無伺服器運算是一種應用程式開發模型,根據此模型,您可以在第三方受管伺服器基礎架構上建置和部署應用程式。所有應用程式都需要伺服器才能執行。但在無伺服器模型中,雲端供應商會管理例行工作;他們會佈建、擴展和維護底層基礎架構。雲端供應商會處理多項任務,例如作業系統管理、安全修補程式、檔案系統和容量管理、負載平衡、監控和日誌記錄。因此,您的開發人員可以專注於應用程式設計,並且仍能享有極具成本效益、效率和大規模可擴展伺服器基礎架構帶來的優勢。

為什麼無伺服器運算很重要?

在網際網路發展的早期,任何想要執行 Web 應用程式的使用者都必須購買和維護實體伺服器。公司通常會將其實體伺服器設備儲存在內部部署資料中心或主機代管設施中。此方式可能代價昂貴,因為大多數應用程式僅使用伺服器硬體資源的極小部分。

雲端運算模型最初透過允許客戶在雲端供應商硬體上建立虛擬伺服器或執行個體來解決此問題。但是,客戶仍然必須佈建、設定、更新和擴展其虛擬伺服器。

為了應對這些問題,雲端供應商開始提供無伺服器技術,以提高靈活性並進一步最佳化成本。使用無伺服器運算的開發人員可以執行程式碼、管理資料和整合應用程式,而不必擔心基礎設施管理任務。

無伺服器採用有諸多優勢,我們接下來概述這些優勢。

提升開發人員生產力

開發團隊可以專注於建置應用程式,而不是設定它們。較低的營運成本意味著您的應用程式可以更快地推向市場。開發人員可以回應客戶意見回饋,並經常發布應用程式碼變更。

高效的可擴展性

雲端供應商在其無伺服器環境中提供自動擴展功能。無伺服器應用程式會自動從零擴展到滿足峰值需求。開發人員在編寫程式碼時不必考慮用量。

降低成本

您只需為程式碼執行時所需的 CPU、記憶體和其他運算資源付費。無需為閒置資源支付任何費用。這種按價值付費的計費模式可確保最佳的資源使用率,並且不會因過度佈建而造成浪費。

無伺服器運算有哪些使用案例?

在許多應用程式和系統中,無伺服器運算可能非常有用。

無狀態應用程式開發

無伺服器架構非常適合不在工作階段之間儲存用戶端資料的非同步、無狀態應用程式。無伺服器應用程式的範例包括聊天機器人、任務排程器和 IoT 應用程式。例如,Coca-Cola 使用 AWS 在短短 100 天內為其非接觸式飲料分配器開發一款行動灌裝應用程式。Coca-Cola 使用 AWS Lambda 這樣的無伺服器建置區塊。

批次處理

批次處理應用程式定期完成大量重複性資料工作,例如備份、篩選和排序。批次處理非常適合無伺服器環境,這些環境在需要時可以大規模擴展,而在不使用時不會浪費任何成本。

例如,Liberty Mutual 使用 AWS 將其不同的全球業務線整合到名為金融中心服務 (FCS) 的集中式系統中。該公司使用 AWS Step Functions 建立一個無伺服器應用程式,該應用程式可以在每個月底於一次執行中處理 1 億筆交易。

即時資料分析

無伺服器運算是即時串流引擎的理想選擇,可提高客戶回應速度。無伺服器應用程式可以處理數十萬個來源的大量串流資料,同時讓客戶體驗低延遲和高頻寬。因此,您可以在幾秒鐘而不是分鐘內取得洞察。

例如,Genentech 使用 AWS 無伺服器功能進行臨床資料分析。研究人員現在可以在幾個小時內完成任務,這些任務之前需要幾週才能執行。

業務程序自動化

您可以使用無伺服器方法自動化繁瑣且耗時的業務程序。開發人員可以專注於將業務邏輯轉換為應用程式碼,而無需管理伺服器。

例如,Taco Bell 使用 AWS 建立無伺服器應用程式,以執行業務邏輯和資料轉換。Taco Bell 向其送餐合作夥伴提供即時功能表和餐廳資訊。在 COVID-19 疫情期間,無伺服器投資幫助該品牌迅速轉型,以滿足消費者對送餐的需求。

無伺服器架構如何運作?

任何應用程式都有兩個廣泛的功能領域 — 前端和後端。前端包括最終使用者與之互動的所有內容,例如視覺配置、按鈕和顯示文字。後端包含使用者無法存取的功能,例如資料儲存和處理。

例如,考慮在您的行動裝置上使用航班預訂應用程式。前端是您的應用程式使用者界面,您可以在其中選擇日期並請求可用的航班清單。您的請求會轉到後端,後端會查找資料庫並傳回有關所選時間範圍內所有可用航班的資訊。下圖顯示了傳統的架構。

傳統的 Web 應用程序架構圖

在無伺服器架構中,開發人員在雲端供應商提供的雲端基礎設施中部署後端程式碼。無伺服器應用程式的關鍵是事件驅動型架構 — 這是一種現代架構模式,由發佈、使用或路由事件的小型解耦服務建置而成。 事件是在服務之間傳送的訊息。

藉助此架構,可以更加輕鬆地擴展、更新和獨立部署系統的單獨元件。下圖顯示了事件驅動的無伺服器微型服務。

事件驅動的無伺服器微型服務圖

接下來,我們將概述無伺服器架構的運作方式。

函數

函數是執行單一任務的小型離散程式碼單元。函數需要 CPU 和記憶體等運算資源才能執行。雲端供應商僅在需要時分配這些資源。它會為無伺服器函數建立暫時環境以執行。

某些事件可以觸發或使程式碼單元執行。例如,如果使用者在應用程式中選取按鈕,事件可以執行。該請求將觸發讀取資料庫並將相關資訊傳回給使用者的函數。

擴展請求

函數收到的請求越多,它需要用於執行的資源就越多。無伺服器平台可監控負載,並持續以近乎無限的規模分配雲端資源。因此,單個無伺服器函數可以在不變更程式碼的情況下處理一百萬條請求。

一旦某個函數停止接收請求,雲端提供商就會關閉相關的基礎設施以節省成本。雲端供應商僅在需要時分配資源。如果沒有用量,則環境資源可以縮減至零。

有哪些類型的無伺服器架構?

在無伺服器架構中,雲端供應商可為您的應用程式管理多個小型和大型後端任務。您可以部署自訂程式碼;雲端供應商會在程式碼執行時動態配置資源。雲端平台還可以提供後端功能,您可以直接使用這些功能,而無需從頭開始編寫程式碼。

接下來,我們將解釋兩種類型的無伺服器架構。

函數即服務

函數即服務 (FaaS) 是一種無伺服器架構,開發人員可以使用此架構編寫自訂後端函數並將函數程式碼直接部署到雲端基礎設施。調用函數時,雲端供應商會在現有的動態伺服器上執行該函數,或者在需要時啟動新的伺服器。此類函數之所以稱為無伺服器函數,是因為開發人員無需關注其執行程序。開發人員可以編寫和部署程式碼,而不必擔心程式碼的執行方式和執行位置。

後端即服務

後端即服務 (BaaS) 使開發人員可以使用 API 存取後端函數。API 是使用一組定義和協定讓兩個軟體元件彼此通訊的機制。

在其無伺服器環境中,雲端供應商提供以 API 為基礎的存取權限,以存取額外的加密、身分驗證和可從雲端存取的資料庫。它們還可以提供對其他第三方服務和應用程式的存取權限。這些無伺服器函數是預先編寫的,可以在程式碼中直接呼叫。

什麼是無伺服器優先策略?

無伺服器架構透過以下原則得到認可:

  • 無須管理伺服器
  • 按價值付費服務
  • 持續擴展
  • 內建的容錯能力

在組織的應用程式、營運和開發週期中,無伺服器優先的策略會以這些原則為優先事項。無伺服器開發人員或無伺服器優先的公司會首先使用這些原則建置應用程式。

但是,無伺服器運算並非適合所有工作負載。可以依據需要納入非無伺服器技術作為支援架構。

無伺服器架構是否安全?

大多數雲端供應商都採用共用安全模型。雲端供應商負責雲端本身的安全性,客戶則負責雲端中的安全性。

藉助無伺服器,雲端供應商會管理許多額外的基礎設施層,包括作業系統和聯網。客戶必須遵循最低權限原則和保護無伺服器應用程式的最佳實務。

例如,在 AWS Lambda 等 AWS FaaS 解決方案中,您可以使用熟悉的工具,例如 AWS IAM Identity Center,以精細許可保護每個資源。這可協助您為無伺服器應用程式提供強大的安全狀況。

AWS 如何支援您的無伺服器運算要求?

Amazon Web Services (AWS) 提供諸多產品和服務,來支援您使用無伺服器運算。

AWS 上的無伺服器介紹了相關技術,這些技術可用於執行程式碼、管理資料和整合應用程式,而無需管理伺服器。藉助 AWS 無伺服器技術,您可取得自動擴展功能、內建的高可用性和按用量付費的計費模式,可提高敏捷性和最佳化成本。這些技術還消除了容量佈建和修補等基礎設施管理任務,因此您可以專注於編寫為客戶服務的程式碼。 

無伺服器應用程式始於 AWS Lambda,這是一項與超過 200 個 AWS 服務整合的事件驅動運算服務。我們還提供大量額外的支援服務,例如以下:

立即建立帳戶,開始在 AWS 上使用無伺服器。

AWS 上的後續步驟

註冊免費帳戶

立即存取 AWS 免費方案。

註冊 
開始在主控台進行建置

開始在 AWS 管理主控台進行建置。

登入