Home >> Blog >> 什麼是無伺服器 serverless?

什麼是無伺服器 serverless?

無伺服器是一種軟體架構設計模式,它利用由雲端託管服務提供支持的事件驅動程式碼執行來構建由小型離散功能組成的大規模可擴展且具有成本效益的應用程式,而SEO開發人員無需設計或考慮其程式碼所在的底層基礎架構運行。

什麼是無伺服器業務邏輯?

那麼,什麼是無伺服器業務邏輯?每個應用程式都會在某個時候使用伺服器。無伺服器一詞強調了一種架構和服務模型,開發人員無需關注基礎設施,而是可以專注於其應用程式的業務邏輯。正如 Adrian Cockcroft 在本影片中所解釋的那樣,無伺服器是架構設計從單體架構到微服務再到功能的下一次演進。

無伺服器、FaaS(功能即服務)和託管服務

無伺服器和 FaaS 通常被視為可互換的術語,但這並不准確。無伺服器是一種總體架構模式,它利用 FaaS 和其他雲端託管服務。FaaS 是一種特定類型的服務,例如 AWS Lambda、Google Cloud Functions 和 Azure Functions,它使開發人員能夠部署函數。

無伺服器的屬性

  1. 小的、離散的程式碼單元。使用無伺服器架構編寫的服務通常由單個功能組成。
  2. 基於事件的執行。在觸發函數之前,運行函數所需的基礎設施並不存在。一旦收到事件,就會創建一個臨時計算環境來執行該請求。環境可能會立即被破壞,或者更常見的是在短時間內保持活躍,通常為 5 分鐘。
  3. 縮放到零。一旦函數停止接收請求,基礎設施就會關閉並完全停止運行。這節省了成本,因為基礎設施僅在使用時運行。如果沒有使用,環境將縮小到零。
  4. 縮放到無窮大。FaaS 負責監控負載並在需要時創建額外的實例,理論上可以達到無窮大。這實際上消除了開發人員在設計應用程式時考慮規模的需要。一個部署的函數可以處理一個或十億個請求,而無需對程式碼進行任何更改。
  5. 使用託管服務。無伺服器架構通常為其應用程式的元素使用雲提供的服務,這些元素提供無差異的繁重工作,例如文件存儲、數據庫、隊列等。例如,Google的 Firebase 作為數據庫和狀態管理服務在無伺服器社群中很受歡迎連接到其他 Google 服務,例如 Cloud Functions。

雲託管服務比較

下面是來自 AWS、Google Cloud 和 Azure 的託管服務示例以及它們的開源對應物的圖表

c-sharp-list

c-sharp-list

GitLab Serverless 的商業價值和優勢

GitLab Serverless 允許企業在 Kubernetes 上部署自己的 FaaS。

  • 快點
    加快創新步伐。當開發人員可以只專注於業務邏輯時,他們的生產力就會提高。
  • 穩定
    更高的穩定性/彈性(因停機而造成的收入損失更少)。
  • 規模
    規模更大,軟體能夠跟上業務需求。
  • 成本
    降低成本。由於計算僅在服務處於活動狀態時計費,因此與始終在線的基礎架構相比,無服務提供了巨大的成本節約。
  • 沒有供應商鎖定
    沒有供應商鎖定。組織可以選擇他們希望誰來運行他們的計算。在任何支持 Kubernetes 的雲中,甚至是本地伺服器中。
  • 工作流程
    您的 FaaS 與軟體生命週期的其餘部分屬於同一工作流程的一部分,只需一個應用程式,從規劃和測試到部署和監控。
  • 部署
    與直接使用 Knative 相比,部署功能大大簡化和簡化。