“ShardingSphere大大簡化了分庫分表的開發(fā)和維護工作,對于業(yè)務的快速上線起到了非常大的支撐作用,保守估計 ShardingSphere 至少為我們節(jié)省了 4個月的研發(fā)成本。”
--史墨軒,易華錄·技術總監(jiān)
今年以來,伴隨著易華錄旗下面向個人用戶的云服務產品【葫蘆 App】正式上線,后臺架構所承受的業(yè)務壓力也與日俱增。
為此,葫蘆 App 研發(fā)團隊選擇采用 ShardingSphere 分庫分表的功能對數據進行了橫向的拆分,圍繞 ShardingSphere 靈活敏捷的特性,滿足了葫蘆 App 業(yè)務對數據層擴展性的要求,避免團隊重復“造輪子”,最大程度簡化了隨著業(yè)務增長而帶來的愈發(fā)復雜化的分庫分表的開發(fā)與維護工作。
從能力擴展到業(yè)務上新,葫蘆 App 所面臨的增長壓力
對于數據存算能力的高要求,深深鑄在了葫蘆 App 技術團隊的基因中。
由于葫蘆 App 正處于快速成長期,業(yè)務和功能的調整需求相對頻繁,這就需要后臺技術團隊能夠根據前端業(yè)務變化而快速做出適配調整。用戶數量和業(yè)務所產生的數據體量都在飛速增長的同時,也為后臺底層數據庫帶來了更大的壓力。
隨著 2020 年 5 月 17 日葫蘆 App 的正式上線,用戶數據和業(yè)務體量也呈現出快速增長的態(tài)勢,后臺數據庫不可避免地需要進行多次水平拆分。同時隨著業(yè)務需求的快速變化,新的挑戰(zhàn)也不斷隨之出現:
· 能力擴展問題
隨著用戶量的快速增長以及產品形態(tài)的演變,用戶數據出現了爆發(fā)式增長,過去傳統(tǒng)架構的存算能力遭到了極為嚴峻的挑戰(zhàn),因此葫蘆 App 對于后端數據處理平臺的要求是在具備擴展能力的同時,也要保證一定的靈活性。
·效率提升問題
為應對快速多變的業(yè)務,葫蘆 App 的研發(fā)團隊需要能夠根據業(yè)務訴求來進行快速調整,以提升后臺架構對業(yè)務的適應性,高靈活、易拓展特性的數據架構將能夠極大提升團隊研發(fā)效能。另一方面在大體量數據的影響下,數據庫的檢索效率難免出現延遲、讀寫慢等問題,進而會影響到最上層的用戶體驗。
·業(yè)務上線問題
功能上新頻繁、上線時間提前等是任何一款新產品在上市初期都會遇到的問題,這對研發(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)定性產生一定影響。葫蘆 App 研發(fā)團隊需要一款對底層數據庫侵入性低、適應期短、穩(wěn)定性高的數據應用產品。
利用 ShardingSphere 的特性構建靈活高可用的數據架構解決方案
圍繞上述的一些訴求,葫蘆團隊用了 2 周左右時間對ShardingSphere及同類解決方案進行了全面評估,綜合考慮了如產品功能、成熟度、穩(wěn)定性、性能等多方面評估指標,最終 ShardingSphere 憑借完善的功能支持程度以及高成熟度,充分滿足了葫蘆團隊的業(yè)務訴求。
從上圖中可以看出,葫蘆團隊將 ShardingSphere部署在了阿里云的 RDS 之上,相較于對本體數據庫做調整,葫蘆團隊更傾向于在數據庫之上來進行數據治理。而 ShardingSphere 能夠從可插拔架構所帶來高擴展性、距離業(yè)務更緊密的貼合性以及對于業(yè)務架構的零侵入性這三個層面對葫蘆的后臺數據架構進行有效改進,并帶來了明顯的效果提升:
1.可插拔架構的『高擴展性』
由于業(yè)務特性,葫蘆 App 原本有限的存儲空間被消耗得非常快,并逐漸開始影響用戶在前端的響應效率。通過采用 ShardingSphere 的分片策略,葫蘆研發(fā)團隊在應對海量計算+存儲所帶來的業(yè)務問題同時,能夠確保分片擴展策略的靈活性?;诖?,葫蘆團隊可以在 ShardingSphere 上快速做出相應的功能擴展,為后續(xù)架構調整提供優(yōu)化方案,進一步強化突出了 ShardingSphere 分庫分表的優(yōu)勢。
2.距離業(yè)務更緊密的『貼合性』
后臺架構的變化越小,對于業(yè)務而言就越可控。ShardingSphere 這種位于數據庫之上的生態(tài),距離業(yè)務更近,部署起來也更加輕量,無疑是解決葫蘆 App 前臺業(yè)務變更與后臺架構調整之間矛盾的最優(yōu)解。此外在靈活性層面,ShardingSphere 通過相關配置即可實現的方式,極大簡化了葫蘆研發(fā)團隊在分庫分表層面的研發(fā)與維護工作,對于業(yè)務的快速上線起到了非常大的支撐作用。
3.對于業(yè)務架構的『零侵入性』
葫蘆 App 選擇了 ShardingSphere-Proxy 部署模式,在不更換底層數據庫的前提下通過 Proxy 來管理真實的數據庫集群,基本無需對業(yè)務進行改造就已經完成了業(yè)務與數據在架構層面的分離,并避免了因更換數據庫導致的業(yè)務不可用、漫長穩(wěn)定周期等風險。另外,ShardingSphere 的無狀態(tài)模式,幾乎不會對前端用戶產生任何可感知的影響,業(yè)務層也無需關注數據的存儲方式。
因此對于葫蘆 App 這種上線時間緊張、功能迭代快的產品來說,ShardingSphere-Proxy 通過復用原有數據庫的能力,幫助葫蘆研發(fā)團隊在數據庫之上實現分片、數據加密等增量能力的開發(fā),且向下不需考慮底層數據庫的配置,向上能夠屏蔽用戶感知,從而快速構建起面向業(yè)務的數據庫直連能力,從系統(tǒng)架構層面進行了比較好的分離,確保后續(xù)數據庫代理層的問題修復、版本更新等日常維護工作都不會影響到業(yè)務。
最 后
此次與易華錄葫蘆 App 研發(fā)團隊的合作,助力葫蘆研發(fā)團隊平穩(wěn)度過了數次業(yè)務體量翻倍的歷程,正是 ShardingSphere 在全球多種應用場景下的一個縮影。在商業(yè)化公司 SphereEx 的推動下,ShardingSphere 正在持續(xù)向著云化、商業(yè)化穩(wěn)步邁進。在社區(qū)和商業(yè)化公司的雙重加持下,未來 ShardingSphere 將繼續(xù)深耕數據應用場景,持續(xù)挖掘 ShardingSphere 在各領域場景下的深層次價值,為用戶提供覆蓋更全面、性能更強大的數據服務。
目前,ShardingSphere 作為 Apache 基金會下的頂級開源項目,在 GitHub 上獲得了超 14K Star 的關注,已成為行業(yè)內最受歡迎的開源項目之一,全球有超過 170 家企業(yè)用戶登記使用,覆蓋金融、電子商務、云服務、旅游、物流、教育、文娛等多個領域。
關于易華錄 & 葫蘆 App
北京易華錄信息技術股份有限公司,成立于 2001 年,是國務院國資委直接監(jiān)管的中央企業(yè)中國華錄集團旗下控股的上市公司,致力于建設城市數字經濟基礎設施,以努力降低全社會長期保存數據的能耗和成本為使命,以成為社會可信的大數據一級開發(fā)和存儲服務提供商直至演變成數據銀行為愿景,構建一個數字孿生的城市,最終實現數字永生。
作為易華錄內部孵化的第一款 C 端產品,葫蘆 App 能夠將用戶生產內容的構思與素材妥善存儲下來,并提供故事化的記錄方式,降低用戶內容制作門檻,讓每個用戶都能將生活的美好生動地展現出來,發(fā)現個人生活的精彩之處。為用戶存儲一生,點亮美好。
(免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )