急速上线 Serverless 钉钉机器人“防疫精灵”

简介: 新型冠状病毒疫情肆虐的春节期间,IoT 事业部的几位同学使用 IoTStudio 快速搭建出钉钉机器人“防疫精灵”。“防疫精灵”上线后访问量攀升,一共服务了数十万个钉钉群。由于“防疫精灵”的后端运行在阿里云函数计算之上,Serverless 化的后端架构,让该机器人顺利地抗住了访问量的暴增,为抗疫工作贡献了技术人的一份绵薄之力。

han1.jpg

新型冠状病毒疫情肆虐的春节,大家都过得人心惶惶,作为被关在家的程序狗,总觉得要做点什么。于是阿里云 IoT 事业部的几个同学就开始了防疫精灵的开发之路。

从点子到防疫宝,只花了一个下午时间;从防疫宝到钉钉全域机器人防疫精灵,只花了 1.5 天时间完成开发,3 天灰度、全量,发布 1 天半就突破 1 万个群添加使用,即插即用,疫情实况、常见问题、健康打卡全都有:

如此紧急,toC海量客户,如何快速开发又不失稳定、安全呢?

快速搭建

天下武功唯快不破,怎么快?靠工具!
IoT Studio是阿里云 IoT 向物联网开发者提供的应用开发工具,包括了可视化、逻辑编排、数据分析三大能力。该工具开发的应用实例运行于阿里云函数计算(FunctionCompute 简称 FC)之上,应用 serverless 化,以达到按量伸缩和免运维的效果。

机器人添加

原理:钉钉全域机器人添加/删除/更新时,会自动推送HTTP事件
搭建:

1.使用HTTP流来提供钉钉事件回调
2.使用路径选择节点,根据事件类型分流到对应的处理逻辑
3.使用 Node 脚本进行数据预处理,包括数据格式、敏感字段脱敏或加签等
4.存入数据库

聊天消息通路

原理:基本同上,at机器人的消息将发送到回调接口,转发 NLP 接口
搭建:
1.使用 HTTP 流来提供钉钉消息回调
2.使用 Node 脚本节点(此处可用 API 请求节点,但因为稳定性要求改用 Node 脚本来,详见下文优化部分)

批量群推送

原理:每天 9 时、17 时定时推送最新疫情实况和打卡、咨询快捷链接
搭建:
// 触发
1.使用定时节点,设置每日触发
2.使用项目内API节点,调用同项目内的批量发送服务

// 发送
3.使用 HTTP 节点搭建发送入口
4.使用 Node.js 脚本节点拼装消息发送的内容
5.使用 Node.js 脚本节点查询数据库的webhook信息并解签(此处后续会优化数据库节点,无需写脚本)
6.使用 Node.js 脚本节点,批量发送消息给钉钉的 OpenAPI 接口(此处是关键点,容量评估、并发、流控、异常处理都在此处)

疫情可视化

原理:使用可视化工具,利用库中的疫情数据,展示实况、趋势图,借助函数计算部署 puppeteer 服务定时截图
搭建:

  1. 使用文字组件,配置数据源(业务逻辑编排接口,类似上文搭建方式,不赘述),使用过滤器选定展示字段
  2. 使用折线图组件,配置数据源、数据系列。
  3. 使用函数计算部署 puppeteer 截图任务,详见:Serverless 实战 —— 快速开发一个分布式 Puppeteer 网页截图服务

架构梳理

小结

  1. 好用的工具是绝对的生产力。 IoT Studio 拉近了想法和实现的距离,通过快速模板化,1 天搭建原型,1 天完成了 V1 版本。
  2. Serverless 为后端的高并发、高可用保驾护航。由于疫情的发展,“防疫精灵”的访问量很快就大幅度提升,而且是非常典型的访问量峰谷类业务。Serverless 的按量付费和急速弹性(百毫秒级别)省去了业务量增长而引入的架构升级的工作。此外函数计算的快速部署和低运维特性,也让开发迭代得更快,对系统的监控度感知更容易。

