中國數據庫小傳:隱祕的江湖與恩怨

MySQL NoSQL 雲計算 MariaDB 主題曲哥哥的獨特 主題曲哥哥的獨特 2017-08-26

數據庫,將計算機科學和易於人類理解認知的數據管理方式完美的銜接在了一起,從上個世紀50年代開始,就逐漸影響並改變了世界,但在中國,數據庫是怎樣發端,成長並演變成今天的燎原之勢,似乎從未有人進行過系統的梳理。

一個偶然的機會,筆者執筆寫下了這篇小文,資料有限,未盡之處,敬請諒解

誕生於恢復高考之後

1978年,恢復高考以後的第一批學生,離開他們工作的農場、工廠,乃至西雙版納的熱帶森林,重新撿起書本,走進了大學校園。

迎接他們的老師薩師煊在黑板上寫下了“數據庫”三個字,這群剛剛走進校園的年輕人,望著手上油印的講義,似乎還很難明白這是一個怎樣的產物。不光是這群年輕人,彼時的中國大陸,聽說過這個名詞的人,也不過是極少數頂尖的計算機科學家。

中國數據庫小傳:隱祕的江湖與恩怨

圖1中國數據庫開拓者—薩師煊老師

國際上,上個世紀50,60年代,隨著信息技術的發展,60年代伴隨著登月工程等大型項目而生的數據庫,已經從一門新興科學,走入了國計民生領域。1961年,美國通用公司研發的第一個數據庫系統DBMS誕生。1976年霍尼韋爾公司(Honeywell)開發了第一個商用關係數據庫系統——Multics Relational Data Store。

就在薩師煊全面開始介紹數據庫的前一年,1978年,美國的Ellison在為中央情報局做一個數據項目時候,敏銳的發現關係型數據庫的商機。幾個月後,Oracle 1.0 誕生了,這個看起來只不過是個數據庫玩具的產物,當時除了完成簡單關係查詢不能做任何事情,就是這樣一個“玩具”,讓Ellison從此踏進了信息管理這個巨大的藍海產業,並在短短十幾年間,成長為世界級的巨人。

1982年,薩師煊起草了國內第一個計算機專業本科“數據庫系統概論”課程的教學大綱。

中國數據庫的這第一批星星之火,現在大多數人已經無法通過公開渠道尋找到,但是在薩師煊的線上紀念館裡,依然會看到一些名字:王珊《數據庫系統概論》作者,國防科技大學計算機學院教授陽國貴等一串國內學界泰斗,由他們編寫的教材,如今依然是學習數據庫的同學必看的書籍之一。

中國數據庫小傳:隱祕的江湖與恩怨

這批中國數據庫的第一代學生,走入社會已是80年代初,他們將數據庫廣泛帶入了學校,學院,以及科研機構,進而帶動起了整個8,9年代初的中國數據庫行業在國防,軍工等領域的應用。

今天已經無從考證,但我們可以想象,中國第一枚洲際導彈,中國第一代超級計算機,中國第一個正負電子對撞機,國產殲擊機,甚至國產大型驅逐艦,在八十年突飛猛進的國家科技成果進步中一定有第一代中國數據庫人身影。

薩師煊是名門之後,家族名人包括民國海軍司令薩鎮冰等。但其一生致力於教學對於學生,親近可愛。雖然擔任了數據庫領域諸多職務,然而據弟子評價,老師身無長物,生活簡樸。

2010年7月11日凌晨,薩師煊在北京的醫院裡悄無聲息的去世了。與大多數中國老科學家一樣,今天的年輕人已經只能在搜索引擎上找到關於他的隻言片語。

但由他引入中國的數據庫行業,卻星火燎原,成為時代脈搏的紀錄者。

路漫漫其修遠兮,吾將上下而求索。

----屈原《離騷》

Oracle江湖

1989年某一天,臺灣人馮星君興奮不已,數月前Oracle總部決定進軍中國,馮星君帶著10萬美金的啟動資金來到中國。就在此時,他驚訝的發現中國最有價值的中文詞彙:“甲骨文”居然尚未註冊,商業嗅覺敏銳的他天才般的決定將Oracle的中文名稱,註冊為甲骨文。

