图片来自:视觉中国
数据库,将计算机科学和易于人类理解认知的数据管理方式完美的衔接在了一起,从上个世纪 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 大系统
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 数据库。
当时的雅虎的光环,远高于今天的谷歌,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,而随着大数据,人工智能,物联网的崛起,未来的数据库形态将越来越丰富,关系型数据库,非关系型数据库,结构数据库,时序数据库等将得到越来越广泛的应用,在不远的将来,以云为基础的云数据库将越来越多的影响人们的生活。
中国的数据库历史,伴随着时代的发展,故事仍然在继续。
无论你是在淘宝下单,还是在刷朋友圈,乃至你的流量费用,你的银行卡账单。
背后都有这篇文章里,提到或者没有提到的人们做出的贡献。
所以,笔者提议,在本文的最后,我们一起向所有为中国数据库行业发展做出贡献的先驱与从业者们致敬。
这个世界,因为这些有理想与好奇心的人们,变得更好了。
作者介绍:林易,误打误撞进入云计算圈的自媒体人,曾经采访过马云,王兴,王石等一众商业大佬,擅长撰写各种商业观察,行业观点,爱好无线电,互联网技术以及乐高。