乐趣区

关于企业微信:借助云托管低成本部署企业微信应用

本文次要介绍企业微信利用开发,如何借助云托管高效、低成本形式进行部署上线,并比拟云托管与传统开发方式的不同。

微信云托管官网

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),过来只有很强技术背景团队能力做好的事,在明天就变得简略多了,心愿腾讯云开发和云托管团队能带给咱们更多惊喜!

作者:宋延涛,云开发布道师。

退出移动版