易華錄 X ShardingSphere | 以數(shù)據(jù)能力激發(fā)易華錄 C 端產(chǎn)業(yè)新活力,提升數(shù)據(jù)后臺靈活性

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

  --史墨軒,易華錄·技術總監(jiān)

今年以來,伴隨著易華錄旗下面向個人用戶的云服務產(chǎn)品【葫蘆 App】正式上線,后臺架構所承受的業(yè)務壓力也與日俱增。

為此,葫蘆 App 研發(fā)團隊選擇采用 ShardingSphere 分庫分表的功能對數(shù)據(jù)進行了橫向的拆分,圍繞 ShardingSphere 靈活敏捷的特性,滿足了葫蘆 App 業(yè)務對數(shù)據(jù)層擴展性的要求,避免團隊重復“造輪子”,最大程度簡化了隨著業(yè)務增長而帶來的愈發(fā)復雜化的分庫分表的開發(fā)與維護工作。

從能力擴展到業(yè)務上新,葫蘆 App 所面臨的增長壓力

對于數(shù)據(jù)存算能力的高要求,深深鑄在了葫蘆 App 技術團隊的基因中。

由于葫蘆 App 正處于快速成長期,業(yè)務和功能的調整需求相對頻繁,這就需要后臺技術團隊能夠根據(jù)前端業(yè)務變化而快速做出適配調整。用戶數(shù)量和業(yè)務所產(chǎn)生的數(shù)據(jù)體量都在飛速增長的同時,也為后臺底層數(shù)據(jù)庫帶來了更大的壓力。

隨著 2020 年 5 月 17 日葫蘆 App 的正式上線,用戶數(shù)據(jù)和業(yè)務體量也呈現(xiàn)出快速增長的態(tài)勢,后臺數(shù)據(jù)庫不可避免地需要進行多次水平拆分。同時隨著業(yè)務需求的快速變化,新的挑戰(zhàn)也不斷隨之出現(xiàn):

  · 能力擴展問題

隨著用戶量的快速增長以及產(chǎn)品形態(tài)的演變,用戶數(shù)據(jù)出現(xiàn)了爆發(fā)式增長,過去傳統(tǒng)架構的存算能力遭到了極為嚴峻的挑戰(zhàn),因此葫蘆 App 對于后端數(shù)據(jù)處理平臺的要求是在具備擴展能力的同時,也要保證一定的靈活性。

·效率提升問題

為應對快速多變的業(yè)務,葫蘆 App 的研發(fā)團隊需要能夠根據(jù)業(yè)務訴求來進行快速調整,以提升后臺架構對業(yè)務的適應性,高靈活、易拓展特性的數(shù)據(jù)架構將能夠極大提升團隊研發(fā)效能。另一方面在大體量數(shù)據(jù)的影響下,數(shù)據(jù)庫的檢索效率難免出現(xiàn)延遲、讀寫慢等問題,進而會影響到最上層的用戶體驗。

  ·業(yè)務上線問題

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

·系統(tǒng)穩(wěn)定問題

在引入新技術的同時,系統(tǒng)穩(wěn)定性也會面臨較大的挑戰(zhàn),尤其是面向底層技術的引用,大多具備一定的平臺業(yè)務侵入性,在引入后大概率會對業(yè)務系統(tǒng)的穩(wěn)定性產(chǎn)生一定影響。葫蘆 App 研發(fā)團隊需要一款對底層數(shù)據(jù)庫侵入性低、適應期短、穩(wěn)定性高的數(shù)據(jù)應用產(chǎn)品。

  利用 ShardingSphere 的特性構建靈活高可用的數(shù)據(jù)架構解決方案

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

易華錄 X ShardingSphere

從上圖中可以看出,葫蘆團隊將 ShardingSphere部署在了阿里云的 RDS 之上,相較于對本體數(shù)據(jù)庫做調整,葫蘆團隊更傾向于在數(shù)據(jù)庫之上來進行數(shù)據(jù)治理。而 ShardingSphere 能夠從可插拔架構所帶來高擴展性、距離業(yè)務更緊密的貼合性以及對于業(yè)務架構的零侵入性這三個層面對葫蘆的后臺數(shù)據(jù)架構進行有效改進,并帶來了明顯的效果提升:

1.可插拔架構的『高擴展性』

