作者:金中茜

对石墨文档来说,“用户体验、成本消耗、上线速度”是决定能否在茫茫商海展露头角的重要因素。它需要一套弹性高可用、分布式的服务来实时处理文档编辑冲突:既要保证成本可接受,又要保证在负载突增时平滑处理峰值负载,实现毫秒级别的文档同步响应。

2021 年 7 月 20 日,一场特大暴雨打破了河南的宁静,也牵动着全国人民的心。

当晚,大量河南暴雨的信息开始在各类社交媒体急速传播,“待救援人员名单”“救援现场信息”“住宿交通物资信息”......一个个在线文档承载着一条条救命信息。石墨文档在第一时间向抗汛一线的政府部门、医疗机构、公益组织、社会志愿者们提供了免费的高级版产品和服务。

两周内,全国共创建了超过 1600 个灾情协同文档,累积为数百万设备提供了在线协同服务,让抗汛的现场救援、物资运输、医疗及志愿者组织都更加高效。同时,也让石墨文档背后的 IT 系统面临着巨大挑战,尤其是:如何保证系统的平稳运行。

只有系统平稳的运行,才能让更多人参与到文档协作中,第一时间对各类救命文档进行整理、编辑、归纳,让救命信息及时传递出去。

石墨文档经受住了这次极端流量的考验,背后是五个月前便在阿里云上构建了一套智能运维系统,打通了系统全链路可观测数据,实现统一管理,智能告警和提前预检。

灾情一发生,石墨文档团队工程师就接到告警电话,语音自动播报石墨线上 K8S(Kubernetes,容器管控系统)集群资源使用率飙升,PV(Page View,页面浏览量)同比增加 200%以上;某些业务接口访问量骤增,多个资源即将到达压力位告警,原来是多个文档的读写次数和访问人数出现异常增多。

由于短期访问人数激增,且无法准确判断后续上涨趋势,工程师快速协调了数倍于往日的阿里云计算资源对基础设施进行了大规模扩容,确保这些救灾文档在数千人同时协作,数百万人次浏览的情况下也能保持稳定、流畅的体验,从而保障救灾工作顺利进行。

最终,石墨文档出色完成了作为“信息载体”的任务,文档始终稳定可用。

能够快速应对极端情况下的流量压力,还有赖于石墨文档一直以来的技术积累。自 2014 年成立至今,石墨文档累计服务超过 20 万家企业,在 IT 层面主要面临两大挑战。

一是多用户实时协作。为了支持多用户多终端实时在线编写,石墨文档技术团队对 OperationalTransformation 算法进行了非常深入的探索和修改,解决了一段文字被多个客户端同时修改所引起的冲突问题。

但这会带来第二个挑战,就是多用户实时编辑对服务器带来的巨大压力。用户敲击键盘输入一个文字只需几毫秒,但如果是大量用户在石墨文档上同时编写文档,就很容易出现在一个很小时间段内数据分布不均的情况,一个直观的体现就是“写串行”。

对石墨文档来说,“用户体验、成本消耗、上线速度”是决定能否在茫茫商海展露头角的重要因素。它需要一套弹性高可用、分布式的服务来实时处理文档编辑冲突:既要保证成本可接受,又要保证在负载突增时平滑处理峰值负载,实现毫秒级别的文档同步响应。

为此,石墨文档与阿里云进行深度合作,借助公共云 Serverless 架构来应对流量挑战。

函数计算是阿里云提供的 Serverless 服务,根据请求量动态分配执行环境,毫秒级调度计算资源,确保在负载高时保持稳定的延时,在负载低时有着较高的资源利用率,且只会对代码运行时使用的计算资源付费。

石墨文档使用函数计算搭建文档实时编辑服务,由函数计算的智能调度系统自动分配执行环境,处理多用户同时编写文档带来的峰值负载,函数计算的动态扩缩容能力保障应用的可靠运行。

借助函数计算毫秒级别的资源伸缩能力,石墨文档解决了高峰期负载突增的计算资源扩容问题,相比于自建机房维护服务器,节省了 58%的 IT 成本,目前石墨文档每月调用函数计算超过 30 亿次。

云原生时代,逐渐完善的 IT 基础设施,让企业能更高效地进行数字化创新。

由于不用再考虑 CPU 密集型计算的负载均衡问题,不仅开发的稳定性提高了,各个项目的迭代与上线的步伐也快了起来。作为中国第一款支持云端协作的企业办公服务软件,石墨文档实现了以毫秒级同步响应速度,来实现多成员多终端的在线实时协作,强大稳定的技术支撑着平台高效稳定的服务体验,也正激发更大想象空间。

借助阿里云函数计算极致弹性,石墨文档发布“远程办公版”,为企业带来一系列远程办公模板。这些模板使用方便,实现多人多地在线实时办公。更进一步,12 月 1 日,在“重塑在线办公”的主题下,石墨文档正式推出为企业和组织打造的国产企业级云端 Office——石墨办公,向更广阔的市场迈出关键一步。

石墨团队一直围绕企业文档协同的需求不断创新,这为未来的办公协同模式,进行了重要探索。