這個將中國歷史上最古老的文字與最先進的數據庫科技連接在一起的商業創意,後來成為了無數的商業教材反覆討論的品牌案例。

從此,甲骨文這三個字,就在中國大陸上生根發芽,幾乎在同一時期,中國出現了兩個對於數據庫強需求的行業。

上個世紀80年代末,中國的經濟體量開始劇增,改革開放的腳步日益加深,信息流與資金流的以幾何級的速度增長:1978年,中國電話總用戶數為214萬戶,2003年,中國電話數達到了22562萬。而銀行的業務也開始變得越來越複雜,各項業務開始迫切的需要新的工具。

當時的中關村盜版氾濫買一套Oracle軟件只需要2500元人民幣,在美國,一套的Oracle DOS版要賣1700美元。馮星君說服了Oracle總部,准許他在中國將一套的Oracle DOS版只賣500美元。有培訓、有服務、有手冊,價錢和盜版一樣,只用3個月時間,Oracle就賣出了5000套。

馮星君也具有當年的商業英雄的一切特徵,充滿了草莽氣息。

馮星君曾經將自己的家族企業發展成了Oracle在中國最大的代理商而在被解職以後,傳聞曾經派打手衝擊Oracle會場,甚至差點被不明黑社會的人暗殺,這些充滿了想象意味的場面,構成了那個特殊年代的商業江湖。

“每一次馮星君的車一啟動,就有一輛車尾隨其後跟蹤。馮星君開始注意這輛可疑的車,大概觀察了一個星期,馮星君覺察出不對勁,就報了警,將這輛車扣了。由於沒有造成任何傷害,也沒構成犯罪事實,再加上不屬於中國內地的管轄區域,於是警方將此案移交國家公安部門處理,最後將疑犯驅逐出境。

原來,跟蹤馮星君的是臺灣的黑社會勢力,已經在內地潛伏了半個月之久,準備暗殺馮星君,但一直沒有找到機會下手。“

摘自---《IT時代週刊》

但無論如何,Oracle就這樣在中國站住了腳,而真正讓Oracle一統江湖的是“97工程”。

當時,電信行業的業務量以平均每年45~50%的速度遞增,而計費方式是脫機讀帶,人工整理,長途,國際業務,甚至需要2~3個月才能結算出來,引入先進的數據庫,並搭建起一套完整的服務系統,就成為了迫切的任務。

“1995年5月,郵電部電信總局提出開發和建設"市內電話業務計算機綜合管理系統",即"九七工程",並於同年7月下發了一系列的技術和業務規範,要求全國縣以上的郵電局在1997年底前實施"九七工程"。

"九七工程"共分為九個子系統,其中,營業受理、配線配號、定單管理、機線資源、綜合管理與查詢屬於基本子系統,112、114、計費、號簿子系統與基本子系統完全實現數據共享。“

中國數據庫小傳:隱祕的江湖與恩怨

圖3:97工程的7大系統

而中國的第一代DBA就在97工程中崛起,這批中國第一代DBA,其中絕大多數都已經是中國電信行業的元老級人物:多已成為省市一級的總工程師。

甚至有的已經離開電信領域,步入仕途。據筆者統計,其中職務最高者已經官居副部序列。更多的人則已經財務自由,開始了自己人生的另外一段旅途。

中國數據庫的行業格局就在這一時期形成了:金融行業用IBM DB2數據庫,Informix數據庫,在電信行業,則是Oracle的天下。

同時,一批圍繞Oracle生態成長的企業,也逐步壯大,其中最典型的就是亞信科技:2000年,亞信在美國納斯達克上市。同一時期,也誕生了從國企到電信現在創辦了雲和恩墨的Oracle ACE總監 Eygle(蓋國強)老師。

中國數據庫小傳:隱祕的江湖與恩怨

圖4:Oracle ACE總監 Eygle(蓋國強)老師

這也是Oracle數據庫的黃金年代,就在這一年冬天,瑞典下了很大一場雪。大雪以後,獨立的商業公司MySQL AB在瑞典的中部城市Uppsala成立了。

而早在公司成立之前的1995年,1995年5月23日,MySQL的第一個內部版本就開始發行了。

有趣的是,第一個MySQL正式版恰巧只能運行在Sun Solaris上,彷彿昭示了它日後被Sun收購的命運。

