藉助雲託管低成本部署企業微信應用

本文主要介紹企業微信應用開發,如何藉助雲託管高效、低成本方式進行部署上線,並比較雲託管與傳統開發方式的不同。

微信雲託管官網

https://cloud.weixin.qq.com/cloudrun

一、雲託管項目實踐總結

2019年企業微信3.0的上線,到今天爲止,對於企業來說企業微信是個不可或缺的企業信息化管理平臺,包括客戶關係、公司組織架構、企業管理、SCRM、OA日常辦公等等,最強大的是企業微信的開放平臺,提供了一系列的API接口供企業和服務商進行開發。

圖片

雖然有完善的開發文檔,但是對於企業接入來說,門檻和成本還是挺高的,傳統接入方式,首先得需要購置一臺雲服務器,參數要考慮帶寬,CPU 內存配置,還要考慮計費方式...... , 藉助於雲託管,這些變得簡單。

圖片

1、開箱即用

如官網所示,開箱即用,這是對於企業和開發者來說是一個極大福音,直接註冊開通即可,非常實用,具體體現在:官方提供的測試域名,部署一個服務上線,雲託管會自動生成一個域名,用此域名就可以在公網上訪問我們的服務,進行開發測試,做過後端開發同學應該很清楚,這大大方便後端的測試工作,沒有公網IP,沒有域名也可以進行測試訪問。

圖片

企業微信應用主頁填入雲託管生成的域名進行開發測試。

圖片

另外,後端開發語言支持的也很廣泛,有Java 、PHP、Node.js、 Python、 Go 主流後端開發語言基本都支持,本文實例用的就是Node.js 。

2、低成本

低成本體現兩個方面:一是開發側,開箱即用,降低開發門檻,節省時間和研發成本投入;另一個方面,微信雲託管採用按量計費方式,有多種流量包供選擇,企業可以結合自身情況來組合購買,很划算。

3、彈性擴縮

這是最值得一提的地方,彈性擴縮大大降低後端併發設計難度,如果服務有併發訪問的需求,後端併發性能是繞不開發話題,從服務器配置到帶寬,再到技術架構,任何一個地方考慮不周都會成爲系統的瓶頸,雲託管彈性擴縮從根本上可以解決此問題,服務實例可以橫向擴縮容,根據資源耗費情況自動的增加或減少實例,以此應對突發的訪問量。不必擔心併發能力不足,而導致系統宕機,這方面上講,確實可以把更多精力投入到業務實現上。

二、案例項目介紹

本次項目是一個基於企業微信應用+一個web應用,包括前端和後端,前端技術棧是 react,後端是 nodejs ,項目目標是部署後端到雲託管上面,並進行發佈測試。

1、代碼 Docker 封裝

主要是兩個配置文件,一個是 Dockerfile,一個是 container.config.json ,其中,後者屬於基本配置,如設置擴縮容的觸發條件。

圖片

Dockerfile 主要指定鏡像、目錄,啓動參數和對外端口等:

圖片

container.config.json 配置擴容觸發條件

圖片

構建目錄  "buildDir": "",
最小實例數 "minNum": 0,
最大實例數 "maxNum": 50,
cpu 核數 "cpu": 0.25,
內存大小,單位:G "mem": 0.5,
擴縮容指標類型 "policyType": "cpu",
擴縮容指標閾值 "policyThreshold": 60,
環境變量 "envParams": {},
日誌採集路徑 "customLogs": "stdout",
啓動檢測延遲  "initialDelaySeconds": 2

最主要的幾個參數說明,cpu mem 代表一個階梯單位,擴縮一個單位增加或減少的量是多少,policyThreshold 代表觸發條件,當Cpu或內存使用率超過60%就啓動擴容,而且擴容的速度很快,可以實現秒級擴容,這個時延針到一般併發訪問來說足以夠用。

完成這兩個配置文件,就完成了代碼 Docker 封裝。

2、打包代碼上傳雲託管

代碼目錄下執行,用zip 命令將代碼打包。

zip -r -q backend.zip -x ./node_modules/*

前往雲託管控制檯:

圖片

圖片

選本地上傳和壓縮包,配置好端口,點擊【新建】開始創建新的版本。

圖片

在控制檯右側可查看實時部署日誌,看到如上圖中的 Succesfully built .... 即代表部署成功。

接下來是發佈上線過程。

圖片

列表選擇生成的版本,發佈有兩種方式,一是全量,二是灰度,如果是小程序可以用灰度測試,增加白名單的方式,來灰度發佈,我這裏是web應用,目前還不支持企業微信的灰度,所以我是直接全量發佈,希望以後雲託管能支持企業微信灰度發佈,到此雲託管服務部署到發佈就完成。

3、其他方面

雲託管日誌和服務監控都很完善,很方便我們日常運維管理工作,查看我們的服務運行情況。

圖片

日誌可以看到服務啓動情況,打印出我們的log信息,(用戶log信息是粉紅色)

圖片

監控裏可以查看 服務的QPS 響應時間 調用量等,免去了自己搭建的麻煩。

4、項目其他經驗

實際開發當中,我們系統還應用到其他的服務,需要安裝一些業務需要的模塊,比如非主流的數據庫等,所以把那一部分剝離和留在傳統服務器上,雲託管雲訪問這些服務。另外我們還將一些小而微模塊開發成雲函數 ,放到雲開發當中,實現了雲託管和雲函數互通,這樣可以使構架更靈活,藉助雲開發和雲託管各自的優勢。這些細節就不一一贅述,所有云開發和雲託管確實給開發帶來很多的便捷,利用好雲開發大大降低了研發的門檻和成本,企業和研發可以更多的關注業務實現。

圖片

變化後的架構,複雜度變小,不再需要過多考慮接入層(網關與負載 部署nginx),過去只有很強技術背景團隊才能做好的事,在今天就變得簡單多了,希望騰訊雲開發和雲託管團隊能帶給我們更多驚喜!

作者:宋延濤,雲開發佈道師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章