战疫期,钉钉如何扛起暴增百倍的流量?

栏目: IT技术 · 发布时间: 5年前

战疫期,钉钉如何扛起暴增百倍的流量?

疫情期间,在线教育、在线办公需求持续井喷,钉钉作为很多企业首选的在线办公软件,用户量激增,特别是钉钉视频会议、直播的需求随之飙升。 同时,钉钉为了响应教育部门“停课不停学”的号召,宣布老师们可以免费试用钉钉在线课堂。

流量如洪流般涌入钉钉,一场资源扩容的技术挑战拉开了帷幕。 中小学生集体对钉钉展开了五星分期与在线写歌“泄愤”的策略,钉钉本钉不得不在线求饶。 而在大战间隙,一声感叹传出:

流量这么大,钉钉为什么不崩?

战疫期,钉钉如何扛起暴增百倍的流量?

从1月28日开始,钉钉音视频会议、直播的访问流量倍数级增长。 作为一个在云上成长起来的产品,钉钉开启了在阿里云的资源扩容之路,满足了用户在家办公及在家上课的需求,保证了用户良好的体验,钉钉如何做到的?

如此大型的扩容,面临着两大困境: 效率与资源供应

人工扩容困境: 效率低下

时间太短。 面对流量暴增,留给钉钉技术团队时间只有几天。 从1月29日起,钉钉团队就已在阿里云上24小时开始全力扩容,截止2月2日,从最初的2W vCPU扩容到3W vCPU,仅做到了数倍扩容,还远未达到业务需求。

购买与配置非常复杂。 钉钉的系统架构包含多种资源,不同于单一的云服务器ECS服务集群,还包含SLB、 MongoDBRedis 、EIP等产品。 这些资源都需要一个个购买,其之间的关系也需要技人工自行配置。

人工部署效率低、失误率高。 钉钉用户群量级大。 如果人工部署集群,一个人部署1个集群需要1小时左右,同时也只能操作3-4个集群,还需要大量的配置操作,很容易失误。

部署复杂度高。 集群的服务能力自闭环,支持无限扩展,但也会相应提升部署复杂度,而这次扩容涉及8个地域、16个可用区,传统部署方式扩容场景效率低下

大规模集群管理难度大。 需要快速扩容近千集群,才能满足几亿人在家办公及学生在家上课的需求。 当资源上千后,就很难管理资源之间的关系了,更何况超百万的资源规模。

人工部署,容错率比较差,排查困难。 集群之间经常出现偏差,某个集群的SLB监听端口是300,另一个集群是3000,出现问题很难排查。

除却以上困难,建立和运维如此巨大的集群规模还会带来更多的技术挑战。

利用资源编排服务ROS,实现快速自动部署

早在2月2日流量洪峰带来之前,钉钉就通过阿里云的资源编排服务(Resource Orchestration Service,简称 ROS)提高集群部署效率、帮助其快速扩容。 而这款服务不负重托,帮助钉钉在短短2小时内新增部署了超过1万台云服务器,这个数字也创下了阿里云上快速扩容的新纪录。

什么选择资源编排服务?

资源编排服务是一款帮助阿里云用户简化云资源创建、更新和删除的自动化服务。 其通过资源栈 (Stack) 这种逻辑集合来统一管理一组云资源(一个资源栈即为一组阿里云资源)。 利用资源编排服务,云资源的创建、删除、克隆等操作都可以以资源栈为单位来完成。 在 DevOps 实践中,资源编排可以轻松地克隆开发、测试、线上环境; 同时,也可以更容易实现应用的整体迁移和扩容。

基础设施即代码(Infrastructure as Code)

资源编排服务是阿里云提供的基础设施即代码(Infrastructureas Code,简称IaC)的云产品,使用ROS可以帮助最快速地实践DevOps中关于IaC的理念。

全自动托管服务

ROS产品为全托管服务,无需购买维护IaC模板本身执行所使用的资源,只需要关注业务所需要使用的资源,即模板中定义的资源。 尤其需要创建多个项目(对应多个资源栈)时,全托管的自动化可以更快地完成任务。

可重复部署

无论客户是需要部署的环境是开发,测试和生产环境,都可以使用同一套模板进行创建。 指定不同的参数可以满足环境的差异化,例如,测试环境的ECS实例数是2台,而生产环境的ECS实例数是20台。 或是客户需要进行多地域的部署,使用同一套模板可以进行重复的部署,从而提高部署多地域的效率。

