2019独角兽企业重金招聘Python工程师标准>>>

海量的题库、音视频答题资料、用户数据以及日志,对猿辅导后台数据存储和处理能力都提出了严峻的要求。而由于教育辅导行业的业务特点,猿辅导也面临着业务峰值对于数据库能力的巨大挑战。本文就为大家介绍阿里云POLARDB如何帮助猿辅导打造“孩子喜欢老师好”的网课平台。

猿辅导业务背景

猿辅导是国内知名在线教育机构,旗下有猿辅导、猿题库、小猿搜题、小猿口算、斑马英语五款核心在线教育APP,为学生和家长提供在线辅导、拍照答疑、智能题库、自动批改等相关的智能教育服务。猿辅导拥有百亿级的K-12学习行为数据库,并率先将AI、大数据等前沿技术应用于教育场景。

猿辅导自建数据库方案所面对的挑战

猿辅导之前采用的是自建数据库的解决方案,但是因为自身业务特点,在周末或者在线模考的时候,同时在线人数会瞬间激增,而原本的自建数据库方案难以应对这样的访问峰值,因此会有大约三分之一的学生无法正常进入在线考试。而答题的延时也从正常情况下的1秒之内增长到平均5秒,使得学生用户的答题体验急剧下降。与此同时,猿辅导的用户量每年飞速增长,自建MySQL数据库的CPU利用率已经达到了70%以上。此外,猿辅导的DBA原本由运维人员兼职,但是面对这样纷繁复杂的数据库管理任务,兼职DBA力不从心,而招聘专职DBA却预计会需要每年至少100万的成本。总之,自建数据库方案难以应对访问峰值,难以满足业务高速发展的需求,并且难以管理,且会增大人力成本等问题,这些都是摆在高速发展的猿辅导面前的巨大挑战。

猿辅导基于POLARDB数据库解决方案

面对上述的诸多挑战,猿辅导基于阿里云POLARDB实现了新的数据库解决方案。猿辅导之所以选用阿里云POLARDB数据库,除了POLARDB数据库具有较高的性能,并且能够MySQL实现100%兼容之外,更加看重POLARDB的弹性伸缩能力和容量最高可达100T的能力。因为猿辅导的业务特点,用户访问量在平时可以轻松应对,但是在周末以及考试期间达到业务访问的高峰,因此应对数据库问题的主要难点在于用户的高并发访问所造成的读写争用,进而使得I/O较高,而如果一直购买高配置的MySQL数据库,成本难以接受。而猿辅导通过使用阿里云POLARDB,借助其快速弹性的能力,在业务的高峰期临时增加数据库配置和集群规模,与之前的方案相比整体成本大大降低。

猿辅导基于阿里云POLARDB分钟级弹性数据库集群

对于猿辅导这样具有明显业务峰值特征的产品而言,最为看重的就是POLARDB的分钟级弹性能力。而在其强大的弹性能力的背后其实是POLARDB存储与计算分离设计。所谓分离就是计算节点(DB Engine)和存储节点(DB Store)在不同的物理服务器上,任何落地到存储设备的I/O操作均为网络I/O。而且,借助PolarFS经过网络访问PolarStore的测试性能效果基本能够与本地单副本SSD持平。而POLARDB的存储与计算分离的架构,除了可以降低存储成本,保证主备数据强一致、不丢数据之外,还带来了一个巨大的优势,就是让数据库的弹性伸缩变得极为简单、便捷。

阿里云POLARDB分层架构图

正如上图所示,POLARDB采用了分层架构,从上层的代理PolarProxy提供了读写分离、SQL加速等功能,到中间的数据库引擎节点POLARDB构造了一写多读的数据库集群,再到底层的分布式存储PolarStore为上层提供多节点挂载的数据共享,每一层各司其职,共同构建了POLARDB云数据库集群。

从POLARDB产品定义上看,用户购买的节点数和规格大小(比如4核16G)指的是中间这一层POLARDB的配置,上层PolarProxy可以根据POLARDB的配置自适应调整,用户不需购买也不用关心性能和容量。底层PolarStore的容量是自动扩容,只须按照实际使用容量付费。