发布云原生技术最新资讯、汇集云原生技术最全内容,定期举办云原生活动、直播,阿里产品及用户最佳实践发布。与你并肩探索云原生技术点滴,分享你需要的云原生内容。

关注【阿里巴巴云原生】公众号,获取更多云原生实时资讯!

节省 58% IT 成本,调用函数计算超过 30 亿次,石墨文档的 Serverless 实践相关推荐

  1. 函数计算帮助石墨文档突破性能瓶颈,有效节省服务器成本

    简介:石墨文档 是中国第一款支持云端协作的企业办公服务软件(功能类比于Google docs.Quip等),可以实现多成员多终端的在线实时协作,同步响应速度达到毫秒级,是团队协作的最佳选择. 石墨文档 ...

  2. 风之语.惊闻周星驰电影票房超过30亿RMB

    风之语.惊闻周星驰电影<<美人鱼>>票房超过30亿RMB <美人鱼>为周星驰执导,由邓超.林允.罗志祥.张雨绮主演的一部融合浪漫与惊险的爱情大片.故事讲述的富豪轩少 ...

  3. python api调用 验证码_Python语言调用创蓝253短信验证码API文档

    本文主要向大家介绍了Python语言调用创蓝253短信验证码API文档,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. #!/usr/local/bin/python #-*- c ...

  4. c语言调用函数计算分段函数值,输入x,计算并输出下列分段函数f(x)的值(保留2位小数) c语言...

    计算分段函数输入 x ,计算并输出 y 的值.公式如下 当x >= 0时,f(x) = x^0.5,当x小于0时,f(x #include#include//[1{intmain()//你所写的 ...

  5. .net函数查询_用python实现多文档查询

    问题背景 小皮同学最近很苦恼. 小皮同学所在的科室最近承接了一个大工程的咨询项目,小皮同学和同事们都很开心,因为这意味着大家从画图的一跃变成了审图的,以前那种"专家一句话,改图头改大&quo ...

  6. ictclas java_ICTCLAS50 基于中科院分词作的java 工具,内容详细各个函数都有实现 含有word解析文档 Develop 238万源代码下载- www.pudn.com...

    文件名称: ICTCLAS50下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 2983 KB 上传时间: 2013-05-15 下载次数: 11 提 供 者: 安 ...

  7. python如何调用函数计算出成绩的不及格率_Excel利用这个函数轻松完成自动计算及格率、合格率...

    原标题:Excel利用这个函数轻松完成自动计算及格率.合格率 在我们日常工作中,经常碰到计算产品的合格率,作为老师每次考试完成都要计算及格率达到多少,今天小编就以学生成绩表为例,和大家分享利用函数自动 ...

  8. python如何调用函数计算出成绩的不及格率_(求excle公式:95分以上为优、94分-85分为良、84分-75分为中、74分-60分为合格、60分以下为不合格)excel成绩及格率...

    Excle中怎么找出指定行 ①excel中的数据筛选功能.可以操作,选择表头的任意一个单元格,单击菜单栏"数据"--->"筛选"--->" ...

  9. ICV:2025年中国汽车磁传感器芯片市场规模将超过30亿元

    知名前沿科技咨询机构ICV近期发布了题为<Global automotive magnetic sensors& chips market size forcast-2022>的报 ...

最新文章

  1. iexpress全力打造“免检”***
  2. 干货 | 一文总结旋转目标检测全面综述:论文方法与代码
  3. Linux获取系统当前时间(精确到毫秒)
  4. 解决cisco路由器cpu占用率100%问题
  5. PIC单片机入门_汇编/混编/C编比较
  6. Mongodb 与 Redis 调教
  7. 【算法图解|4】JavaScript 如何求数组的最大值和最小值
  8. 小红书CTO山丘:用户隐私保护是数据应用的第一前提
  9. java nio广播服务器
  10. springcloud feign负载均衡_SpringCloud学习笔记(2)——Ribbon
  11. 算法:判断对称树 101. Symmetric Tree
  12. 2019年美赛D题翻译与思路详解
  13. (转)DirectoryEntry的使用
  14. AI遇上农业会怎样?最新UNT《智慧农业》2022全面综述农业4.0发展的架构、技术、应用等
  15. 南京信息工程大学计算机科学与技术评级,晋升ESI排名全球前1‰,南京信息工程大学这个学科不简单!...
  16. 一.数组(10)274. H 指数(不怎么理解)
  17. 兔子繁殖 c语言编程,c语言写的兔子繁殖- 斐波那契数列.每次只显示前两个.
  18. boost::geometry::ever_circling_iterator用法的测试程序
  19. 安卓逆向工程--针对授权key方式的破解
  20. 无法修改hosts文件的解决办法/github上无法看到图片

热门文章

  1. 进程调度算法Java代码
  2. 你们应该听说过”w8ay“这个ID吧!一个喜欢造轮子的小子
  3. 9、 root修改普通用户密码
  4. 1、数据库设计的基本步骤
  5. Acwing第 40 场周赛【完结】
  6. 1107 Social Clusters (30 分)【难度: 中 / 知识点: 并查集】
  7. CountDownLatch实时通信
  8. jQuery的attr()和prop()方法
  9. Model层的两种写法
  10. 重磅:Swagger3.0 官方 starter 诞生了,其它的都可以扔了~