在线教育如何应对流量洪峰?阿里云专家:上云+云数据库是最佳路径

2月中下旬原本是全国各地春季学期开学的日子,但这场突如其来的疫情使得1.8亿中小学生只能纷纷在家开启“停课不停学”的学习生活,而线上教育也顺势成为了这一特殊时期首选的学习方式。

但突如其来的流量洪峰,却让许多线上教育平台力不从心。开学第一天,包括学习通、慕课网等在内的多家在线教育平台都出现了“卡顿”和“死机”的情况,“学习通崩了”这一词条一度登上了微博热搜。

与此同时,阿里云平台上的教育领域客户的扩容需求也在飞速增长,其中数据库扩容需求更是十分强烈,沪江教育、猿辅导、VIPKID、洋葱学院等多家在线教育平台通过分钟级扩容,平稳应对了流量挑战

在线教育企业业务场景较为类似,基本上面临着海量的题库、音视频答题资料、用户数据以及日志等巨大的数据存储需求,这些都在线企业后台数据存储和处理能力都提出了严峻的要求。

作为在线教育企业,面对今天应用环境,如何建设IT,才能灵活适配业务发展,做到不掉链子?本文主要讨论在线教育企业数据库建设问题

延时、卡顿、高成本,自建方案打不赢这场仗,上云是最佳选择

阿里云平台上的有些在线教育客户之前采用的是自建数据库的解决方案。在企业业务发展初期,数据库可以支撑业务的发展。但是企业发展到一定程度,很快自建数据库的方案开始捉襟见肘。

阿里云的一家大型在线教育客户,在周末或者在线模考的时候,同时在线人数会瞬间激增,原本的自建数据库方案难以应对这样的访问峰值,导致很多学生无法正常进入在线考试。而答题的延时也从正常情况下的1秒之内增长到平均5秒,使得学生用户的答题体验急剧下降。

与此同时,这家在线教育客户的用户量每年飞速增长,自建MySQL数据库的CPU利用率已经达到了70%以上。此外,招聘专职DBA导致公司每年产生至少100万以上的成本。

总之,自建数据库方案难以应对访问峰值,难以满足业务高速发展的需求,并且难以管理,且会增大人力成本等问题,这些都是摆在高速发展的在线教育企业面前的巨大挑战。

面对上述的诸多挑战,这家在线教育企业选择放弃自建IT,整体将业务迁移到阿里云上,核心的数据库选择了阿里云PolarDB通过充分利用云计算的技术优势,这家在线教育企业实现了IT架构的极大灵活性,不但降低IT成本,还得以让技术团队专注于业务体验的提升。

猿辅导为例,通过将数据库迁移到阿里云PolarDB之后,在业务平峰的时候,能够同时支撑大体量学生在线进行课程学习,并且业务根本不会感觉到压力。而当应对业务高峰的时候,只需要提前一小时进行准备,就能够将业务能力临时提升至足以应对100万学生并发访问的等级。

而且,由于PolarDB数据库资源可以按需弹性伸缩,因此在猿辅导从MySQL迁移到PolarDB之后节省了5个只读库的容量,节省了近70%的数据库费用支出。此外,在线数据库维护工作量能够降低95%,无需资深的专业DBA坐镇,因此大大降低了数据库维护的人力成本。最后,如果从业务维度来看,猿辅导在迁移到PolarDB之后,大大提升了用户体验。

从技术层面来看,在线教育企业的业务场景较为类似,随着云计算技术的进一步成熟,云平台已经成为最佳业务支撑平台。

数据库分钟级扩容帮助在线教育企业应对业务高峰

在线教育企业,很多的产品或者服务具备明显业务峰值特征——在周末以及考试期间会产生业务访问的高峰用户的高并发访问所造成的读写争用,进而使得数据库I/O较高,如果一直购买高配置的MySQL数据库,高昂的成本使得企业难以接受。

阿里云上,很多在线教育企业通过使用阿里云PolarDB,借助其快速弹性的能力,在业务的高峰期临时增加数据库配置和集群规模,与之前的方案相比整体成本大大降低。一般而言,传统数据库的扩容配置要以天为单位计算,而云数据库则可以实现分钟级的扩容,效率提升数十倍以上。

