歡迎光臨
每天分享高質量文章

探秘UCloud UDB技術實踐之路

 

在整整六年時間裡,UDB 始終和眾多使用者一同成長。” 

 

-UCloud雲資料庫負責人羅成對

UCloud 雲資料庫負責人羅成對

爆炸式增長的資料量、豐富的資料型別帶來了各種複雜的資料處理需求,雲資料庫由於實現了按需付費、按需擴充套件、高可用性以及儲存整合等優勢,受到了廣大使用者的歡迎,各種雲資料庫紛紛湧現。

國內中立的雲端計算服務商 UCloud 的雲資料庫 UDB 產品在 2013 年正式商用,經過 6 年的成功運營,UDB 產品線越來越豐富。

如 MySQL、MongoDB、PostgreSQL 以及 SQLServer,UCloud 雲記憶體產品 UMem,也涵蓋到 Redis 和 Memcache,目前已經廣泛支援業內主流資料庫。

產品特性包括主從架構、高可用、資料庫專區、獨享、跨區高可用、跨可用區災備、讀寫分離、多維度彈性擴充套件、備份與恢復、監控與告警等。

在整整六年時間裡,UDB 始終和同眾多使用者一同成長。” UCloud 雲資料庫負責人羅成對在接受記者採訪時表示。

UDB 產品的演進之路

六年中,UDB 資料庫產品在不斷前行,總結 UDB 的發展歷程,有幾條路徑可循。

首先,緊跟開源社群步伐。2013 年,UDB 從最流行的開源資料庫 MySQL 起步,首先推出了 MySQL 實體,2014 年在國內首推了 MongoDB 雲服務,2016 年推出 PostgreSQL。

從最權威的 DB Engine 排名來看,結合 NoSQL 團隊的 UMem 產品,UCloud 的資料庫產品改寫了 TOP 級的型別。

第二,從產品角度來看,UDB 產品逐漸從早期的資源型交付,轉為增值型交付。資源型交付可以簡單理解為“我購買的 UDB 是怎麼樣的資源”,包括版本與機型、穩定可靠、高效能、高可用、安全性、隔離等。

增值型交付則可以理解為“自帶 DBA”,它是面向場景化的多面手,應對在使用過程中場景化的需求,比如災備、擴容、遷移、調優等。從 UDB 產品的發展歷程來看,現在越來越多的產品是在提供增值型的特性交付。

第三,從開源到自研。經過自研能力的積累和沉澱,在 2016 年,UCloud 推出了自研分散式 UDB(即 UDDB),宣告 UCloud 在自研方面開花結果。

後續還有自研的讀寫分離,它是 UDB for MySQL 的效能加速器。未來 UCloud 雲資料庫團隊還將陸續推出更多自研、自主的資料庫產品。

演進之路上邁過的那些“坎”

UCloud 提供 UDB 資料庫產品的願景是完全消除“獲取門檻”和“使用門檻”。細想 UDB 發展歷程,作為親歷者的羅成對感覺負擔是很重的。“每道坎擺在面前,我和我的團隊硬著頭皮邁過去,而且還得想著如何’完美’地邁過去” 。

羅成對將這些困難和挑戰總結為以下三個方面:

第一,產品質量。早期 UDB 發展很快,產品功能矩陣越來越龐大,架構越來越複雜,在這樣的情況下,如何做到產品質量可控?

UDB 資源型交付最基本的要求是穩定性,一旦產品質量存在很多隱患,合格交付就無從談起。

UCloud 的解決之道是確定需求把控和軟體設計的合理性,從源頭上保證質量。同時,簡化產品功能矩陣,最佳化軟體架構。

第二,規模和效率。隨著 UDB 產品規模不斷擴大,如何提升產品運營效率?UDB 產品團隊構建了包括自動化平臺、SRE、智慧 DBA 在內的運營體系,用來持續提升運營效率。這方面的工作持續在做。

第三,產品力。具備深度理解“使用者”的產品力,又得實現如何快速交付,是 UDB 產品團隊目前的一個主要矛盾。

在羅成對看來,這更是一個全方面的考驗,它既要求對使用者需求的深度理解,又要求對產品發展、技術發展看得足夠遠,並且在二者之間尋求一個平衡點。

而在實踐道路上的考驗來自於“快”,“天下武功唯快不破”,如何快速理解使用者需求,同時快速交付,是 UDB 產品團隊一直努力的方向。

用高可用性、高效能、高可靠性解決使用者痛點

秉承著”使用者的需求就是 UCloud 下一個產品”的理念,UDB 產品的研發過程也緊密圍繞著使用者需求點來展開。

這些需求點總結為三條時間曲線,分別是“效能或者吞吐量”、“可用性”、“價值或者使用者”。

