從MySQL到POLARDB, 三位CTO講述遷移背後的故事
此前,POLARDB核心賣點是100%向下相容SQL/">MySQL 5.6,100TB儲存容量,效能是官方MySQL的6倍,跑分超越AWS Aurora。
(阿里雲資料庫事業部總經理曹偉(花名:鳴嵩))
近日,在2018杭州雲棲大會上,阿里雲資料庫事業部總經理曹偉(花名:鳴嵩)在接受筆者採訪時,介紹了過去一年POLARDB的變化:
1、在寫效能方面,再度提升近2倍,去年13萬QPS,今年達到了25萬QPS;POLARDB還支援多達16個節點,其聚合讀效能超過1000萬QPS;在相同測試流程下,POLARDB寫效能比AWS Aurora快了近兩倍;
2、在讀寫分離方面,提供了會話一致性的讀寫分離支援。雖然讀寫分寫是常用技術,但通常讀節點會有一定程度的延遲問題,對此,POLARDB新增了智慧閘道器技術,使用者可以在主節點上完成寫,再從分節點實現讀,滿足了使用者的讀寫一致性的需求。
3、SQL加速能力,通過使用MPP技術,能夠讓一條SQL同時在16個節點上執行,從而把一條複雜SQL的查詢時間縮短了8-20倍。
4、在資料庫穩定性上,POLARDB是目前全球唯一一家在生產環節大規模使用Optane技術的雲服務商,3D XPoint技術能像寫記憶體一樣,從物理上消除QOS抖動,資料庫跑起來寫請求會更平穩。
在鳴嵩看來,POLARDB的最大優勢是,客戶只需要付出開源資料庫的價格就能獲得商業資料庫的效能和特性。鳴嵩還透露,阿里雲預計在年底會推出POLARDB PostgreSQL版。
對於正受困於資料庫瓶頸的企業而言,POLARDB的價效比、阿里雲的市場地位與阿里巴巴的技術實力及品牌影響力,無疑有著不小的誘惑力,但廣告再好也要看療效,決定將資料庫遷移到POLARDB,並不是一個簡單的過程,勢必會遇到很多問題,如何評估考量,如何實施,需要注意些什麼?近日,筆者就遇到了三家已經完成從MySQL遷移到POLARDB的企業技術負責人,我們一起聽聽他們的經驗分享。
法大大CTO 陳立清
校寶線上CTO 胡淼
果仁軟體聯合創始人&研發副總 趙亞南
瓶頸產生
法大大,國內第三方電子合同平臺,擁有660多萬企業使用者,業務發展很快。據法大大CTO陳立清介紹,每天在法大大的平臺上,合同簽署量約在270萬到300萬份,最大的證書表約有17.8億,佔資料庫852G。
法大大經歷的過程很具代表性,從一個主庫再到讀寫分離,再拆分成20個例項。不少網際網路創業公司相信都會經歷類似的階段。
2017年5月,法大大在北京、杭州、深圳建立3個節點(相當於三個資料中心),並構建了雙活架構,而問題就在這時候產生了。
當初,法大大采用的資料庫是MySQL,最明顯的資料容量限制是3TB。據陳立清介紹,法大大每個月僅結構化資料的增長量就1TB多,因此,必須要有一個大資料庫來彙總這部分資料,否則,就會有大問題。比如,法大大分了三個資料中心後,華東使用者會路由到杭州資料中心,但如果涉及到分子公司情況,使用者總部在北京,其實資料來源在北京,子公司先登入杭州,實際上是查不到資料的,因此,只能又跳回北京。當用戶量很大時,這就對程式的複雜性及使用者效能都會帶來很大挑戰。
校寶線上,成立於2010年,是國內民辦教育資訊化服務提供商,行業內首家新三板掛牌企業。幫助超過60000個教育品牌實現資訊化管理,幫助超過140000個校區實現網際網路+教育的業務升級,服務教育從業者超80萬,年經辦交易流水300億元。
校寶線上業務發展同樣很快,資料量也不小。據校寶線上CTO胡淼介紹,校寶線上資料庫單表億級資料、單業務庫幾百個GB。主要問題有2個方面,其一,讀寫不一致性;其二、擴容慢;
業務訪問高峰期,因為校寶線上的業務並非同一事務性,導致讀寫不一致性,簡單的說,就是剛寫的資料,客戶查不到,必須要重新整理才能看到。據胡淼介紹,雖然校寶線上能夠根據業務發展,預知擴容操作,但這個預知不會太早,一般是提前一天,這導致了尷尬問題的發生。胡淼說,有一次晚上7點,開始進行擴容,但直到第二天早上業務高峰來臨之前,依然沒有擴容成功,最終只能打電話跟業務公司取消操作,否則業務高峰上來客戶感知會非常差。因為沒擴容成功,最終只能對客戶進行限流來保障。
果仁軟體,2014年8月成立,前身為蘇州十萬火急網路科技有限公司,從事阿里巴巴平臺系列軟體開發。
據果仁軟體聯合創始人&研發副總趙亞南介紹,四年前,果仁軟體開發了一款蝌蚪雲餐飲系統,為餐廳提供從點餐到收銀到後廚管理的SaaS化的解決方案。
眾所周知,餐飲行業的特點是業務高峰併發性非常明顯。通常在中午12點併發量會瞬間飆升。過去幾年,餐廳對SaaS接受程度不高,根本原因在於SaaS採用線上形式,而餐點網路環境通常都比較慢、卡,因此,對穩定性要求高,需要更快查詢,統計報表的要求比較高。
隨著餐廳業務量越來越大,上萬家餐廳每天都有幾萬單,還有菜品的詳情,大量的增量資料產生,庫表也達到一兩百張,導致業務上需要不斷做更新。
過去果仁軟體採用比較傳統的做法,定時跑任務,但這樣帶來的問題是資料會延遲1分多鐘才能出現。
綜上所述,三家企業要選擇新資料庫的根本原因其實大同小異,都是業務迅速發展,導致資料庫瓶頸,面臨的問題使用現有辦法很難有效解決,到了必須要引入新技術的地步,否則投入的人工和硬體成本會急劇上升。
評估考量
在選擇新資料庫的過程中,三家企業的關注點並不盡相同,但都圍繞自身需求展開。
法大大有3個關注點:
1、能與MySQL很好的相容,平滑遷移,不會導致額外增加工作量。
2、突破3TB容量限制;
3、讀寫分離,資料彙總放在主庫,相關查詢、統計等放在讀庫,獲得性能進一步提升;
校寶線上2個關注點:
1、解決讀寫不一致性的問題;
2、解決擴容問題;
果仁軟體2個關注點:
1、需要一個介於MySQL和大資料庫之間產品,能提高效能;
2、解決增量分儲,減少開發人員不斷對業務進行庫表的分表分庫;
雖然三人都強調,從技術層面而言,成本多少不是其最關注的問題,主要關注點還是業務本身的平穩,包括怎麼樣給客戶提供最優質的服務,但如果兩個都能兼顧,那當然是最好了。
選型過程
對於為什麼會選擇POLARDB?其實這三家並沒有經歷複雜的選型過程,因為,這三家本身就是阿里雲的使用者,所以,當資料庫遇到瓶頸後,選擇使用阿里雲新發布的POLARDB就變得順理成章。
陳立清表示,法大大一開始就在阿里雲上,跟阿里雲配合也很多,並配有專門的釘釘服務組。因此,當法大大的資料庫出現瓶頸後,就與阿里雲有過多次溝通包括遠端會議。
即便是阿里雲使用者,但POLARDB畢竟是新品,所以前期論證,還花費了比較多的時間,陳立清說。
胡淼則表示,此前校寶線上一直與阿里雲有合作,所以,對阿里雲有較好的信任基礎。當校寶線上遇到業務上的技術難題時,也會跟阿里雲探討怎麼辦,當時探討結果,POLARDB可能是一個不錯的選擇,因此,在阿里雲還沒有放出POLARDB一些新功能新特性,校寶線上就已經提前試用了。
12月12日,校寶線上正式申請了POLARDB,事實上,測試工作在更早就開始了。在整個資料庫架構畫出來,相關問題得到一個一個解決以後,校寶線上才真正下定決心使用它。
胡淼特別強調,在整個過程中,阿里雲全程陪護,技術的感覺有了,服務很到位。也是選擇POLARDB的一個很重要的原因。整個升級的過程並沒有預想中的那麼誇張,非常平滑的完成遷移。
趙亞南則表示,果仁軟體主要是從事阿里巴巴平臺系列軟體開發,屬於淘寶開放平臺的開發者,所以上雲肯定是首選阿里雲,並且對阿里雲其他產品如負載均衡,儲存,RDS等都有試用和研究。
但即便是阿里雲的使用者,在籤阿里雲資料庫資源時,果仁軟體所有開發人員依然很擔心,因為POLARDB是新品,做技術的第一反應是存在風險,當時抱著懷疑態度,但在今年要解決瓶頸的目標推動下,還是與阿里雲進行了聯絡。
實施策略
即便本身是阿里雲的使用者,但對於POLARDB這個新產品,三家企業在實施過程中都保持謹慎的態度,都從測試環境開始,慢慢過渡到業務系統。
陳立清介紹了法大大的實施過程,先在測試環境上開始使用,然後逐步引入:
第一步、彙總低頻使用的歸檔資料,如電子合同業務,做全流程的驗證;
第二步、後端開始應用於報表、相關BI統計和分析;
第三步、在生產環境應用,面向前端的客戶;
校寶線上、果仁軟體的實施過程也大同小異,在採用前做了大量研究測試,如測試POLARDB對MySQL的相容性是否達到100%,業務環境全流程測試結果,大體庫表查詢測試等等。
成本變化
成本是除了效能之外另外一個繞不開的話題,遷移之後,總體成本是否有大幅上升?這可能會是企業在解決業務困境後,轉而關注的問題。
據胡淼介紹,因為只讀例項比較多,從MySQL遷移到POLARDB,對校寶線上而言整體成本沒有上升。
趙亞南表示,非常關注成本,果仁軟體用了RDS的只讀和預上線,例項有很多,成本一月在四五千,使用了POLARDB後,整體成本反而下降了20%左右。因為,POLARDB使用了共享儲存技術,所以,只讀用的越多,POLARDB相比普通的RDS反而越便宜
寫在最後
在採訪中,能明顯感覺到三家企業技術負責人對遷移結果還是滿意的。雖然,最初有擔心,有懷疑,甚至抱著不計成本也要解決瓶頸的勇氣,但最終結果顯然要優於預期,問題得到解決,而且成本並沒有明顯增長,甚至有的還有下降。
對絕大多數企業而言,自建或自研資料庫顯然不是最佳選擇,往雲上遷移,降低成本才是必經之路,如果雲服務商提供的資料庫產品能解決自身問題,好用且成本能接受,服務有延續性,那麼企業就會因此而買單。
對於企業來說,最重要的還是專注,把核心精力聚焦在自身核心業務上,做好產品,為客戶創造價值。
原文釋出時間為:2018-10-12
本文作者:老魚