打通前後端,這款效能提升開源“神器”你一定要了解

騰訊技術工程發表於2020-07-21


打通前後端,這款效能提升開源“神器”你一定要了解


作者:趙兵,騰訊云云開發團隊高階前端開發工程師

背景和介紹

雲開發(CloudBase)是雲端一體化的雲服務平臺,是國內 Serverless 理念的領先實踐,使用雲開發,開發者無須關心伺服器搭建和管理,只需編寫業務程式碼和呼叫原生提供的雲能力,就可以快速搭建完整的小程式/小遊戲、H5、Web、移動 App 等應用,目前,雲開發已服務超過 50 萬開發者。

在開發者使用雲開發的過程中,我們收集到如下場景的反饋和需求:

  1. 存量業務如網站、後端服務希望能託管在雲開發平臺,但存在不小的改造成本
  2. 無法覆蓋各種開發語言、框架和現有的應用交付方式;
  3. 應用中存在前後端使用多種雲開發資源時,希望能降低釋出成本,同時實現持續交付;
  4. 應用中新增其他雲能力需要手動在控制檯配置

基於以上的場景,我們希望設計一個工具來解決上述問題,工具擬具備以下特性:

  1. 支援應用的無縫託管:使用者不需要改變開發習慣,不需要修改程式碼適配雲函式等雲資源,而是可以直接將應用託管在雲開發平臺上;
  2. 引入支援自定義的底層資源層:引入容器化的部署方案來承載各種開發語言、框架和現有的應用交付方式;
  3. 支援宣告式描述雲資源:將應用內各個部分最終都能描述成統一的描述語言,支援前後端的統一部署;
  4. 使用簡單:使用者無須關心底層資源和底層宣告檔案等細節,只需要有限的業務引數,即可將應用一鍵託管到雲開發平臺。

上述特性的核心思想即讓開發者能夠使用一體化的方式來開發和部署應用

打通前後端,這款效能提升開源“神器”你一定要了解

由此,CloudBase Framework 應運而生!CloudBase Framework 是雲開發基於上述一體化的思想開發的前後端一體化部署工具,支援前後端一鍵託管部署在雲開發平臺,開發者無需改動業務程式碼,即可享受加速訪問和彈性免運維的優勢,具有以下特點:

1. 雲開發出品

由雲開發推出,核心程式碼已在 Github 開源:

(歡迎給我們的專案點個 Star,支援我們做得更好~)

打通前後端,這款效能提升開源“神器”你一定要了解

2. 雲原生,一體化

前後端一體化部署在 Serverless 架構的雲環境上,彈性可擴充套件

3. 降低成本

資源按使用自動彈性擴縮容,按照使用計費,極大節約資源成本

4. 高效快速

簡單易用,並內建大量強大後端能力,只需要開發業務邏輯即可

亮點 1: 一鍵部署

CloudBase Framework 的第一個核心亮點是可以實現一鍵部署,常見的應用,不需要改動業務程式碼,即可“零配置”部署到雲開發上。

打通前後端,這款效能提升開源“神器”你一定要了解

例如,圖中所示的基於 Vue CLI 工具建立的專案,在執行 CloudBase Framework 的部署命令時,會自動檢測專案框架和語言,互動式確認並儲存專案配置,實現應用的一鍵釋出。一條命令實現了應用部署,自動配置 COS 物件儲存和 DNS、域名等,自帶 HTTPS 安全訪問、CDN 訪問加速等能力。

支援常見框架和語言

打通前後端,這款效能提升開源“神器”你一定要了解

CloudBase Framework 目前支援了 Vue、React 等前端框架,也支援 Nuxt 等 SSR 框架,基於 Node 開發的應用如 Express、Koa 等也可以一鍵託管。除此之外,藉助底層 Serverless 雲應用的能力,也可以部署其他後端的應用(PHP、Java、Go 等),值得一提的是可以部署 Dart Server,可以配合 Flutter 實現 Dart 語言的雲端一體化,這也是國內雲廠商對 Dart 語言和生態的一大補充。

自動檢測框架

在降低使用者使用門檻方面,我們實現了自動檢測的功能,針對常見前端框架無需編寫配置,可以實現自動識別專案的構建和釋出預設配置

無需複雜適配

不需要學習複雜的伺服器配置和更改程式碼,只需要輸入業務引數即可部署

可配合 CI/CD

可以與您的現有工作流完美配合,可搭配 CI/ CD 工具實現持續部署,例如只需要幾行程式碼就可以實現 Github 自動推送時自動部署應用前後端,同時也可以在 CI/CD 過程中增加手動確認步驟來 Review 釋出過程。

    - name: Deploy to CloudBase
      run: |
        npm i @cloudbase/cli
        cloudbase login --apiKeyId ${{secrets.SECRETID}}  --apiKey ${{secrets.SECRETKEY}}
        cloudbase framework:deploy

亮點 2: 一體化,易擴充套件

平臺一體化

雲開發(CloudBase)是雲端一體化的雲服務平臺,採用 serverless 架構,開發者無須關心伺服器搭建和管理,原生提供了很多開箱即用的雲能力

專案一體化

使用 CloudBase Framework 開發的專案前端、後端等都可以在同一個專案內開發和維護,這一點和小程式開發非常類似,可以在 IDE 內透過一體化的方式開發和釋出。

打通前後端,這款效能提升開源“神器”你一定要了解

前後端一體化部署

如上面的例子所示,一個具備前端程式碼、雲函式和服務端程式碼的一體化應用,只需要呼叫 CloudBase Framework 的一條命令,即可將完整應用部署在雲端,統一管理和維護。