“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

相关实践学习
【玩转ComfyUI】基于函数计算一键部署AI生图平台ComfyUI
本次实验将带大家通过使用阿里云产品函数计算FC,快速使用ComfyUI实现更高质量的图像生成。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
弹性计算 运维 监控
阿里云Elasticsearch Serverless 正式上线,免费公测中!!!
11月3日,在2022年云栖大会上阿里云重磅推出Elasticsearch Serverless服务,为用户带来全方位Serverless服务化使用体验。在全观测场景下,实现了对资源的按需取用,从而为用户提供简单易用、弹性灵活、开箱即用的Elasticsearch产品体验,做到快速响应业务变化的同时,合理优化使用成本,助力企业降本增效。
3875 147
阿里云Elasticsearch Serverless 正式上线,免费公测中!!!
|
数据可视化 数据挖掘 Serverless
数据推送上线 ,抢先体验,欢迎来用! 支持钉钉!
大多数业务都会有定期推送业务信息至钉钉、飞书、Teams 群的需求,有些信息要推三个群、要推两个群、有些信息要 at 人、有些要当天、有些要当月,不旦要管理多个推送的 Webhook,还要管理推送的内容、监控推送是否生效等等,DataWorks 新推出的数据推送能减轻以上问题,还能助力快速完成推送内容开发,支持规范的上线流程。
489 5
|
监控 Serverless 开发者
Serverless 应用引擎常见问题之应用重启或者挂了通过钉钉发消息提醒如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
513 1
|
Serverless Go API
Serverless 应用引擎产品使用之在阿里云Serverless中,我想在钉钉机器人中使用函数计算的签名认证如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
352 0
|
安全 机器人 数据安全/隐私保护
Metasploit主机上线钉钉通知
Metasploit主机上线钉钉通知
242 0
|
安全 机器人 Windows
Metasploit主机上线钉钉通知
Metasploit主机上线钉钉通知
298 0
|
数据采集 传感器 JavaScript
钉钉数字化应用演进——函数计算到连接平台解决厕所缺纸
2018年SKFI与钉钉一起共创了理想办公室的1号样板间,当时分享的一个案例就是保洁阿姨都称为了钉钉中级数字化管理师。厕所都可以用钉钉扫码报告异常、打分和换纸提醒之类的功能对应着。很多企业、政府单位来此参观,觉得数字化做得很好。但实际上,不可能所有单位的保洁阿姨都称为钉钉中级数字化管理师啊~,面向未来的数字化也应该是学习成本较低的形态。本文介绍一个数字化企业中钉钉应用演进的小例子,多次吐槽最早的设计,本文将演进思路和方法分享给大家。
724 0
钉钉数字化应用演进——函数计算到连接平台解决厕所缺纸
|
人工智能 小程序 机器人
AI配音 | 接近真人发音的机器人,小程序上线了!
而这一次,给大家带来的是小程序和更多播讲人的上线,合成更加方便,直接手机就能完成。
981 0
|
前端开发 Java Serverless
Serverless 云应用访问钉钉开放平台 | 学习笔记
简介:快速学习Serverless 云应用访问钉钉开放平台
848 0
Serverless 云应用访问钉钉开放平台 | 学习笔记
|
运维 前端开发 数据可视化
你所不知道的新技术,机器人全自动化开发并上线
一个新“技术”产品的发布,它可谓是软件行业里的神级作品,可以实现自动化编写程序与运维,它的能力不止能负责一个端(大家都知道现代的开发分组,都是分为前端、后端、测试、运维等)的工作,它可是“全栈工程师”,一个“人”可以搞定一个团队的工作,包括“后端开发、前端开发、测试、运维”。那它到底是谁?怎么这么厉害
580 0

相关产品

  • 函数计算