Serverless DB 設計解讀與實戰

哈嘍小夥伴們,咱們都知道數據庫在項目開發中每每是不可或缺的一環,而在雲計算熱度不斷提高的背景之下,咱們對於使用數據庫的成本以及靈活性有了更高的要求。html

Serverless 團隊近期新發布了兩款組件來填補這最關鍵的一塊拼圖 —— Serverless DB!前端

下面咱們一塊兒來看看吧!vue

Serverless PostgreSQL 組件

PostgreSQL for Serverless 是一款基於 PostgreSQL 數據庫實現的按需分配資源的數據庫產品,其數據庫將根據用戶的實際請求數來自動分配資源。經過 PostgreSQL ServerlessDB 組件,用戶能夠快速方便地建立、配置和管理騰訊雲的 PostgreSQL 實例。node

產品有如下特性:git

  1. 低成本:產品按照用戶使用的計算資源和容量來計費,沒有請求時無需付費,減小使用成本。
  2. 方便配置:默認配置將由 Serverless 爲用戶完成,用戶也可自行在yaml文件中更改,短短几行便可完成配置工做,方便用戶更好地關注自身業務邏輯。
  3. 極速部署:部署過程流暢快捷,僅需幾秒,便可建立或更新數據庫。
  4. 高可用:PostgreSQL for Serverless 支持一主一備高可用,當主實例出現意外致使不可用時,數據庫將自動啓動備用實例,此時業務鏈接將轉移至備用實例當中,避免業務因意外狀況而致使數據庫沒法使用。

Serverless TCB 組件

用戶在處理大數據時經常須要面臨高併發讀寫、海量數據高效存儲、高可擴展性等問題,傳統的 RMDB 數據庫難以知足用戶需求,SLS 須要對建立 NoSQL DB 進行支持。有了基於雲開發 TCB 的Serverless TCB 組件,用戶經過該組件建立 tcb 環境,在代碼中直接調用 tcb 的 SDK,實現 tcb 環境中 NoSQL DB 的建立和調用。github

產品有以下優點:web

  1. 徹底兼容:數據庫徹底兼容 MongoDB 協議,既適用於傳統表結構的場景,更適用於緩存、非關係型數據以及利用 MapReduce 進行大規模數據集的並行運算的場景。
  2. 安全性高:雲數據庫經過備份機制保存多天的備份數據,以便於在災難狀況下進行數據恢復。
  3. 低成本:按量計費,用戶無需爲未使用資源進行額外付費。
  4. 極速部署,操做簡便:用戶僅需幾行代碼即可完成配置,部署速度快,效率高。

說了這麼多,不如一塊兒來試試吧!sql

準備工做:安裝好 Node.js(Node.js 版本需不低於 8.6,建議使用 Node.js10.0 及以上版本)mongodb

Nodejs 下載地址:https://nodejs.org/en/download/數據庫

還未安裝的小夥伴,能夠通如下文檔指引安裝完成:Serverless Framework 快速開始

實戰一:部署 Vue + Express + PostgreSQL 全棧網站

  1. 經過 npm 全局安裝 Serverless Framework:
$ npm install -g serverless

安裝完畢後,用以下命令查看 Serverless Framework 的版本信息,確保版本不低於 Components: 2.30.1

$ serverless -v
  1. 新建本地文件夾 serverless-wty,下載相關的 template。
$ mkdir serverless-wty && cd serverless-wty
$ serverless create --template-url https://github.com/serverless-components/tencent-fullstack

目前 PostgreSQL 還不支持掃碼一鍵部署,請在本地建立 .env文件,並在其中配置對應的騰訊雲 SecretId、SecretKey、地域和可用區信息。

$ touch .env 
vim.env

.env
TENCENT_SECRET_ID=xxx // 您帳號的 SecretId
TENCENT_SECRET_KEY=xxx // 您帳號的 SecretKey
地域可用區配置
REGION=ap-guangzhou //資源部署區,該項目中指雲函數與靜態頁面部署區
ZONE=ap-guangzhou-2 //資源部署可用區 ,該項目中指 DB 部署所在的可用區

說明:若是沒有騰訊雲帳號,請先註冊新帳號。若是已有騰訊雲帳號,請保證您的帳號已經受權了 AdministratorAccess 權限。您能夠在 API 密鑰管理中獲取 SecretId 和 SecretKey。

ZONE 目前只支持 ap-beijing-3 、ap-guangzhou-二、ap-shanghai-2.

  1. 經過執行如下命令,安裝所需依賴
$ npm run bootstrap
  1. 執行如下命令,進行部署
$ sls deploy --all