毫無疑問,使用者對這三條時間曲線的期望是一直向上,但是業務量增長時,資料庫的表現就不盡如人意,效能和可用性都會出現重大波動,長此以往,使用者體驗就會變差,新業務無法上線,使用者出現流失。

UCloud 採用高可用性、高效能、高可靠性來解決這些痛點。

第一、在可用性方面,UCloud 的 UDB 產品達到了 99.95% 的可用率。在高可用 UDB 的實現上,經過長期運營,發現原有的 VIP+代理+DB 的架構有很多問題,而這種技術架構也是業界最為主流、最為成熟的實現。

UDB 產品團隊對其進行了進一步架構簡化,即採用更樸素的漂移 VIP+DB 雙主的實現,在資料鏈路上減少一次轉發,消除一個潛在效能瓶頸,並且簡化控制模組,減少不可控因素。新架構對資料庫(MySQL 和 PG)原生的相容度更高。

第二,UCloud 一直追求更高效能,UDB 的效能最佳化是一項長期的任務。高效能可以透過擴充套件來實現,比如主從、讀寫分離,效能等方面可以進行線性加速的。

羅成對透露,最新一次針對 MySQL 的效能最佳化後,在通用的場景下,QPS 提高到了 7.27 萬,TPS 提高到了 3.6k,相比之前有 32% 的效能提升。

同時,UDB 產品團隊透過技術升級、硬體更迭、資料運營等手段,從 2018 年開始針對不同產品進行多次降價,降價幅度 30%-40% 不等。

第三,資料庫穩定可靠,而且保持了極好的擴充套件性,這是對成長型業務最有利的保障。在業務快速發展的不同階段,UDB 都有直接對應的解決方案。

深耕行業,滿足使用者需求

UDB 的使用者群廣泛分佈在網際網路、電商、遊戲、企業服務(SaaS/PaaS)、影音閱讀、傳統企業等各行各業。羅成對在採訪中介紹了幾個有代表性的場景。

1、遊戲。遊戲行業特點是爆發性強,業務持續可用,業務迭代快。技術架構上,多數架構較為單一,即業務邏輯+DB,比較常見的是單區單服設計。

這就要求系統可以快速開服,保持高可用性;效能要求高;設計樣式(schema)靈活變更,而且異常情況下,誤操作可回滾;生命週期短,這就要求資料庫有良好的縮性。

UDB 可支援分鐘級併發建立(通常一分鐘內交付),SSD+高可用機型是目前最主流搭配,效能和高可用得到充分保障,高可用 UDB 自帶線上的縮容,可應對遊戲生命末期運營成本的開銷。

UDB 自帶回滾功能,避免誤操作或者故障造成的損失。遊戲廣泛使用 MongoDB 和 MySQL,其中 MongoDB 是 schema-free 的,schema 變更更為簡單。

2、電商。電商行業的特點是自身業務場景多樣,業務系統龐大,秒殺、促銷活動多。

在資料庫上的要求是大併發條件下的高效能、穩定可靠、易管理、易整合、重點保障、可監控和可運維。

UDB 歷史上經過幾輪不斷的效能最佳化,在主流配置條件下,都有不錯的 TPS 和 QPS 表現,再配上免費的“讀寫分離”功能,可完全應對類秒殺場景下的併發突增。

在產品上也提供多樣的選擇,比如獨享實體、資料庫專區方案,可多樣化滿足不同業務系統在效能上的要求,例如核心的交易系統,通常會使用頂配的獨享型的高可用實體,充分保障業務穩定。

電商通常有自身的 DBA 團隊和運維體系,UDB 是 DBaaS 的形式,包括簡潔的 Web console 和多樣的 OpenAPI,可以實現很好的管理。

另外,靈活可定製的能力,包括監控、採集和個性化推送等,可實現與電商自身系統和運維體系打通。

UCloud 一貫的鐵三角服務樣式,配上後端 DBA 團隊,對電商重點節日,如 517、618、雙 11、雙 12 等,進行全方位的重點保障。

3、比較典型的網際網路應用,個人 APP、廣告、社交、O2O、影片、教育、閱讀等,它在成長期,業務特點是業務爆發性增長。

每時每刻,資料庫都有可能是最薄弱一環。這背後考量要先抗住壓力再最佳化,這就要求資料庫的多維度彈性,

UDB 具備這樣的特點。效能維度上,線上配置升級、動態加從庫、免費開讀寫分離,升級為資料庫專區內的獨享型實體。

UDDB 基於業內應用最為廣泛的資料庫中介軟體技術構建,復用成熟的雲資料庫產品 UDB 作為底層儲存,有效地突破了單機資料庫的容量和效能瓶頸。

在系統管理和業務訪問上,藉助公有雲的優勢,UDDB 將中介軟體和 UDB 節點融合為一體,提供如同單機資料庫一樣的訪問介面和使用者體驗。

