Serverless Component 介紹和使用指南

Serverless Component 是什麼,我怎樣使用它?

Serverless Component 介紹和使用指南

▎Serverless Components 的目標是什麼?

我們希望通過 Serverless Components 讓廣大開發者更加便捷,平滑的聯動雲廠商提供的種種服務。

當前,構建一個應用意味著你可以挑選種種 SaaS 服務並且管理他們(例如 serverless 服務),之後將其整合為一個適用的解決方案。這很棒,因為這樣做更快並且開銷更小。

但這樣的做法也會十分複雜。為了將這些服務整合在一起,你需要大量的手工配置,並且當前沒有很多工具可以幫你來構建和管理自己的應用架構。

▎初識 Serverless Components

Serverless Components 目標就是改變當前開發者面對的這一切。

針對各個雲廠商/SaaS 廠商的基礎服務,Components 提供了編排這些資源和業務代碼的統一標準。就像樂高積木一樣,你可以使用多個 Components 非常輕鬆的搭建你的應用。

Serverless Components 還提供了完善的,由社區貢獻驅動的開發者生態。你可以很方便的瀏覽和優化這些 Components。最終的結果就是你可以極大的節省開發時間,不需要從頭開始構建你的 Full Stack 應用,取而代之的是可以利用已有的組件快速構建並按自己的需求調整。

▎Serverless Components 運行機制

接下來讓我們來看一下,怎樣使用 Serverless Components 來快速構建一個完整的 Serverless 應用。

1. 統一的體驗

所有的雲服務都可以被封裝為一個 Serverless Component。

每個 Component 都支持對相應雲服務的創建,回滾和移除操作,這些都可以通過 Serverless Components CLI 實現。

開發者只需要配置 Components 提供該服務所需的最少配置,其餘的都會採用默認配置的方式提供。這樣可以更方便的創建對應的資源。引用一個 Component 的時候,只需要在 serverless.yml 文件中增加 “components” 屬性,並且引用這個 Component,如圖所示。

Serverless Component 介紹和使用指南

如上所示,可以通過運行 serverless 命令來創建一個對象存儲的存儲桶資源。

2. 組合更高維度的 Components

假設你希望在騰訊雲部署一個基於 Serverless 架構的 Express.js 框架。為了完成這個框架的搭建,你需要在 API 網關服務中創建新的 API ,並且用這個 API 來調用雲函數服務;為了完成基本的數據操作,還需要創建、連接並且調用數據庫服務(假設為 PostgreSQL )進行增刪改查。

我們當前支持了該框架所需的所有 Components 。每個組件都可以通過十分簡單參數進行配置,你可以根據這些配置編排底層對應的雲資源,並且快速、方便的進行服務的部署。

所有的 Serverless Components 都可以結合在一起,並且構成一個更大、功能更豐富的 Component。

我們把這三個基礎的 Components (PostgreSQL、API Gateway、SCF)組合起來構造一個 Express.js 的框架,並且他們將組成一個新的、更高維度的 Express Component。如圖所示,這些配置也都會在 serverless.yml 文件中體現。

Serverless Component 介紹和使用指南

根據這張圖可以看出 Components 的價值。當你構建一個 Express 框架的時候,你需要做很多準備工作,需要開通、配置很多產品,比如創建函數,配置 REST API,配置和連接 DB等。

但事實上你可以通過抽象這些基礎 Components 來節省很多類似的配置工作,並且 Express.js 這些框架組件可以使用很多默認配置進行部署,並且只暴露最簡單的,面向業務的配置項。

Serverless Component 介紹和使用指南

此外,你還可以在其他項目中複用這個 Express Component。或者其他的開發者也可以在自己的項目中使用它,並且只需要根據自己的業務簡單調整下配置。例如,他們可能會修改 REST API 的路徑或者支持的協議等。

Serverless Component 介紹和使用指南

最終,這些更高維度的 Components 變成來各種常用場景,可以被開發者快速使用並且複用、整合。

3. 組合 Components 構建整個應用

現在讓我們從更加宏觀的角度來看這個 Express 框架。當你希望部署整個應用的時候,需求會變得更加複雜和全面。例如你需要對動態資源和靜態資源做隔離,優化頁面的訪問速度,提供更豐富的 API 等。

別擔心,你依然可以利用 Serverless Components 進一步擴展和完善你的應用。只需要把這個高維度的 Component 和更多其他 Components 組合,就可以構建更加完整的應用。如下圖所示,一個完整的 Full-Stack 應用可以通過持續組合 Serverless Components 實現。

Serverless Component 介紹和使用指南

像所有其他的 Components 一樣,其他開發者也可以輕鬆的複用這個 Full-Stack 組件,並且只需要暴露出最簡單的配置信息。

我們認為 Serverless 是圍繞場景的,無需對基礎資源做過多對配置和管理。我們希望 Components 可以讓基礎設施對開發者更加透明,開發者可以專注於業務邏輯和場景,並且通過開源社區的方式,讓這些場景可共享、可複用,同時進一步促進開發者生態。

▎準備好體驗 Serverless Components 了嗎?

剛剛我們演示了一個全棧應用的部署方式,如果你希望進一步瞭解 Components, 歡迎訪問 Serverless Components 的 Github 主頁,並且查看當前支持的場景模板。

我們當前提供了幾種基礎 Components,你可以靈活組合他們,並且創建自己所需的高維度的應用場景。我們十分歡迎對 Serverless Components 倉庫 的開源貢獻,也非常期待開發者的建議和反饋!

當前 Serverless Component 也支持多語言開發框架的快速部署,可以移步組件頁面進一步查看:

Serverless Component 介紹和使用指南

▎Serverless Components 的下一步規劃

我們相信 Components 可以帶來非常理想的 Serverless 開發體驗,並且我們計劃將該能力和當前的 Serverless Framework 整合在一起。此外,我們計劃提供公共的 Components 註冊中心,通過該能力,開發者可以更加迅速的進行部署,並且也更方便進行版本管理和團隊協作。


分享到:


相關文章: