摘要:年,替換了支付寶支付系統中的數據庫。年,螞蟻金服全面去。土豪金工牌帶是螞蟻金服內部最高榮譽大獎。陳萌萌目前在螞蟻金服基礎數據部團隊負責相關方向的開發工作。
摘要: 兩萬字長文帶你了解關于OceanBase的一切!
2008年,王堅從微軟亞洲研究院常務副院長的位置上離職后,于當年9月加入了阿里巴巴集團擔任首席架構師一職,負責集團技術架構以及基礎技術平臺建設。加入阿里沒多久后,王堅就提出了“去IOE”的想法,即擺脫過去IT系統中對IBM小型機、Oracle數據庫以及EMC存儲的過度依賴。
2009年開始,阿里舉全公司之力投入到云計算的研發和使用中,這可視為取代IOE之舉。2010年,陽振坤加入了阿里,這位在1999年就成為北京大學首批長江學者、曾獲得國家科技進步一等獎、先后擔任北京大學計算機科學技術研究所副所長、聯想研究院首席研究員、微軟亞洲研究院主任研究員、百度高級科學家等職務的研究員,帶領團隊在阿里做出來了取代商業數據庫的OceanBase。
2013年5月,阿里集團最后一臺IBM小機在支付寶下線。2013年7月,淘寶廣告系統使用的Oracle數據庫下線,也是整個淘寶最后一個Oracle數據庫。2014年,OceanBase替換了支付寶交易系統中的Oracle數據庫。2015年,OceanBase替換了支付寶支付系統中的Oracle數據庫。2016年,OceanBase替換了支付寶最核心的賬務系統中的Oracle數據庫。2017年,螞蟻金服全面去IOE。
從2011年開始參戰雙十一到2016年雙十一支付寶支付峰值12萬筆/秒的世界紀錄,再到2017年雙十一支付峰值達到25.6萬筆/秒,再次刷新2016年創下的峰值紀錄,這背后,是一個由OceanBase研發和運維組成的幾十人的團隊。2016年的世界互聯網大會,OceanBase入選世界互聯網領先科技成果,其它獲獎公司還包括特斯拉、IBM、微軟、卡巴斯基等。
在6000多名螞蟻員工中,這幾十個人辨識度很高,因為只有他們的工牌帶是“土豪金”,而其他所有人的工牌帶都是清一色螞蟻藍。“土豪金”工牌帶是螞蟻金服內部最高榮譽——CEO大獎。2016年5月,螞蟻金服董事長彭蕾親自為這幾十位技術明星戴上了“土豪金” 工牌帶,理由是這個小團隊自主研發的OceanBase數據庫,以遠低于傳統數據庫的成本,更高的可用性,扛住了支付寶一次又一次自我刷新的支付峰值世界紀錄,打破了IT核心技術長期被西方壟斷的格局。
從2017年開始,OceanBase跟隨整個螞蟻金服的金融科技開放,開始了向傳統金融賦能的實踐過程。2017年年底,OceanBase在南京銀行正式上線,OceanBase數據庫為南京銀行“鑫云+”互金開放平臺提供金融級分布式關系數據庫服務。OceanBase還出口到了印度和美國等地,為當地的支付業務提供數據庫服務。作為螞蟻金服自研的分布式關系型數據庫,OceanBase從一開始的目標就是傳統商業數據庫的升級換代產品,并堅持走通用關系數據庫產品之路。
經歷了7年坎坷、成立的頭三年一直被邊緣化、多次面臨解散的OceanBase團隊,如今雖然集體戴上了“土豪金”,可是他們都知道OceanBase這樣的中國技術奇跡,是阿里巴巴/螞蟻金服舉全集團之力所創造出來的成果,這個過程本身也堪稱“奇跡”。2018年2月初,OceanBase團隊的主干成員陽振坤、馮柯、陳萌萌、蔣志勇、楊傳輝等與筆者展開了深入的交流,介紹了OceanBase的來龍去脈。
OceanBase:劃時代的數據庫▲OceanBase 團隊SQL開發方向負責人 陳萌萌
為什么OceanBase能夠入選世界互聯網領先科技成果,能夠進入IBM、微軟等世界科技巨頭行列?
首先,簡要回顧一下基礎軟件歷史。自1975年微軟公司創立、1977年甲骨文公司創立后,逐漸出現了商用操作系統和商用關系型數據庫產品。再加上1995年創立的BEA公司及其代表的商用中間件產品,傳統基礎軟件的核心技術:操作系統、中間件和數據庫,就此誕生。
除了BEA公司于2008年被甲骨文公司收購外,為什么后來全球再也沒有企業能夠超越微軟和甲骨文公司的操作系統與數據庫及中間件產品呢?
這其中的原因很多,除了最早投入、培養了最多的相關技術研發人才和技術積累外,更重要的原因在于作為全球化的商用軟件產品,無論是微軟的操作系統還是甲骨文的數據庫,都是伴隨著全球用戶集體使用、集體反饋、集體推動技術進步而打磨出來的。
實際上,無論是操作系統、數據庫還是中間件,本質上都是軟件和硬件集成在一起的優化技術,其目的就是通過軟硬件集成調優來達到計算效率最大化、成本最優、用戶體驗最佳、兼容性最廣、安全與穩定性最高等結果。以甲骨文公司的Oracle數據庫為例,其廣泛支持并行機、大型主機、小型計算機、工作站、個人電腦等多種計算設備,允許用戶在不同計算設備上使用并遷移Oracle數據庫,1994年的時候Oracle關系型數據庫支持超過100種硬件和操作系統環境,兼容多項國際及國家的數據庫相關標準。
令Oracle數據庫成名的,是OLTP聯機交易處理也稱為面向交易的處理過程,其基本特征是前臺接收的用戶數據,可以立即傳送到計算中心進行處理并在很短的時間內給出處理結果,針對諸如銀行、證券、民航訂票系統等需要實時響應的關鍵性業務系統等。Oracle數據庫在全球的金融、電信、民航等各類系統和業務場景中得到了廣泛的應用,在應用過程中不斷改進技術,最終出現了一個“強者恒強”的結果。
正因為Oracle數據庫在關鍵性的OLTP交易處理中占據了牢不可破的市場地位,這讓后來的數據庫廠商很難有機會再重復一遍Oracle數據庫曾經走過的這樣一個反復實踐、反復打磨、反復修正的過程。原因很簡單,不會有企業愿意把自己的核心業務拿出來,給新進技術廠商當實驗田。所以在以IOE為代表的傳統IT環境中,除了已經建立起市場地位的主流技術廠商外,其它的后起技術廠商包括開源技術開發商,只能在企業的邊緣業務或當地政府扶持的業務場景下,才有少量的機會。
這種情況一直持續到近十年的云計算變革。云計算實際上是由大型互聯網公司發起和主導的技術變革,在最近幾年逐漸從互聯網公司向傳統企業蔓延。云計算的初衷是大型互聯網公司為了降低自己的IT支出,而從IOE架構向基于廉價PC服務器為主的IT架構進行演變的過程。云計算最早起源于2006年亞馬遜推出的Amazon Web Service網絡服務,簡稱AWS。而到了2008年王堅成為阿里的首席架構師,負責集團每年的IT規劃與預算,這個時候王堅就意識到了IOE架構對于阿里長期運營成本的影響以及對未來業務發展的制約。
在2008年的時候,阿里的數據庫就已經是全亞洲最大的數據庫,也是Oracle最大的用戶之一,那年阿里還沒有啟動雙十一。從2009年開始的雙十一,每年產生和處理的數據量都在爆發式增長,如果一直采用Oracle數據庫的話,運營成本將是天價。而在另一方面,為傳統IT環境而設計的Oracle數據庫,并沒有考慮到互聯網的大規模、高并發、實時在線、大型網絡優化等新興需求。2008年的時候,Oracle數據庫就已經難以處理阿里的大規模數據量了。
本質上理解,OceanBase與Oracle數據庫一樣都是關系型數據庫,但不同的是OceanBase是面向超大規模互聯網公司的分布式計算環境而重新開發的關系型數據庫,Oracle數據庫則相應可以理解為針對傳統企業的計算環境而形成的“單機”數據庫。
所謂“單機”數據庫,首先指Oracle數據庫所基于的硬件環境是IBM小型機和EMC企業級存儲所構成的高度穩定共享存儲環境,IBM與EMC的企業級硬件本質上就提供了高度穩定的共享硬件環境。其次,Oracle數據庫以共享存儲為理念,所有的數據庫看到的是同一個數據磁盤、共享數據訪問,因而可以確保所有的數據都可被訪問到,而且底層硬件本身也穩定可靠,所以是“單機”視角。
陳萌萌目前在螞蟻金服基礎數據部(OceanBase團隊)負責SQL相關方向的開發工作。2006年畢業于清華大學、2006年到2008年在歐洲核子研究中心(CERN)負責網格計算調度器的開發工作、2009年5月在美國威斯康辛大學麥迪遜分校獲得計算機碩士學位,陳萌萌先后在Oracle、華為美國研究所從事數據庫的開發和研究,他于2014年6月加入OceanBase團隊。
陳萌萌對于“單機”的視角有一個形象的比喻:就像今天使用PC服務器,要擔心如果突然某臺PC服務器掛掉了、甚至機房本身遭遇地震、火災等極端情況,如何保障數據訪問的穩定性。由于是完全基于PC服務器架構,OceanBase在處理數據訪問的時候,相當于把一臺原來的小型機或存儲設備從縱向“切片”成很多機器,再把數據分布到這些分散在不同的機器上,數據需要通過網絡才能夠被訪問到。“以前是一個磁盤,現在看到的是幾十個甚至幾百個分布在不同地方的磁盤,怎么做查詢優化?這個訪問模式會非常不一樣。”
過去的傳統IT環境是集中在一個地點的高穩定、高可靠、高可用高端企業級設備,現在的云計算環境是分散在不同地點甚至跨國家區域地理位置的廉價PC服務器機群。OceanBase與Oracle數據庫是基于同樣的數據庫原理,但底層的基礎計算環境發生了根本性的變化,這對于像亞馬遜、阿里巴巴/螞蟻金服和谷歌這樣的互聯網公司來說,有三條出路:一是與甲骨文公司合作,全面開放自己的業務和數據;二是采用MySQL等開源數據庫技術進行改良;三是從頭開始重新設計一個完全自主知識產權的數據庫產品。顯然,亞馬遜、阿里巴巴/螞蟻金服、谷歌都不約而同地走上了自研的道路。
這個原因其實很簡單,如果與甲骨文公司合作,需要全面開放自己的業務和數據不說,更重要的是互聯網公司的快節奏、快響應、快研發、與業務運維并肩開發等特點,已經超越了甲骨文公司等上一代IT公司的企業文化和公司機制。而對于開源技術來說,不同的開源數據庫只適用于特定的業務場景,由不同的開源社區“各自為戰”式主導各自的技術方向,互聯網公司需要針對不同的業務場景拼接不同的開源數據庫到一個大系統中,這無疑也不利于長期發展。而走全面自研的方向,是一種最辛苦、看似最不可能卻最具長期投資價值的選擇。
馬云曾經針對阿里自研云計算等新一代IT技術說:“網上很多人批評說我被王堅忽悠了,這個云計算要把5000臺計算機合在一起,是根本不可能實現的……騰訊、百度沒搞下去,重要的原因是他們的領導知道這個搞不下去。”相反,不懂技術的馬云,卻最堅定地支持自研云計算等新技術。“想也沒想,從預算、人頭、資金,我們一路投,最后我們走了出來。”
王堅從2009年開始在阿里搞云計算,陽振坤從2010年加入阿里后開始搞OceanBase,兩條線幾乎是同時并進。陽振坤回憶,整個OceanBase其實并沒有一個產品經理,根本的原因是OceanBase作為商用關系型數據庫的升級換代產品,在OceanBase立項伊始就參照商用關系數據庫列了一個長達千頁的產品功能列表,隨后的OceanBase開發過程就是根據這個列表,但卻從分布式計算的角度重新實現每一個功能。“直到2018年初,OceanBase還只是實現了這個列表中的部分核心功能,但足以支撐整個螞蟻金服的業務”,陽振坤表示。從2017年開始,三年之內,OceanBase要實現商用關系數據庫的絕大部分功能。
能夠與OceanBase類比、可以稱為分布式數據庫的產品,目前只有谷歌于2017年2月發布的Spanner數據庫云服務。陳萌萌認為,Spanner是谷歌從頭開始全部自研的分布式數據庫,也是針對谷歌的交易業務場景,但總體來說并沒有阿里巴巴及螞蟻金服的交易業務規模大,而AWS推出的Aurora數據庫則更接近于Oracle數據庫的共享磁盤設計。“真正用分布式架構解決像螞蟻金服這么大規模事務性需求的分布式數據庫,目前我們只看到OceanBase這一家”, 陳萌萌表示。
從第一行代碼起步到今天的百萬行代碼級產品、支撐雙十一的十萬筆級每秒支付峰值以及螞蟻金服的全面業務,OceanBase可以說創造了一個劃時代的數據庫產品。OceanBase是中國第一個具有自主知識產權的分布式關系數據庫,也是全球首個應用在金融核心業務的分布式關系數據庫。業內人士認為,OceanBase的出現,在高端金融領域打破了傳統商業數據庫的壟斷,為金融科技的國產化進程邁出了重要一步。
OceanBase:劃時代的中國技術▲OceanBase 團隊架構師 馮柯
現任螞蟻金服基礎數據部(OceanBase團隊)架構師的馮柯,于2014年加入螞蟻金服,目前的技術領域為分布式關系數據庫、數據存儲、性能診斷和優化。馮柯在入職螞蟻金服前,曾在國內數據庫廠商天津神舟通用數據技術有限公司(以下簡稱:神舟通用)任CTO,是浙江大學計算機應用專業博士,具有15年的數據庫研發和產業化經驗。
作為國內最早一批從事國產數據庫開發者之一,馮柯表示國內早期從事國產數據庫開發的人們,基本都成為先驅了。以前做國產數據庫,更多體現的是國家科研的意志,而不是企業的市場化行為。更為重要的是,自主研發數據庫需要的是行業背景和企業實踐。“數據庫產品是用出來的,不只是被研制出來的。”馮柯強調。專注于國產數據庫的國內的數據庫專業公司,到后來往往發展的不好,就是因為沒有行業屬性、沒有真正能夠找到成熟應用的市場。
“我當時加入螞蟻金服的時候,覺得螞蟻金服自主研發OceanBase這件事其實很另類,覺得非常不可思議。而且阿里巴巴原來是開源文化,為什么會完全從頭開始做一個數據庫,這直到今天還是一個非常奇妙和神奇的事情。”馮柯回憶說,很多人都會問為什么不從MySQL開源數據庫入手,“不管是自主研發,還是基于開源產品來做,從技術上面來看,沒有絕對的對和錯,很多時候是理想主義使然。”
正如馬云所說,阿里巴巴/螞蟻金服對于云計算和通用數據庫等自研技術的投入,正是理想主義的結果。在2017年9月的阿里巴巴18周年年會上,馬云說:“讓阿里巴巴堅持18年的是因為我們有理想主義,堅持理想主義使阿里巴巴走到了今天。”“絕大部分人是因為看見而相信,很少部分人是因為相信而看見,”這是馬云在阿里巴巴18周年年會上引用的話,“過去的18年,阿里是因為相信才有今天。”
蔣志勇現在是螞蟻金服基礎數據部(OceanBase團隊)SQL組負責人,致力于高可用、高性能、高可擴展性并兼具成本優勢的分布式關系數據庫系統。蔣志勇于2014年加入螞蟻金服,之前在神舟通用負責數據庫開發長達十年之久。蔣志勇在浙江大學完成了計算機專業的本科和研究生學業后,即加入了中國航天科技集團下面的一家研究所,從事國產自研數據庫開發,當時主要為了科研服務的數據庫及存儲系統。蔣志勇在研究生期間就已經參與到該科研項目中,后來就加入了航天科技集團組建的專注于國產數據庫開發的神舟通用公司。
作為國內早期從事國產數據庫開發工作的專業人員,蔣志勇認為螞蟻金服開發自研數據庫與其它專業數據庫公司開發自研數據庫的最大區別在于螞蟻金服自有業務場景。“螞蟻金服不是一家數據庫公司,而是一家金融科技公司。OceanBase在螞蟻金服內部發展的一個基本前提,是能夠為業務不斷創造價值,這是跟傳統數據庫公司的最大差別。”
“之前的困境是開發了很多技術,但是很難找到一個真實的大規模場景去使用這些技術。但在螞蟻金服這邊就不一樣,我們做的技術都是業務部門迫切需要的、確實能解決業務痛點問題的技術,加上螞蟻金服的業務發展非常快,也逼著技術部門把產品做的更好,這是一個正向循環:不斷促進技術開發,同時又能對開發成果提供真實業務場景下的及時反饋。” 蔣志勇介紹說。
作為整個OceanBase的始作俑者,陽振坤的感受最深。“做自研數據庫,這真的是一把手工程,只有真的獲得企業最高層的決策支持才能做成。對于業務部門來說,哪個數據庫最穩定、最好用,就會選用哪個數據庫,因為業務部門的首要目標是發展業務。”為了嘗試自研數據庫技術,螞蟻金服的業務部門需要付出的代價是:修改業務系統,同時支持兩種數據庫,兩邊要能夠隨時切換,以便保證在自研數據庫出問題的情況下,還能夠切換回原有的Oracle數據庫。“所以一開始業務團隊在這件事情上其實并沒有積極的理由。”
為什么說OceanBase是阿里巴巴/螞蟻金服舉全集團之力所創造的成果呢?陽振坤一直是從事分布式技術的專家,2006年他從微軟到百度,從事分布式系統研發。對于百度數以萬億計的網頁來說,意味著與日俱增的天量數據,云計算系統有非常好的發展機會。陽振坤在百度做了兩年多的自研分布式系統,但由于百度不愿意再投入更多資源而最終采用了一套現成的開源系統,陽振坤的團隊也被解散了。
來到阿里之后,陽振坤與其它阿里技術人員一樣,需要找到一個合適的業務場景,跟一個業務團隊并負責技術,為自己的技術方向謀一條“生路”,同時隨著業務的發展而壯大自己的技術。淘寶的技術“大牛”,大都是通過這條路徑成長起來的。在加入淘寶之前,陽振坤其實并不懂數據庫,他的本科與碩士都是數學專業,到了博士才轉到了計算機專業,因此陽振坤的長項在于基礎計算科學。
當陽振坤加入淘寶后,最開始選擇自己技術方向的時候,恰好趕上了一個千載難逢的“天時”與“地利”。“天時”就是當時互聯網對數據庫的需求激增。以前金融企業等用的Oracle數據庫,都是事先設計好業務場景,比如固定用于銀行柜臺和ATM機器、服務于固定的人群,數據庫的并發量也很小,原來數據庫有幾十到幾百個人、最多幾千人的并發量就不得了,到了阿里巴巴雙十一以及支付寶業務的時候,一下就激增到幾十萬、上百萬人甚至是上千萬人的并發訪問,結果就是要原來的IOE投資要放大幾百倍甚至幾千倍,“誰都買不起了”。
而“地利”就是阿里巴巴/螞蟻金服自有龐大的業務和數據庫。“當時來阿里的時候,‘單機’在阿里系統內部就已經走到盡頭了。IOE等‘單機’的性能再好,也有個盡頭;‘單機’的盡頭,就是分布式系統的開始。” 陽振坤及其團隊恰好是做分布式系統出身的,而阿里巴巴/螞蟻金服內部有數以萬計的數據庫。雖然數據庫作為IT系統的底層,一旦出現故障就會嚴重影響整個業務系統,特別是支付等關鍵業務系統。但阿里內部總有一些業務,因為數據量和自身業務需求等因素,可以先試用自研技術,從而打磨自研技術。
淘寶收藏夾就是這樣一個業務,有大規模的數據量,其業務需求傳統數據庫又難以滿足。2011年的時候,淘寶用戶已達數千萬級,就算每人收藏十條即達幾億條的數量級。另外,淘寶收藏夾業務還有一個特點,就是數據庫訪問邏輯不太復雜,可以讓OceanBase團隊在短時間內開發出代碼并投產使用。如果選擇非常復雜業務作為目標,那么可能需要耗費技術團隊幾年的時間才能開發出一個可用的版本,而業務卻不可能等這么長的時間。
這個項目取名OceanBase,相對于Database而言,寓意要做一個海洋一樣的海量數據庫系統。完成了淘寶收藏夾的挑戰后,很快就難以在淘寶內部找到類似的業務場景,可以讓OceanBase技術團隊繼續生存下去。淘寶的核心業務已經應用了MySQL開源數據庫并且比較穩定,MySQL已經能滿足淘寶的大部分業務需求。到了2012年的時候,OceanBase團隊面臨要解散的危機。這個時候,王堅聯系了當時的螞蟻金服CEO彭蕾,把OceanBase團隊推薦到了支付寶。而螞蟻金服的CTO程立,又極大地支持了OceanBase的發展。2014年雙十一,程立出面,把交易流量的1%切給OceanBase,但實際的結果卻是切了10%,因為當時的Oracle數據庫系統確實支撐不了洶涌而來的巨大流量。
后來的結果是OceanBase成功支撐了2014年雙十一10%的交易流量。但就在2014年6月份,當OceanBase已經從技術上準備好,需要切到交易業務時,因為業務系統改造的工作量大,導致OceanBase兩個月都無法上線。“到了8月份,我急了,就給魯肅(程立)和Lucy(彭蕾)寫郵件,這個事情后來就推動了。”
除了王堅、彭蕾、程立等阿里巴巴/螞蟻金服等“一把手”對于OceanBase的大力支持外,當時負責阿里巴巴整個后臺系統的劉振飛從第一天起就一直是OceanBase的堅定支持者。劉振飛于2006年加入阿里,曾任淘寶技術保障部總監,后來升至阿里巴巴副總裁負責技術保障部、是阿里巴巴合伙人之一,現任阿里集團首席風險官兼任高德總裁。正是劉振飛的支持,才讓淘寶收藏夾用上了OceanBase。“當時振飛負責整個阿里巴巴的后臺系統,包括數據庫,沒有他的鼎力支持,OceanBase無法在任何業務上線。”陽振坤回憶。
“甲骨文公司有十幾萬人,從事數據庫核心研發的就有2千多人,而OceanBase一開始只有幾個人,到后來也才20多個人,憑什么讓別人相信我們能做出比Oracle數據庫更好的技術與產品?這個確實聽起來就不靠譜。”陽振坤說,這就是雞生蛋、蛋生雞的問題,好的產品必須要有好的口碑才會有人用,但好的口碑和好的產品卻要在使用中才能打磨出來。數據庫是做出來、更是用出來的,中國有那么多企業、高校和科研機構做數據庫,真正能夠在生產環境中大批量使用的少之又少。
今天回頭來看,OceanBase是阿里巴巴/螞蟻金服舉全集團之力而開發出來的自有知識產權數據庫,如果沒有阿里巴巴/螞蟻金服內部眾多“一把手”高管的鼎力支持,OceanBase團隊也許早就解散了。
本文作者:安和林
完整文章敬請期待后續介紹
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/17691.html
摘要:年,替換了支付寶支付系統中的數據庫。年,螞蟻金服全面去。土豪金工牌帶是螞蟻金服內部最高榮譽大獎。陳萌萌目前在螞蟻金服基礎數據部團隊負責相關方向的開發工作。 摘要: 兩萬字長文帶你了解關于OceanBase的一切! showImg(https://segmentfault.com/img/bV6WYx?w=900&h=500); 2008年,王堅從微軟亞洲研究院常務副院長的位置上離職后,...
摘要:技術成就劃時代的分布式數據庫通過核心業務的不斷上線,螞蟻金服幫助渡過了自研基礎軟件產品最艱難的應用關。年天貓雙十一,支付寶創造了萬筆每秒支付峰值的業界新紀錄,這對于數據庫來說,意味著每秒需要同時運行萬條。 技術成就:劃時代的分布式數據庫 通過核心業務的不斷上線,螞蟻金服幫助OceanBase渡過了自研基礎軟件產品最艱難的應用關。OceanBase不只是被研發出來的,更是被用出來的,是在...
閱讀 1396·2021-11-24 09:39
閱讀 3686·2021-11-24 09:39
閱讀 1859·2021-11-16 11:54
閱讀 1463·2021-09-30 09:47
閱讀 1712·2021-09-26 10:16
閱讀 2341·2021-09-22 15:33
閱讀 1453·2021-09-14 18:01
閱讀 2435·2021-09-07 09:59