騰訊雲 Serverless 部署應用耗時下降了 73%

在使用 Serverless Framework 部署 Next.js,Egg.js 項目時,因爲安裝的依賴包過大,部署時壓縮上傳時間很長,可能出現上傳超時、控制檯卡死等問題。git

爲此,Serverless 團隊近期對部署作了一個性能優化,原來部署一個 Next.js 的 Demo 項目大約須要 55s 左右,而如今只須要 18s 的時間。github

下面咱們一塊兒看一下,優化先後部署方案哪些不一樣。express

1、部署性能對比

本次提速主要作的是壓縮上傳性能的提高。優化後採用流式上傳壓縮,並直接在壓縮包內注入組件代碼,大大的提高了性能。選取三種不一樣大小的代碼包進行測試,優化先後平均部署性能以下所示:npm

代碼包大小(MB) 優化前(秒) 優化後(秒)
111 MB 55 s 18 s
216 MB 100 s 38 s
418 MB 185 s 70 s

可見,部署的總體性能提高了將近 3倍!對於一個輕量級別的網站或博客( 200 MB 左右),每次部署只須要 35s 左右的時間!api

2、CLI 控制檯輸出對比

在 CLI 控制檯輸入 sls deploy 命令後,CLI 控制檯狀態的對比,以下圖所示:瀏覽器

優化前部署全流程僅有 deploying 狀態,直到部署結束返回結果。優化後將部署流程的每一步實時反饋到控制檯界面上,讓用戶更清晰的看到整個部署流程,也能方便定位問題(如本地網絡問題致使上傳失敗)。性能優化

本次部署性能的提高是否是讓小夥伴們已經激動不已了呢?bash

下面經過一個實例,咱們來一塊兒感覺下三倍速性能優化帶來的體驗!網絡

體驗 Next.js 部署實戰

1. 安裝最新版本的 serverless

npm install -g serverless

2. 本地建立一個 Next.js 項目並初始化

npm init next-app serverless-next
cd serverless-next

3. 配置 serverless.yml

# serverless.yml
component: nextjs # (必填) 組件名稱,此處爲nextjs
name: nextjsDemo # (必填) 實例名稱
org: orgDemo # (可選) 用於記錄組織信息,默認值爲您的騰訊雲帳戶 appid
app: appDemo # (可選) 該 next.js 應用名稱
stage: dev # (可選) 用於區分環境信息,默認值是 dev

inputs:
  src: 
    src: ./
    exclude:
      - .env
  functionName: nextjsDemo
  region: ap-guangzhou
  runtime: Nodejs10.15
  apigatewayConf:
    protocols:
      - http
      - https
    environment: release

4. 進入項目目錄,構建靜態資源

npm run build

5. 部署到雲端

sls deploy

部署成功,以下圖所示:架構

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 架構:從原理、設計到項目實戰》

相關文章
相關標籤/搜索