FaaS(功能即服務)

瞭解這種雲端運算服務模式的獨特優勢與挑戰,並評估 FaaS 是否適合各種應用程式開發與部署方法。

Faas 概要:

  • FaaS 是一種雲端運算服務,雲端服務供應商(CSP)擁有並管理運算環境的各個方面,包括硬體基礎架構、中介軟體、作業系統,乃至於應用程式。

  • FaaS 對於以突發性活動為特徵的間歇性或無法預測的使用模式來說,可能是一種經濟實惠的選擇,因為使用者只需為完成有用工作所需的執行或處理時間付費。

  • FaaS 的常見用途包括資料處理、驗證與排序,以及對行動與 IoT 應用程式的後端支援。

什麼是 FaaS?

近年來,由於 IT 領導者接受雲端運算針對基礎架構的靈活管理方法,以及它所帶來的便利性、可擴展性和成本優勢,不同類型的雲端運算開始受到青睞。

雲端服務供應商(CSP)以各種不同的雲端服務模式做出回應,每個模式都有各自的服務等級。其中最全方位的產品是功能即服務(FaaS)。

在 FaaS 模式中,客戶在雲端執行代碼,而 CSP 託管並管理整個後端作業,包括基礎架構和應用程式。客戶只需對自己的資料和執行的功能負責。

Faas 客戶一般只需為功能即服務中執行「功能」所需的實際運行時間付費。執行可能只要一下子就能完成,FaaS 系統可以快速擴展以同時容納多個執行個體。至於執行不同功能之間的閒置時間,不會向客戶收取持續成本。

這種事件驅動的定價,讓這種雲端服務模式成為經濟實惠的選擇,對具有間歇性或零星處理需求的開發者來說格外有吸引力。

FaaS 的常見用途包括資料處理、驗證與排序,以及對行動與 IoT 應用程式的後端支援。

在伺服器上執行的「無伺服器運算」

客戶將 FaaS 模式視為「無伺服器」,因為由 CSP 管理雲端基礎架構、平台、作業系統和軟體應用程式,這一切對使用者來説可能都沒有觀看權限。

然而,「無伺服器運算」其實用詞不當。即使 FaaS 使用者沒有管理或者甚至看到硬體,但 FaaS 模式確實在伺服器上執行。硬體由 CSP 擁有、操作及管理,因此客戶可以按照需求充分利用功能,而無須購買或維護自己的伺服器。

「FaaS」中的主詞是大寫的「S」,代表「服務」,也就是業務服務,例如雲端「服務」供應商。這裡的服務是消費單位。您不是為伺服器付費,而是為它所託管的東西付費。」ts.”1

適用於 FaaS 的 Intel® 技術

對於大多數 CSP 的 FaaS 產品,平台元件並未詳細說明。使用者通常無法為虛擬機器要求特定的硬體技術。Intel® 硬體的某些功能,例如 Intel® AVX-512AVX2 加速器,有助於最佳化效能,並提高使用者滿意度。因此,部分 CSP 偏好在搭載 Intel® 技術的平台上執行其 Faas 服務產品。

即使軟體開發者無法在 FaaS 環境中指定搭載 Intel 技術的虛擬機器,但他們可以向 CSP 索取 Intel 最佳化程式碼程式庫的存取權限。其中一些程式庫在 Intel® oneAPI 工具組套件中提供,包括效能增強程式,以加速複雜的數學程式、壓縮、加密和其他運算密集的工作。這種最佳化可幫助使用者節省實施 FaaS 的運行時間和成本。

什麼是微服務?

微服務是應用程式架構的一部分,應用程式代碼的一部分在某種程度上獨立於其他功能之外運作。開發複雜的應用程式時,微服務方法將不同的功能相互隔離,因此即使某個服務失敗,整個應用程式仍可繼續運作。

