1. 程式人生 > >阿里雲POLARDB如何幫助百勝軟體應對資料庫的“巔峰時刻”

阿里雲POLARDB如何幫助百勝軟體應對資料庫的“巔峰時刻”

POLARDB是阿里雲自研的下一代關係型雲資料庫,100%相容MySQL,儲存容量最高可達100TB,效能最高提升至MySQL的6倍,適用於企業多樣化的資料庫應用場景。POLARDB採用儲存和計算分離的架構,所有計算節點共享一份資料,提供分鐘級的配置升降級、秒級的故障恢復、全域性資料一致性和免費的資料備份容災服務。本文就介紹了百勝軟體的阿里雲資料庫最佳實踐,為大家分享POLARDB如何幫助百勝應對資料庫的“巔峰時刻”。

百勝軟體的業務

上海百勝軟體股份有限公司成立於2000年,是國內知名的全渠道新零售解決方案服務商,為鞋服、運動、家居、日化、美妝、珠寶、食品等品牌企業提供管理諮詢和資訊化解決方案,業務涵蓋全渠道中臺、零售分銷、供應鏈、電子商務、移動應用、大資料等領域。

目前,百勝軟體與旗下22家分子公司及全國100多家星聯服務機構,為客戶提供專業及時的服務支援,安全保障30多萬家實體門店和2萬多家網上商店的日常運營。新零售時代百勝軟體致力於為中國零售企業提供全渠道新零售解決方案,幫助客戶實現零售轉型和商業創新,成就智慧品牌,創造非凡價值。
b1

百勝iSHOP線上商城是以移動網際網路時代消費者驅動業務為核心,充分滿足企業在不同觸點場景下實現互動、體驗、便捷交易的統一及業務成長的中高階電子商務銷售平臺。
b2

 

百勝iSHOP線上零售商城

百勝軟體面臨的挑戰

百勝目前服務30多萬家實體POS門店與2萬多家網上商店,隨著業務量增長與業務波動傳統的關係型資料庫難以滿足業務增長需求。具體而言,百勝所面對的業務挑戰主要有以下兩點:

挑戰1:高峰時刻交易延遲激增
在使用阿里雲資料庫之前,百勝軟體採用的是自建資料庫。當時規模最大的零售終端業務在節假日的高峰時期經常會出現卡頓,平時2秒內可完成的交易激增到10到15秒才能夠完成,甚至會出現交易失敗,需要重新交易現象。

挑戰2:資料庫容量接近極限,業務被迫延緩
在使用阿里雲資料庫之前,百勝軟體的自建資料庫容量已經接近極限,業務擴充套件被迫因此延緩。當時出現的情況是:只有當歷史資料被歸檔和清理之後,才能接入新業務。

為何選擇阿里雲POLARDB

首先,阿里雲POLARDB簡單易用,它100%相容MySQL,原有的使用MySQL資料庫的應用程式程式碼無需更改,就可以在POLARDB上執行。其次,阿里雲POLARDB具有極致效能,其針對資料庫核心進行深度優化,讀效能最高能達到MySQL的6倍。再次,POLARDB採用分散式塊儲存設計和檔案系統,使得儲存容量不限制於單節點的規格,能夠輕鬆擴充套件,應對上百TB級別的資料規模。此外,阿里雲POLARDB還有高可用和高可靠保障,並且具有較高的資料安全性。

其實,百勝最為看重的就是阿里雲POLARDB所具有的快速彈效能力,無論是增刪節點還是升降級配置,都能夠在3分鐘內生效,這使得百勝能夠在業務高峰期快速擴充套件只讀例項。而在快速擴充套件能力的背後則是因為阿里雲POLARDB由多個節點構成的資料庫叢集,該叢集具有一個主節點,還可以擴展出多個讀節點。其對外預設提供了兩個地址,一個是叢集地址,一個是主地址,一般而言推薦使用叢集地址,因為它具備讀寫分離功能可以把所有節點的資源整合到一起對外提供服務。
jiqun

 

阿里雲POLARDB叢集架構

POLARDB讀寫分離的會話讀一致性助力全渠道邁向新零售