在线教育企业的反馈来看,之所以选用阿里云PolarDB数据库,除了PolarDB数据库具有较高的性能,并且能够与MySQL实现100%兼容之外,更加看重PolarDB分钟级弹性伸缩能力。

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

阿里云PolarDB分层架构图

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

通常意义的扩展性,一般有纵向(Scale up)和横向(Scale out)和两种方式,纵向是指提升配置,横向是指配置不变,但增加节点。对于PolarDB而言,其弹性能力可以概括为“横向最多可以到16个节点,纵向最高可到88核,并且存储容量动态扩展,毋须配置”。

PolarDB超强弹性背后的技术实现细节不再赘述,但是数据库具备分钟级的扩容能力,对于在线教育企业而言非常重要,在本次疫情期间,也很好地帮在线教育客户应对了流量洪峰

总结:上云+云数据库是在线教育企业最佳路径

疫情以来,在线教育的需求爆发式增长,但是如果因为IT能力的不足,而拖累业务的表现,这是很多在线教育企业最不愿看到的情况。今天阿里云平台上在线教育企业的实践已经证明,云计算和云数据库等技术是助推在线教育企业快速发展的最佳技术路线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

会 SQL 就能搞定 AI!蚂蚁金服重磅开源机器学习工具 SQLFlow

5 月 6 日,在QCon 全球软件开发大会(北京站)2019上,蚂蚁金服副 CTO 胡喜正式宣布开源机器学习工具 SQLFlow,他在演讲中表示:“未来三年,AI 能力会成为每一位技术人员的基本能力。我们希望通过开…

什么是 CD 管道?一文告诉你如何借助Kubernetes、Ansible和Jenkins创建CD管道!