微服務型的軟體開發環境可以在服務導向架構的背景下實現。複雜的應用程式是以集合獨立服務的方式建置及維護,這些服務則是透過應用程式開發介面(API)鬆散整合。由於可以在不關閉整個應用程式的情況下修補或升級各別服務,服務導向的軟體應用程式及其元件微服務便更易於維護及升級。

許多微服務模組可以在 FaaS 環境中高效地開發及交付。在許多情況下,微服務可容器化或進一步隔離,以改善對大型應用程式每個部分的控制。

功能即服務如何運作?

從使用者的角度來看,功能即服務是軟體開發或部署的預先建置環境。CSP 擁有並管理整個技術堆疊,包括所有的硬體、中介軟體和軟體。

其他雲端服務模式中,使用者在定義的時間範圍內,為持續存取某些虛擬機器或容器以及它們所消耗的資源付費。但是在 FaaS 模式中,客戶只需為產生功能所需的時間和資源付費。

例如,在一個 CSP 定價結構中,功能的持續時間及其資源部是以「GB/秒」為單位測量,四捨五入至最接近的毫秒。2

FaaS 的優勢

這種雲端運算有別於其他「即服務」模式,Faas 使用者可享有隨用隨付的模式。CSP 擁有並管理整個技術堆疊,包括硬體、應用程式軟體與工具,因此使用者只需管理自己的資料與功能即可。

使用者只需為功能或服務在 FaaS 環境中活躍運作的時段付費。這些突發的活動一般以毫秒為單位測量。使用者無需為突發活動之間的閒置時間付費。

FaaS 最適合無法預測和間歇性的工作負載。

FaaS 的挑戰

對於長時間不間斷的工作負載,有別於 FaaS 的其他「即服務」模式可能更為經濟實惠。由於 FaaS 的使用狀況通常是以毫秒遞增的方式測量及付費,且 Faas 要價比一般 IaaS 雲端服務高得多,因此持續使用的價格可能貴得令人卻步。

FaaS 的實施也可能難以偵錯,這是因為開發環境的構成對使用者來說不透明。如果需要大規模的測試,使用別種雲端運算模式會更為合適;如此一來,使用者就能指定和控制各種不同的標準生態系統。然而,如果軟體技術成熟且完全獨立於平台,FaaS 將會是個好選項。

FaaS 使用案例

隨選功能是非常適合 FaaS 環境的整體使用模式。在隨選的設定中,功能可以快速地時開時關。FaaS 使用者只需為功能保持作用中的時段付費,因此隨需的模式使 FaaS 相當經濟實惠。

互動式網站是隨選使用模式的一個範例,特別針對後端執行。只有在終端使用者點按網站並觸發短暫活動時,才會啟動 FaaS。由於使用者存取網站的時間無法預測,線上媒體出版商與電子商務網站便能善加利用 FaaS 模型的靈活性。例如,提供串流媒體的公司可以根據 CSP 的 FaaS 方案,管理其主要網站以及使用者選單和建議。

資料處理與驗證工作可以成功調整為 FaaS 模式。其中一個使用案例是物聯網(IoT)安裝,它會時斷時續地將感應器資料傳送到雲端進行分析。

軟體開發也可以在 FaaS 設定中部署,前提是開發工作負載為間歇性。

軟體部署非常適合用於交付微服務的 FaaS 模型。軟體即服務 (SaaS) 供應商也可以在創業階段以 FaaS 為基礎執行自己的作業,在這個時期,他們迅速增加新的使用者,時斷時續、不定時地使用軟體。

雲端運算的類型

雲端運算服務可分為兩大基本類別:公用與私人。許多組織在混合雲端或多雲端配置中部署了兩種雲端服務模式的組合。

公有雲端

公用雲端雲端服務模式中,使用者為使用 CSP 的運算、儲存裝置和網路資源付費。公用雲端可按照需求提供,因此能迅速部署並以營運費用編入預算,且前期投資低廉。

私有雲端

