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

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

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

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

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

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

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

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

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

  · 能力擴(kuò)展問題

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

·效率提升問題

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

  ·業(yè)務(wù)上線問題

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

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

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

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

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

易華錄 X ShardingSphere

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

1.可插拔架構(gòu)的『高擴(kuò)展性』

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

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

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

3.對于業(yè)務(wù)架構(gòu)的『零侵入性』

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

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

最 后

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

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

關(guān)于易華錄 & 葫蘆 App

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

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

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