作者 | Magalix翻译 | 火火酱,责编 | Carol来源 | 架构师技术联盟封图 | CSDN付费下载于IC photoCI/CD要解决的是什么问题?CI/CD(CI全名Continuous Integration,持续集成;CD全名Continuous Deployment,持续…

使用kettle导入数据到ADB for PostgreSQL

Kettle简介 Kettle(现也称为Pentaho Data Integration,简称PDI)是一款非常受欢迎的开源ETL工具软件,主要用于数据整合、转换和迁移。Kettle除了支持各种关系型数据库,HBase MongoDB这样的NoSQL数据源外,它还支持Excel、Access这类…

Android11vivox21刷机包,vivo x21旧版官方固件rom系统刷机包

这是vivo x21旧版官方固件rom系统刷机包,可以做备用,降级可用!!vivo x21已经提示更新了,如果你的手机更新之后系统没有之前好用的,可以选择降级用,直接完整版的固件rom包下载,解压出…

集结阿里云数据库最强阵容 DTCC 2019 八大亮点抢先看

2019年5月8日-5月10日,由国内知名IT技术社区主办的数据库技术交流盛会——DTCC 2019将在北京新云南皇冠假日大酒店召开。数据风云,十年变迁,DTCC见证并铭记了国内数据库技术的关键成长历程。作为DTCC的老朋友和全球领先的云计算厂商&#xff…

行!看到抖音上Python程序员晒得工资条,我沉默了......

Python上抖音热搜了?作为短视频爱好者最近刷到了一个Python工程师的工资条然后我默默的打开看了然后我默默的关闭了我想这个工资算下来好像也不算高我就去其他渠道搜索了一下相关的Python工作岗位的工资好吧,都是比这个工资更高的(拉勾网3.2日…

为什么强烈禁止开发人员使用isSuccess作为变量名

在日常开发中,我们会经常要在类中定义布尔类型的变量,比如在给外部系统提供一个RPC接口的时候,我们一般会定义一个字段表示本次请求是否成功的。 关于这个"本次请求是否成功"的字段的定义,其实是有很多种讲究和坑的&am…

现代IM系统中的消息系统架构 - 模型篇

前言 在架构篇中我们介绍了现代IM消息系统的架构,介绍了Timeline的抽象模型以及基于Timeline模型构建的一个支持『消息漫游』、『多端同步』和『消息检索』多种高级功能的消息系统的典型架构。架构篇中为了简化读者对Tablestore Timeline模型的理解,概要…

必看!Spark 进阶之路之「SparkSQL」入门概述 | 博文精选

作者 | Alice菌责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于视觉中国在之前的文章中,我们已经完成了对于Spark核心SparkCore的详细介绍。而今天想为为大家介绍的是SparkSQL的概述。什么是Spark SQL?Spark SQL是Spark用来处理结构化数据的一个模块…

Discord 公司如何使用 Cassandra 存储上亿条线上数据

Discord 是一款国外的类似 YY 的语音聊天软件。Discord 语音聊天软件及我们的 UGC 内容的增长速度比想象中要快得多。随着越来越多用户的加入,带来了更多聊天消息。2016 年 7 月,每天大约有 4 千万条消息;2016 年 12 月,每天超过亿…

Android10弹出截屏对话框,Android一个美丽而聪明的警告对话框SweetAlert

由JavaScript启发SweetAlert安卓对话框截图建立使用SweetAlertDialog最简单的方法是将图书馆作为AAR依赖添加到您的构建。Maven的cn.pedant.sweetalertlibrary1.3aar摇篮repositories {mavenCentral()}dependencies {compile cn.pedant.sweetalert:library:1.3}用法秀物质文明S…

shell脚本触发java程序支持传参补跑_01

文章目录一、java程序1. 创建java项目2. 创建包结构3. 创建java类4. 编译5. 编译后的包结构总览二、shell脚本2.1. 创建基础目录2.2. 上传项目到指定目录2.3. 创建基础脚本2.4. 赋予脚本执行权限三、案例测试3.1. 测试不传参数3.2. 测试传参数一、java程序 1. 创建java项目 i…

深度 | API 设计最佳实践的思考

API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。 接下来,阿里巴巴研究员谷朴将给出建议,什么样的 API 设计是好的设计?好的设计…

如果你觉得 Git 很迷惑人,那么这份小抄正是为你准备的!

作者 |Maxence Poutord责编 | Carol来源 | 漫话编程封图 | CSDN付费下载于视觉中国如果你觉得 git 很迷惑人,那么这份小抄正是为你准备的!请注意我有意跳过了 git commit、git pull/push 之类的基本命令,这份小抄的主题是 git 的一些「高级」…

android 16 登陆,那些年我们一起养过的电子鸡登陆Android平台

看到下面的图片大家有没有眼前一亮的感觉,这不就是我们那些年一起养过电子鸡(电子宠物)嘛,或许现在的孩子们看来根本没什么可玩的,与iPad,PSP,3DS什么的没法比呀。可就是这个简单的玩具却带给了曾经的我们无穷的乐趣,甚…

Apache Cassandra 在 Facebook 的应用

谁说 Facebook 弃用 Cassandra?相反 Facebook 拥有全世界最大的单个 Cassandra 集群部署,而且他们对 Cassandra 做了很多性能优化,包括 Cassandra on RocksDB 以提升 Cassandra 的响应时间。 在 Instagram (Instagram是Facebook公…

AI战“疫“之路:​揭秘高精准无感测温系统的全栈AI 技术

在这个全民抗疫的特殊时期,今年的春节返潮来得比往年迟了许多。如今不少企业结束了远程办公,开始陆续复工,一时间,无论是重点防控的机场、火车站,还是学校、企业、社区等密集型场所,都安排了密集的防疫驻扎…

android翻盘效果,行情艰难,Android初中级面试题助你逆风翻盘,每题都有详细答案...

码个蛋(codeegg) 第 905 次推文作者:夜猫少年链接:https://juejin.im/post/5c8211fee51d453a136e36b0Activity篇1、说下Activity生命周期 ?参考解答:在正常情况下,Activity的常用生命周期就只有如下7个onCreate()&…

蚂蚁金服开源的机器学习工具 SQLFlow,有何特别之处?

近日,蚂蚁金服副 CTO 胡喜正式宣布开源机器学习工具 SQLFlow,他在大会演讲中表示:“未来三年,AI 能力会成为每一位技术人员的基本能力。我们希望通过开源 SQLFlow,降低人工智能应用的技术门槛,让技术人员调…

阿里云Kubernetes服务上从零搭建GitLab+Jenkins+GitOps应用发布模型的实践全纪录

关于GitOps的介绍,可以参考 GitOps:Kubernetes多集群环境下的高效CICD实践 1. 在 容器服务控制台 创建kubernetes集群 1.1 新建Kubernetes集群: 1.2 新建命名空间gitops 我们将会把gitlab和jenkins全部部署到此命名空间下 2. 创建GitLab应用 &#x…