易華錄 X ShardingSphere|葫蘆 App 後臺資料處理的邏輯捷徑

SphereEx發表於2021-08-31

“ShardingSphere 大大簡化了分庫分表的開發和維護工作,對於業務的快速上線起到了非常大的支撐作用,保守估計 ShardingSphere 至少為我們節省了 4 個月的研發成本。”

——史墨軒,易華錄·技術總監

今年以來,伴隨著易華錄旗下面向個人使用者的雲服務產品【葫蘆 App】正式上線,後臺架構所承受的業務壓力也與日俱增。

為此,葫蘆 App 研發團隊選擇採用 ShardingSphere 分庫分表的功能對資料進行了橫向的拆分,圍繞 ShardingSphere 靈活敏捷的特性,滿足了葫蘆 App 業務對資料層擴充套件性的要求,避免團隊重複“造輪子”,最大程度簡化了隨著業務增長而帶來的愈發複雜化的分庫分表的開發與維護工作。

1 從能力擴充套件到業務上新,葫蘆 App 所面臨的增長壓力

對於資料存算能力的高要求,深深鑄在了葫蘆 App 技術團隊的基因中。

由於葫蘆 App 正處於快速成長期,業務和功能的調整需求相對頻繁,這就需要後臺技術團隊能夠根據前端業務變化而快速做出適配調整。使用者數量和業務所產生的資料體量都在飛速增長的同時,也為後臺底層資料庫帶來了更大的壓力。

隨著 2020 年 5 月 17 日葫蘆 App 的正式上線,使用者資料和業務體量也呈現出快速增長的態勢,後臺資料庫不可避免地需要進行多次水平拆分。同時隨著業務需求的快速變化,新的挑戰也不斷隨之出現:

  • 能力擴充套件問題

隨著使用者量的快速增長以及產品形態的演變,使用者資料出現了爆發式增長,過去傳統架構的存算能力遭到了極為嚴峻的挑戰,因此葫蘆App 對於後端資料處理平臺的要求是在具備擴充套件能力的同時,也要保證一定的靈活性。

  • 效率提升問題

為應對快速多變的業務,葫蘆 App 的研發團隊需要能夠根據業務訴求來進行快速調整,以提升後臺架構對業務的適應性,高靈活、易擴充特性的資料架構將能夠極大提升團隊研發效能。另一方面在大體量資料的影響下,資料庫的檢索效率難免出現延遲、讀寫慢等問題,進而會影響到最上層的使用者體驗。

  • 業務上線問題

功能上新頻繁、上線時間提前等是任何一款新產品在上市初期都會遇到的問題,這對研發團隊的研發能力提出了極大挑戰。此前葫蘆團隊本計劃透過內部研發力量並結合業務情況打造出自己的 Sharding 方案,不過由於時間關係,從方案設計、研發再到方案落地的自研路線已無法走通,因此敲定 Sharding 方案迫在眉睫。

  • 系統穩定問題

在引入新技術的同時,系統穩定性也會面臨較大的挑戰,尤其是面向底層技術的引用,大多具備一定的平臺業務侵入性,在引入後大機率會對業務系統的穩定性產生一定影響。葫蘆 App 研發團隊需要一款對底層資料庫侵入性低、適應期短、穩定性高的資料應用產品。

2 利用 ShardingSphere 的特性構建靈活高可用的資料架構解決方案

圍繞上述的一些訴求,葫蘆團隊用了 2 周左右時間對 ShardingSphere 及同類解決方案進行了全面評估,綜合考慮瞭如產品功能、成熟度、穩定性、效能等多方面評估指標,最終 ShardingSphere 憑藉完善的功能支援程度以及高成熟度,充分滿足了葫蘆團隊的業務訴求。

從上圖中可以看出,葫蘆團隊將 ShardingSphere 部署在了阿里雲的 RDS 之上,相較於對本體資料庫做調整,葫蘆團隊更傾向於在資料庫之上來進行資料治理。而 ShardingSphere 能夠從可插拔架構所帶來高擴充套件性、距離業務更緊密的貼合性以及對於業務架構的零侵入性這三個層面對葫蘆的後臺資料架構進行有效改進,並帶來了明顯的效果提升:

可插拔架構的『高擴充套件性』

