後端即服務 (BaaS) 可讓開發人員專注於應用程式的前端,並利用後端服務,而無需建置或維護後端服務。BaaS 和無伺服器運算有一些相似之處,許多提供者同時提供兩者,但這兩種模式有一些差異。
閱讀本文後,您將能夠:
複製文章連結
後端即服務 (BaaS) 是一種雲端服務模型,在其中,開發人員外包 Web 或行動應用程式的所有幕後方面,僅需自行編寫和維護前端。BaaS 廠商為伺服器上發生的活動提供預編寫的軟體,例如使用者驗證、資料庫管理、遠端更新和推播通知(針對行動應用程式),以及雲端儲存和託管。
在不使用 BaaS 的情況下開發應用程式,就像導演電影。電影導演除實際拍攝和指導將出現在電影中的場景外,還負責監督或管理攝製組、照明、佈景、服裝、演員表和製片時間表。現在想像一下,如果有一項服務負責所有幕後活動,導演就只需要指揮並拍攝場景。這就是 BaaS 的概念:廠商負責「燈光」和「攝影機」(或伺服器端*功能)的管理,以便導演(開發人員)可以專注於「動作」——終端使用者看到並體驗的內容。
BaaS 使開發人員可以專注于編寫前端應用程式碼。透過 BaaS 廠商提供的 API(一個程式對另一個程式發出請求的途徑)和 SDK(用於構建軟體的工具包),他們可以整合所需的所有後端功能,而無需自行構建後端。他們也不必管理伺服器、虛擬機器或容器,即可保持應用程式執行。因此,他們可以更快地構建和啟動行動應用程式和 Web 應用程式(包括單頁應用程式)。
*伺服器端是指託管在伺服器上或發生在伺服器上、而不是網際網路用戶端-伺服器模型中的用戶端上的所有內容。
行動後端即服務 (MBaaS) 是專門用於構建行動應用程式的 BaaS。儘管一些人認為 BaaS 和 MBaaS 基本是可互換的詞彙,但構建行動應用程式時並不是必須使用 BaaS 服務。
BaaS 提供者提供許多伺服器端功能。例如:
BaaS 和 MBaaS 提供者包括 Google Firebase 和 Microsoft Azure。
BaaS 和無伺服器運算之間存在一些重疊,在這兩者中,開發人員都只需要編寫應用程式代碼,而無需考慮後端。此外,許多 BaaS 提供者還提供無伺服器運算服務。然而,使用 BaaS 構建的應用程式與使用真正的無伺服器架構構建的應用程式之間存在顯著的操作差異。
無伺服器應用程式的後端分為多個功能,每個功能都回應事件並僅執行一個動作(請參閱什麼是 FaaS?)。而 BaaS 伺服器端功能可以按提供者的意願進行構建,並且開發人員不必擔心除應用程式前端以外的任何事務。
無伺服器架構是事件驅動的,這意味著它們回應事件而執行。每個功能僅在由某個事件觸發時才執行,否則不會執行。使用 BaaS 構建的應用程式通常不是事件驅動的,這意味著它們需要更多的伺服器資源。
無伺服器功能可以從任何機器上的任何位置執行,只要它們仍然與應用程式的其餘部分通訊即可,這樣使得透過在網路邊緣執行代碼將邊緣運算整合到應用程式架構中成為可能。BaaS 不必設定為隨時隨地執行代碼(儘管可以,具體取決於提供者)。
可擴展性是將無伺服器架構與其他類型的架構區分開的最大區別之一。在無伺服器運算中,應用程式會隨著使用量的增加而自動擴展。雲端廠商的基礎結構會根據需要啟動每個功能的臨時執行個體。而除非 BaaS 提供者還提供無伺服器運算,並且開發人員將其構建到應用程式中,否則 BaaS 應用程式無法以這種方式進行擴展。
PaaS 透過雲端提供一個平台,供開發人員構建應用程式。與無伺服器運算和 BaaS 一樣,平台即服務 (PaaS) 消除了開發人員構建和管理應用程式後端的需要。但是,PaaS 不包括預先構建的伺服器端應用程式邏輯,例如推播通知和使用者驗證。PaaS 為開發人員提供了更大的靈活性,而 BaaS 提供了更多的功能。