部署成功後,您可使用瀏覽器訪問項目產生的 website 連接,便可看到生成的網站。

  1. 執行以下命令,查看部署信息,該項目部署的信息:vpc、db、api、frontend(前端網站)
$ npm run info
  1. 執行以下命令,可移除項目
$  sls remove --all

上述實戰主要包含如下組件:

  • Serverless RESTful API:經過雲函數和 API 網關構建的 Express 框架實現
    RESTful API。
  • Serverless 靜態網站:前端經過託管 Vue.js 靜態頁面到 COS 對象存儲中。
  • PostgreSQL Serverless:經過建立 PostgreSQL DB 爲全棧網站提供數據庫服務。
    VPC:經過建立 VPC 和 子網,提供 SCF 雲函數和數據庫的網絡打通和使用。

實戰二:部署支持 NoSQL 數據庫的全棧網站

  1. 經過 npm 全局安裝 Serverless CLI:
$ npm install -g serverless

安裝完畢後,用以下命令查看 Serverless Framework 的版本信息,確保版本不低於 Components: 2.30.1

$ serverless -v
  1. 新建一個本地文件夾,使用 create --template-url 命令,下載相關 template:
$ mkdir my_tcbdemo && cd my_tcbdemo
$ serverless create --template-url https://github.com/serverless-components/tencent-mongodb/tree/master/example/fullstack-demo

找到 function->serverless.yaml 文件,填入本身的 SecretId 和 SecretKey,再進入 function->src 文件夾目錄下,經過如下命令安裝所需依賴完成配置:

$ npm install

說明:若是沒有騰訊雲帳號,請先註冊新帳號。若是已有騰訊雲帳號,能夠在 API 密鑰管理 中獲取 SecretId 和 SecretKey。目前 sls(serverless 的簡稱)支持在國內區域訪問 TCB,部署時請注意 yaml 文件裏的地域設置,其餘地域可能會報錯。

  1. 配置完成後,進入根目錄下,經過如下命令進行部署,建立一個新的雲開發環境,將後臺代碼部署到雲函數 SCF 平臺,並經過 website 組件部署靜態網站:
$ sls deploy --all

訪問命令行輸出的 website url,便可查看您的 Serverless 站點。

注意:

  • 因爲 sls 運行角色限制,須要用戶登陸 訪問管理角色頁面,手動爲 SLS_QcsRole 添加 TCBFullAccess 的策略,不然沒法正常運行。
  • 當前 deploy --all 指令只支持2.30.1及以上版本 Serverless Framework Component,請確保您的組件已更新至最新版本。
  • 目前 TCB 端僅支持每個月最多建立銷燬4次環境,請謹慎建立,若超過4次部署將會報錯。
  • DB組件默認爲用戶建立一個免費雲開發環境,如您已有該環境,部署時會報錯,請刪去db文件夾中的yaml文件,並在function的yaml文件中MongoId參數裏輸入您已有TCB環境的ID,完成項目的部屬。
  1. 部署結束後,您可經過如下命令移除項目:
$ sls remove --debug

上述實戰主要包含如下組件:

  • Serverless Website: 前端經過託管 HTML 靜態頁面到對象存儲 COS 中。
  • Serverless Cloud Function: 後端函數部署到雲端,經過 HTTP 進行觸發調用。
  • 雲開發 TCB 環境: 經過建立雲開發環境並調用 NoSQL DB,爲全棧網站提供數據庫服務。

Serverless PostgreSQL 組件和 Serverless TCB 組件不只知足了你們經過雲上資源使用數據庫的需求,還同時支持 PostgreSQL 與 NoSQL 兩種數據庫類型,你們能夠按照本身的使用習慣選擇合適的組件完成部署。

更多文檔資料參考:https://cloud.tencent.com/product/sls

Serverless Framework 30 天試用計劃

咱們誠邀您來體驗最便捷的 Serverless 開發和部署方式。在試用期內,相關聯的產品及服務均提供免費資源和專業的技術支持,幫助您的業務快速、便捷地實現 Serverless!

詳情可查閱:Serverless Framework 試用計劃

One More Thing

3 秒你能作什麼?喝一口水,看一封郵件,仍是 —— 部署一個完整的 Serverless 應用?

複製連接至 PC 瀏覽器訪問:https://serverless.cloud.tencent.com/deploy/express

3 秒極速部署,當即體驗史上最快的 Serverless HTTP 實戰開發!

傳送門:

歡迎訪問:Serverless 中文網,您能夠在 最佳實踐 裏體驗更多關於 Serverless 應用的開發!


推薦閱讀:《Serverless 架構:從原理、設計到項目實戰》

相關文章
相關標籤/搜索