Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >借助云托管低成本部署企业微信应用

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

作者头像
腾讯云开发TCB
修改于 2022-01-19 02:09:48
修改于 2022-01-19 02:09:48
1.3K00
代码可运行
举报
文章被收录于专栏:云开发云开发
运行总次数:0
代码可运行

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

微信云托管官网

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 配置扩容触发条件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
构建目录  "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 命令将代码打包。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
zip -r -q backend.zip -x ./node_modules/*

前往云托管控制台:

选本地上传和压缩包,配置好端口,点击【新建】开始创建新的版本。

在控制台右侧可查看实时部署日志,看到如上图中的 Succesfully built .... 即代表部署成功。

接下来是发布上线过程。

列表选择生成的版本,发布有两种方式,一是全量,二是灰度,如果是小程序可以用灰度测试,增加白名单的方式,来灰度发布,我这里是web应用,目前还不支持企业微信的灰度,所以我是直接全量发布,希望以后云托管能支持企业微信灰度发布,到此云托管服务部署到发布就完成。

3、其他方面

云托管日志和服务监控都很完善,很方便我们日常运维管理工作,查看我们的服务运行情况。

日志可以看到服务启动情况,打印出我们的log信息,(用户log信息是粉红色)

监控里可以查看 服务的QPS 响应时间 调用量等,免去了自己搭建的麻烦。

4、项目其他经验

实际开发当中,我们系统还应用到其他的服务,需要安装一些业务需要的模块,比如非主流的数据库等,所以把那一部分剥离和留在传统服务器上,云托管云访问这些服务。另外我们还将一些小而微模块开发成云函数 ,放到云开发当中,实现了云托管和云函数互通,这样可以使构架更灵活,借助云开发和云托管各自的优势。这些细节就不一一赘述,所有云开发和云托管确实给开发带来很多的便捷,利用好云开发大大降低了研发的门槛和成本,企业和研发可以更多的关注业务实现。

从传统服务器里拆分到云开发和云托管后的架构

变化后的架构,复杂度变小,不再需要过多考虑接入层(网关与负载 部署nginx),过去只有很强技术背景团队才能做好的事,在今天就变得简单多了,希望腾讯云开发和云托管团队能带给我们更多惊喜!

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


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云开发CloudBase 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ansible调优
解决方法: 修改ansible.cfg host_key_checking = False
buiu
2021/11/26
3470
002. Ansible部署及配置介绍
提示:建议将PIP升级到最新:pip install --upgrade pip。
木二
2019/07/01
7750
《Ansible自动化运维:技术与最佳实践》第二章读书笔记
当更新 Ansible 版本时,要更新 git 源码树以及 git 中指向 Ansible 自身的模块(称为 submodules)
武培轩
2019/09/12
1.2K0
ansible.cfg配置详解
一.简单配置 [defaults] inventory = /etc/ansible/hosts sudo_user=root remote_port=22 host_key_checking=False remote_user=root log_path=/var/log/ansible.log module_name=command private_key_file=/root/.ssh/id_rsa no_log:True 二.详细配置 # config file for ansible -
陈不成i
2021/08/02
1.9K0
如何优化 Ansible Playbook 执行速度
运行最新版本的 Ansible 可帮助提高使用 Ansible 核心模块的 Playbook 的性能。同时尽可能让控制节点靠近受管节点。Ansible严重依赖网络通信和数据传输。
山河已无恙
2023/01/30
2K0
Ansible配置文件
​ 在Ansible中,它的配置文件是一个名为ansible.cfg的配置文件,ansible.cfg配置文件是以ini格式存储配置数据的。但是ansible.cfg配置文件可以存放在不同的目录,但只有一个可用,在运行Ansible命令时,Ansible将会按照预先设定的顺序查找配置文件,检查到哪个就用哪个。
Alone-林
2023/03/17
1.4K0
Ansible
172.10.0.18主机不可达,ansible是基于ssh的,ansible不知道172.10.0.18这台主机的用户名和密码,所以ansible无法连接到它。 我们可以在清单文件中加入对应主机的用户名和密码,也可以基于密钥的方式
陳斯托洛夫斯記
2022/10/27
9010
Ansible
ansible超详细使用指南
来源:ansible一词源于科幻小说,是一种超光速通信设备。 Ansible is the simplest way to automate apps and IT infrastructure。 750+模块,19000+ github stars。
sunsky
2020/08/20
2.8K0
ansible超详细使用指南
Ansible 以及 Ansible-playbook介绍
Anasible 是基于Python2-Paramiko 模块开发的自动化维护工具,实现了批量系统配置、部署、运行等功能。Ansible是基于模块工作的,本身不具备批量部署的功能,如果想要实现批量自动化部署,是Ansible自身的各种模块的集合。
jwangkun
2021/12/23
6.3K0
Ansible 以及 Ansible-playbook介绍
Ansible自动化部署服务
1、安装部署 yum inatsll ansible -y 2、配置文件 Ansible常用参数详解 [defaults] #通用默认配置 inventory = /etc/ansible/hosts #被控制端IP或者DNS列表 library = /usr/share/my_modules/ ##默认搜寻模块的位置 remote_tmp = ~/.ansible/tmp #远程执行临时文件 local_tmp
@凌晨
2021/01/22
9870
Ansible3:ansible.cfg
    Ansible默认安装好后有一个配置文件/etc/ansible/ansible.cfg,该配置文件中定义了ansible的主机的默认配置部分,如默认是否需要输入密码、是否开启sudo认证、action_plugins插件的位置、hosts主机组的位置、是否开启log功能、默认端口、key文件位置等等。
py3study
2020/01/08
1K0
Ansible服务端安装与配置
1、ansible是自动化运维工具,基于Python开发,实现批量部署、配置、运行等。
用户5760343
2022/05/24
1.1K0
Ansible服务端安装与配置
自动化运维—Ansible(上)
  ansible甚至都不用启动服务,仅仅只是一个工具,可以很轻松的实现分布式扩展
yaohong
2019/09/11
2.7K0
自动化运维—Ansible(上)
云原生之 Ansible 篇(二)
ansible playbook 默认第一个 task 是 Gathering Facts 收集各主机的 facts 信息,以方便我们在 paybook 中直接引用 facts 里的信息。
看、未来
2022/05/06
1.7K0
云原生之 Ansible 篇(二)
05-Ansible变量
上面定义主机变量的方式是直接在hosts文件中,写主机变量,此种方法是把它独立到一个特定文件夹里的文件里面去写(推荐)
小朋友呢
2020/01/14
1.3K0
Ansible 清单与命令解析
在大规模的配置管理工作中我们需要管理不同业务的不同机器,这些机器的信息都存放在 Ansible 的 Inventory 组件里面,在我们工作中配置部署针对的主机必须先存放在 Invento 组里面,这样才能使用 Ansible 对它进行操作,默认 Ansible 的 Inventory 是一个静态的 INI 格式的文件/etc/ansible/hosts 当然,还可以通过 ANSIBLE_HOSTS 环境变量指定或者运行 ansible 和 ansible-playbook 的时候用 -i 参数临时设置.
王 瑞
2022/12/28
8310
02 . Ansible高级用法(运维开发篇)
ansible是python中的一套模块,系统中的一套自动化工具,可以用作系统管理,自动化命令等任务
iginkgo18
2020/09/27
3.9K0
02 . Ansible高级用法(运维开发篇)
Ansible PlayBook的中变量优先级分析及清单变量解耦总结
「 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波」
山河已无恙
2023/01/30
5.5K0
Ansible PlayBook的中变量优先级分析及清单变量解耦总结
Ansible安装配置
ansible基于python开发,集合了众多优秀运维工具的优点,实现了批量运行命令、部署程序、配置系统等功能。默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多台主机并进行管理,使得管理主机更加便捷。主版本大概每2个月发布一次。
胡齐
2019/11/12
5610
现代 IT 人一定要知道的 Ansible系列教程:playbook
title = '现代 IT 人一定要知道的 Ansible系列教程:playbook' date = 2023-12-23 draft = false summary = 'Ansible Playbook 提供了一个可重复、可重用、简单的配置管理和多机部署系统,非常适合部署复杂的应用程序。如果您需要多次使用 Ansible 执行任务,请编写一个 playbook 并将其置于源代码控制之下。然后,您可以使用 playbook 推出新配置或确认远程系统的配置。' tags = ["devops"]
用户1418987
2024/01/16
6250
现代 IT 人一定要知道的 Ansible系列教程:playbook
相关推荐
ansible调优
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验