毫无疑问,数据库的专业化趋势变得愈加明显。这不但体现在专业的数据库类型适应专业的工作负载,还体现在专业的DBA提供专业的数据库服务上。
数据库的多样化
似乎在不久之前,业界还在争论到底是通用的数据库方向还是专业化的数据库方向代表未来。前者的典型案例就是Oracle,从一开始Oracle的路线就是AllinOne,即使收购了TimesTen,仍然坚持将其中的技术合并到Oracle中提供一个内存存储的选项。于是乎在Oracle最新版本中,内存选项成为了亮点。但是我们看到的明显的现象是什么呢?
CSDN的最新调查显示,已经有很大一部分比例的用户在其应用中混合采用了多种数据库解决方案。比如MongoDB和Redis获得了相当比例的用户。其实我觉得这个调查甚至没有反映更明显的趋势,因为它是按照用户数,而不是数据规模来的。相当比例的用户在分析型数据库领域采用了GreenPlum、Verica和Gbase8a等专业的MPP数据库,而因为用户群在调研范围外,所以未体现在调查报告之中。
除了关系数据库的两种主要形式:OLAP、OLTP,非关系型数据库的四种主要形式:文档、健值对、图和列式,以及科学数据库中的矩阵式和生物数据库之外,2015年在数据库的类型上专业化的趋势得到了大力的延展。比如时间序列数据库异军突起。OpenTSDB、Blueflood、kairosDB、influxDB均得到了长足的发展并嵌入到多个开源项目,其他一些数据库也开始考虑增强对时序数据的存储和访问能力,比如RapidDB。又比如支持全球分布式事务的数据库的发展。这得益于Google的论文提出了Spanner,一系列类似的数据库陆续被提出来。最近最火的当属TiDB,因为其创始人够牛、开源模式够帅。
毫无疑问,未来的发展趋势是专业的数据库支持专业的负载。这里负载既包括数据的存和取,也包括在数据库内的查询和处理逻辑。基因、地理信息、网络、视频、图像,不同负载的数据库(这里也许是广义的“数据”)会变得越加专业。
专业化分工是推动人类社会发展的动力,但前提是这种专业化分工是可以达到规模效应的,这就引出了第二个看点。
数据库的云化
反思一下为什么数据库会出现专业化的潮流,或者说为什么在现在出现而不是十多年前。当年通用数据库是一个多么响亮的招牌,数个863项目都与此相关。我认为主要的原因是随着软硬件和商业模式的发展,每一个专业化的数据库方向都有了足够规模,无论是“钱”上的规模还是“量”上的规模。
在CSDN2015软件开发者白皮书中,有一个调查非常有趣:“2015年数据库开发人员比去年大幅下降15%”。毫无疑问,数据库的使用量一定是增加了。那么问题来了,这些人去哪儿了呢?如果有一份数据可以补充在这里,也许我们会发现,AWS和阿里的云数据库的用量增加,与这些减少,不过现在数据库本身在实现DBaaS方面还有很多的不足,原生考虑了DBaaS的数据库系统目前只有Google系和阿里的OceanBase,其他无非是通过虚拟机或者容器的方式,实现一个数据库实例的快速安装和配置。真正要享受DBaaS带来的专业化分工的好处,必须是在数据库之上实现“虚拟化”,在数据库内部实现良好的多租户隔离、负载管理和计费等。在这方面现在大部分数据库都需要进行重新设计。
如果数据库的趋势是以云服务的方式提供,那么应用开发者如果保证不被Lockin,存储在云端数据库的数据是否还是自己的呢?这个问题,就要靠下一个趋势来解决。
数据库的开源化
回过头来看图1,其中开源数据库软件的已经超过闭源数据库软件了。开源作为软件业的一个趋势,更加证明了卖软件许可的商业模式是难以持续的,只有开源软件+专业化服务的模式才是王道。
而这种专业化服务,如果以本地安装服务的方式成本太高,难以为继,最理想的方式就是云服务模式。无论是针对中小企业的公有云服务还是面向大型、超大型企业的私有云服务。
数据库软件本身的开源提供了信任,无论是国家之间的信任还是企业之间的信任。2015年,一款经典的、重型的MPP数据库——GreenPlum已经开始了自己的开源之旅,从年初宣布此事,到第四季度正式将代码放到GitHub上为止,业界一直保持了持续的关注。相关的Meetup和社区快速的成长起来,据我所了解,某大厂正在基于此紧密开发自己的MPPDBaaS服务的人正相关。
云服务给应用开发者带来了极大的便利,优化、备份等事情不再需要专业的DBA来实现,即买即用非常方便。对于云服务商来说,原来分散的那么多“业余”DBA可以集合成一位专业的大牛DBA,专业化分工带来了效率的提升。这就是云服务的商业模式给提供者和使用者带来的价值。由此应用开发者得以使用一大堆专业的数据库来解决问题,而不再受限于技能只能选择自己熟悉的MySQL等。数据库的云化和专业化两个进程是同步的。
DBaaS,这个词汇在2015年进入了更多人的眼中。不仅是公有云的大厂们纷纷推出更多的数据库云服务。就连一些互联网大厂内部,也在普及自己的数据库云服务。比如小米近期的分享中提及已经实现了MySQL和Redis的数据库云化服务,通过RESTful的API为内部开发者快速提供数据库的实例。一些专业提供PaaS的公司,例如MoPaaS、Pivotal等,也将数据库服务作为首要为用户提供的服务之一。
2016的期待
2015年数据库业界尚未受到新硬件的冲击,无论是超融合架构、3DFlash还是可持久化的内存,似乎离数据库软件都还有一截距离。但我们需要牢记摩尔定律的魅力(或者威力),牢记我们现在的数据库软件大多是为了30年前的硬件架构所设计的,他们中的大部分代码比用他们的人的年纪还要长。硬件架构的革命性变化已经在眼前,随着数据库的专业化分工,原本耦合在一起的CPU、内存和外存已经不再适应多变的环境;机械式硬盘已经被电子盘所超越。一场血腥的创新数据库服务提供商对传统数据库提供商的正在上演,未来就在眼前,让我们拭目以待2016。