今天,又一张图片刷爆朋友圈

是的,腾讯云2019年度收入在第三季度破百亿,并且给员工推送了一个 H5,内含领取一部 iPhone 11 pro 作为纪念礼的消息。而在这张包含惊喜的 H5 推送背后,腾讯云云函数为其提供了底层技术支持,完美支撑了短时间内超万名用户的访问请求。

需求背景

  • 需求描述:腾讯云向员工发放激励,最终需要输出微信 H5 页面;
  • 开发挑战:只有1名工程师,两天内完成方案设计,开发,测试,上线!

技术实现

系统架构

系统需要实现:

  • 根据员工属性直出H5页面,领手机的员工直接在前端切换至手机页面;
  • 考虑到这种内部活动会同时推送,会出现瞬时并发高峰,然后马上趋于平稳。出于成本和架构合理性的考虑,应该选择支持高峰并发请求,又可以自动扩容缩容的服务架构。

结合以上需求,最终选择了腾讯云,以 API 网关+腾讯云云函数为核心的技术架构。腾讯云云函数是腾讯云提供的无服务器执行环境,具备自动扩缩容能力,支持高并发,且不需要操心主机购买、环境搭建等,开发效率高,无需担心运维。

并发能力、压力测试

活动涉及总人数超万人,为了确保万无一失,系统按照2000 QPS 的并发能力设计,云函数并发能力由云函数并发数量和云函数运行时间共同决定。这里,引入了 Redis,把数据库中所有名员工的数据提前写入 Redis 中,提高查询效率。非白名单员工或 Redis 过期后(此时应该已度过高峰期),再降级查询数据库内的员工信息,此方案下云函数的运行时间低至10ms 以下。

实际运行

活动进行时,监控显示一切正常,系统设计支持2000 QPS 的并发能力,最终平稳支撑项目运行,顺利度过瞬时高峰。

API网关监控

云函数监控

腾讯云里程碑专属 H5 推送项目,需求内容本身并不难,但需要做不少的工作才能确保万无一失。作为前端开发,Serverless 确实让前端更容易向全栈发展,且更容易开发出稳定性好、支持高并发的后端服务。

3min 快速体验 Serverless

简单五步,即可基于云函数,通过 Serverless Framework 快速部署 hello_world 函数。

  1. 安装 Serverless Framework CLI
$ npm install -g serverless

2. 使用 create —template 命令参数,基于 tencent_nodejs 模板创建 hello_world

$ serverless create --template tencent-nodejs --path my-service

3. 执行 npm install 安装相关依赖

$ cd my-service$ npm install

4. 扫描_微信_二维码一键登录,部署函数到云端

$ serverless deploy

5.触发云函数

$ serverless invoke -f hello_world

部署完成后,即可在您的命令行中看到部署详情,也可以在腾讯云控制台看到对应资源。

感兴趣的读者也可以点击阅读原文,了解具体使用。

文章来源于腾讯云开发者社区,点击查看原文