通常意义的扩展性,一般有纵向(Scale up)和横向(Scale out)和两种方式,纵向是指提升配置,横向是指配置不变,但增加节点。对于数据库来说,都是先纵向,比如4核不够升到8核。但终归会遇到瓶颈,一方面性能提升非线性,跟数据库引擎自身的设计和应用访问模型有关(比如MySQL的多线程设计,如果只有一个session,那么很难体现出多核的优势),另一方面,计算物理服务器配置有上限,存在天花板。因此终极手段还是横向扩展,增加节点数。

阿里云控制台POLARDB升降配操作示意图

对于POLARDB而言,其弹性能力可以概括为“横向最多可以到16个节点,纵向最高可到88核,并且存储容量动态扩展,毋须配置”。那么,在这样强大的弹性能力的背后,POLARDB的底层技术究竟是怎样实现的呢?接下来就从纵向、横向和存储三个方面介绍。

纵向扩展(升级/降级配置):得益于存储与计算分离,POLARDB数据库节点的配置可以单独升级或降级,如果当前服务器资源不足,还可以快速地迁移到其他服务器,整个过程目前只需要5-10分钟,中间不需要任何的数据搬迁,只是如果涉及到跨机迁移,未来还可以通过PolarProxy消除升级对业务应用的影响。因为目前同一集群内的所有节点必须绑定升级,因此POLARDB采用了Rolling Upgrade滚动升级的方式,通过控制升级的节奏、搭配主备切换来进一步减少不可用时间。

横向扩展(增/减节点):由于存储是共享的,因此可以快速增加节点,而不需要任何的数据COPY。整个过程也只需要5-10分钟,如果是增加节点,对业务应用没有任何影响,如果是减少节点,那么仅对落到该节点执行的连接有影响,重新连接即可。当增加节点之后,PolarProxy可以动态感知并自动加入到读写分离后端的读节点中,对于使用集群访问地址(读写分离地址)连接POLARDB的应用程序可以立马享受到更好的性能和吞吐。

毋须管理的存储空间:POLARDB的存储空间不需要关心,按量付费,每小时自动结算。在目前的设计中,I/O能力与数据库节点的规格有关,规格越大,IOPS和I/O吞吐量越高,在节点上对I/O有隔离和限制,能够避免多个数据库集群之间的I/O争抢。本质上,数据是被保存在由大量服务器构成的存储池中,由于可靠性要求,每个数据块复制出3个副本,保存在不同机架的不同服务器上。而存储池能够进行自我管理,动态扩容、平衡,避免存储碎片和数据热点。

使用POLARDB为猿辅导带来的收益

猿辅导将数据库迁移到阿里云POLARDB之后,在业务平峰的时候,能够同时支撑大体量学生在线进行课程学习,并且业务根本不会感觉到压力。而当应对业务高峰的时候,只需要提前一小时进行准备,就能够将业务能力临时提升至足以应对100万学生并发访问的等级。而且,由于POLARDB数据库资源可以按需弹性伸缩,因此在猿辅导从MySQL迁移到POLARDB之后节省了5个只读库的容量,节省了近70%的数据库费用支出。此外,在线数据库维护工作量能够降低95%,无需资深的专业DBA坐镇,因此大大降低了数据库维护的人力成本。最后,如果从业务维度来看,猿辅导在迁移到POLARDB之后,大大提升了用户体验。

转载于:https://my.oschina.net/u/3827390/blog/2999299

