什麼是平台即服務 (PaaS)?

平台即服務 (PaaS) 廠商為建置和執行應用程式提供基於雲端的平台。

學習目標

閱讀本文後,您將能夠:

  • 定義 PaaS
  • 探索 PaaS 的優缺點
  • 比較 PaaS 與無伺服器運算

複製文章連結

什麼是平台即服務 (PaaS)?

在平台即服務 (PaaS) 模型中,開發人員基本上租用他們建置應用程式所需的一切,依賴雲端提供者提供開發工具、基礎結構和作業系統。這是雲端運算的三種服務模式之一。PaaS 極大地簡化了 Web 應用程式開發;從開發人員的角度來看,所有後端管理都發生在幕後。儘管 PaaS 與無伺服器運算有一些相似之處,但它們之間存在許多重要差異。

雲端運算有哪三種主要模型?

SaaS、PaaS 和 IaaS 服務模型

雲端運算的三種模式分別是 PaaS、SaaS(軟體即服務)IaaS(基礎結構即服務)。IaaS 是指由雲端廠商管理的雲端運算基礎結構(伺服器、儲存體等),而 SaaS 是指託管在雲端並由 SaaS 廠商維護的完整應用程式。如果 SaaS 客戶就像租房的人,那麼 PaaS 客戶就像租用快速建造房屋所需的所有重型設備和電動工具的人,但這些工具和設備由擁有者持續維護和修理。

PaaS 與內部託管開發環境的比較情況如何?

PaaS 可以透過任何網際網路連線進行存取,因此可用於在 Web 瀏覽器中構建整個應用程式。由於開發環境不是本機託管的,因此開發人員可以在世界任何地方使用該應用程式。這使分散在不同地理位置的團隊可以進行協作。這也意味著開發人員對開發環境的控制較少,但這樣做的開銷要少得多。

PaaS 中包含哪些內容?

PaaS 廠商包括的主要產品包括:

  • 開發工具
  • 中介軟體
  • 作業系統
  • 資料庫管理
  • 基礎架構

不同廠商也可能包括其他服務,但以上這些是核心 PaaS 服務。

開發工具

PaaS 廠商提供軟體發展所需的各種工具,包括原始程式碼編輯器、偵錯工具、編譯器和其他必不可少的工具。這些工具可以作為框架一起提供。所提供的特定工具將取決於廠商,但是 PaaS 的產品應包括開發人員建置應用程式所需的一切。

中介軟體

作為服務提供的平台通常包括中介軟體,以便開發人員無需自行構建。中介軟體是位於面向使用者的應用程式和電腦作業系統之間的軟體。例如,中介軟體允許軟體存取來自鍵盤和滑鼠的輸入。中介軟體是執行應用程式所必需的,但終端使用者不與之互動。

作業系統

PaaS 廠商將提供並維護供開發人員使用並執行應用程式的作業系統。

資料庫

PaaS 提供者管理和維護資料庫。他們通常還將為開發人員提供資料庫管理系統。

基礎架構

PaaS 是雲端運算服務模型中 IaaS 的上一層,並且 IaaS 中包含的所有內容也都包含在 PaaS 中。PaaS 提供者可以管理伺服器、儲存體和實體資料中心,也可以從 IaaS 提供者處購買。

SaaS、PaaS、IaaS 和雲端金字塔

開發人員為何使用 PaaS?

加快上市時間

使用 PaaS 構建應用程式,速度比開發人員建置、設定和佈建自有平台和後端基礎結構後再建置應用程式的速度更快。使用 PaaS,他們只需要編寫代碼並測試應用程式,然後其餘的交由廠商處理。

全程只有一個環境

PaaS 允許開發人員在同一環境中建置、測試、偵錯、部署、託管和更新應用程式。這使開發人員得以確保 Web 應用程式在發佈之前可以正常運作,並且這也可以簡化應用程式開發生命週期。

價格

在許多情況下,利用 PaaS 比利用 IaaS 更具成本效益。因為 PaaS 客戶不需要管理和佈建虛擬機器,可以減少開銷。此外,某些提供者採用隨用隨付的定價結構,廠商僅對應用程式使用的運算資源收費,這樣通常可以為客戶省錢。但是,每個廠商的定價結構略有不同,某些平台提供者每月收取固定費用。

輕鬆獲取授權

PaaS 提供者處理作業系統、開發工具以及其平台中包含的所有其他內容的所有授權。

使用 PaaS 有哪些潛在缺點?

廠商鎖定

轉換 PaaS 提供者可能會變得困難,因為應用程式是使用特定廠商的工具(特別是平台)構建的。每個廠商可能有不同的架構要求。不同的廠商可能支援用於構建和執行應用程式的不同語言、程式庫、API、架構或作業系統。要轉換廠商,開發人員可能需要重建或大幅度更改應用程式。

廠商相依性

變更 PaaS 廠商將需要大量工作和資源,這可能使公司更加依賴當前廠商。廠商內部流程或基礎結構即便出現微小變更,都可能會對設計用於在舊設定上高效執行的應用程式的效能產生巨大影響。此外,如果廠商變更其定價模型,則應用程式的運作成本可能突然變得更昂貴。

安全性與合規性挑戰

在 PaaS 架構中,外部廠商將儲存應用程式的大部分或全部資料,並代管其代碼。在某些情況下,賣方可能實際上是透過另一個第三方(即 IaaS 提供者)儲存資料庫的。大多數 PaaS 廠商都是擁有強大安全措施的大型公司,但這卻使得很難全面評估和測試保護應用程式及其資料的安全措施。此外,對於必須遵守嚴格資料安全法規的公司,驗證其他外部廠商的合規性將為上市增加更多障礙。

平台即服務與無伺服器運算有何不同?

PaaS 和無伺服器運算的相似之處在于,開發人員只需編寫和上傳代碼,廠商將處理所有後端流程。但是,使用兩個模式的擴展比例有很大差距。使用無伺服器運算或 FaaS 構建的應用程式將自動擴展,而 PaaS 應用程式不會自動擴展,除非為此進行程式設計。啟動時間也相差很大。無伺服器應用程式幾乎可以立即啟動並執行,但 PaaS 應用程式更像傳統應用程式,必須在大多數時間或所有時間執行,以便立即對使用者可用。

另一個區別是無伺服器廠商不像 PaaS 廠商那樣提供開發工具或框架。最後,兩種模式的定價也大相徑庭。PaaS 計費的準確性遠不如無伺服器運算,後者的運算細化到每個功能執行個體執行的秒數或幾分之一秒。