在百勝軟體所最為看重的POLARDB快速擴充套件只讀例項能力的背後,其核心技術其實是POLARDB讀寫分離的會話讀一致性。傳統資料庫解決方案的讀寫分離都只提供最終一致性的保證,主從複製延遲會導致從不同節點查詢到的結果不同。POLARDB採用的是讀寫分離的架構,而為了解決這種情況下查詢結果不確定的問題,而傳統解決方案往往會增加應用開發的負擔,還會增大主庫的壓力,影響讀寫分離的效果。為了應對上述挑戰,POLARDB提供了會話一致性的保證。會話一致性也就是保證在同一個會話內,後面的請求一定能夠看到此前更新所產生版本的資料或者比這個版本更新的資料,保證單調性。其實現原理如下所示:
yuanli

 

POLARDB讀寫分離會話讀一致性的實現原理

在POLARDB的鏈路中間層做讀寫分離的同時,會跟蹤各個節點的redolog位點,也就是LSN。每次更新時會記錄此次更新的位點為Session LSN, 當有新請求到來時則會比較Session LSN和當前各個節點的LSN,僅將請求發往LSN >= Session LSN的節點,從而保證了會話一致性。因為POLARDB採用了物理複製方式,速度極快,因此並不會對於主庫造成太大壓力。另一方面,由於大多數應用場景都是讀多寫少,通過經驗也驗證了該機制能夠保證會話一致性,同時也保證了讀寫分離負載均衡的效果。

在阿里雲的幫助下,百勝軟體將自身線上零售商城後臺的MySQL資料庫改為阿里雲的POLARDB資料庫,藉助POLARDB強大的讀寫分離能力,百勝軟體能夠在業務壓力增長時通過增加只讀例項來輕鬆應對,而在業務高峰期過後,又可以輕鬆地刪除只讀例項或降低配置來綜合控制成本。阿里雲POLARDB的彈性擴容、線上升級、資料安全可靠、高可用保障,以及零成本上雲遷移的優秀特性極大地助力了百勝在全渠道上邁向新零售。
b

 

百勝iSHOP基於阿里雲的資料庫解決方案

阿里雲POLARDB採用容器虛擬化技術和共享的分散式塊儲存技術,使得資料庫伺服器的CPU、記憶體能夠輕鬆實現擴容,並且幫助百勝軟體在2到3分鐘內完成增加只讀節點的操作。此外,對於資料庫儲存容量的擴容也能線上完成,而無需中斷業務,在很大的程度上解決了硬體效能的瓶頸問題。

阿里雲POLARDB採用白名單、VPC網路、SSL加密、資料多副本儲存等全方位手段,幫助百勝軟體在資料庫資料訪問、儲存、管理等各個環節提供安全保障。POLARDB採用了Active-Active的高可用叢集架構,直接通過可讀寫的主節點和只讀的Replica節點之間進行Failover切換,與傳統的Active-Standby相比,用同樣成本為百勝帶來了更好的系統訪問效能。

除此之外,阿里雲POLARDB能夠100%相容MySQL,因此藉助上雲遷移工具DTS,百勝可以將已有資料庫無需改造直接非常平滑低遷移到POLARDB。與此同時,這也使得百勝軟體的客戶以更低的成本享受到商業資料庫的效能和可靠性。

使用阿里雲資料庫解決方案為百勝帶來的收益

藉助於阿里雲的資料庫解決方案,百勝的iSHOP線上零售商城系統即便是在業務的高峰時刻也可以保持在1秒內完成交易,有效地保障了各類促銷活動的順利開展。而新的資料庫允許在線上儲存90天內的交易資料,而無需歸檔和清理,也為後續BI進一步分析業務變化和趨勢提供了大量的資料。

在世界盃期間,百勝軟體的客戶投放了大量廣告,而藉助阿里雲POLARDB的強大能力,百勝成功應對了數億次的總曝光量,以及高併發的需求。百勝藉助阿里雲POLARDB強大的計算能力、Active-Active高可用叢集架構、極速擴充套件增加只讀例項的機制,順利度過了世界盃活動期間的數次高峰,極大地提升了使用者體驗,順利完成了為客戶活動的保駕護航。