标准化部署

在实践中,不同环境的细微差异往往带来非常复杂的管理成本,延长了问题诊断的时间,从而影响了业务的正常运转。 通过使用ROS重复部署,可以将部署环境标准化,减少不同环境的差异,将环境的配置沉淀到模板中。 再通过类似代码的严格管理流程,从而保证部署的标准性。

统一的身份认证、安全和审计

和其它的同类产品对比,阿里云官方出品的ROS与其它阿里云产品有着最佳的集成。 集成资源访问管理(RAM)提供了统一的身份认证,而无需为单独建立用户认证体系。 所有的云产品操作都通过OpenAPI调用,意味着您可以使用操作审计服务(ActionTrail)来审查所有的运维操作,包括ROS本身。

战疫期,钉钉如何扛起暴增百倍的流量?

ROS如何服务钉钉扩容?

定义资源模板

ROS帮助钉钉快速创建了描述其所需要用到的阿里云资源(如 ECS 实例、数据库实例等)的模板,以定义它的集群架构。 ROS提供可视化编辑器能力,可自动可使用的模板。 模板完成后,ROS将自动地创建并配置这些资源,即可实现基础设施即代码(Infrastructureas Code)的理念。

战疫期,钉钉如何扛起暴增百倍的流量?

模板解析与执行

当ROS接收到用户创建资源栈的请求时,在执行创建前,首先会对模板进行解析。 解析包括语法检查、参数校验、依赖分析等。

依赖分析就是分析出资源间的依赖关系,目的有两个:

  • 保证资源创建的正确性: 被依赖资源创建完成后才会创建依赖资源。

  • 提供并行化创建的能力: 无依赖关系的资源可以并行化创建。

模板解析完成后,ROS会按照依赖关系创建资源,只有所有前置资源完成创建,后面的资源才会开始创建,类似状态机的机制。

该资源模板可以快速地重复部署,尤其多地域、多可用区部署的情况; 同时也可以减少环境之间的偏差,将部署过程和结果标准化,减少因为环境偏差引入的系统问题。

战疫期,钉钉如何扛起暴增百倍的流量?

总结

钉钉使用资源编排服务ROS,扩容效率就提升了100倍,陆续为钉钉完成了10万台云服务器的快速扩容和部署,创下了阿里云上快速扩容的新纪录。

目前ROS已经拥有平均每分钟1个集群的扩容效率、每天超百万vCPU弹性能力。 未来,可以预见到,疫情结束后,数百万资源回收释放也将是一个浩大的工程。 资源编排服务ROS具有一键销毁功能,自动回收集群内所有资源,避免繁琐操作及遗漏。

弹性是云计算最大的优势,也是云计算对整个社会提供的普惠和便利,而阿里云弹性计算资源编排服务ROS作为阿里云上原生的自动化编排部署服务,让云计算的弹性发挥到极致,为钉钉提供了强有力的支持,让钉钉成为使用最频繁最流畅的平台。

战疫期,钉钉如何扛起暴增百倍的流量? 福利来了 战疫期,钉钉如何扛起暴增百倍的流量?

1.8万人点赞的课程免费送

Elasticsearch 是一款非常强大的开源搜索及分析引擎。 近实时的数据搜索能力,让Elasticsearch一支独秀。 1.8万人点赞,用它23天学会大数据搜索与分析。

长按识别下方二维码或点击文末“阅读原文”,即可预约课程。

战疫期,钉钉如何扛起暴增百倍的流量?

你可能还喜欢

点击下方图片即可阅读

战疫期,钉钉如何扛起暴增百倍的流量?

贾扬清: 如何看待人工智能方向的重要问题?

战疫期,钉钉如何扛起暴增百倍的流量?

在阿里,新人如何快速上手项目管理?

战疫期,钉钉如何扛起暴增百倍的流量?

关注 「阿里技术」

把握前沿技术脉搏

戳我,免费听课。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Development Recipes

Web Development Recipes

Brian P. Hogan、Chris Warren、Mike Weber、Chris Johnson、Aaron Godin / Pragmatic Bookshelf / 2012-1-22 / USD 35.00

You'll see a full spectrum of cutting-edge web development techniques, from UI and eye candy recipes to solutions for data analysis, testing, and web hosting. Make buttons and content stand out with s......一起来看看 《Web Development Recipes》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具