借助云托管低成本部署企业微信应用
本文主要介紹企業(yè)微信應(yīng)用開發(fā),如何借助云托管高效、低成本方式進(jìn)行部署上線,并比較云托管與傳統(tǒng)開發(fā)方式的不同。
微信云托管官網(wǎng)
https://cloud.weixin.qq.com/cloudrun
一、云托管項(xiàng)目實(shí)踐總結(jié)
2019年企業(yè)微信3.0的上線,到今天為止,對(duì)于企業(yè)來說企業(yè)微信是個(gè)不可或缺的企業(yè)信息化管理平臺(tái),包括客戶關(guān)系、公司組織架構(gòu)、企業(yè)管理、SCRM、OA日常辦公等等,最強(qiáng)大的是企業(yè)微信的開放平臺(tái),提供了一系列的API接口供企業(yè)和服務(wù)商進(jìn)行開發(fā)。
雖然有完善的開發(fā)文檔,但是對(duì)于企業(yè)接入來說,門檻和成本還是挺高的,傳統(tǒng)接入方式,首先得需要購(gòu)置一臺(tái)云服務(wù)器,參數(shù)要考慮帶寬,CPU 內(nèi)存配置,還要考慮計(jì)費(fèi)方式… , 借助于云托管,這些變得簡(jiǎn)單。
1、開箱即用
如官網(wǎng)所示,開箱即用,這是對(duì)于企業(yè)和開發(fā)者來說是一個(gè)極大福音,直接注冊(cè)開通即可,非常實(shí)用,具體體現(xiàn)在:官方提供的測(cè)試域名,部署一個(gè)服務(wù)上線,云托管會(huì)自動(dòng)生成一個(gè)域名,用此域名就可以在公網(wǎng)上訪問我們的服務(wù),進(jìn)行開發(fā)測(cè)試,做過后端開發(fā)同學(xué)應(yīng)該很清楚,這大大方便后端的測(cè)試工作,沒有公網(wǎng)IP,沒有域名也可以進(jìn)行測(cè)試訪問。
企業(yè)微信應(yīng)用主頁填入云托管生成的域名進(jìn)行開發(fā)測(cè)試。
另外,后端開發(fā)語言支持的也很廣泛,有Java 、PHP、Node.js、 Python、 Go 主流后端開發(fā)語言基本都支持,本文實(shí)例用的就是Node.js 。
2、低成本
低成本體現(xiàn)兩個(gè)方面:一是開發(fā)側(cè),開箱即用,降低開發(fā)門檻,節(jié)省時(shí)間和研發(fā)成本投入;另一個(gè)方面,微信云托管采用按量計(jì)費(fèi)方式,有多種流量包供選擇,企業(yè)可以結(jié)合自身情況來組合購(gòu)買,很劃算。
3、彈性擴(kuò)縮
這是最值得一提的地方,彈性擴(kuò)縮大大降低后端并發(fā)設(shè)計(jì)難度,如果服務(wù)有并發(fā)訪問的需求,后端并發(fā)性能是繞不開發(fā)話題,從服務(wù)器配置到帶寬,再到技術(shù)架構(gòu),任何一個(gè)地方考慮不周都會(huì)成為系統(tǒng)的瓶頸,云托管彈性擴(kuò)縮從根本上可以解決此問題,服務(wù)實(shí)例可以橫向擴(kuò)縮容,根據(jù)資源耗費(fèi)情況自動(dòng)的增加或減少實(shí)例,以此應(yīng)對(duì)突發(fā)的訪問量。不必?fù)?dān)心并發(fā)能力不足,而導(dǎo)致系統(tǒng)宕機(jī),這方面上講,確實(shí)可以把更多精力投入到業(yè)務(wù)實(shí)現(xiàn)上。
二、案例項(xiàng)目介紹
本次項(xiàng)目是一個(gè)基于企業(yè)微信應(yīng)用+一個(gè)web應(yīng)用,包括前端和后端,前端技術(shù)棧是 react,后端是 nodejs ,項(xiàng)目目標(biāo)是部署后端到云托管上面,并進(jìn)行發(fā)布測(cè)試。
1、代碼 Docker 封裝
主要是兩個(gè)配置文件,一個(gè)是 Dockerfile,一個(gè)是 container.config.json ,其中,后者屬于基本配置,如設(shè)置擴(kuò)縮容的觸發(fā)條件。
Dockerfile 主要指定鏡像、目錄,啟動(dòng)參數(shù)和對(duì)外端口等:
container.config.json 配置擴(kuò)容觸發(fā)條件
最主要的幾個(gè)參數(shù)說明,cpu mem 代表一個(gè)階梯單位,擴(kuò)縮一個(gè)單位增加或減少的量是多少,policyThreshold 代表觸發(fā)條件,當(dāng)Cpu或內(nèi)存使用率超過60%就啟動(dòng)擴(kuò)容,而且擴(kuò)容的速度很快,可以實(shí)現(xiàn)秒級(jí)擴(kuò)容,這個(gè)時(shí)延針到一般并發(fā)訪問來說足以夠用。
完成這兩個(gè)配置文件,就完成了代碼 Docker 封裝。
2、打包代碼上傳云托管
代碼目錄下執(zhí)行,用zip 命令將代碼打包。
zip -r -q backend.zip -x ./node_modules/*前往云托管控制臺(tái):
選本地上傳和壓縮包,配置好端口,點(diǎn)擊【新建】開始創(chuàng)建新的版本。
在控制臺(tái)右側(cè)可查看實(shí)時(shí)部署日志,看到如上圖中的 Succesfully built … 即代表部署成功。
接下來是發(fā)布上線過程。
列表選擇生成的版本,發(fā)布有兩種方式,一是全量,二是灰度,如果是小程序可以用灰度測(cè)試,增加白名單的方式,來灰度發(fā)布,我這里是web應(yīng)用,目前還不支持企業(yè)微信的灰度,所以我是直接全量發(fā)布,希望以后云托管能支持企業(yè)微信灰度發(fā)布,到此云托管服務(wù)部署到發(fā)布就完成。
3、其他方面
云托管日志和服務(wù)監(jiān)控都很完善,很方便我們?nèi)粘_\(yùn)維管理工作,查看我們的服務(wù)運(yùn)行情況。
日志可以看到服務(wù)啟動(dòng)情況,打印出我們的log信息,(用戶log信息是粉紅色)
監(jiān)控里可以查看 服務(wù)的QPS 響應(yīng)時(shí)間 調(diào)用量等,免去了自己搭建的麻煩。
4、項(xiàng)目其他經(jīng)驗(yàn)
實(shí)際開發(fā)當(dāng)中,我們系統(tǒng)還應(yīng)用到其他的服務(wù),需要安裝一些業(yè)務(wù)需要的模塊,比如非主流的數(shù)據(jù)庫(kù)等,所以把那一部分剝離和留在傳統(tǒng)服務(wù)器上,云托管云訪問這些服務(wù)。另外我們還將一些小而微模塊開發(fā)成云函數(shù) ,放到云開發(fā)當(dāng)中,實(shí)現(xiàn)了云托管和云函數(shù)互通,這樣可以使構(gòu)架更靈活,借助云開發(fā)和云托管各自的優(yōu)勢(shì)。這些細(xì)節(jié)就不一一贅述,所有云開發(fā)和云托管確實(shí)給開發(fā)帶來很多的便捷,利用好云開發(fā)大大降低了研發(fā)的門檻和成本,企業(yè)和研發(fā)可以更多的關(guān)注業(yè)務(wù)實(shí)現(xiàn)。
變化后的架構(gòu),復(fù)雜度變小,不再需要過多考慮接入層(網(wǎng)關(guān)與負(fù)載 部署nginx),過去只有很強(qiáng)技術(shù)背景團(tuán)隊(duì)才能做好的事,在今天就變得簡(jiǎn)單多了,希望騰訊云開發(fā)和云托管團(tuán)隊(duì)能帶給我們更多驚喜!
作者:宋延濤,云開發(fā)布道師。
總結(jié)
以上是生活随笔為你收集整理的借助云托管低成本部署企业微信应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器硬件详解RAID磁盘阵列详解
- 下一篇: 市场、产品、营销、销售、品牌、管理、运营