雲原生架構白皮書學習筆記(6):主要雲原生技術-Serverless

乘瘋破浪陳發表於2020-09-27

主要雲原生技術

Serverless

Kubernetes 成為了雲端計算的新一代作業系統,面向特定領域的後端雲服務(BaaS)則是這個作業系統上的服務 API,儲存、資料庫、中介軟體、大資料、AI等都開始變為全託管的雲形態,使用者不再需要搭建儲存系統、部署資料庫軟體,無需關注同質化的、負擔繁重的基於伺服器等基礎設施的開發、運維、安全、高可用等工作。
當這些 BaaS 雲服務日趨完善時,Serverless 因為遮蔽了伺服器的各種運維複雜度,讓開發人員可以將更多精力用於業務邏輯設計與實現。
Serverless 計算包含以下特徵:

  • 全託管的計算服務
  • 通用性
  • 自動的彈性伸縮
  • 按量計費

函式計算(Function as a Service)

函式計算(Function as a Service)是 Serverless 中最具代表性的產品形態。通過把應用邏輯拆分多個函式,每個函式都通過事件驅動的方式觸發執行,並且每個環節都是彈性和高可用的,通過與中介軟體的整合,客戶能夠快速實現大規模訊息、資料的實時並行處理。
函式計算這種 Serverless 形態在普及方面仍存在一定困難,例如:

  • 函式程式設計以事件驅動方式執行,這在應用架構開發習慣方面,以及研發交付流程上都會有比較大的改變;
  • 函式程式設計的生態仍不夠成熟,應用開發者和企業內部的研發流程需要重新適配;
  • 細顆粒度的函式執行也引發了新技術挑戰,比如冷啟動會導致應用響應延遲,按需建立資料庫連線成本高等。

其他:基於容器的 Serverless 技術

通過和容器技術進行融合創新,藉助良好的可移植性,使容器化的應用能夠無差別地執行在開發機、自建機房以及公有云環境中,容器工具鏈能夠加快解決 Serverless 的交付。代表作有:

  • 阿里雲提供了彈性容器例項(ECI)以及更上層的 Serverless 應用引擎(SAE);
  • Google 提供了 CloudRun 服務,這都幫助使用者專注於容器化應用構建,而無需關心基礎設施的管理成本。此外 Google 也開源了基於 Kubernetes 的 Serverless 應用框架 Knative。
    相對函式計算,這類 Serverless 應用服務支援容器映象作為載體,無需修改即可部署在 Serverless 環境中,可以享受到 Serverless 帶來的全託管免運維、自動彈性伸縮、按量計費等優勢。

Serverless 技術常見場景

  • 小程式 /Web/Mobile/API 後端服務
  • 大規模批處理任務
  • 基於事件驅動架構的線上應用和離線資料處理
  • 開發運維自動化

技術關注點

  • 計算資源彈性排程:排程演算法應滿足容錯、資源利用率、效能、資料驅動等多方面目標。
  • 負載均衡和流控
  • 安全性:使用者程式碼的安全是不可逾越的底線,系統應從許可權管理、網路安全、資料安全、執行時安全等各個維度全面保障應用的安全性。

相關文章