阿里云POLARDB如何帮助猿辅导打造“孩子喜欢老师好”的网课平台?相关推荐

  1. 阿里云POLARDB如何帮助猿辅导打造“孩子喜欢老师好”的网课平台?...

    海量的题库.音视频答题资料.用户数据以及日志,对猿辅导后台数据存储和处理能力都提出了严峻的要求.而由于教育辅导行业的业务特点,猿辅导也面临着业务峰值对于数据库能力的巨大挑战.本文就为大家介绍阿里云PO ...

  2. 4月24日云栖精选夜读 | 阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?...

    [点击订阅云栖夜读周刊] 轻松筹首创了"大病救助"模式,帮助了众多病患在第一时间解決了医疗资金等问题,为了从源头解决了医疗资金问题.而在轻松筹这样全球5.5亿用户信赖的大病筹款平台 ...

  3. 阿里云POLARDB如何助力轻松筹打造5亿用户信赖的大病筹款平台?

    2019独角兽企业重金招聘Python工程师标准>>> 轻松筹首创了"大病救助"模式,帮助了众多病患在第一时间解決了医疗资金等问题,为了从源头解决了医疗资金问题. ...

  4. 阿里云POLARDB荣膺2019中国数据库年度最佳创新产品

    在日前的DTCC 2019(第十届中国数据库技术大会)上,阿里云自研云原生数据库POLARDB获选2019中国数据库--"年度最佳创新产品". POLARDB是阿里云在2018年正 ...

  5. 腾讯云内容生态助力猿辅导,线上线下全方位推动教育云进入快车道

    在互联网+时代,"教育+互联网"的概念已经被不少在线教育企业所印证,而随着包括云服务.大数据支撑等基础服务支持后,教育和科技的结合应该走向何方?在今夏高考.高校录取之际,猿辅导推出 ...

  6. 超聚变服务器操作系统FusionOS与阿里云PolarDB数据库完成兼容性认证

    近日,超聚变服务器操作系统FusionOS签署阿里巴巴开源CLA(Contribution License Agreement, 贡献许可协议), 正式与阿里云PolarDB 开源数据库社区牵手,并率 ...

  7. 乘数科技云管控平台适配阿里云 PolarDB,共促云原生数据库生态繁荣

    近日,乘数科技自主研发的云管控平台 CLup(Cloud Union Platform)完成了与阿里云 PolarDB 的适配,支持 PolarDB 的部署.创建.切换.备份等功能,用户可以在 CLu ...

  8. 友邦人寿引入阿里云PolarDB云数据库 支撑保险业务系统加速上云

    简介:友邦人寿日前加速重要业务系统上云进程,包括保险出单.保单契约等在内的数十套业务系统,开始采用阿里云PolarDB云原生数据库,通过全面替代传统商业数据库,进一步提升业务系统性能,为最终用户提供最 ...

  9. 阿里云PolarDB论文入选数据库顶会SIGMOD2021 最新一代架构领先世界

    简介:阿里云研发的下一代云原生数据库PolarDB Serverless的论文被ACM SIGMOD录用,标志着阿里云PolarDB数据库在最新一代架构上领先于业界其他云厂商. 近日获悉,阿里云研发的 ...

最新文章

  1. 肠·道 | 刘洋彧:重建肠道菌群生态网络
  2. 为什么String中的Java hashCode()使用31作为乘数?
  3. UA MATH571B 试验设计II 简单试验的分析方法
  4. 应用指定显示到副屏_彩易达LED显示屏在税务局的应用-彩易达,LED显示屏,在税务局的应用-LED屏行业...
  5. sonar findbugs plugin源码研究
  6. 管理员以标准权限运行时
  7. jQuery中的join方法
  8. win10电脑开启卓越性能
  9. 社会统计分析—基础知识
  10. 无线路由器当成服务器,把无线路由器设置成服务器
  11. Qt中的forever是什么?
  12. 无盘服务器文件管理,云图管家文档图纸管理软件
  13. 【DBA100人】胡中豪:国产分布式数据库DBA炼成记
  14. C++ iterator(迭代器)用法
  15. python--圆周率的计算
  16. 计算机视觉(相机标定)-1.1-针孔摄像机透镜
  17. e420 thinkpad 开机黑屏_thinkpad E420开机黑屏主板门维修
  18. 超级签名-原理/机制/技术细节-完全解析
  19. Hopf-Cole 变换与高阶差分格式(Burgers方程)
  20. Java环境的下载和配置

热门文章

  1. Bar上平仓后满足开仓条件不再开仓
  2. 三无人员简历挂麻了,磕磕绊绊终上岸字节后端
  3. C#调用Face++ API实现人脸融合
  4. 几个有趣的小游戏,没事的可以休闲玩玩
  5. 读取图像,显示图像,输出图像像素矩阵
  6. 基础技术篇 8 —— iBeacon技术详解与应用
  7. PHP源码加密方法实例
  8. 使用JVMTI实现Java源码加密及SpringBoot项目包加密解决方案实践总结
  9. 我的世界宅霸服务器文件在哪里,宅霸我的世界怎么联机?我的世界联机攻略
  10. Twidere 开发者:95后的宅里奥