在線教育如何應對流量洪峯?阿里雲專家給出了“上雲+雲數據庫”的答案!

作者:

阿里雲數據庫高級技術專家 暴跳

阿里雲數據庫解決方案架構師 牛遠

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核,並且存儲容量動態擴展,毋須配置”,其超強彈性背後的技術實現細節不再贅述,但是數據庫具備分鐘級的擴容能力,對於在線教育企業而言非常重要,在本次疫情期間也很好地幫在線教育客戶應對了流量洪峯。

上雲+雲數據庫是在線教育企業最佳路徑

疫情以來,在線教育的需求爆發式增長,但是如果因爲IT能力的不足而拖累業務的表現,這是很多在線教育企業最不願看到的情況;雲計算和雲數據庫等技術是助推在線教育企業快速發展的最佳技術路線。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章