由于業(yè)務特性,葫蘆 App 原本有限的存儲空間被消耗得非??欤⒅饾u開始影響用戶在前端的響應效率。通過采用 ShardingSphere 的分片策略,葫蘆研發(fā)團隊在應對海量計算+存儲所帶來的業(yè)務問題同時,能夠確保分片擴展策略的靈活性。基于此,葫蘆團隊可以在 ShardingSphere 上快速做出相應的功能擴展,為后續(xù)架構調整提供優(yōu)化方案,進一步強化突出了 ShardingSphere 分庫分表的優(yōu)勢。

2.距離業(yè)務更緊密的『貼合性』

后臺架構的變化越小,對于業(yè)務而言就越可控。ShardingSphere 這種位于數(shù)據(jù)庫之上的生態(tài),距離業(yè)務更近,部署起來也更加輕量,無疑是解決葫蘆 App 前臺業(yè)務變更與后臺架構調整之間矛盾的最優(yōu)解。此外在靈活性層面,ShardingSphere 通過相關配置即可實現(xiàn)的方式,極大簡化了葫蘆研發(fā)團隊在分庫分表層面的研發(fā)與維護工作,對于業(yè)務的快速上線起到了非常大的支撐作用。

3.對于業(yè)務架構的『零侵入性』

葫蘆 App 選擇了 ShardingSphere-Proxy 部署模式,在不更換底層數(shù)據(jù)庫的前提下通過 Proxy 來管理真實的數(shù)據(jù)庫集群,基本無需對業(yè)務進行改造就已經(jīng)完成了業(yè)務與數(shù)據(jù)在架構層面的分離,并避免了因更換數(shù)據(jù)庫導致的業(yè)務不可用、漫長穩(wěn)定周期等風險。另外,ShardingSphere 的無狀態(tài)模式,幾乎不會對前端用戶產(chǎn)生任何可感知的影響,業(yè)務層也無需關注數(shù)據(jù)的存儲方式。

因此對于葫蘆 App 這種上線時間緊張、功能迭代快的產(chǎn)品來說,ShardingSphere-Proxy 通過復用原有數(shù)據(jù)庫的能力,幫助葫蘆研發(fā)團隊在數(shù)據(jù)庫之上實現(xiàn)分片、數(shù)據(jù)加密等增量能力的開發(fā),且向下不需考慮底層數(shù)據(jù)庫的配置,向上能夠屏蔽用戶感知,從而快速構建起面向業(yè)務的數(shù)據(jù)庫直連能力,從系統(tǒng)架構層面進行了比較好的分離,確保后續(xù)數(shù)據(jù)庫代理層的問題修復、版本更新等日常維護工作都不會影響到業(yè)務。

最 后

此次與易華錄葫蘆 App 研發(fā)團隊的合作,助力葫蘆研發(fā)團隊平穩(wěn)度過了數(shù)次業(yè)務體量翻倍的歷程,正是 ShardingSphere 在全球多種應用場景下的一個縮影。在商業(yè)化公司 SphereEx 的推動下,ShardingSphere 正在持續(xù)向著云化、商業(yè)化穩(wěn)步邁進。在社區(qū)和商業(yè)化公司的雙重加持下,未來 ShardingSphere 將繼續(xù)深耕數(shù)據(jù)應用場景,持續(xù)挖掘 ShardingSphere 在各領域場景下的深層次價值,為用戶提供覆蓋更全面、性能更強大的數(shù)據(jù)服務。

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

關于易華錄 & 葫蘆 App

北京易華錄信息技術股份有限公司,成立于 2001 年,是國務院國資委直接監(jiān)管的中央企業(yè)中國華錄集團旗下控股的上市公司,致力于建設城市數(shù)字經(jīng)濟基礎設施,以努力降低全社會長期保存數(shù)據(jù)的能耗和成本為使命,以成為社會可信的大數(shù)據(jù)一級開發(fā)和存儲服務提供商直至演變成數(shù)據(jù)銀行為愿景,構建一個數(shù)字孿生的城市,最終實現(xiàn)數(shù)字永生。

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

(免責聲明:本網(wǎng)站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網(wǎng)站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網(wǎng)站中的網(wǎng)頁或鏈接內容可能涉嫌侵犯其知識產(chǎn)權或存在不實內容時,應及時向本網(wǎng)站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網(wǎng)站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )