天天看點

工具推薦:前後端一體化部署,效能提升開源“神器”

支援應用的無縫托管、引入支援自定義的底層資源層、支援聲明式描述雲資源、使用簡單,這些都可以實作!

雲開發 CloudBase是雲端一體化的雲服務平台,采用 serverless 架構,開發者無須關心伺服器搭建和管理,隻需要編寫業務代碼和調用原生提供的雲能力,就可以快速搭建完整的小程式/小遊戲、H5、Web、移動 App 等應用。雲開發是國内 Serverless 理念的領先實踐,服務了超過 50 萬開發者。

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

存量業務如網站、後端服務希望能托管在雲開發平台,但存在不小的改造成本

無法覆寫各種開發語言、架構和現有的應用傳遞方式

應用中存在前後端使用多種雲開發資源時,希望能降低釋出成本,同時實作持續傳遞

應用中添加其他雲能力需要手動在控制台配置

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

支援應用的無縫托管:使用者不需要改變開發習慣,不需要修改代碼适配雲函數等雲資源,而是可以直接将應用托管在雲開發平台上

引入支援自定義的底層資源層:引入容器化的部署方案來承載各種開發語言、架構和現有的應用傳遞方式

支援聲明式描述雲資源:将應用内各個部分最終都能描述成統一的描述語言,支援前後端的統一部署

使用簡單:使用者無須關心底層資源和底層聲明檔案等細節,隻需要有限的業務參數,即可将應用一鍵托管到雲開發平台

核心的思想就是希望讓開發者使用一體化的方式來開發和部署應用。

工具推薦:前後端一體化部署,效能提升開源“神器”

CloudBase Framework 是雲開發基于上述一體化的思想開發的前後端一體化部署工具,開發者無需改動業務代碼,支援前後端一鍵托管部署在雲開發平台,享受加速通路和彈性免運維的優勢,具有以下特點:

1. 雲開發出品

由雲開發推出,核心代碼已在 Github 開源

https://github.com/TencentCloudBase/cloudbase-framework

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

工具推薦:前後端一體化部署,效能提升開源“神器”

2. 雲原生,一體化

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

3. 降低成本

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

4. 高效快速

簡單易用,并内置大量強大後端能力,隻需要開發業務邏輯即可

下文将詳細介紹 CloudBase Framework 的核心特性以及快速開始攻略。

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 工具實作持續部署,例如隻需要幾行代碼就可以實作 Github 自動推送時自動部署應用前後端,同時也可以在 CI/CD 過程中增加手動确認步驟來 Review 釋出過程。

平台一體化

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

項目一體化

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

工具推薦:前後端一體化部署,效能提升開源“神器”

如上面的例子所示,一個具備前端代碼、雲函數和服務端代碼的一體化應用,隻需要調用 CloudBase Framework 的一條指令,即可将完整應用部署在雲端,統一管理和維護。

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

例如,在雲開發平台上,我們需要部署靜态網站,無須關心對象存儲和 CDN 的管理;需要部署 HTTP 服務,無須關心網關層和計算資源的配置;需要使用雲資料庫時,我們也不用擔心資料庫執行個體的容災。

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

登入鑒權:通過 SDK 實作登入鑒權

雲資料庫:内置的 NoSQL 資料庫,可通過聲明式的方式來建立集合和索引

雲接入:引入 HTTP 通路的支援

雲調用:幾行代碼實作微信開放能力的調用

雲函數:輕量級的計算能力

雲存儲:實作檔案的存儲和下載下傳

Serverless 雲應用:極簡方式使用 Kubenetes 容器

擴充能力:可以免開發安裝 CMS 内容管理系統等擴充能力

更多技術文檔:https://cloudbase.net?from=10004

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

內建雲開發多端 SDK

開箱即用的後端能力

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵部署,聲明式建立雲資源

自動、快速彈性擴縮容

工具推薦:前後端一體化部署,效能提升開源“神器”

更多節點覆寫

高性能,高可用

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

工具推薦:前後端一體化部署,效能提升開源“神器”

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

工具推薦:前後端一體化部署,效能提升開源“神器”

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

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

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

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

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

目前 CloudBase Framework 官方提供的插件有:

插件

最新版本

插件介紹

@cloudbase/framework-plugin-website

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵部署網站應用

@cloudbase/framework-plugin-node

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵部署 Node 應用(支援底層部署為函數或者 Serverless 雲應用)

@cloudbase/framework-plugin-nuxt

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵部署 Nuxt SSR 應用

@cloudbase/framework-plugin-function

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵部署函數資源

@cloudbase/framework-plugin-container

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵部署雲應用容器服務

@cloudbase/framework-plugin-dart

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵部署 Dart 雲應用

@cloudbase/framework-plugin-database

工具推薦:前後端一體化部署,效能提升開源“神器”

一鍵聲明式部署雲開發 NoSQL 雲資料庫

安裝 CloudBase CLI

首先需要安裝 CloudBase 最新版指令行工具

登入指令行工具

然後調用指令行進行登入,會跳轉到騰訊雲控制台進行賬号的授權,如果沒有賬号,可以在控制台進行開通

初始化一個應用

通過 CloudBase 指令行工具我們可以非常友善地建立一個應用,如果在現有應用中使用,可以執行 <code>cloudbase init --without-template</code>

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

工具推薦:前後端一體化部署,效能提升開源“神器”

也可以直接指定模闆 id 建立對應的項目,例如

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

名稱

應用示例介紹

模闆 id

Vue 應用

Vue + 雲函數 + 靜态網站部署

<code>vue</code>

React 應用

React + 雲函數 + 靜态網站部署

<code>react-starter</code>

React 全棧應用

React + 雲函數 + 靜态網站部署+ 雲資料庫

<code>react-demo</code>

Nuxt SPA 應用

Nuxt SPA + 雲函數 + 靜态網站部署

<code>nuxt-spa</code>

Nuxt SSR 應用

Nuxt SSR + 服務端部署 + 靜态網站部署

<code>nuxt-ssr</code>

Koa 應用

Koa + 服務端部署

<code>koa-starter</code>

Express 應用

Express + 服務端部署

<code>express-starter</code>

Nest 應用

Nest + 服務端部署

<code>nest-starter</code>

Node.js 雲函數示例

Node.js 雲函數

<code>node-starter</code>

PHP 雲函數示例

PHP 雲函數

<code>php-starter</code>

Java 雲函數示例

Java 雲函數

<code>java-starter</code>

VuePresss 網站應用

VuePresss + 靜态網站部署

<code>vuepress</code>

Node.js 雲應用

Node.js + Serverless 雲應用部署

<code>node</code>

Aqueduct (Dart Server) 雲應用

Aqueduct (Dart Server) + Serverless 雲應用部署

<code>dart</code>

部署應用

接下來,隻需要進入到項目目錄中調用指令進行部署

工具推薦:前後端一體化部署,效能提升開源“神器”

部署成功後,就可以通過指令行提示的位址進行通路了:

https://framework.service.tcloudbase.com/express-starter/

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

一體化思想

一體化平台

一體化部署工具

一體化運作時庫:通過運作時架構簡化開發流程,以更少的代碼實作強大的功能

一體化 CI/CD 工作流:結合代碼倉庫推送,實作内置的自動化雲端建構和部署

工具推薦:前後端一體化部署,效能提升開源“神器”

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

Github 位址:https://github.com/TencentCloudBase/cloudbase-framework

積極參與 Issue 的讨論,如答疑解惑、提供想法或報告無法解決的錯誤

撰寫和改進項目的文檔

送出更新檔優化代碼

認領待辦任務中的事項