而MySQL之父Monty沒有加入Sun,而是離職創立了Monty Program AB,接過MySQL的代碼繼續開發新的分支—MariaDB,並再續傳奇的故事,我們將在後面繼續講述。

中國數據庫小傳:隱祕的江湖與恩怨

圖5:MySQL演進圖

此時此刻的中國,世紀之交,也正在變革前夜。

1999年,阿里巴巴誕生,1999年,騰訊誕生,到1999年6月30日,國內上網用戶數已超過400萬。

舊的黃金時代仍在延續,然而新的故事已經來臨。

互聯網傳奇

從1999年開始,各個IT社區開始興起,一些數據庫的同行開始走出封閉的公司,在社區裡活躍起來,更多數據庫從業者獲取知識的形式,也從產品文檔,手冊,變成了社區。“當時國內的整個技術社區裡面大家能得到的第一手的資料其實還比較少,所以就有比較強的技術人員會去看英文的文檔,國外的網站,然後回去做做實驗,然後去社區裡分享,幫助別人解決一些問題。”老一代DBA童家旺談到當年自己混跡ITPUB的經歷時說道。

那是DBA們的田園牧歌時代,當時的DBA圈子並不大,幾乎都聚集在北京,社區裡有人振臂一呼,線下擼串,響應者眾多。大家一邊擼串,一邊把自己遇到的問題跟大家交流。

而這一時期,也是各個互聯網公司開始崛起的時期,對於數據庫的需求量變得越來越強烈。

彼時在市場上,有三家公司的DBA被公認為行業大牛,一是ebay,二是淘寶,三是當年初創的支付寶。樓方鑫,馮大輝都是當年支付寶數據庫的代表人物,樓方鑫在2005年曾經開發Oracle的災難恢復工具AUL,十幾年過去了仍然經常接到求助郵件。而馮大輝參與編輯兩本 Oracle 的技術圖書: 《Oracle數據庫性能優化》、《Oracle數據庫DBA專題技術精粹》在數據庫領域有著廣泛的影響力。

而ebay,則以現在已經去了美國的eaglefan、玉面飛龍、yong huang黃勇和還留在唯品會的諸超等為代表。

Oracle數據庫的一個致命缺點開始暴露出來,貴。不僅Oracle軟件貴,要維持Oracle數據庫+IBM小型機+EMC的開支也相當龐大,另外對於管理員的能力要求,也非常的高。

不僅如此,“第一是Oracle作為商業產品,本身也有性能的上限,第二是黑盒子。對於沒碰到過的場景,無論再怎麼努力,也是無法預測可能出現的問題的。”當時的淘寶數據庫大神餘鋒告訴記者。

中國的互聯網公司大部分都草莽出身,對於性價比極為看中,而這個時候,美國的雅虎公司開始率先使用MySQL數據庫,一度在世界上有數以千計的服務器都是用MySQL數據庫。

當時的雅虎的光環,遠高於今天的谷歌,FB,可以說今天中國所有互聯網公司的架構,都可以在雅虎找到源頭,在雅虎的示範效應下,很快中國的互聯網公司就開始自己的MySQL之路。

阿里巴巴曾經被稱為Oracle的“明星客戶“,”黃埔軍校“誕生了馮春培、陳吉平和汪海等眾多Oracle大牛,他們開奔馳的時候筆者連自行車都還買不起。但隨著淘寶、支付寶和阿里巴巴B2B的註冊用戶數激增,用戶產生的數據也越來越多,即使採用冷熱隔離的方式也解決不了大 容量數據且大併發的難題,淘寶啟用了全亞洲最大的Oracle RAC集群,阿里巴巴B2B中文站的數據量也因數據量大和業務要求,每年早上08:00—09:30之間CPU保持98%的使用率,LOAD也超高,即使更換存儲設備不久也會再次出現這樣的狀況。

使用開源的MySQL,跟商業產品Oracle重要區別在於,開源軟件只有基本一個框架,雖然已經有了成熟的社區,但是產品本身需要自己去打磨,出了問題沒有廠商技術支持,能不能支撐起阿里內部的數據庫需求,在當時看來,並不那麼確定。

