天天看點

浙江移動首個基于阿裡雲技術的生産應用上線成功

一、項目背景

為落實公司“十三五”戰略,建立“架構先進、營運高效、内外兼顧”的IT體系, 浙江移動近日受總部資訊技術中心委托和指導,探索傳統企業與網際網路公司新型合作模式,跟蹤行業發展态勢,開展新技術、新産品研究和創新,在集團内首次攜手亞洲最大的雲計算公司——阿裡雲,在“可監可管可運維”基礎上,開展第三方基礎元件引入試點驗證。

二、實施政策

浙江公司經過與阿裡雲工程師多次讨論後決定,采用分階段實施與快速試點,在降低對應用侵入的同時又要兼顧實際效應,考慮輕量級系統驗證和關鍵業務引入。試點具體分為多個階段執行,其中一階段以快速落地驗證技術元件為目标。

一階段總體原則以經曆天貓雙11核心交易業務和各類型業務考驗的阿裡雲DRDS分布式關系型資料庫服務(Distributed Relational Database Service)元件在M域試點應用的快速驗證為訴求,完成“統一使用者管理”應用遷移DRDS的“短平快”功能驗證,開發上盡量以最小化改造實作DRDS的“分庫分表”、“平滑擴容”以及“無差别運維”。一階段完成後出具改造的評估報告,為二階段實施提供參考。

三、一階段總結

一階段選取了“統一使用者管理”系統作為試點,該應用原來采用了傳統中小型應用常見的前後端一體化架構,原有的資料庫為PostgreSQL。随着業務的不斷發展,“統一使用者管理”系統的傳統基礎架構正不斷接受挑戰,其中資料庫單點瓶頸問題尤其突出,存在單庫容量平瓶頸、擴充困難、二次開發難度高、性能問題難以優化等諸多問題。

1、改造前後系統部署架構對比如下:

浙江移動首個基于阿裡雲技術的生産應用上線成功

圖1——原“統一使用者管理”系統部署架構

浙江移動首個基于阿裡雲技術的生産應用上線成功

圖2——“統一使用者管理”接入DRDS後的系統部署架構

2、一階段實施後的收益:

應用本身隻需進行少量的接口适配工作即可接入DRDS,收益則是分布式資料庫所帶來一系列優秀特性:

1)分庫分表

支援資料庫分庫分表,在建立分布式資料庫後,可以按照業務特性設定拆分規則,實作資料水準拆分。

2)透明讀寫分離

通過使用隻讀執行個體實作讀寫分離,可低成本增加叢集讀負載能力,釋放主庫壓力,且對業務代碼透明,無需改造;同時具備一緻性讀能力。

3)資料存儲平滑擴容

當出現資料存儲容量和通路量瓶頸時,支援線上存儲容量擴充,擴容無需應用改造,擴容進度支援可視化跟蹤。

3、一階段實施過程中的挑戰:

“統一使用者管理”作為首個接入試點的應用,在一階段實施過程中先後遇到資料庫文法不相容如何解決、如何制定拆分方案、分布式事務如何解決等問題,并一一攻克。

1)從PostgreSql到DRDS

應用原有資料庫選型為PostgreSQL,而DRDS目前僅可以無縫對接Mysql。是以,應用首先要完成資料庫切換并解決資料庫間Sql方言或特性差異的問題。

開發團隊從代碼邏輯入手,全面替換了不相容的資料類型,并在功能測試中不斷分析SQL執行效率并進行細緻優化,為應用後續接入DRDS做好充分準備。

2)分庫分表拆分規則

應用存在若幹千萬級的核心大表,在遷移到DRDS時應根據“确定業務主體——尋找關鍵字段——計算分庫分表數”三步原則處理。

以工單操作屬性表為例,該表所有操作圍繞“工單操作”進行,是以標明applyopid(工單單号)為拆分鍵。未來預估此表1-2年的資料總量為六千萬行,根據以下公式可得此表需按照分庫且每個分庫兩個分表執行:

單庫實體分表數 = CEILING(60,000,000 / ( 1 * 8 ) / 5,000,000) = 2

浙江移動首個基于阿裡雲技術的生産應用上線成功

圖3——分庫分表規則說明

3)分布式事務實踐—全局事務服務(Global Transaction Service,簡稱 GTS)

在對應用的幾張核心大表進行拆分後,原本存儲在單庫單表裡面的資料分散到了多庫多表裡,因而應用在對相關資料進行寫操作時會涉及到分布式事務的問題。

分布式事務管理的傳統解決方案是基于XA協定的兩段送出方式,需要進行針對性的開發,對已有業務邏輯有較大侵入,且性能較差。

經過綜合評估後,決定引入阿裡雲的全局事務服務GTS。GTS具有接入簡單、與DRDS無縫銜接、對業務邏輯無侵入的特性,有效地解決了由資料庫拆分引發的一系列事務控制問題。

浙江移動首個基于阿裡雲技術的生産應用上線成功

圖4——“統一使用者管理”系統接入GTS部署示意圖

四、建設曆程

一階段于今年2月上旬立項,春節後正式開始實施,在浙江移動和阿裡雲雙方精誠合作下,前後僅用了1個多月的時間就将試點應用成功釋出上線。期間重大工程裡程碑如下:

1、2018年2月上旬,在春節前完成立項,春節後項目正式啟動。

2、2018年3月底,系統成功将資料庫遷移至MySQL。

3、2018年4月底,系統完成生産資料割接并正式接入DRDS。

五、延展思考

本次合作是中國移動集團内部首次與業界先進網際網路公司的深度技術合作,在踐行集團“可監可管可運維”理念的基礎上,通過一階段試點業務的改造實踐,在元件能力、運維模式、運維工具、內建方案等方面磨合、積累、沉澱了寶貴的經驗,也在項目協作、架構比對上,初步驗證了浙江移動與網際網路公司先進技術、理念相結合的可行性,為後續二、三階段在浙江移動的核心系統上開展更加深入的試點工作奠定了堅實基礎。

關于三墩IT人:

“三墩IT人”微信公衆号于2014年12月底建立,是浙江移動IT團隊建立的面向全行業的IT技術和經驗交流平台。