在线教育如何应对流量洪峰?阿里云专家:上云+云数据库是最佳路径
2月中下旬原本是全國各地春季學期開學的日子,但這場突如其來的疫情使得1.8億中小學生只能紛紛在家開啟“停課不停學”的學習生活,而線上教育也順勢成為了這一特殊時期首選的學習方式。
但突如其來的流量洪峰,卻讓許多線上教育平臺力不從心。開學第一天,包括學習通、慕課網(wǎng)等在內(nèi)的多家在線教育平臺都出現(xiàn)了“卡頓”和“死機”的情況,“學習通崩了”這一詞條一度登上了微博熱搜。
與此同時,阿里云平臺上的教育領(lǐng)域客戶的擴容需求也在飛速增長,其中數(shù)據(jù)庫擴容需求更是十分強烈,滬江教育、猿輔導、VIPKID、洋蔥學院等多家在線教育平臺通過分鐘級擴容,平穩(wěn)應對了流量挑戰(zhàn)。
在線教育企業(yè)業(yè)務場景較為類似,基本上都面臨著海量的題庫、音視頻答題資料、用戶數(shù)據(jù)以及日志等巨大的數(shù)據(jù)存儲需求,這些都對在線企業(yè)后臺數(shù)據(jù)存儲和處理能力都提出了嚴峻的要求。
作為在線教育企業(yè),面對今天的應用環(huán)境,該如何建設(shè)IT,才能靈活適配業(yè)務發(fā)展,做到不掉鏈子?本文主要討論在線教育企業(yè)的數(shù)據(jù)庫建設(shè)問題。
延時、卡頓、高成本,自建方案打不贏這場仗,上云是最佳選擇
阿里云平臺上的有些在線教育客戶之前采用的是自建數(shù)據(jù)庫的解決方案。在企業(yè)業(yè)務發(fā)展初期,數(shù)據(jù)庫可以支撐業(yè)務的發(fā)展。但是企業(yè)發(fā)展到一定程度,很快自建數(shù)據(jù)庫的方案開始捉襟見肘。
阿里云的一家大型在線教育客戶,在周末或者在線模考的時候,同時在線人數(shù)會瞬間激增,原本的自建數(shù)據(jù)庫方案難以應對這樣的訪問峰值,導致很多學生無法正常進入在線考試。而答題的延時也從正常情況下的1秒之內(nèi)增長到平均5秒,使得學生用戶的答題體驗急劇下降。
與此同時,這家在線教育客戶的用戶量每年飛速增長,自建MySQL數(shù)據(jù)庫的CPU利用率已經(jīng)達到了70%以上。此外,招聘專職DBA也導致公司每年產(chǎn)生至少100萬以上的成本。
總之,自建數(shù)據(jù)庫方案難以應對訪問峰值,難以滿足業(yè)務高速發(fā)展的需求,并且難以管理,且會增大人力成本等問題,這些都是擺在高速發(fā)展的在線教育企業(yè)面前的巨大挑戰(zhàn)。
面對上述的諸多挑戰(zhàn),這家在線教育企業(yè)選擇放棄自建IT,整體將業(yè)務遷移到阿里云上,核心的數(shù)據(jù)庫選擇了阿里云PolarDB。通過充分利用云計算的技術(shù)優(yōu)勢,這家在線教育企業(yè)實現(xiàn)了IT架構(gòu)的極大靈活性,不但降低了IT成本,還得以讓技術(shù)團隊專注于業(yè)務體驗的提升。
以猿輔導為例,通過將數(shù)據(jù)庫遷移到阿里云PolarDB之后,在業(yè)務平峰的時候,能夠同時支撐大體量學生在線進行課程學習,并且業(yè)務根本不會感覺到壓力。而當應對業(yè)務高峰的時候,只需要提前一小時進行準備,就能夠?qū)I(yè)務能力臨時提升至足以應對100萬學生并發(fā)訪問的等級。
而且,由于PolarDB數(shù)據(jù)庫資源可以按需彈性伸縮,因此在猿輔導從MySQL遷移到PolarDB之后節(jié)省了5個只讀庫的容量,節(jié)省了近70%的數(shù)據(jù)庫費用支出。此外,在線數(shù)據(jù)庫維護工作量能夠降低95%,無需資深的專業(yè)DBA坐鎮(zhèn),因此大大降低了數(shù)據(jù)庫維護的人力成本。最后,如果從業(yè)務維度來看,猿輔導在遷移到PolarDB之后,大大提升了用戶體驗。
從技術(shù)層面來看,在線教育企業(yè)的業(yè)務場景較為類似,隨著云計算技術(shù)的進一步成熟,云平臺已經(jīng)成為最佳的業(yè)務支撐平臺。
數(shù)據(jù)庫分鐘級擴容幫助在線教育企業(yè)應對業(yè)務高峰
在線教育企業(yè),很多的產(chǎn)品或者服務都具備明顯業(yè)務峰值特征——在周末以及考試期間會產(chǎn)生業(yè)務訪問的高峰。用戶的高并發(fā)訪問所造成的讀寫爭用,進而使得數(shù)據(jù)庫I/O較高,而如果一直購買高配置的MySQL數(shù)據(jù)庫,高昂的成本使得企業(yè)難以接受。
在阿里云上,很多在線教育企業(yè)通過使用阿里云PolarDB,借助其快速彈性的能力,在業(yè)務的高峰期臨時增加數(shù)據(jù)庫配置和集群規(guī)模,與之前的方案相比整體成本大大降低。一般而言,傳統(tǒng)數(shù)據(jù)庫的擴容配置要以天為單位計算,而云數(shù)據(jù)庫則可以實現(xiàn)分鐘級的擴容,效率提升數(shù)十倍以上。
從在線教育企業(yè)的反饋來看,之所以選用阿里云PolarDB數(shù)據(jù)庫,除了PolarDB數(shù)據(jù)庫具有較高的性能,并且能夠與MySQL實現(xiàn)100%兼容之外,更加看重PolarDB的分鐘級彈性伸縮能力。
而在其強大的彈性能力的背后其實是PolarDB存儲與計算分離設(shè)計。所謂分離就是計算節(jié)點(DB Engine)和存儲節(jié)點(DB Store)在不同的物理服務器上,任何落地到存儲設(shè)備的I/O操作均為網(wǎng)絡(luò)I/O。而且,借助PolarFS經(jīng)過網(wǎng)絡(luò)訪問PolarStore的測試性能效果基本能夠與本地單副本SSD持平。而PolarDB的存儲與計算分離的架構(gòu),除了可以降低存儲成本,保證主備數(shù)據(jù)強一致、不丟數(shù)據(jù)之外,還帶來了一個巨大的優(yōu)勢,就是讓數(shù)據(jù)庫的彈性伸縮變得極為簡單、便捷。
阿里云PolarDB分層架構(gòu)圖正如上圖所示,PolarDB采用了分層架構(gòu),從上層的代理PolarProxy提供了讀寫分離、SQL加速等功能,到中間的數(shù)據(jù)庫引擎節(jié)點PolarDB構(gòu)造了一寫多讀的數(shù)據(jù)庫集群,再到底層的分布式存儲PolarStore為上層提供多節(jié)點掛載的數(shù)據(jù)共享,每一層各司其職,共同構(gòu)建了PolarDB云數(shù)據(jù)庫集群。
通常意義的擴展性,一般有縱向(Scale up)和橫向(Scale out)和兩種方式,縱向是指提升配置,橫向是指配置不變,但增加節(jié)點。對于PolarDB而言,其彈性能力可以概括為“橫向最多可以到16個節(jié)點,縱向最高可到88核,并且存儲容量動態(tài)擴展,毋須配置”。
PolarDB超強彈性背后的技術(shù)實現(xiàn)細節(jié)不再贅述,但是數(shù)據(jù)庫具備分鐘級的擴容能力,對于在線教育企業(yè)而言非常重要,在本次疫情期間,也很好地幫在線教育客戶應對了流量洪峰。
總結(jié):上云+云數(shù)據(jù)庫是在線教育企業(yè)最佳路徑
疫情以來,在線教育的需求爆發(fā)式增長,但是如果因為IT能力的不足,而拖累業(yè)務的表現(xiàn),這是很多在線教育企業(yè)最不愿看到的情況。今天阿里云平臺上在線教育企業(yè)的實踐已經(jīng)證明,云計算和云數(shù)據(jù)庫等技術(shù)是助推在線教育企業(yè)快速發(fā)展的最佳技術(shù)路線。
總結(jié)
以上是生活随笔為你收集整理的在线教育如何应对流量洪峰?阿里云专家:上云+云数据库是最佳路径的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “12306”的架构到底有多6?
- 下一篇: 开发者在行动!中国防疫开源项目登上 Gi