而 UDB 擴充套件到分散式資料庫 UDDB,基本做到線上遷移。UDDB 是一把利器,容量不夠,動態擴節點,效能不夠,動態擴節點。UDB 遷移到了 UDDB 真正過渡到一個全新階段。

最新 UDDB 3.0 版本已完美支援分散式事務和分散式 Join,可做到極好的相容性。

UDB 未來發展方向

談未來發展,首先要看清 UDB 的實質。

首先,UDB 與 UCloud 雲平臺一起演進,有三個驅動力,一是基礎設施驅動,包括最新硬體,如最新一代 CPU 和儲存,雲平臺最新一代網盤和分散式儲存產品,底層物理網路,都在不斷推陳出新,能力越來越強。

還有微服務和無狀態設計樣式的普及,使資料庫在技術選型上更加多樣。

二是成本驅動,作為一款商品,大規模生產時,單位投入就會下降。同時,不斷引入最適合的硬體或者基礎設施,對成本控制非常有利。

三是規模驅動,實體越來越多,使用者越來越多,場景越來越多,這就要求更多場景化功能,以更快的速度,以“簡單易用”的產品交付到使用者手裡。

在這三個驅動力作用下,未來 UDB 將會向三個方向發展:

  • 一是能力和效能越來越強,可靠性越來越高,比如正在自研的最新一代分散式資料庫 UXDB。

  • 二是價效比會越來越高,普惠到更多使用者。透過技術降成本,或者透過運營降成本,才是可持續的。

  • 三是更高效的 UDB,主要體現在運維效率,與 AI 技術的融合是很好的一條實現路徑。對使用者來說,則是 UDB 更加智慧、好用,例如智慧的 CloudDBA 是一個方向。

羅成對認為,未來雲資料庫的資源型屬性和增值型屬性的邊界將越來越模糊,增值型屬性將最終都轉化為資源型交付,完全整合到資源型交付中,使用者不再有使用門檻,簡單易用,不再有使用痛點和心理負擔。

拳頭產品:Redis 資料庫的進展

UCloud 雲資料庫產品多樣,UMem 產品裡的 Redis 作為最主流的 Key-Value 記憶體儲存,一直是 UCloud 的拳頭產品。近期推出了更大容量的 Redis 和更高效能的分散式 Redis。

1、更大容量的Redis

主備 Redis 最大容量提升至 64G,是為了滿足使用者對於大容量記憶體儲存的需求,同時在應用上需要使用分散式 Redis 目前無法支援的命令(比如事務命令)。

UCloud 針對這樣的需求,不僅更新了產品的軟體架構,同時採用了新型的大記憶體機型,併在 CPU 單核處理能力和網路的效能上有了大幅地提升,對應 Redis 記憶體容量的提升,其處理效能也提升了 1 倍左右,來滿足使用者日益增長的工作負載。

2、更高效能的分散式 Redis

分散式 Redis 高效能版,滿足了網際網路使用者對於分散式快取(以 Redis 為代表)高效能、高併發和低延時,以及彈性擴縮容方面的要求。

在架構精簡方面,多行程的高效能代理,使得代理到後端 Redis 分片的延時盡可能降低。

動態增刪 Redis 節點的主備 Redis 資源池,使分散式叢集可實現效能和容量的彈性。

在效能最佳化的代理方面,單行程效能可以達到 Redis 效能的 80%,並可以透過動態增加工作行程來進行效能上的擴容。

更高效能的分散式 Redis 整體架構關鍵元件均基於 Docker 容器化部署,方便後期使用容器編排來進行管理,實現更動態地彈性擴容來滿足使用者不同的負載要求。

UMem 產品的未來規劃,會持續跟進 Redis 社群,推出更新版本的 Redis 及其新的功能;打造時序資料庫產品,滿足使用者在 IoT 和監控方面的需求。

第二是在跨可用區主備 Redis 的基礎上,推出跨可用區分散式 Redis,同時提供完善的資料備份和恢復技術方案。

三是跟進業界新型硬體及解決方案(包括更新架構的 CPU,FPGA 運算,裸金屬),提高記憶體儲存的計算效能;在軟體層面提升單機及叢集 Redis 的整體計算效能(包括單機多核化計算,讀寫分離叢集方案等)。

後記

UCloud 資料庫團隊的願景是“降門檻”,即降低使用者獲取資料庫和使用資料庫的門檻。

在羅成對看來,增值型交付仍然有使用門檻。雲資料庫的未來發展,從產品角度來看短期內是兩種屬性共存,長期來看會融合,最終只會是資源型交付。

使用者使用資料庫產品是沒有任何心理負擔的,是簡單易用的。未來,UCloud 的資料庫產品(UDB 和 UMem)會越來越簡單易用。

 

轉載自:51CTO技術棧


    已同步到看一看
    贊(0)

    分享創造快樂