當前位置:
首頁 > 科技 > 開著飛機換引擎?揭秘阿里巴巴的資料庫運維

開著飛機換引擎?揭秘阿里巴巴的資料庫運維

阿里巴巴集團擁有超大的資料庫實例規模,在快速發展的過程中,從物理器到容器、從獨佔到混布、從本地盤到存儲計算分離、從集團內到大促雲資源,從開源的 MySQL 到自研分散式資料庫,資料庫運維管控工作不斷地進行自我革新與進化。

阿里巴巴資料庫管控中台發展過程中遇到了哪些問題?有什麼解決辦法?運維工作有哪些革新?我們就這些問題採訪到了阿里巴巴資料庫事業部高級技術專家譚宇(茂七)。另外,譚宇也會在 CNUTCon 全球運維技術大會的「資料庫運維」專場給大家帶來分享。

阿里巴巴的資料庫是怎樣演化的?

譚宇:阿里巴巴的資料庫演化之路想必為很多人所熟知,從 IOE 到開源資料庫再到自研分散式資料庫,主要是從業務需求、成本以及穩定性等幾個方面進行的。從業務需求來看,傳統的 IOE 架構很難滿足互聯網業務的快速發展,所以這裡有了從 IOE 到開源資料庫的演進。後續隨著資料庫規模的急劇提升,數據中心和業務的全球化,開源資料庫在生產成本和管理成本上面臨很大的問題,同時新硬體、軟硬體結合等技術的發展讓我們看到了自研資料庫的契機。

你們現在有哪些自研資料庫?都有什麼特點?

譚宇:現在資料庫的概念比較寬泛,NoSQL、流式計算、圖等領域都有稱作資料庫的產品。在 OLTP 方面,整個阿里集團,包括螞蟻金服一共有三個比較出名的自研資料庫,每種資料庫都有各自的側重。例如,螞蟻金服的 OceanBase 主要側重在金融領域,提供永不丟失數據、金融級的資料庫服務;阿里雲的 PolarDB 則側重於提供給雲上客戶 CloudNative 的資料庫服務,在價格、易用性、生態兼容方面非常注重;集團的 X-DB 則是從集團的複雜業務演化而來,要解決集團業務的諸多難題(如全球部署、異地多活、冷熱數據分離、HTAP、超大規模實例、成本等問題),立足於給用戶提供更靈活的功能選擇、更便捷的管理方式。除此之外我們也有時序資料庫 TSDB、分散式資料庫 DRDS、分析型資料庫 ADS 等,用來解決不同領域的問題。

從開源的 MySQL 到自研分散式資料庫,你們的運維工作都做了哪些革新?

譚宇:在支持自研資料庫的初期,運維工作的複雜度更高。資料庫特別是 OLTP 資料庫具有很高的門檻,所以一個自研的資料庫永遠不可能在上線前準備好。我們內部將由開源資料庫到自研資料庫的遷移比喻為「開著飛機換引擎」,要在不影響業務的情況下更換資料庫,這對運維工作要求非常高,需要具備隨時切換及回滾的能力。

阿里巴巴的資料庫管控和實現方式是什麼樣的?

譚宇:像很多系統一樣,我們的管控也在不斷演化,管控系統本身從早期的工具到現在的產品化、平台化,架構上我們先後做了服務拆分、前後端分離等,服務方面基本做到了自助化,管理方面逐漸從多終端管理走到集中化管理。資料庫本身的運行環境也由原來的物理機到了容器、存儲計算分離、在 / 離線混部等形態,整個系統差不多長這個樣子。

圖:DBPaaS

最底層是我們支持的環境與資料庫引擎,集團本身是一個超大的混合雲,比如在全球化部署的形態下,不同的地域由於技術或政策原因可能會用上不同的基礎設施,收購過來的公司也有自己的環境,大促時會直接使用公有雲資源,這些都對我們的管理水平提出了更高的要求。中間層是我們平台主要的功能,包括運維部署、備份恢復、告警與高可用等。上層是我們的控制台與一些企業級的功能,用來處理業務相關或不同 BU 之間的不同需求。我們在做完這些以後,發現這也是業界的一個普遍需求,於是,我們就把這個平台在雲上進行了輸出,詳細可以查看我們的 HDM 產品,HDM 可以很好地進行混合雲場景下的資料庫管理,讓資料庫像應用一樣進行彈性和容災。

