“基于OSS在弹性扩容、跨省容灾、多租户管理以及传输加速方面的基础能力,钉钉在此次战役过程中,实现了一键切换写入区域,拆分业务到多个区域的功能,同时钉钉在跨区域的图片处理、文档预览的并发处理量上有了10倍速的提升。”——钉钉高级技术专家 金喜
大多时候,我们都无法从青萍之末,预测到暴风骤雨的到来,就如我们无法从一个病毒身上预测到整个疫情的到来一样。在新冠肺炎疫情这只灰犀牛在全球狂奔的当下,诸多线下业务受到了影响。为了积极迎接此次疫情的挑战,政府组织、企业、院校等纷纷开启了线上办公,视频会议、在线教育以及基于互联网的数据分析已然成为当下最重要的刚需。仅以钉钉为例,目前已经有1000万家企业组织、2亿上班族在钉钉平台上协同工作。
在这样如此巨大的业务流量和数据增量的压力下,钉钉积极应对,借助阿里云对象存储(以下简称“OSS”)成功实现了存储的快速扩容,保障了业务连续性,同时解决了多租户之间的数据隔离问题。我们将通过以下5个问题,向大家详解解读。
问题1.:为什么是OSS?
答: 更适合互联网业务的存储产品。
作为一个在线协同平台,钉钉在直播,钉盘,图片处理等方面需要使用到云存储。而作为在最初就将存储看作为一种服务的对象存储,在应对互联网数据存储的规模化、高增长方面可谓开创了一个全新的、具有划时代意义的解决方案。对象存储的兴起从被传统存储产品所忽视的互联网数据存储为切入点的对象存储是面向互联网、移动互联网(3G、4G、5G)而产生的,是为大量使用的网页、视频、图片、音频、文档访问等场景而设计的。在技术上,对象存储采用基于互联网的 HTTP/HTTPS 的 S3(Simple Storage Service)/OSS(Object Storage Service) 访问接口,其本质是通过互联网(或移动互联网)访问网络内容,为应用提供了全局、全网共享的数据池化管理,非常适合做为短视频、图片、音乐等互联网应用的底层平台。现在,对象存储已经拥有了面向海量数据存储、快速访问的能力,不但可以构建数据统一分析平台,还可以发挥数据挖掘的价值,让存储更智能。
进一步了解阿里云对象存储(OSS)
在各行各业不断拥抱互联网的当下,基础设施的云化需要一套新的技术体系,需要基于互联网技术来进行改造。在企业组织数字化转型的当下,在产业互联网蓬勃发展的当下,需要更加适合互联网场景的技术升级方案。从成立的第一天开始,阿里云就具有了独特的互联网基因,通过不断应对互联网时代的诸多挑战,从而在今天构建起来数字经济时代的底层范式和技术脉络。
问题2:存储作为一个有状态的产品,如何在已有海量数据的同时,快速扩容来保障钉钉的业务需求?
答: Region(地域)级资源快速调度能力。
通过将单个对象分离为 meta、data 两部分,并且将二者分离存储,OSS 实现了 Region 级别的快速资源调度能力。在用户有突发的带宽、Qps 需求而旧数据所在集群又无法满足时,可以按前缀、或按比例将一个桶的新写入数据在一个 Region 内不同集群,甚至不同AZ(可用区)间调度,从而快速满足用户的需求。
Meta、data 分离是否会影响用户的 ListObject 操作的效率,或者导致无法保证 ListObject 的强一致呢?答案是不会,OSS 会保证单个桶的对象的 meta 都集中在一个集群,从而保证 ListObject 的高性能和强一致。同时用户也不用担心单集群无法满足海量对象的 meta 存储需求,OSS 高效的 KV 索引层保证了 meta 处理能力的水位扩展能力(实际生产中已经有了单桶超过了1万亿对象)。
Region 级资源调度要解决的另一个问题是用户的访问模式问题。新写入可以快速在 Region 级调度,但是用户的访问有多少会跟随到新的集群,取决于用户的访问模式,访问新旧数据的比例特性。OSS 具有在集群、AZ(可用区)间细粒度迁移旧数据的能力(用户无任何感知),但是在存量数据量非常大的情况下,搬迁的耗时会比较久,这样可能就无法快速实现对用户读取带宽的调度。这时候就轮到OSS的运营大脑 OSSBrain 出马了,多维度的用户画像能力可以快速判断用户的访问特性,预测出有多少的读取会跟随写入的调整而变化,进而更好的实现资源调度。比如,战疫期间钉钉某业务需要快速支持数倍的访问带宽,通过 OSSBrain 分析,该业务读取的数据90%以上是30分钟以内写入的数据。根据该特性,OSS通过快速将新写入拆分到多个集群满足了该业务的带宽需求。
问题3:对于基础设施来说,灾备能力至关重要,钉钉如何基于OSS的容灾能力快速搭建跨越四省的容灾系统,如何保证业务的连续运行?
答:基于OSS 的跨区域复制和镜像回源实现Region级容灾。
基于 OSS 的跨区域复制功能,用户可以快速搭建具备Region级容灾能力的云存储服务。下图是一个基于OSS搭建的三数据中心示例。用户在主数据中心写入,使用OSS的跨区域复制功能将数据持续同步到备数据中心。配合OSS的镜像回源功能,3个数据中心都可以支持读取操作。当然,在实际部署中需要对架构做适当的调整,保证不对对象做覆盖操作,或者可以接受对象的最终一致。
战疫期间,由于资源需求大涨,钉钉共使用了OSS 张家口、深圳、上海、成都四个区域的服务,保证了任意一个区域故障其他区域仍然可以承接全部的业务需求。
问题4: 作为一个天生共享型的云服务,OSS在服务钉钉的同时也服务着国内众多的游戏、直播、教育类客户,战疫期间众多客户的资源需求都有大幅上涨,如何保证让众多用户在共享OSS海量资源池的同时不互相影响?
答:持续在线的租户隔离能力。
OSS天生是一个共享型的服务,数十万的客户共享OSS的海量资源池,做好租户之间的资源隔离就显得尤为重要。得益于OSS持续在线的带宽、Qps、CPU的QoS能力,战疫期间直播、教育类客户暴涨的访问压力未造成任何一起互相影响的线上问题。下图是某个大带宽客户的读取带宽监控图,从图中可以看出OSS持续将客户的带宽控制在了约定的带宽值。
问题5: 在疫情期间,各企业多地办公甚至跨洋办公成为日常,那么钉钉是如何保证文档的快速分享与预览的?
答:OSS的传输加速功能。
OSS传输加速功能是OSS利用全球分布的云机房,将全球各地用户对钉钉的存储空间(Bucket)的访问,经过智能路由解析至就近的接入点,使用优化后的网络及协议,来访问Bucket从而实现加速的目的。
OSS传输加速的对于钉钉在上传、下载文件都可以起到加速的效果,特别是对于上传大文件(GB、TB)文件,这种加速方式是首选。
正是基于以上五点,OSS在战役期间,为包括钉钉在内的众多用户提供了稳定、安全的基础设施服务。以云计算为代表的数字化服务在此次疫情中发挥了重要作用。随着产业互联网、5G、AI时代的到来,以钉钉为代表的在线协同办公将驶入发展的快车道,这是行业发展的必然趋势。不久之后,当疫情退去,钉钉们依然会成为企业高效协同运作的助推器,而云计算,将成为这个助推器的重要燃料。