微信云托管

微信云托管 https://cloud.weixin.qq.com/cloudrun 是为开发者提供的云原生全托管的容器后端云服务,支持托管任意语言及框架的容器化应用,创建环境后即可享受能自动扩缩容的容器资源,用户可面向代码/镜像等多种方式使用,免服务器免运维,可更专注于自身的业务。从代码上传到CI/CD流水线部署发布,云托管提供全链路、低成本、企业级的云原生解决方案,并有以下优势&特点:

优势&特点 说明
天然鉴权 容器内免鉴权直接获取用户信息 openid,unionid(更多
任意语言/框架 可以使用任意语言和框架进行开发,可实现业务平滑迁移至云开发
常驻运行 容器内监听请求,每个实例都常驻运行
自动扩缩 单实例多并发,并自动根据负载情况增加或减少实例数量
缩容至0 无流量时实例副本数可支持缩容至0,做到0成本
20S扩容 突发场景支持20s内快速扩容以支持业务需要
平滑迁移 无需改造/重构现有业务,可平滑迁移至云开发并享受微信天然鉴权、高可用、自动弹性扩缩容等优势
使用简易 无需理解容器复杂概念,免域名配置,小程序 / Web端使用 SDK cloud.callContainer 一行代码即可调用
细粒度规格 超细粒度资源控制,最小规格0.25Core 0.5G
消息推送 配置一个云托管服务即可接收所有类型消息
指定灰度 新版本定向灰度给指定人员进行体验测试
流水线 拥有CICD流水线能力,支持多种触发方式

产品功能

image-20210518143121733

底层架构

微信云托管与服务器的对比

相比于服务器资源,微信云托管自身具有弹性扩缩、环境隔离以及监控日志等服务能力。

模块 服务器 云托管
安全 公网暴露接口 微信私有协议
鉴权 自行鉴权 免鉴权
环境隔离 不支持 支持
部署方式 代码部署 代码部署/镜像部署
版本灰度 自建 支持
负载访问 自建 数据流
弹性扩缩 不支持 支持
监控告警 自建 服务/版本维度
日志服务 自建/第三方 支持
成本 预购 按实际用量计算,按秒计算
容灾 自建 三园区部署

微信云托管与Kubernetes的对比

面向服务开发而非面向资源开发,无需过多理解容器概念、云内复杂配置,支持缩容到0实现无流程时0成本,可私有部署,便于迁移,开发成本低,高并发大调用量时成本较低。

模块 Kubernetes 云托管
面向对象 服务 资源
安全 公网暴露接口 微信私有协议
鉴权 自行鉴权 免鉴权
环境隔离 购买/管理节点 支持
集群/计算节点 自主购买/手动管理 不感知
版本灰度 自建(复杂方式) 支持
负载访问 配置LB 数据流
弹性扩缩 自建 支持
缩容到0 自建 支持
监控告警 自建 支持
日志服务 自建/第三方 支持
成本 Node服务器粒度计费 按实际用量计算,按秒计算

微信云托管与云函数的对比

云托管可以看做是云函数的高阶版本,更自由灵活,支持任意语言、任意框架、常驻运行,同时也拥有云函数的微信天然鉴权等优势。

模块 云函数 云托管
请求并发 单实例单并发,多并发时自动拉起多个实例处理 单实例多并发,高负载时自动拉起多实例
语言/框架 开发语言和框架支持有限 任意语言、任意框架
问题定位 容易定位 相对灵活,依赖自定义
常驻运行 不支持 支持
日志监控 基于函数 基于服务版本
版本灰度 支持按流量灰度 支持按流量比例/按URL参数灰度
弹性扩缩容 支持 支持
对外服务 小程序、Web、HTTP 小程序、Web、HTTP
上手难度 简单 中等
计费方式 按请求量计费、按请求次数和每次调用产生的 GBS 按容器运行消耗的 CPU、内存、服务产生的外网出流量、服务构建时长
天然鉴权 免鉴权获取 openid 等信息 免鉴权获取 openid 等信息
云调用 免维护access_token, session_key,免鉴权调用服务端接口 免维护access_token, session_key,免鉴权调用服务端接口