圖:HDM

不同規模下的資料庫管控方式有什麼不同?

譚宇:規模可以說是一切問題的根源。在規模小的時候,對實現方式和系統的穩定性要求都沒那麼高,系統可以很靈活,就算在實現過程中犯了什麼錯誤,也都非常容易補救。但規模變大以後,技術實現難度變高了,以監控系統為例,1,000 個實例和 100,000 個實例是截然不同的,1,000 個實例可能做個簡單的採集就行了,但 100,000 個實例你就必須得上流式計算和分散式存儲了。再以運維操作為例,操作 1,000 個實例和操作 100,000 個實例也有非常大的不同,操作 1,000 個實例可能不用太關注任務成功率,也可能不用太關注效率,任務執行過程中發生宕機等異常情況也不會多,但操作 100,000 個實例就不一樣了,隨時可能出現宕機等異常,失敗 1% 就會導致大量的問題。所以在規模大的時候,對系統穩定性的極度要求、對異常情況的處理會讓系統變得很複雜。

在資料庫管控中台發展過程中,您遇到過什麼挑戰?是怎麼解決的?

譚宇:資料庫管控中台或者類似的系統非常複雜,可以說處處都是挑戰,中間有很多次都想放棄。一定要總結的話,我覺得有幾點,第一是人的問題,管控系統的技術棧非常深,從前端到 DB 再到網路、內核都有涉及,對人的要求非常高。第二是需求與實現的平衡,運維類的系統需求非常繁瑣,難以抽象,甚至短期及臨時需求非常多,如何做到平衡是一件非常難的事情。第三就是系統穩定性建設的事情,運維繫統的基線在於穩定,但運維變更引起的故障歷來是最多的,怎麼去解決這個問題很難。

容器化給資料庫帶來的好處、問題和解決方法都有哪些?

譚宇:第一個好處是,容器自身帶來的的好處,比如標準化、解決環境問題、交付速度等。另外一個就是讓資料庫也具備可調度的能力,再結合存儲計算分離等技術可以給資料庫運維帶來很大的改變。問題主要是性能方面和管理方面,性能可以通過各種優化及新硬體去解決,也接受一定的性能損耗。管理方面有利有弊,但引入容器肯定是更複雜了,比如在出現問題的時候人工都可能就難以處理了,必須要藉助工具、平台。

談談資料庫運維未來的發展方向?

譚宇:從歷史看未來,運維從工具到各種 asaService,從數據驅動運維到今天的 AIOps,還有各種自治系統,比如自治資料庫,其本質都是資源的交付、服務與管理水平的提升,這也是雲一直在解決的問題。所以我認為運維的未來就是這幾方面的持續提升,真正做到讓業務專註在業務,不再為容量等事情擔心;同時在成本方面做到極致。所以我們今年內部一個很重要的目標就是絕大部份資料庫實例完全託管,不需要人再接收報警,由系統整個完成容量、異常等處理。

在 CNUTCon 全球運維技術大會上,你會為大家分享哪些技術點?

譚宇:在 CNUTCon 上,我分享的議題是《阿里巴巴資料庫運維發展與實踐》,將重點講述資料庫管控中台發展過程中遇到的問題以及我們的解決方法,希望能幫助大家去理解阿里巴巴的資料庫管控方法與實現方式,不同規模下資料庫管控,理解容器化、存儲計算分離、混部給資料庫帶來的好處、問題及解決方式。

CNUTCon 將於 2018 年 11 月 16 日 -17 日在上海·光大會展中心大酒店舉辦,本屆 CNUTCon 面向各行業對運維 & 容器技術感興趣的中高端技術人員,聚焦 AIOps 相關技術及優秀實踐,AI 和運維的結合,到底會帶來哪些顛覆?有哪些新技術應運而生?企業在 AIOps 的落地實踐中,都遇到過哪些問題和挑戰,踩過哪些坑?他們又是如何解決的?未來又有哪些發展趨勢?我們邀請了眾多國內外知名企業的一線技術專家現場為你揭曉。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

為什麼Gartner會說「人工智慧」標籤遭濫用?
探營長虹軟服 共議數字化轉型與創新

TAG:InfoQ |