“2009年底,當時負責淘寶技術預算的劉振飛向王堅彙報,提出淘寶“2010年不會購買IBM小型機”,沒想到被王堅挑戰:“既然2010年可以不買小型機了,為什麼還要給自己留後路以後還可能購買呢?你要在給董事會看的PPT上明確寫一句:淘寶2010年起不再購買小型機了。”

劉振飛只好“攢出”一條去IOE的技術路線:“低成本、線性可控、去中心化(分佈式):去IBM,PC Sever替代小型機;去Oracle,用MySQL替代;去EMC,用中低端存儲”。他最後以驚歎號結尾,粗體寫上一句:“淘寶2010年起不再購買小型機了!”

----摘自阿里巴巴內刊《阿里人雜誌》

很難想象,在之後的爆發式增長中,包括以2014,15,16年雙十一為代表的支付峰值,下單峰值,如果沒有阿里自研的MySQL分支,將會發生什麼樣的狀況。而MySQL的開源特性,也為其取代Oracle數據庫提供了良好的基礎: MySQL實際上在64位硬件出來以後,幾個星期就出了64位的軟件平臺。固態存儲技術出來了以後,幾個月以後FB就開源了固態存儲的緩存插件。

在知數堂培訓聯合創始人葉金榮(原搜狐DBA)看來,開源數據庫代表的是一種新的模式,但不是說開源數據庫就應該完全免費,也是可以走商業服務路線的。

所以,MySQL在國內的互聯網公司逐步開始取代Oracle的江湖地位,成為諸多中國互聯網企業的首選。新浪的楊海潮,去哪兒的周彥偉,搜狐的葉金榮等也是在此波浪潮中成長起來的MySQL領軍人物,另外,騰訊、百度、網易、小米、人人網、京東等諸多企業也都是MySQL的用戶與開源貢獻者。

京東金融有個妙趣橫生的MySQL 大牛劉啟榮曾經跟筆者開過玩笑說:搞得MySQL,方為仌。也暗示著如今MySQL在互聯網公司的地位。

中國數據庫小傳:隱祕的江湖與恩怨

圖6:劉啟榮和餘鋒

在阿里去O的大背景下,一撥人轉型成為了MySQL方面的資深專家:如張瑞、何雲飛等;另一部分人則在雙創大潮中轉型成為了創業者,其中包括創立了沃趣的李春、熱璞的金官丁、平民架構的樓方鑫、去了丁香園現在創立了無碼科技的馮大輝,還有袋鼠雲的陳吉平等,其中不乏融資千萬乃至數億的成功創業者。(如果諸位看官有興趣,下一篇我們可以來寫一篇DBA創業傳奇,據筆者在身邊的觀察,不得不說DBA這個職業創業成功的概率遠高於其他職業)

今天阿里知名的MySQL數據庫專家丁奇、何登成等也都是從百度、網易等各大互聯網公司中成長起來的,當然也有阿里土生土長的彭立勳、翟衛祥。為了保證雙11,他們自行維護了一個MySQL分支,叫AliSQL。從知數堂的葉金榮老師評測中看到,在通用基準測試場景下,AliSQL版本比MySQL官方版本有著70%的性能提升。在2016年杭州雲棲大會上AliSQL宣佈開源,聲稱在秒殺場景下,性能提升100倍。

中國互聯網中的開源數據庫大軍, 除了MySQL以外,PostgreSQL、Redis、MongoDB和HBase等也開始活躍起來,PG的領軍人物德哥、MongoDB的TJ、Reids的鵬程、HBase的曹龍等人也活躍在各大數據庫大會和社群中,一起尋找著中國數據庫新的方向。另外阿里雲的Redis、國產數據庫巨杉也紛紛開出自己的源代碼,加入了開源數據庫大軍。

傳聞國內眾多新興的國產數據庫如人大金倉、達夢、神州通用、瀚高、上容、高斯等也都是或多或少學習、膜拜了這些開源數據庫後自行研發、開枝散葉的。

新的挑戰,總在前方。

行業變局,新的挑戰

2008年1月16日,Sun宣佈已經與MySQL AB達成收購協議,以大約10億美元收購MySQL AB。sun給MySQL AB設定的商業路徑是,擴大用戶與開發人員社區,然後再創建商業服務吸引付費用戶。但MySQL之父Monty並沒有加入Sun,而是離職創立了Monty Program AB,接過MySQL的代碼繼續開發新的分支—MariaDB。

