阿里巴巴资深架构师,钉钉CTO 朱鸿 - 《移动+云时代的沟通和协同平台发展历程》

麦雅霜

2017/11/14 发布于 技术 分类

钉钉,是一个工作方式,从2015年初发布1.0开始,短短9个月,钉钉已经迅速积累了80余万家企业客户,在钉钉开放平台上也聚集了超过300家注册ISV。作为企业级SaaS应用平台,钉钉团队以创业之心快速满足用户需求的同时保持系统整体安全,稳定和高性能,可用性99.99%的要求对架构设计也有很大的挑战。 业务快速发展的过程中,钉钉在服务百万级企业和组织实现高效沟通和协同上经历了许多挑战和探索,积累了一些经验。本次移动专题分享将和大家探讨:产品功能需求从何而来,如何高质量的保持三周一个大版本的迭代速度,支持多端数据同步的移动IM架构实现,跨平台微应用容器及开放平台如何连企业与应用:邮件,云盘,公告,审批,签到等以及高可用系统的架构设计。

文字内容
1. ArchSummit全球架构师峰会 北京站2015 移动+云时代的沟通和协同平台发展历程
4. 钉钉的业务发展现状 钉钉企业组织数: 900,000+ 319天 2015-12-18 钉钉2.7版本即将发布 01-16 02-10 05-26 12-18 2015-5-26 钉钉2.0版本和C战略发布 打造全新移动协同平台 2015-2-10 举办首个媒体沟通会 2015-1-16 钉钉1.1版本正式上线
5. 钉钉产品架构 开放平台 商务电话 DING一下 已读未读 普通消息 企业通讯录 沟通 C ++ C -OA C -Mail C -Space 协同
6. 钉钉的主要系统模块 • 统一通信 – IM – SMS – PSTN – VOIP • 企业通讯录 • 开放平台 – http://open.dingtalk.com • 微应用及运行容器 – 邮件,云盘,公告,审批,签到,考勤,人事,投票,任务,CRM,ERP … • 企业管理后台 – http://oa.dingtalk.com
7. 钉钉的技术挑战 • 安全性 – 客户端数据库加密 – 传输TLS加密 (将采用TLS 1.3) – 服务端数据库加密 – 端到端加密 • 实时性 – 快速重连:切换网络或网络断开重连后使用session快速恢复连接状态 – 弱网优化: • 加快TCP超时重传频率(RTO) • 死连接智能判断,加快连接新建 • 高性能 – 省电:智能心跳 – 图片/短视频分片上传,并行上传 – 语音边录边传 • 高可用 – 多机房容灾 – 压测,容量预估 – 隔离,流控
8. 钉钉客户端架构
9. 钉钉通信协议接入层 H TTP IP LW S LW S LW R W SS H TTPS H TTP H TTP /LW P LW R H TTP /LW P
10. 钉钉的多端同步协议 • 业务要求 – 在手机,Pad,Pc多个设备间切换钉钉,消息和状态保持同步 • 实现特点 – 将支持5个设备同时同步 – 使用阿里云TableStore(OTS)存储增量有序同步数据 – 客户端和服务端均保存每个设备的上一个成功同步点,客户端登 录成功后快速发起同步 – 在通信协议之上建立同步协议: • 服务端将增量同步数据合并成同步数据包并编号 • 同步数据包可并行发送 • 客户端按编号顺序消费同步数据包 • 重传同步数据包(ack 超时)可合并新的增量
11. 1. B 10.B 2. R PC 9. 4.3 R P C 3.R PC (S 4.2 R P C Oc 8 7.1 gV K Pa 4.1. Message Queue eS O Qbi A C) A Mhe i de A 5.1 D B U WS C 7.2 NTS 6 C D CA CC - 5.2 LS , DH I
12. 钉钉的高可用架构
13. 钉钉的开放平台 http://open.dingtalk.com
14. 钉钉的微应用
15. 钉钉上的Tower任务
16. 钉钉开放平台 • 钉钉服务端开放功能: – 提供了企业通讯录管理、文件管理、发送企业会话消息等功能 • 微应用运行容器: – 提供了一组可以调用钉钉的本地能力和业务逻辑的JS接口 – 应用离线包 – React Native技术 • 免登服务 – 1.获取CODE(免登授权码),获取CODE的方式有两种: • 调用js-api接口(推荐) • 使用标准OAUTH2.0 HTTP 302跳转的方式。 – 2.通过CODE换取用户身份。 – 对于频繁获取用户身份的场景,建议采用如下方案: • 用户跳转到企业页面时,企业校验是否有代表用户身份的cookie,此cookie由企 业生成 • 如果没有获取到cookie,调用免登服务,获取用户身份后,由企业生成代表用户身 份的cookie • 根据cookie获取用户身份,进入相应的页面
17. 微应用Demo • https://github.com/outlookxie/app-todolist
18. 钉钉的未来展望 • 安全可靠:核心功能 99.99% 可用性 • 全球加速:就近就快接入,加速文件的上传和下 载 • 国际化:支持更多的语言,支持国际电话 • SaaS平台:建设应用市场为中小企业提供丰富的 企业协同应用
19. 钉钉历险记 • 大公司 vs 创业团队 – 7个Scrum团队 – 扁平化管理 • 中台技术 vs 自研技术 – 安全,稳定,性能 • 大企业 vs 中小企业 – 需求从哪儿来?
20. 得到的
21. 钉钉的研发流程
22. 钉钉的发布流程