由於業務特性,葫蘆 App 原本有限的儲存空間被消耗得非常快,並逐漸開始影響使用者在前端的響應效率。透過採用 ShardingSphere 的分片策略,葫蘆研發團隊在應對海量計算+儲存所帶來的業務問題同時,能夠確保分片擴充套件策略的靈活性。基於此,葫蘆團隊可以在ShardingSphere 上快速做出相應的功能擴充套件,為後續架構調整提供最佳化方案,進一步強化突出了 ShardingSphere 分庫分表的優勢。

距離業務更緊密的『貼合性』

後臺架構的變化越小,對於業務而言就越可控。ShardingSphere 這種位於資料庫之上的生態,距離業務更近,部署起來也更加輕量,無疑是解決葫蘆 App 前臺業務變更與後臺架構調整之間矛盾的最優解。此外在靈活性層面,ShardingSphere 透過相關配置即可實現的方式,極大簡化了葫蘆研發團隊在分庫分表層面的研發與維護工作,對於業務的快速上線起到了非常大的支撐作用。

對於業務架構的『零侵入性』

葫蘆 App 選擇了 ShardingSphere-Proxy 部署模式,在不更換底層資料庫的前提下透過 Proxy 來管理真實的資料庫叢集,基本無需對業務進行改造就已經完成了業務與資料在架構層面的分離,並避免了因更換資料庫導致的業務不可用、漫長穩定週期等風險。另外,ShardingSphere 的無狀態模式,幾乎不會對前端使用者產生任何可感知的影響,業務層也無需關注資料的儲存方式。

因此對於葫蘆 App 這種上線時間緊張、功能迭代快的產品來說,ShardingSphere-Proxy 透過複用原有資料庫的能力,幫助葫蘆研發團隊在資料庫之上實現分片、資料加密等增量能力的開發,且向下不需考慮底層資料庫的配置,向上能夠遮蔽使用者感知,從而快速構建起面向業務的資料庫直連能力,從系統架構層面進行了比較好的分離,確保後續資料庫代理層的問題修復、版本更新等日常維護工作都不會影響到業務。

3 寫在最後

此次與易華錄葫蘆 App 研發團隊的合作,助力葫蘆研發團隊平穩度過了數次業務體量翻倍的歷程,正是 ShardingSphere 在全球多種應用場景下的一個縮影。在商業化公司 SphereEx 的推動下,ShardingSphere 正在持續向著雲化、商業化穩步邁進。在社群和商業化公司的雙重加持下,未來 ShardingSphere 將繼續深耕資料應用場景,持續挖掘 ShardingSphere 在各領域場景下的深層次價值,為使用者提供覆蓋更全面、效能更強大的資料服務。

目前,ShardingSphere 作為 Apache 基金會下的頂級開源專案,在 GitHub 上獲得了超 14K Star 的關注,已成為行業內最受歡迎的開源專案之一,全球有超過 170 家企業使用者登記使用,覆蓋金融、電子商務、雲服務、旅遊、物流、教育、文娛等多個領域。


關於易華錄 & 葫蘆 App

北京易華錄資訊科技股份有限公司,成立於 2001 年,是國務院國資委直接監管的中央企業中國華錄集團旗下控股的上市公司,致力於建設城市數字經濟基礎設施,以努力降低全社會長期儲存資料的能耗和成本為使命,以成為社會可信的大資料一級開發和儲存服務提供商直至演變成資料銀行為願景,構建一個數字孿生的城市,最終實現數字永生。

作為易華錄內部孵化的第一款 C 端產品,葫蘆 App 能夠將使用者生產內容的構思與素材妥善儲存下來,並提供故事化的記錄方式,降低使用者內容製作門檻,讓每個使用者都能將生活的美好生動地展現出來,發現個人生活的精彩之處。為使用者儲存一生,點亮美好。


歡迎更多技術團隊約稿投稿,和大家分享使用 ShardingSphere 的經驗思考。如需轉載請後臺私信留言,對案例感興趣的夥伴可聯絡社群經理( ss_assistant_1 )回覆“加群”進入技術交流群,我們也會不定期為社群發展做貢獻的熱心夥伴送上精美周邊噢。


長按識別關注我們


約稿投稿


加入 交流群


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70001955/viewspace-2789603/,如需轉載,請註明出處,否則將追究法律責任。

相關文章