新型冠状病毒疫情肆虐的春节,大家都过得人心惶惶,作为被关在家的程序狗,总觉得要做点什么。于是阿里云 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 等技术领域、聚焦云原生流行技术趋势、云原生大规模的落地实践,做最懂云原生开发者的技术圈。”

急速上线 Serverless 钉钉机器人“防疫精灵”相关推荐

  1. Duang,钉钉会议室预定系统已上线!

    简介:5分钟可以干什么?喝一杯咖啡,回一封邮件,还是开发上线一个钉钉应用.云开发平台联合钉钉开发平台推出0门槛打造你的第一个钉钉应用的活动,完成相应任务后,即可领取精美奖品.春暖花开,领个背包去踏春吧 ...

  2. Duang,您的钉钉应用已上线!云开发5分钟快速打造钉钉会议室预定系统

    简介: 5分钟可以干什么?喝一杯咖啡,回一封邮件,还是开发上线一个钉钉应用.云开发平台联合钉钉开发平台推出0门槛打造你的第一个钉钉应用的活动,完成相应任务后,即可领取精美奖品.春暖花开,领个背包去踏春 ...

  3. 新一代企业操作系统:专属钉钉解决方案全新上线

    6月17日,在阿里云新品发布会上,阿里云宣布专属钉钉解决方案正式上线.专属钉钉解决方案是阿里云同钉钉联手打造的新一代企业数字化办公操作系统. 通过同上千家企业在企业数字化办公上的探讨,专属钉钉解决方案 ...

  4. 微信上线「行程查询」服务;钉钉 CEO 回应被打「一星」;Go 1.14 发布 | 极客头条...

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

  5. 钉钉机器人智能回复_青岛市市南区税务局:“税博士”智能服务机器人亮相办税服务厅...

    爆料请加小编微信:chenchenxiao798 商务合作添加微信:brandlongvp 近日,走进市南区税务局办税服务厅,不少纳税人.缴费人都被一个新来的"小家伙"吸引了注意力 ...

  6. 用python控制钉钉软件_python 调用钉钉机器人的方法

    python 调用钉钉机器人的方法 以text格式的消息为例:(只需修改content后的内容) Import json Import requests url='https://oapi.dingt ...

  7. 基于XXL-JOB和钉钉机器人构建系统监控

    概述   线上系统挂了,服务异常了,响应超时了:系统运行结果不符合预期...   用户被影响,甲方爸爸不开心,后果很严重.   从某种意义上讲,"在用户遇到问题之前把问题解决,问题也就不算问 ...

  8. 互联网日报 | 苏宁家电累计销售突破20亿台;嘀嗒出行推出租车电子发票;钉钉上线“学生号”...

    今日看点 ✦ 苏宁宣布:苏宁家电30年累计销售突破20亿台 ✦ 嘀嗒出行上线出租车电子发票,实时关联车内计价器 ✦ 钉钉宣布上线"学生号":家长领取,孩子使用 ✦ 原中兴手机CEO ...

  9. 钉钉群机器人关键词自动回复_企业微信机器人可以这样用

    2019年7月企业微信上线了群机器人功能. 企业微信机器人功能是指在内部群里可以添加机器人成员,机器人可以定时或者按照一定的规则给群里发信息,@群成员等. 本身企业微信是一个高频使用的办公工具,再加上 ...

最新文章

  1. C语言 字符串前加L的意义 如:L“A”
  2. TCP、UDP数据包大小的限制
  3. SpringBoot 参数符号转义,用这个包下面的类
  4. python 微信支付接口 详解_Python支付接口汇总大全(包含微信、支付宝等,长期更新、欢迎补充)...
  5. NX(UGS)技术关于我和你顶着忽移不定的云彩
  6. 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理
  7. iOS6和iOS7适应代码(6) —— NSLocalizedString
  8. 【2019杭电多校第一场1004=HDU6581】Vacation(思维+避免超时)
  9. 三菱FX3U-1PG模块与台达A2伺服连接用法
  10. Linux系统调用原理及实现
  11. 2023年深圳市绿色低碳产业扶持计划申报指南
  12. 新计算机c盘太小,Windows自带C盘扩容方法,c盘太小怎么重新分区
  13. 米4android6.0 root,小米4怎么root权限获取?miui6获取root权限方法
  14. perl学习(4) 子程序
  15. aws eks 配置nginx tls 和 nginx ingress controller
  16. windows系统电脑间互传文件
  17. sticky INTENT
  18. “75后”院士,任顶级大学副校长
  19. 【BLE】跳频算法实例分析
  20. Word交叉输入汉字和英文间距变大

热门文章

  1. android arm
  2. 计算两个日期相差的小时差
  3. 2021暑假每日一题 【week2 完结】
  4. Spring boot配置Dubbo三种方式
  5. ActiveMQ添加商品接收消息
  6. MySQL修改字段的排列位置
  7. 三星笔试能带计算机吗,2021年三星笔试试题+经验谈
  8. SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)
  9. Java 集合系列(2): ArrayList源码深入解析和使用示例
  10. php分开每个字,PHP,分解每个句子之间有特殊字符的文本文件