中國數據庫小傳:隱祕的江湖與恩怨

圖7:MySQL創始人Monty(左一)和MariaDB Foundation

歷史往往是螳螂捕蟬黃雀在後,sun還沒來得及施展自己在MySQL上的抱負,自己就陷入了困境的泥潭,持續下滑的業績,讓sun曾經在一天之內股價下跌近23%。市值從2000億美金迅速滑落。

最終,sun被Oracle收購,而MySQL也落入Oracle口袋。

這一次收購,帶給數據庫行業的影響是巨大的,事實上的壟斷形成了(雖然還有微軟的SQL server,IBM的DB2等)。越來越多的人擔心,MySQL會逐步變成一個類商業的軟件。而據傳聞,MySQL 8.0 的授權協議,將變得比現在更加苛刻。

2013年,稜鏡門事件曝光,潛伏在公眾視野以外的國產數據庫逐一出現,達夢、金倉、神通、南大等一批國產數據庫得到了廣泛關注,但這些數據庫多應用於央企,國家財政,軍事等專用領域。

而在通用領域,完全不屬於任何組織的開源數據庫與自研數據庫將是未來的主流,這也是MariaDB得到廣泛關注的原因,阿里,騰訊都先後贊助了MariaDB。

雲數據庫,更加亮眼的未來

2015年的AWS re:Invent大會上,亞馬遜宣佈了Amazon Aurora。Aurora是一個關係型數據庫,可以跨3個可用區域複製6份數據,其設計目標是提供高性能和高可用性(99.99%)。

在中國,筆者猜測未來最有可能推出自研通用型數據庫也將來自雲計算廠商,數據庫上雲以後,很多玩法才剛剛開始,Cloud Native的數據庫,將提供一個更有想象力的未來。

而在國內,目前雲計算產品線最全的就是阿里雲了,在有了自研的金融數據庫OceanBase後,阿里雲完全有能力在某一天推出自己的自研通用型數據庫,這樣的猜測絕非空穴來風。在一次數據庫大會中,筆者與阿里雲餘鋒團隊閒聊時得知,阿里雲正在自行研發一款通用數據庫,叫極地DB?

據其介紹,阿里雲的這款自研數據庫產品在通用場景下性能可以達到MySQL的數倍,而成本只有MySQL的一半左右,筆者猜測阿里雲這款新的自研數據庫產品的性能和價格紅利應該是來自於自研的分佈式存儲系統(下面是大會根據幾位大牛的信息還原的架構圖,應該跟Aurora原理類似)

中國數據庫小傳:隱祕的江湖與恩怨

而根據筆者對國內互聯網公司的瞭解,一旦阿里雲推出自研通用雲數據庫,華為雲,騰訊雲等國內二線雲計算玩家也許就會在自研通用雲數據庫上加快步伐,但能否有這個建設能力,那就見仁見智了。

有分析師認為到2020年人類產生的數據總和將100ZB,而隨著大數據,人工智能,物聯網的崛起,未來的數據庫形態將越來越豐富,關係型數據庫,非關係型數據庫,結構數據庫,時序數據庫等將得到越來越廣泛的應用,在不遠的將來,以云為基礎的雲數據庫將越來越多的影響人們的生活。

中國的數據庫歷史,伴隨著時代的發展,故事仍然在繼續。

無論你是在淘寶下單,還是在刷朋友圈,乃至你的流量費用,你的銀行卡賬單。

背後都有這篇文章裡,提到或者沒有提到的人們做出的貢獻。

所以,筆者提議,在本文的最後,我們一起向所有為中國數據庫行業發展做出貢獻的先驅與從業者們致敬。

中國數據庫小傳:隱祕的江湖與恩怨

這個世界,因為這些有理想與好奇心的人們,變得更好了。

作者介紹:林易,誤打誤撞進入雲計算圈的自媒體人,曾經採訪過馬雲,王興,王石等一眾商業大佬,擅長撰寫各種商業觀察,行業觀點,愛好無線電,互聯網技術以及樂高。

PS:此文為新浪財經頭條“主題曲哥哥看TMT”原創內容

相關推薦

推薦中...