開箱即用的原生雲能力

雲開發一體化平臺提供了開箱即用的原生的雲能力,無需學習底層資源配置,無需運維和管理。

例如,在雲開發平臺上,我們需要部署靜態網站,無須關心物件儲存和 CDN 的管理;需要部署 HTTP 服務,無須關心閘道器層和計算資源的配置;需要使用雲資料庫時,我們也不用擔心資料庫例項的容災。

輕鬆新增更多後端能力

可輕鬆引入更多開箱即用的後端能力

  • 登入鑑權:透過 SDK 實現登入鑑權
  • 雲資料庫:內建的 NoSQL 資料庫,可透過宣告式的方式來建立集合和索引
  • 雲接入:引入 HTTP 訪問的支援
  • 雲呼叫:幾行程式碼實現微信開放能力的呼叫
  • 雲函式:輕量級的計算能力
  • 雲端儲存:實現檔案的儲存和下載
  • Serverless 雲應用:極簡方式使用 Kubenetes 容器
  • 擴充套件能力:可以免開發安裝 CMS 內容管理系統等擴充套件能力

CloudBase Framework 降本增效

CloudBase Framework 透過提供一體化的開發和部署功能,將應用輕鬆遷移到一體化的雲開發平臺上來。企業和個人開發者可以藉助這套方案,提升業務效率,節省業務成本。

開發更快

  • 整合雲開發多端 SDK
  • 開箱即用的後端能力
打通前後端,這款效能提升開源“神器”你一定要了解

部署更快

  • 一鍵部署,宣告式建立雲資源
  • 自動、快速彈性擴縮容打通前後端,這款效能提升開源“神器”你一定要了解

訪問更快

  • 更多節點覆蓋
  • 高效能,高可用

在 50 萬開發者,每日呼叫量 7 億的規模下,可用性保障可以做到 99.90%

打通前後端,這款效能提升開源“神器”你一定要了解

省心更省錢

雲開發平臺具備了免運維,全託管,按量付費的特點,透過 CloudBase 部署應用的成本相比傳統方式部署應用的成本,節省了運維成本、閒置租用成本以及多角色溝通的成本。

打通前後端,這款效能提升開源“神器”你一定要了解

例如微信讀書團隊藉助“小程式·雲開發”帶來了很大的效能提升,微信讀書小程式上線 10 個月累計釋出 349 次版本,開發效率分別是對應的 APP 和 H5 的 4 倍與 2 倍。

雲開發還讓其團隊的分工和成員能力發生了顯著變化。以前其團隊按照前端開發、Node.js 開發和運維人員進行分工,現在前端負責全棧開發。

生態和外掛

CloudBase Framework 具有開放性的特點,通過微核心、外掛化的方式來設計這套方案。核心層面解決外掛化、構建生命週期等問題,針對具體的場景則透過外掛的方式來實現。

例如,針對不同技術棧的網站的託管,設計了 website 外掛來處理這一類問題,可以解決前端頁面構建、靜態資源的部署以及域名的處理。

開發者也可以根據外掛的規範來開發不同的外掛釋出到 NPM 上,使用時只需要指定其 npm 包名即可。

目前 CloudBase Framework 官方提供的外掛有:

打通前後端,這款效能提升開源“神器”你一定要了解

快速開始

  1. 安裝 CloudBase CLI

首先需要安裝 CloudBase 最新版命令列工具

npm install -g @cloudbase/cli@latest
  1. 登入命令列工具

然後呼叫命令列進行登入,會跳轉到騰訊雲控制檯進行賬號的授權,如果沒有賬號,可以在控制檯進行開通

cloudbase login
  1. 初始化一個應用

透過 CloudBase 命令列工具我們可以非常方便地建立一個應用,如果在現有應用中使用,可以執行 cloudbase init --without-template

cloudbase init

透過互動式地建立環境和選擇模板來初始化應用

打通前後端,這款效能提升開源“神器”你一定要了解

也可以直接指定模板 id 建立對應的專案,例如

cloudbase init --template nuxt-ssr

目前支援的一體化應用模板如下:

打通前後端,這款效能提升開源“神器”你一定要了解
  1. 部署應用

接下來,只需要進入到專案目錄中呼叫命令進行部署

cloudbase framework:deploy
打通前後端,這款效能提升開源“神器”你一定要了解

部署成功後,就可以透過命令列提示的地址進行訪問了:

願景

CloudBase Framework 致力於打造一體化框架,目前已實現了一體化的部署工具,未來會引入一體化執行時庫和一體化 CI/CD 工作流,幫助業務更快更簡單地將業務部署在面向未來的雲開發平臺上,提高效率,節省成本。

  1. 一體化思想
  2. 一體化平臺
  3. 一體化部署工具
  4. 一體化執行時庫:透過執行時框架簡化開發流程,以更少的程式碼實現強大的功能
  5. 一體化 CI/CD 工作流:結合程式碼倉庫推送,實現內建的自動化雲端構建和部署
打通前後端,這款效能提升開源“神器”你一定要了解

開源貢獻

我們非常歡迎各位開發者為 CloudBase Framework 貢獻一份力量,讓這個專案能夠更好地幫助開發者提升效率。

Github 地址:

參與貢獻

  • 積極參與 Issue 的討論,如答疑解惑、提供想法或報告無法解決的錯誤
  • 撰寫和改進專案的文件
  • 提交補丁最佳化程式碼
  • 認領待辦任務中的事項

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559354/viewspace-2705781/,如需轉載,請註明出處,否則將追究法律責任。

相關文章