「轉」中國資料庫40年曆史:隱祕的江湖與恩怨
轉自:
https://baike.baidu.com/tashuo/browse/content?id=a2db9e0a9f98abf4eeb7771c&lemmaId=&fromLemmaModule=pcBottom
誕生於恢復高考之後
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大系統
1997年,Oracle順利地拿下東三省郵電管理局5期工程的大單,也給Informix(英孚美軟體公司)、SYBASE(塞貝斯)、CA、Digital(DEC電腦有限公司)等業界幾大廠商沉重的打擊。
而中國的第一代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資料庫。
當年雅虎的光環,遠高於今天的谷歌,Facebook,可以說今天中國所有網際網路公司的架構,都可以在雅虎找到源頭,在雅虎的示範效應下,很快中國的網際網路公司就開始自己的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方面的資深專家:如張瑞、何雲飛等;另一部分人則在雙創大潮中轉型成為了創業者,其中包括創立了沃趣的李春、熱璞的金官丁、平民架構的樓方鑫、去了丁香園現在創立了無碼科技的馮大輝,還有袋鼠雲的陳吉平等,其中不乏融資千萬乃至數億的成功創業者。
今天阿里知名的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年,稜鏡門(https://baike.baidu.com/item/稜鏡門/6006333?fr=aladdin)
事件曝光,潛伏在公眾視野以外的國產資料庫逐一出現,達夢、金倉、神通、南大等一批國產資料庫得到了廣泛關注,但這些資料庫多應用於央企,國家財政,軍事等專用領域。
而在通用領域,完全不屬於任何組織的開源資料庫與自研資料庫將是未來的主流,這也是MariaDB得到廣泛關注的原因,阿里,騰訊都先後贊助了MariaDB。
雲資料庫,更加亮眼的未來
2015年的AWS re:Invent大會上,亞馬遜宣佈了Amazon Aurora。Aurora是一個關係型資料庫,可以跨3個可用區域複製6份資料,其設計目標是提供高效能和高可用性(99.99%)。 在中國,筆者猜測未來最有可能推出自研通用型資料庫也將來自雲端計算廠商,資料庫上雲以後,很多玩法才剛剛開始,Cloud Native的資料庫,將提供一個更有想象力的未來。
而在國內,目前雲端計算產品線最全的就是阿里雲了,在有了自研的金融資料庫OceanBase後,阿里雲完全有能力在某一天推出自己的自研通用型資料庫。
這樣的猜測絕非空穴來風,在一次資料庫大會中,筆者與阿里雲餘鋒團隊閒聊時得知,阿里雲正在自行研發一款通用資料庫,初步命名極地DB 。
據其介紹,阿里雲的這款自研資料庫產品在通用場景下效能可以達到MySQL的數倍,而成本只有MySQL的一半左右,筆者猜測阿里雲這款新的自研資料庫產品的效能和價格紅利應該是來自於自研的分散式儲存系統。 (下面是大會根據幾位大牛的資訊還原的架構圖,應該跟Aurora原理類似)
而根據筆者對國內網際網路公司的瞭解,一旦阿里雲推出自研通用雲資料庫,華為雲,騰訊雲等國內二線雲端計算玩家也許就會在自研通用雲資料庫上加快步伐,但能否有這個建設能力,那就見仁見智了。
有分析師認為到2020年人類產生的資料總和將100ZB,而隨著大資料,人工智慧,物聯網的崛起,未來的資料庫形態將越來越豐富,關係型資料庫,非關係型資料庫,結構資料庫,時序資料庫等將得到越來越廣泛的應用,在不遠的將來,以云為基礎的雲資料庫將越來越多的影響人們的生活。
中國的資料庫歷史,伴隨著時代的發展,故事仍然在繼續。
無論你是在淘寶下單,還是在刷朋友圈,乃至你的流量費用,你的銀行卡賬單。
背後都有這篇文章裡,提到或者沒有提到的人們做出的貢獻。
所以,筆者提議,在本文的最後,我們一起向所有為中國資料庫行業發展做出貢獻的先驅與從業者們致敬。
這個世界,因為這些有理想與好奇心的人們,變得更好了。
文章為作者獨立觀點,不代表虎嗅網立場;