本文次要介绍企业微信利用开发,如何借助云托管高效、低成本形式进行部署上线,并比拟云托管与传统开发方式的不同。
微信云托管官网
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),过来只有很强技术背景团队能力做好的事,在明天就变得简略多了,心愿腾讯云开发和云托管团队能带给咱们更多惊喜!
作者:宋延涛,云开发布道师。