反觀私人雲端則是在組織內部的資料中心運行,這需要對硬體和持續管理進行大量的前期投資。長遠來看,私人雲端可能比公用雲端服務模式更經濟實惠。

私人雲端的優勢包括對智慧財產權和法規遵循能有局部控制,支援可能無法輕易移轉至公用雲端的企業關鍵工作負載和應用程式。

混合雲端

借助混合雲端,組織便可享受公用和私人雲端服務模式的雙重優勢。混合雲端連接公用和私人雲端,讓組織能夠在兩種環境之間分享應用程式與資料。混合雲端可提供靈活性、可擴展性、控制能力,以及節省成本的潛力。

多雲端

多雲端模式中,組織利用來自多個不同 CSP 的雲端運算服務。資源部署通常是在軟體中進行管理。多雲端策略極為靈活,因為組織可以平衡其工作負載並最佳化成本,而不會侷限於單一 CSP 的服務產品或技術堆疊。

許多組織在多雲端部署的每個 CSP 中指定搭載 Intel® 技術的執行個體,以實現跨供應商的一致性和相容性。

IaaS、PaaS 和 SaaS

許多 CSP 提供一系列雲端運算「即服務」的選擇,包括純粹存取伺服器硬體,乃至於 FaaS 等全方位、全面性的選項。

基礎架構即服務 (IaaS)

最令人耳熟能詳的基本雲端運算服務,就是基礎架構即服務(IaaS)。在IaaS 模式中,CSP 擁有及管理所有的硬體,包括伺服器、網路與儲存裝置。由使用者負責軟體堆疊,包括所有作業系統與應用以及組織資料和功能的訂閱、授權、升級與維護。

IT 經理傾向將 IaaS 作為購買和維護內部部署或共置硬體的替代方案,並產生相關的資本費用。IaaS 是一種靈活的模式,可隨使用者的需求縮放規模,而 CSP 的費用則視為組織預算中的營運費用。

平台即服務 (PaaS)

平台即服務 (PaaS) 是一種雲端服務模式,可提供更完整的開發與部署環境。CSP 的 PaaS 產品一般包括 IaaS 的所有硬體基礎架構,以及構成軟體平台的建構元素:作業系統、中介軟體、開發工具,以及某些類型的資料管理和分析服務。

PaaS 使用者繼續管理軟體堆疊的應用程式層,以及自己的資料與功能,和他們在 IaaS 安排中一樣。

軟體即服務 (SaaS)

軟體即服務 (SaaS) 可能是使用最廣泛的一種雲端運算服務模式。幾乎每個組織都可以看到 SaaS 部署的範例,包括那些支持擁有和管理強大內部伺服器基礎架構、拒絕 IaaS 的使用者。

電子郵件、CRM、生產力套件與檔案儲存空間等應用程式,都能方便地 在SaaS 模式中提供。組織只要為特定一段時間支付授權費,即可在雲端使用那些應用程式。使用者和 IT 團隊可以免於耗時的下載與安裝,也無須管理更新。

常見問題集 (FAQ)

常見問題集

不,FaaS 不是微服務,但這兩種雲端運算服務類型的確相關。微服務是更複雜的應用程式的模組部分,可在 FaaS 環境中開發或部署。

FaaS 是一種雲端運算服務,雲端服務供應商(CSP)擁有並管理運算環境的各個方面,包括硬體基礎架構、中介軟體、作業系統,乃至於應用程式。

一方面來說,PaaS與 FaaS 產品都包括了硬體基礎架構和基礎軟體平台的存取權限,包括作業系統、中介軟體,以及一些工具和服務。

PaaS 繼續管理軟體堆疊的應用程式層,而 FaaS 使用者只需對自己的資料與功能負責。

是,可將 FaaS 模式視為無伺服器,因為是由 CSP 管理整個硬體和軟體堆疊。事實上,FaaS 確實是在伺服器上運作,只不過硬體是由 CSP 擁有和管理,因此從使用者的觀點來看,就是無伺服器體驗。