新型冠狀病毒疫情肆虐的春節,你們都過得人心惶惶,做爲被關在家的程序狗,總以爲要作點什麼。因而阿里雲 IoT 事業部的幾個同窗就開始了防疫精靈的開發之路。web
從點子到防疫寶,只花了一個下午時間;從防疫寶到釘釘全域機器人防疫精靈,只花了 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 腳原本,詳見下文優化部分)less
原理:天天 9 時、17 時定時推送最新疫情實況和打卡、諮詢快捷連接 搭建: // 觸發 1.使用定時節點,設置每日觸發 2.使用項目內API節點,調用同項目內的批量發送服務運維
// 發送 3.使用 HTTP 節點搭建發送入口 4.使用 Node.js 腳本節點拼裝消息發送的內容 5.使用 Node.js 腳本節點查詢數據庫的webhook信息並解籤(此處後續會優化數據庫節點,無需寫腳本) 6.使用 Node.js 腳本節點,批量發送消息給釘釘的 OpenAPI 接口(此處是關鍵點,容量評估、併發、流控、異常處理都在此處)分佈式
原理:使用可視化工具,利用庫中的疫情數據,展現實況、趨勢圖,藉助函數計算部署 puppeteer 服務定時截圖 搭建:函數
「阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的技術圈。」